{"version":3,"sources":["webpack:///./src/framework/forms/services/global-command-service.ts","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-list-utils.ts","webpack:///./src/framework/forms/classes/functions.ts","webpack:///./src/framework/forms/widget-services/list-widget-creator-service.ts","webpack:///./src/erp/services/faktura-service.ts","webpack:///./src/erp/services/sprache-uebersetzung-service.ts","webpack:///./src/erp/utils/update-manuelle-texte-utils.ts","webpack:///./src/erp/views/verkauf/faktura/faktura-list-utils.ts","webpack:///./src/erp/views/verkauf/faktura/fakturaposition-edit-utils.ts","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-list-utils.ts","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-edit-utils.ts","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-list-utils.ts","webpack:///./src/framework/base/interfaces/export.ts","webpack:///./src/framework/forms/services/toolbar-service.ts","webpack:///./src/framework/forms/export.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellungsgruppe-edit-utils.ts","webpack:///./src/config.ts","webpack:///./src/framework/login/images/background12.jpg","webpack:///./src/erp/views/stammdaten/artikel/artikel-list-utils.ts","webpack:///./src/framework/reports/services/variable-service.ts","webpack:///./src/erp/services/custom-edit-popup-service.ts","webpack:///./src/framework/forms/classes/command-server-data.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnungsposition-edit-utils.ts","webpack:///./src/framework/reports/services/chart-service.ts","webpack:///./src/framework/base/services/shortcut-service.ts","webpack:///./src/framework/base/services/style-service.ts","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-list-utils.ts","webpack:///./src/erp/services/bestellung-service.ts","webpack:///./src/erp/views/kalkulation/konditionsfeld/konditionsfeld-edit-utils.ts","webpack:///./src/erp/enumerations/beleg-import-typ.ts","webpack:///./src/framework/forms/form-export.ts","webpack:///./src/erp/enumerations/zahlung-typ.ts","webpack:///./src/framework/base/services/async-service.ts","webpack:///./src/erp/services/prod-auftrag-search-service.ts","webpack:///./src/erp/views/arbeitszeit/lohnexport/lohnexport-list-utils.ts","webpack:///./src/framework/forms/classes/models.ts","webpack:///./src/erp/services/header-command-service.ts","webpack:///./src/framework/forms/widget-services/widget-creator-service.ts","webpack:///./src/framework/images/user.jpg","webpack:///./src/framework/forms/services/enum-item-service.ts","webpack:///./src/framework/forms/services/dialog-confirm-service.ts","webpack:///./src/erp/views/verkauf/auftrag/auftrag-edit-utils.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-edit-utils.ts","webpack:///./src/framework/reports/services/data-service.ts","webpack:///./src/framework/login/images/background09.jpg","webpack:///./src/erp/services/form-command-service.ts","webpack:///./src/erp/dashboard/interfaces/widget.ts","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-edit-utils.ts","webpack:///./src/erp/views/verkauf/auftrag/auftragsgruppe-edit-utils.ts","webpack:///./src/erp/views/verkauf/faktura/fakturagruppe-edit-utils.ts","webpack:///./src/erp/services/validation-ex-service.ts","webpack:///./src/erp/services/dms-viewer-service.ts","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-list-utils.ts","webpack:///./src/framework/forms/widget-services/simple-widget-creator-service.ts","webpack:///./src/framework/forms/services/popup-info-service.ts","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamationsposition-edit-utils.ts","webpack:///./src/framework/login/views/login/login-form-funcs.ts","webpack:///./src/erp/enumerations/ticket-status.ts","webpack:///./src/framework/reports/services/element-service.ts","webpack:///./src/erp/views/lager/lagerkorrektur/lagerkorrektur-edit-utils.ts","webpack:///./src/erp/enumerations/status-typ.ts","webpack:///./src/erp/enumerations/dyn-feld-typ.ts","webpack:///./src/framework/dx/export.ts","webpack:///./src/framework/login/images/background03.jpg","webpack:///./src/framework/base/services/templating-ex-service.ts","webpack:///./src/erp/views/verkauf/mahnung/mahnung-list-utils.ts","webpack:///./src/erp/services/projekt-search-service.ts","webpack:///./src/framework/images/logo_tip.png","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheingruppe-edit-utils.ts","webpack:///./src/framework/forms/services/model-utils-service.ts","webpack:///./src/framework/forms/widget-services/list-view-widget-creator-service.ts","webpack:///./src/erp/services/tag-service.ts","webpack:///./src/framework/base/classes/custom-event.ts","webpack:///./src/framework/forms/services/model-event-service.ts","webpack:///./src/erp/services/benachrichtigung-service.ts","webpack:///./src/erp/views/verkauf/zahlung/zahlung-edit-utils.ts","webpack:///./src/framework/forms/services/form-utils-service.ts","webpack:///./src/erp/services/waehrung-service.ts","webpack:///./src/framework/default-ui/services/export.ts","webpack:///./src/framework-data/modules.ts","webpack:///./src/framework/base/event-args/export.ts","webpack:///./src/framework/forms/enums/export.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellungsposition-edit-utils.ts","webpack:///./src/erp/views/stammdaten/newsletter/newsletter-edit-utils.ts","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-edit-utils.ts","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-edit-utils.ts","webpack:///./src/framework/base/services/json-service.ts","webpack:///./src/framework/base/services/localization-service.ts","webpack:///./src/erp/services/zugriff-historie-service.ts","webpack:///./src/erp/enumerations/kalkulation-feld-typ.ts","webpack:///./src/framework/forms/classes/commands.ts","webpack:///./src/erp/services/widget-extender-service.ts","webpack:///./src/erp/services/adresse-service.ts","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-edit-utils.ts","webpack:///./src/framework/forms/services/default-commands-service.ts","webpack:///./src/framework/forms/widget-services/base-widget-creator-service.ts","webpack:///./src/erp/services/geschaeftspartner-search-service.ts","webpack:///./src/framework/forms/enums/list-type-enum.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-nested-utils.ts","webpack:///./src/framework/forms/services/history-service.ts","webpack:///./src/erp/views/verkauf/auftrag/auftrag-list-utils.ts","webpack:///./src/framework/forms/services/grid-layout-service.ts","webpack:///./src/erp/services/projekt-service.ts","webpack:///./src/erp/services/drucken-service.ts","webpack:///./src/framework/base/services/object-info-service.ts","webpack:///./src/erp/services/form-extender-service.ts","webpack:///./src/framework/base/classes/export.ts","webpack:///./src/erp/services/exim-service.ts","webpack:///./src/erp/enumerations/ticket-typ.ts","webpack:///./src/framework/forms/services/layout-service.ts","webpack:///./src/framework/forms/enums/selection-mode-enum.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-list-nested-utils.ts","webpack:///./src/erp/views/stammdaten/mandant/mandant-wechseln-utils.ts","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-list-utils.ts","webpack:///./src/framework/base/services/data-source-service.ts","webpack:///./src/erp/services/kalkulation-refresh-service.ts","webpack:///./src/erp/enumerations/nummernkreis-typ.ts","webpack:///./src/erp/services/prod-auftrag-service.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-info-list-nested-utils.ts","webpack:///./src/framework/dx/services/export.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-edit-utils.ts","webpack:///./src/erp/templates/cbo-type-bezeichnung-field.xhtml","webpack:///./src/erp/services/entitaet-info-service.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/framework/login/views/password-reset/password-reset-form-funcs.ts","webpack:///./src/framework/reports/services/editor-service.ts","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahme-edit-utils.ts","webpack:///./src/erp/services/module-service.ts","webpack:///./src/erp/views/verkauf/angebot/angebotsposition-edit-utils.ts","webpack:///./src/framework/login/views/activate-account/activate-account-form-funcs.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheinposition-edit-utils.ts","webpack:///./src/erp/services/dyn-felder-service.ts","webpack:///./src/framework/forms/elements/list-view/list-view-paging-mode.ts","webpack:///./src/erp/services/dx-customize-service.ts","webpack:///./src/erp/services/search-result-search-service.ts","webpack:///./src/erp/services/dyn-felder-data-service.ts","webpack:///./src/framework/base/classes/scope-container.ts","webpack:///./src/framework/reports/services/pivot-services.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellung-list-utils.ts","webpack:///./src/framework/base/services/object-service.ts","webpack:///./src/erp/enumerations/ticket-kategorie.ts","webpack:///./src/framework/login/images/background07.jpg","webpack:///./src/erp/views/verkauf/gutschein/gutschein-edit-utils.ts","webpack:///./src/erp/services/status-service.ts","webpack:///./src/erp/services/filter-service.ts","webpack:///./src/framework/forms/services/router-service.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-edit-utils.ts","webpack:///./src/framework/base/services/authorization-service.ts","webpack:///./src/framework/base/services/location-service.ts","webpack:///./src/erp/dashboard/services/widget-service.ts","webpack:///./src/erp/views/stammdaten/projekt/projekt-edit-utils.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-edit-utils.ts","webpack:///./src/erp/services/artikel-service.ts","webpack:///./src/erp/services/geschaeftspartner-service.ts","webpack:///./src/framework/login/images/background01.jpg","webpack:///./src/erp/views/verkauf/ladeliste/ladeliste-edit-utils.ts","webpack:///./src/erp/enumerations/vorb-gueltig-von.ts","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-edit-utils.ts","webpack:///./src/erp/templates/cbo-type-bezeichnung.xhtml","webpack:///./src/framework/login/images/background04.jpg","webpack:///./src/framework/forms/classes/form-base-import.ts","webpack:///./src/framework/base/services/file-service.ts","webpack:///./src/framework/forms/services/excel-export-service.ts","webpack:///./src/app.ts","webpack:///./src/app.html","webpack:///./src/erp/views/arbeitszeit/benutzerstatus/benutzerstatus-list-form.ts?933e","webpack:///./src/erp/views/arbeitszeit/saldenuebersicht/saldenuebersicht-list-form.ts?8564","webpack:///./src/erp/views/arbeitszeit/tagesbuchungen/tagesbuchungen-list-form.ts?a067","webpack:///./src/erp/views/dashboard-designer/dashboard-designer-edit-form.ts?6250","webpack:///./src/erp/views/dashboard-designer/dashboard-designer-list-form.ts?fb25","webpack:///./src/erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-edit-form.ts?4fc4","webpack:///./src/erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-element-edit-form.ts?3fa9","webpack:///./src/erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-list-form.ts?5483","webpack:///./src/erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-edit-form.ts?a72e","webpack:///./src/erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-list-form.ts?c77d","webpack:///./src/erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-vorlage-edit-form.ts?72c8","webpack:///./src/erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-zu-entitaet-edit-form.ts?9728","webpack:///./src/erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-zu-report-edit-form.ts?7826","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsdefinition-edit-form.ts?6447","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsdefinition-list-form.ts?4233","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsfeld-kopf-edit-form.ts?f833","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsfeld-pos-edit-form.ts?71e3","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsversion-edit-form.ts?82b1","webpack:///./src/erp/views/kalkulation/berechnungsdefinition/berechnungsversion-konditionsfeld-edit-form.ts?d19d","webpack:///./src/erp/views/produktion/produktionsauftrag/produktion-fertigware-edit-form.ts?abcf","webpack:///./src/erp/views/produktion/produktionsauftrag/produktion-rohware-edit-form.ts?ee61","webpack:///./src/erp/views/produktion/produktionsauftrag/produktion-stueckliste-edit-form.ts?7d55","webpack:///./src/erp/views/produktion/produktionsauftrag/produktionsauftrag-edit-form.ts?aae0","webpack:///./src/erp/views/produktion/produktionsauftrag/produktionsauftrag-list-form.ts?01f2","webpack:///./src/erp/views/stammdaten/anfrageart/anfrageart-edit-form.ts?2409","webpack:///./src/erp/views/stammdaten/anfrageart/anfrageart-list-form.ts?eb87","webpack:///./src/erp/views/stammdaten/angebotsart/angebotsart-edit-form.ts?0ca7","webpack:///./src/erp/views/stammdaten/angebotsart/angebotsart-list-form.ts?aa95","webpack:///./src/erp/views/stammdaten/anrede/anrede-edit-form.ts?26df","webpack:///./src/erp/views/stammdaten/anrede/anrede-list-form.ts?68bd","webpack:///./src/erp/views/stammdaten/artikelart/artikelart-edit-form.ts?013d","webpack:///./src/erp/views/stammdaten/artikelart/artikelart-list-form.ts?741f","webpack:///./src/erp/views/stammdaten/artikelgruppe/artikelgruppe-edit-form.ts?e967","webpack:///./src/erp/views/stammdaten/artikelgruppe/artikelgruppe-list-form.ts?da15","webpack:///./src/erp/views/stammdaten/artikelkategorie/artikelkategorie-edit-form.ts?e693","webpack:///./src/erp/views/stammdaten/artikelkategorie/artikelkategorie-list-form.ts?9695","webpack:///./src/erp/views/stammdaten/auftragsart/auftragsart-edit-form.ts?0a6a","webpack:///./src/erp/views/stammdaten/auftragsart/auftragsart-list-form.ts?9e32","webpack:///./src/erp/views/stammdaten/auswertung/auswertung-edit-form.ts?1c05","webpack:///./src/erp/views/stammdaten/auswertung/auswertung-list-form.ts?0fc2","webpack:///./src/erp/views/stammdaten/benutzer/benutzer-edit-form.ts?3820","webpack:///./src/erp/views/stammdaten/benutzer/benutzer-list-form.ts?0dbf","webpack:///./src/erp/views/stammdaten/benutzerrolle/benutzerrolle-edit-form.ts?043c","webpack:///./src/erp/views/stammdaten/benutzerrolle/benutzerrolle-list-form.ts?4911","webpack:///./src/erp/views/stammdaten/bestellungsart/bestellungsart-edit-form.ts?1686","webpack:///./src/erp/views/stammdaten/bestellungsart/bestellungsart-list-form.ts?1e52","webpack:///./src/erp/views/stammdaten/briefvorlage/briefvorlage-edit-form.ts?cfa2","webpack:///./src/erp/views/stammdaten/briefvorlage/briefvorlage-list-form.ts?56ad","webpack:///./src/erp/views/stammdaten/dokumentenart/dokumentenart-edit-form.ts?9cac","webpack:///./src/erp/views/stammdaten/dokumentenart/dokumentenart-list-form.ts?d354","webpack:///./src/erp/views/stammdaten/dokumentenart/dokumentenart-zu-entitaet-edit-form.ts?2555","webpack:///./src/erp/views/stammdaten/druck-einstellung/druck-einstellung-edit-form.ts?fe2d","webpack:///./src/erp/views/stammdaten/druck-einstellung/druck-einstellung-list-form.ts?2350","webpack:///./src/erp/views/stammdaten/drucktext/drucktext-edit-form.ts?9e93","webpack:///./src/erp/views/stammdaten/drucktext/drucktext-list-form.ts?9d3f","webpack:///./src/erp/views/stammdaten/einheit/einheit-edit-form.ts?9f68","webpack:///./src/erp/views/stammdaten/einheit/einheit-list-form.ts?d4dc","webpack:///./src/erp/views/stammdaten/faktura-sammelart/faktura-sammelart-edit-form.ts?1024","webpack:///./src/erp/views/stammdaten/faktura-sammelart/faktura-sammelart-list-form.ts?f77d","webpack:///./src/erp/views/stammdaten/filiale/filiale-edit-form.ts?56d5","webpack:///./src/erp/views/stammdaten/filiale/filiale-list-form.ts?7fe9","webpack:///./src/erp/views/stammdaten/filiale/filiale-zu-land-edit-form.ts?4875","webpack:///./src/erp/views/stammdaten/filtergruppe/filterelement-edit-form.ts?407d","webpack:///./src/erp/views/stammdaten/filtergruppe/filtergruppe-edit-form.ts?57ff","webpack:///./src/erp/views/stammdaten/filtergruppe/filtergruppe-list-form.ts?789a","webpack:///./src/erp/views/stammdaten/firma-zahlungsverkehr/firma-zahlungsverkehr-edit-form.ts?5821","webpack:///./src/erp/views/stammdaten/firma-zahlungsverkehr/firma-zahlungsverkehr-list-form.ts?ede0","webpack:///./src/erp/views/stammdaten/firma/bankverbindung-edit-form.ts?90ae","webpack:///./src/erp/views/stammdaten/firma/firma-edit-form.ts?a849","webpack:///./src/erp/views/stammdaten/firma/firma-list-form.ts?6557","webpack:///./src/erp/views/stammdaten/firma/oss-edit-form.ts?8f79","webpack:///./src/erp/views/stammdaten/firma/steuerinformation-edit-form.ts?a36f","webpack:///./src/erp/views/stammdaten/firma/steuertext-edit-form.ts?3241","webpack:///./src/erp/views/stammdaten/geschaeftspartnerart/geschaeftspartnerart-edit-form.ts?34d1","webpack:///./src/erp/views/stammdaten/geschaeftspartnerart/geschaeftspartnerart-list-form.ts?73ce","webpack:///./src/erp/views/stammdaten/intercompany/intercompany-edit-form.ts?ccbf","webpack:///./src/erp/views/stammdaten/intercompany/intercompany-list-form.ts?3c0c","webpack:///./src/erp/views/stammdaten/kalender/kalender-edit-form.ts?6f77","webpack:///./src/erp/views/stammdaten/kalender/kalender-list-form.ts?1c63","webpack:///./src/erp/views/stammdaten/kassa/kassa-edit-form.ts?c0b0","webpack:///./src/erp/views/stammdaten/kassa/kassa-list-form.ts?4350","webpack:///./src/erp/views/stammdaten/lager/lager-edit-form.ts?0857","webpack:///./src/erp/views/stammdaten/lager/lager-list-form.ts?1e51","webpack:///./src/erp/views/stammdaten/lagerbuchungsart/lagerbuchungsart-edit-form.ts?e305","webpack:///./src/erp/views/stammdaten/lagerbuchungsart/lagerbuchungsart-list-form.ts?9ead","webpack:///./src/erp/views/stammdaten/land/land-edit-form.ts?910e","webpack:///./src/erp/views/stammdaten/land/land-list-form.ts?e991","webpack:///./src/erp/views/stammdaten/lieferbedingung/lieferbedingung-edit-form.ts?f440","webpack:///./src/erp/views/stammdaten/lieferbedingung/lieferbedingung-list-form.ts?641a","webpack:///./src/erp/views/stammdaten/lieferbedingung/transportkosten-edit-form.ts?c4a8","webpack:///./src/erp/views/stammdaten/mail-import-def/mail-import-def-edit-form.ts?9d84","webpack:///./src/erp/views/stammdaten/mail-import-def/mail-import-def-list-form.ts?9267","webpack:///./src/erp/views/stammdaten/mail-server/mail-server-edit-form.ts?8ce0","webpack:///./src/erp/views/stammdaten/mail-server/mail-server-list-form.ts?9e47","webpack:///./src/erp/views/stammdaten/mail-vorlage/mail-vorlage-edit-form.ts?2bb3","webpack:///./src/erp/views/stammdaten/mail-vorlage/mail-vorlage-list-form.ts?05be","webpack:///./src/erp/views/stammdaten/mandant/mandant-edit-form.ts?ee1c","webpack:///./src/erp/views/stammdaten/mandant/mandant-list-form.ts?4156","webpack:///./src/erp/views/stammdaten/newsletter-anmeldung/newsletter-anmeldung-edit-form.ts?cdb8","webpack:///./src/erp/views/stammdaten/newsletter-anmeldung/newsletter-anmeldung-list-form.ts?c42d","webpack:///./src/erp/views/stammdaten/notiztyp/notiztyp-edit-form.ts?b129","webpack:///./src/erp/views/stammdaten/notiztyp/notiztyp-list-form.ts?8673","webpack:///./src/erp/views/stammdaten/nummernkreis/nummernkreis-edit-form.ts?dbc5","webpack:///./src/erp/views/stammdaten/nummernkreis/nummernkreis-list-form.ts?dab4","webpack:///./src/erp/views/stammdaten/papierkorb/papierkorb-list-form.ts?d8b6","webpack:///./src/erp/views/stammdaten/personenaktion/personenaktion-edit-form.ts?7cce","webpack:///./src/erp/views/stammdaten/personenaktion/personenaktion-list-form.ts?ce32","webpack:///./src/erp/views/stammdaten/personenfunktion/personenfunktion-edit-form.ts?2aef","webpack:///./src/erp/views/stammdaten/personenfunktion/personenfunktion-list-form.ts?d96b","webpack:///./src/erp/views/stammdaten/positionsart/positionsart-edit-form.ts?152a","webpack:///./src/erp/views/stammdaten/positionsart/positionsart-list-form.ts?9e32","webpack:///./src/erp/views/stammdaten/projekt/projekt-taetigkeit-edit-form.ts?e9c8","webpack:///./src/erp/views/stammdaten/projektart/projektart-edit-form.ts?55e3","webpack:///./src/erp/views/stammdaten/projektart/projektart-list-form.ts?7ee3","webpack:///./src/erp/views/stammdaten/provisionsmodell/provisionsmodell-edit-form.ts?cb69","webpack:///./src/erp/views/stammdaten/provisionsmodell/provisionsmodell-list-form.ts?d26f","webpack:///./src/erp/views/stammdaten/qr-label/qr-label-list-form.ts?2612","webpack:///./src/erp/views/stammdaten/reklamationsgrund/reklamationsgrund-edit-form.ts?a328","webpack:///./src/erp/views/stammdaten/reklamationsgrund/reklamationsgrund-list-form.ts?238e","webpack:///./src/erp/views/stammdaten/skript-item/skript-item-edit-form.ts?46d2","webpack:///./src/erp/views/stammdaten/skript-item/skript-item-list-form.ts?b747","webpack:///./src/erp/views/stammdaten/spediteur-dienstleistung/spediteur-dienstleistung-edit-form.ts?20d1","webpack:///./src/erp/views/stammdaten/spediteur-dienstleistung/spediteur-dienstleistung-list-form.ts?6f93","webpack:///./src/erp/views/stammdaten/spediteur/spediteur-edit-form.ts?fe1e","webpack:///./src/erp/views/stammdaten/spediteur/spediteur-list-form.ts?128c","webpack:///./src/erp/views/stammdaten/sprache/sprache-edit-form.ts?3498","webpack:///./src/erp/views/stammdaten/sprache/sprache-list-form.ts?cd18","webpack:///./src/erp/views/stammdaten/status/status-edit-form.ts?e023","webpack:///./src/erp/views/stammdaten/status/status-list-form.ts?4915","webpack:///./src/erp/views/stammdaten/status/status-zu-entitaet-edit-form.ts?b2b7","webpack:///./src/erp/views/stammdaten/steuercode/steuercode-edit-form.ts?4d71","webpack:///./src/erp/views/stammdaten/steuercode/steuercode-list-form.ts?df6a","webpack:///./src/erp/views/stammdaten/steuersatz/steuersatz-edit-form.ts?c802","webpack:///./src/erp/views/stammdaten/steuersatz/steuersatz-list-form.ts?9f58","webpack:///./src/erp/views/stammdaten/taetigkeit/taetigkeit-edit-form.ts?e5a1","webpack:///./src/erp/views/stammdaten/taetigkeit/taetigkeit-list-form.ts?b2d5","webpack:///./src/erp/views/stammdaten/taetigkeitenart/taetigkeitenart-edit-form.ts?77f4","webpack:///./src/erp/views/stammdaten/taetigkeitenart/taetigkeitenart-list-form.ts?2e5f","webpack:///./src/erp/views/stammdaten/tag/tag-edit-form.ts?a942","webpack:///./src/erp/views/stammdaten/tag/tag-list-form.ts?a4ca","webpack:///./src/erp/views/stammdaten/tag/tag-zu-entitaet-edit-form.ts?0d0c","webpack:///./src/erp/views/stammdaten/textbaustein/textbaustein-edit-form.ts?df63","webpack:///./src/erp/views/stammdaten/textbaustein/textbaustein-list-form.ts?7952","webpack:///./src/erp/views/stammdaten/uid-validierung/uid-validierung-edit-form.ts?6f49","webpack:///./src/erp/views/stammdaten/uid-validierung/uid-validierung-list-form.ts?9ba7","webpack:///./src/erp/views/stammdaten/validierung/validierung-edit-form.ts?e3aa","webpack:///./src/erp/views/stammdaten/validierung/validierung-list-form.ts?34ef","webpack:///./src/erp/views/stammdaten/vertreter/vertreter-edit-form.ts?5ae1","webpack:///./src/erp/views/stammdaten/vertreter/vertreter-list-form.ts?b74f","webpack:///./src/erp/views/stammdaten/vertreter/vertreter-zu-provisionsmodell-edit-form.ts?c345","webpack:///./src/erp/views/stammdaten/waehrung/waehrung-edit-form.ts?d40f","webpack:///./src/erp/views/stammdaten/waehrung/waehrung-list-form.ts?0e26","webpack:///./src/erp/views/stammdaten/waehrung/waehrungskurs-edit-form.ts?29b0","webpack:///./src/erp/views/stammdaten/zahlungsart/zahlungsart-edit-form.ts?2a99","webpack:///./src/erp/views/stammdaten/zahlungsart/zahlungsart-list-form.ts?618b","webpack:///./src/erp/views/stammdaten/zahlungsbedingung/zahlungsbedingung-edit-form.ts?58ce","webpack:///./src/erp/views/stammdaten/zahlungsbedingung/zahlungsbedingung-list-form.ts?56f7","webpack:///./src/erp/views/stammdaten/zuschlagsart/zuschlagsart-edit-form.ts?ca43","webpack:///./src/erp/views/stammdaten/zuschlagsart/zuschlagsart-list-form.ts?c2fa","webpack:///./src/erp/views/statistik/auswertung/auswertung-form.ts?3cb4","webpack:///./src/erp/views/statistik/statistik-artikel/statistik-artikel-list-form.ts?ce3e","webpack:///./src/erp/views/statistik/statistik-auftrag/statistik-auftrag-list-form.ts?399e","webpack:///./src/erp/views/statistik/statistik-bestellungen/statistik-bestellungen-list-form.ts?1ebd","webpack:///./src/erp/views/statistik/statistik-ein-auszahlungs-rechnung/statistik-ein-auszahlungs-rechnung-list-form.ts?9f04","webpack:///./src/erp/views/statistik/statistik-faktura/statistik-faktura-list-form.ts?7cb2","webpack:///./src/erp/views/statistik/statistik-geschaeftspartner-person/statistik-geschaeftspartner-person-list-form.ts?9b51","webpack:///./src/erp/views/statistik/statistik-gruppe/statistik-gruppe-list-form.ts?adbc","webpack:///./src/erp/views/statistik/statistik-kassa-info/statistik-kassa-info-list-form.ts?426a","webpack:///./src/erp/views/statistik/statistik-kunde/statistik-kunde-list-form.ts?3e71","webpack:///./src/erp/views/statistik/statistik-lagerbestand/statistik-lagerbestand-list-form.ts?ff66","webpack:///./src/erp/views/statistik/statistik-lagerbewegungen/statistik-lagerbewegungen-list-form.ts?465c","webpack:///./src/erp/views/statistik/statistik-projektzeit/statistik-projektzeit-list-form.ts?9712","webpack:///./src/erp/views/statistik/statistik-reklamationen/statistik-reklamationen-list-form.ts?2e4d","webpack:///./src/erp/views/statistik/statistik-webshop-login-log/statistik-webshop-login-log-list-form.ts?e635","webpack:///./src/erp/views/statistik/uebersicht/statistik-list-form.ts?bfb6","webpack:///./src/erp/views/tickets/ticket/ticket-edit-form.ts?37db","webpack:///./src/erp/views/tickets/ticket/ticket-list-form.ts?996f","webpack:///./src/erp/views/tickets/version/version-list-form.ts?6004","webpack:///./src/erp/views/verkauf/zahlung/zahlung-edit-form.ts?8423","webpack:///./src/erp/views/webshop/seite/webshop-seite-edit-form.ts?bead","webpack:///./src/erp/views/webshop/seite/webshop-seite-list-form.ts?b421","webpack:///./src/erp/views/zeiterfassung/projekt-taetigkeit-buchung/projekt-taetigkeit-buchung-edit-form.ts?77e2","webpack:///./src/erp/views/zeiterfassung/projekt-taetigkeit-buchung/projekt-taetigkeit-buchung-list-form.ts?9538","webpack:///./src/erp/views/zeiterfassung/projektplanung/projektplanung-list-form.ts?b7e7","webpack:///./src/erp/services/firma-service.ts","webpack:///./src/erp/views/Konfiguration/datenbank-info/datenbank-info-list-utils.ts","webpack:///./src/erp/enumerations/vorb-gueltig-bis.ts","webpack:///./src/framework/forms/services/html-editor-service.ts","webpack:///./src/erp/views/stammdaten/brief/brief-edit-utils.ts","webpack:///./src/framework/login/images/background02.jpg","webpack:///./src/framework/forms/classes/export.ts","webpack:///./src/erp/services/verknuepfte-entitaet-service.ts","webpack:///./src/framework/login/images/background05.jpg","webpack:///./src/framework/base/services/notification-service.ts","webpack:///./src/erp/services/person-service.ts","webpack:///./src/framework/forms/classes/nested-forms.ts","webpack:///./src/erp/enumerations/notification-typ.ts","webpack:///./src/erp/views/verkauf/mahnung/mahnung-edit-utils.ts","webpack:///./src/erp/views/verkauf/angebot/angebotsgruppe-edit-utils.ts","webpack:///./src/erp/services/statistik-service.ts","webpack:///./src/framework/default-ui/services/header-service.ts","webpack:///./src/erp/views/Konfiguration/einstellung/einstellung-edit-utils.ts","webpack:///./src/framework/forms/classes/view-item.ts","webpack:///./src/erp/services/startup-service.ts","webpack:///./src/environment.ts","webpack:///./src/framework/forms/classes/edit-popups.ts","webpack:///./src/erp/views/Konfiguration/import/import-edit-utils.ts","webpack:///./src/erp/views/Konfiguration/status/status-list-utils.ts","webpack:///./src/framework/forms/services/validation-service.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellung-edit-utils.ts","webpack:///./src/erp/attributes/open-edit-attribute.ts","webpack:///./src/erp/dashboard/styles.less","webpack:///./src/erp/dashboard/viewer/viewer.ts","webpack:///./src/erp/dashboard/viewer/viewer.html","webpack:///./src/erp/dashboard/viewer/viewer.less","webpack:///./src/erp/dashboard/widget-toolbar/widget-toolbar.ts","webpack:///./src/erp/dashboard/widget-toolbar/widget-toolbar.html","webpack:///./src/erp/dashboard/widget-toolbar/widget-toolbar.less","webpack:///./src/erp/dashboard/widgets/aufgabe-tags/aufgabe-tags.ts","webpack:///./src/erp/dashboard/widgets/aufgabe-tags/aufgabe-tags.html","webpack:///./src/erp/dashboard/widgets/aufgabe-tags/aufgabe-tags.less","webpack:///./src/erp/dashboard/widgets/auswertung/auswertung.ts","webpack:///./src/erp/dashboard/widgets/auswertung/auswertung-settings.ts","webpack:///./src/erp/dashboard/widgets/auswertung/auswertung-settings.html","webpack:///./src/erp/dashboard/widgets/auswertung/auswertung.html","webpack:///./src/erp/dashboard/widgets/auswertung/auswertung.less","webpack:///./src/erp/dashboard/widgets/entitaet-tags/entitaet-tags.ts","webpack:///./src/erp/dashboard/widgets/entitaet-tags/entitaet-tags-settings.ts","webpack:///./src/erp/dashboard/widgets/entitaet-tags/entitaet-tags-settings.html","webpack:///./src/erp/dashboard/widgets/entitaet-tags/entitaet-tags.html","webpack:///./src/erp/dashboard/widgets/entitaet-tags/entitaet-tags.less","webpack:///./src/erp/dashboard/widgets/kennzahlen/kennzahlen.ts","webpack:///./src/erp/dashboard/widgets/kennzahlen/kennzahlen-settings.ts","webpack:///./src/erp/dashboard/widgets/kennzahlen/kennzahlen-settings.html","webpack:///./src/erp/dashboard/widgets/kennzahlen/kennzahlen.html","webpack:///./src/erp/dashboard/widgets/kennzahlen/kennzahlen.less","webpack:///./src/erp/dashboard/widgets/offene-auftraege/offene-auftraege.ts","webpack:///./src/erp/dashboard/widgets/offene-auftraege/offene-auftraege-settings.ts","webpack:///./src/erp/dashboard/widgets/offene-auftraege/offene-auftraege-settings.html","webpack:///./src/erp/dashboard/widgets/offene-auftraege/offene-auftraege.html","webpack:///./src/erp/dashboard/widgets/offene-auftraege/offene-auftraege.less","webpack:///./src/erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert.ts","webpack:///./src/erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert-settings.ts","webpack:///./src/erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert-settings.html","webpack:///./src/erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert.html","webpack:///./src/erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert.less","webpack:///./src/erp/dashboard/widgets/top-artikel/top-artikel.ts","webpack:///./src/erp/dashboard/widgets/top-artikel/top-artikel-settings.ts","webpack:///./src/erp/dashboard/widgets/top-artikel/top-artikel-settings.html","webpack:///./src/erp/dashboard/widgets/top-artikel/top-artikel.html","webpack:///./src/erp/dashboard/widgets/top-artikel/top-artikel.less","webpack:///./src/erp/dashboard/widgets/top-kunden/top-kunden.ts","webpack:///./src/erp/dashboard/widgets/top-kunden/top-kunden-settings.ts","webpack:///./src/erp/dashboard/widgets/top-kunden/top-kunden-settings.html","webpack:///./src/erp/dashboard/widgets/top-kunden/top-kunden.html","webpack:///./src/erp/dashboard/widgets/top-kunden/top-kunden.less","webpack:///./src/erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell.ts","webpack:///./src/erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell-settings.ts","webpack:///./src/erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell-settings.html","webpack:///./src/erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell.html","webpack:///./src/erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell.less","webpack:///./src/erp/dashboard/widgets/umsatz-land/umsatz-land.ts","webpack:///./src/erp/dashboard/widgets/umsatz-land/umsatz-land-settings.ts","webpack:///./src/erp/dashboard/widgets/umsatz-land/umsatz-land-settings.html","webpack:///./src/erp/dashboard/widgets/umsatz-land/umsatz-land.html","webpack:///./src/erp/dashboard/widgets/umsatz-monat/umsatz-monat.ts","webpack:///./src/erp/dashboard/widgets/umsatz-monat/umsatz-monat-settings.ts","webpack:///./src/erp/dashboard/widgets/umsatz-monat/umsatz-monat-settings.html","webpack:///./src/erp/dashboard/widgets/umsatz-monat/umsatz-monat.html","webpack:///./src/erp/elements/adresse/adresse.ts","webpack:///./src/erp/elements/adresse/adresse.html","webpack:///./src/erp/elements/aendprot/aendprot.ts","webpack:///./src/erp/elements/aendprot/aendprot.html","webpack:///./src/erp/elements/aendprot/aendprot.less","webpack:///./src/erp/elements/anz-ausdrucke/anz-ausdrucke.ts","webpack:///./src/erp/elements/anz-ausdrucke/anz-ausdrucke.html","webpack:///./src/erp/elements/anz-ausdrucke/anz-ausdrucke.less","webpack:///./src/erp/elements/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-anspruchsgruppe-zuteilung-edit/arbeitszeit-anspruchsgruppe-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-anspruchsgruppe-zuteilung-edit/arbeitszeit-anspruchsgruppe-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-anspruchsgruppe-zuteilung-list/arbeitszeit-anspruchsgruppe-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-anspruchsgruppe-zuteilung-list/arbeitszeit-anspruchsgruppe-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-beschaeftigungsausmass-zuteilung-edit/arbeitszeit-beschaeftigungsausmass-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-beschaeftigungsausmass-zuteilung-edit/arbeitszeit-beschaeftigungsausmass-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-beschaeftigungsausmass-zuteilung-list/arbeitszeit-beschaeftigungsausmass-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-beschaeftigungsausmass-zuteilung-list/arbeitszeit-beschaeftigungsausmass-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-freie-information-edit/arbeitszeit-freie-information-edit.ts","webpack:///./src/erp/elements/arbeitszeit-freie-information-edit/arbeitszeit-freie-information-edit.html","webpack:///./src/erp/elements/arbeitszeit-freie-information-list/arbeitszeit-freie-information-list.ts","webpack:///./src/erp/elements/arbeitszeit-freie-information-list/arbeitszeit-freie-information-list.html","webpack:///./src/erp/elements/arbeitszeit-gehaltsschema-zuteilung-edit/arbeitszeit-gehaltsschema-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-gehaltsschema-zuteilung-edit/arbeitszeit-gehaltsschema-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-gehaltsschema-zuteilung-list/arbeitszeit-gehaltsschema-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-gehaltsschema-zuteilung-list/arbeitszeit-gehaltsschema-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-kalender-zuteilung-edit/arbeitszeit-kalender-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-kalender-zuteilung-edit/arbeitszeit-kalender-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-kalender-zuteilung-list/arbeitszeit-kalender-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-kalender-zuteilung-list/arbeitszeit-kalender-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-kostenstelle-zuteilung-edit/arbeitszeit-kostenstelle-zuteilung-edit.ts","webpack:///./src/erp/elements/arbeitszeit-kostenstelle-zuteilung-edit/arbeitszeit-kostenstelle-zuteilung-edit.html","webpack:///./src/erp/elements/arbeitszeit-kostenstelle-zuteilung-list/arbeitszeit-kostenstelle-zuteilung-list.ts","webpack:///./src/erp/elements/arbeitszeit-kostenstelle-zuteilung-list/arbeitszeit-kostenstelle-zuteilung-list.html","webpack:///./src/erp/elements/arbeitszeit-lohnexport-erstellen/arbeitszeit-lohnexport-erstellen.ts","webpack:///./src/erp/elements/arbeitszeit-lohnexport-erstellen/arbeitszeit-lohnexport-erstellen.html","webpack:///./src/erp/elements/arbeitszeit-mitarbeiterstatus-austritt/arbeitszeit-mitarbeiterstatus-austritt.ts","webpack:///./src/erp/elements/arbeitszeit-mitarbeiterstatus-austritt/arbeitszeit-mitarbeiterstatus-austritt.html","webpack:///./src/erp/elements/arbeitszeit-mitarbeiterstatus/arbeitszeit-mitarbeiterstatus.ts","webpack:///./src/erp/elements/arbeitszeit-mitarbeiterstatus/arbeitszeit-mitarbeiterstatus.html","webpack:///./src/erp/elements/arbeitszeit-stempeln-command/arbeitszeit-stempeln-command.ts","webpack:///./src/erp/elements/arbeitszeit-stempeln-command/arbeitszeit-stempeln-command.html","webpack:///./src/erp/elements/arbeitszeit-stempeln-command/arbeitszeit-stempeln-command.less","webpack:///./src/erp/elements/artikel-search-result/artikel-search-result.ts","webpack:///./src/erp/elements/artikel-search-result/artikel-search-result.html","webpack:///./src/erp/elements/artikel/artikel.ts","webpack:///./src/erp/elements/artikel/artikel.html","webpack:///./src/erp/elements/artikelkategorie/artikelkategorie.ts","webpack:///./src/erp/elements/artikelkategorie/artikelkategorie.html","webpack:///./src/erp/elements/artikelverleih-verfuegbar/artikelverleih-verfuegbar.ts","webpack:///./src/erp/elements/artikelverleih-verfuegbar/artikelverleih-verfuegbar.html","webpack:///./src/erp/elements/artikelverleih-verfuegbar/artikelverleih-verfuegbar.less","webpack:///./src/erp/elements/aufgabe-command/aufgabe-command.ts","webpack:///./src/erp/elements/aufgabe-command/aufgabe-command.html","webpack:///./src/erp/elements/aufgabe-form-command/aufgabe-form-command.ts","webpack:///./src/erp/elements/aufgabe-form-command/aufgabe-form-command.html","webpack:///./src/erp/elements/aufgabe-kommentar/aufgabe-kommentar.ts","webpack:///./src/erp/elements/aufgabe-kommentar/aufgabe-kommentar.html","webpack:///./src/erp/elements/aufgabe-kommentar/aufgabe-kommentar.less","webpack:///./src/erp/elements/avatar/avatar.ts","webpack:///./src/erp/elements/avatar/avatar.html","webpack:///./src/erp/elements/avatar/avatar.less","webpack:///./src/erp/elements/benachrichtigung-command/benachrichtigung-command.ts","webpack:///./src/erp/elements/benachrichtigung-command/benachrichtigung-command.html","webpack:///./src/erp/elements/benachrichtigung-command/benachrichtigung-command.less","webpack:///./src/erp/elements/brief-form-command/brief-form-command.ts","webpack:///./src/erp/elements/brief-form-command/brief-form-command.html","webpack:///./src/erp/elements/calc-liefertermin/calc-liefertermin.ts","webpack:///./src/erp/elements/calc-liefertermin/calc-liefertermin.html","webpack:///./src/erp/elements/calc-liefertermin/calc-liefertermin.less","webpack:///./src/erp/elements/custom-edit-popup-container/custom-edit-popup-container.ts","webpack:///./src/erp/elements/custom-edit-popup-container/custom-edit-popup-container.html","webpack:///./src/erp/elements/dms-viewer/dms-viewer.ts","webpack:///./src/erp/elements/dms-viewer/dms-viewer.html","webpack:///./src/erp/elements/dms-viewer/dms-viewer.less","webpack:///./src/erp/elements/dokument-viewer/dokument-viewer.ts","webpack:///./src/erp/elements/dokument-viewer/dokument-viewer.html","webpack:///./src/erp/elements/dokument-viewer/dokument-viewer.less","webpack:///./src/erp/elements/drucken-command/drucken-command.ts","webpack:///./src/erp/elements/drucken-command/drucken-command.html","webpack:///./src/erp/elements/dyn-feld-container/dyn-feld-container.ts","webpack:///./src/erp/elements/dyn-feld-container/dyn-feld-container.html","webpack:///./src/erp/elements/dyn-feld-wert-vorlage/dyn-feld-wert-vorlage.ts","webpack:///./src/erp/elements/dyn-feld-wert-vorlage/dyn-feld-wert-vorlage.html","webpack:///./src/erp/elements/dyn-feld-wert-vorlage/dyn-feld-wert-vorlage.less","webpack:///./src/erp/elements/entitaet-menu/entitaet-menu.ts","webpack:///./src/erp/elements/entitaet-menu/entitaet-menu.html","webpack:///./src/erp/elements/entitaet-menu/entitaet-menu.less","webpack:///./src/erp/elements/filter/filter.ts","webpack:///./src/erp/elements/filter/filter.html","webpack:///./src/erp/elements/filter/filter.less","webpack:///./src/erp/elements/form-commands/form-commands.html","webpack:///./src/erp/elements/form-commands/form-commands.less","webpack:///./src/erp/elements/geschaeftspartner-search-result/geschaeftspartner-search-result.ts","webpack:///./src/erp/elements/geschaeftspartner-search-result/geschaeftspartner-search-result.html","webpack:///./src/erp/elements/geschaeftspartner/geschaeftspartner.ts","webpack:///./src/erp/elements/geschaeftspartner/geschaeftspartner.html","webpack:///./src/erp/elements/header-commands/header-commands.ts","webpack:///./src/erp/elements/header-commands/header-commands.html","webpack:///./src/erp/elements/header-commands/header-commands.less","webpack:///./src/erp/elements/infobar/bestellung-streckengeschaeft/bestellung-streckengeschaeft.ts","webpack:///./src/erp/elements/infobar/bestellung-streckengeschaeft/bestellung-streckengeschaeft.html","webpack:///./src/erp/elements/infobar/bestellung-streckengeschaeft/bestellung-streckengeschaeft.less","webpack:///./src/erp/elements/infobar/dynamische-felder/dynamische-felder.ts","webpack:///./src/erp/elements/infobar/dynamische-felder/dynamische-felder.html","webpack:///./src/erp/elements/infobar/dynamische-felder/dynamische-felder.less","webpack:///./src/erp/elements/infobar/fehler/fehler.ts","webpack:///./src/erp/elements/infobar/fehler/fehler.html","webpack:///./src/erp/elements/infobar/fehler/fehler.less","webpack:///./src/erp/elements/infobar/geschaeftspartner-info/geschaeftspartner-info.ts","webpack:///./src/erp/elements/infobar/geschaeftspartner-info/geschaeftspartner-info.html","webpack:///./src/erp/elements/infobar/geschaeftspartner-info/geschaeftspartner-info.less","webpack:///./src/erp/elements/infobar/info-bv-rohware/info-bv-rohware.ts","webpack:///./src/erp/elements/infobar/info-bv-rohware/info-bv-rohware.html","webpack:///./src/erp/elements/infobar/info-bv-rohware/info-bv-rohware.less","webpack:///./src/erp/elements/infobar/infobar.ts","webpack:///./src/erp/elements/infobar/infobar.html","webpack:///./src/erp/elements/infobar/infobar.less","webpack:///./src/erp/elements/infobar/lagerbestand/lagerbestand.ts","webpack:///./src/erp/elements/infobar/lagerbestand/lagerbestand.html","webpack:///./src/erp/elements/infobar/lagerbestand/lagerbestand.less","webpack:///./src/erp/elements/infobar/letzte-aktivitaeten/letzte-aktivitaeten.ts","webpack:///./src/erp/elements/infobar/letzte-aktivitaeten/letzte-aktivitaeten.html","webpack:///./src/erp/elements/infobar/letzte-aktivitaeten/letzte-aktivitaeten.less","webpack:///./src/erp/elements/infobar/notiz/notiz.ts","webpack:///./src/erp/elements/infobar/notiz/notiz-item.ts","webpack:///./src/erp/elements/infobar/notiz/notiz-item.html","webpack:///./src/erp/elements/infobar/notiz/notiz.html","webpack:///./src/erp/elements/infobar/notiz/notiz.less","webpack:///./src/erp/elements/infobar/offene-posten/offene-posten.ts","webpack:///./src/erp/elements/infobar/offene-posten/offene-posten.html","webpack:///./src/erp/elements/infobar/offene-posten/offene-posten.less","webpack:///./src/erp/elements/infobar/projekte/projekte.ts","webpack:///./src/erp/elements/infobar/projekte/projekte.html","webpack:///./src/erp/elements/infobar/projekte/projekte.less","webpack:///./src/erp/elements/infobar/statistik-auftrag/statistik-auftrag.ts","webpack:///./src/erp/elements/infobar/statistik-auftrag/statistik-auftrag.html","webpack:///./src/erp/elements/infobar/statistik-auftrag/statistik-auftrag.less","webpack:///./src/erp/elements/infobar/statistik-projekt/statistik-projekt.ts","webpack:///./src/erp/elements/infobar/statistik-projekt/statistik-projekt.html","webpack:///./src/erp/elements/infobar/statistik-projekt/statistik-projekt.less","webpack:///./src/erp/elements/infobar/verknuepfte-entitaet/verknuepfte-entitaet.ts","webpack:///./src/erp/elements/infobar/verknuepfte-entitaet/verknuepfte-entitaet.html","webpack:///./src/erp/elements/infobar/verknuepfte-entitaet/verknuepfte-entitaet.less","webpack:///./src/erp/elements/infobar/zuletzt-gekaufte-artikel/zuletzt-gekaufte-artikel.ts","webpack:///./src/erp/elements/infobar/zuletzt-gekaufte-artikel/zuletzt-gekaufte-artikel.html","webpack:///./src/erp/elements/kalkulation-container/kalkulation-container.ts","webpack:///./src/erp/elements/kalkulation-container/kalkulation-container.html","webpack:///./src/erp/elements/kalkulation/kalkulation.ts","webpack:///./src/erp/elements/kalkulation/kalkulation.html","webpack:///./src/erp/elements/kalkulation/kalkulation.less","webpack:///./src/erp/elements/kopieren-form-command/kopieren-form-command.ts","webpack:///./src/erp/elements/kopieren-form-command/kopieren-form-command.html","webpack:///./src/erp/elements/mail-command/mail-command.ts","webpack:///./src/erp/elements/mail-command/mail-command.html","webpack:///./src/erp/elements/mhd-charge-menge-ausw/mhd-charge-menge-ausw.ts","webpack:///./src/erp/elements/mhd-charge-menge-ausw/mhd-charge-menge-ausw.html","webpack:///./src/erp/elements/mhd-charge-menge-ausw/mhd-charge-menge-ausw.less","webpack:///./src/erp/elements/mhd-charge-menge-erf/mhd-charge-menge-erf.ts","webpack:///./src/erp/elements/mhd-charge-menge-erf/mhd-charge-menge-erf.html","webpack:///./src/erp/elements/mhd-charge-menge-erf/mhd-charge-menge-erf.less","webpack:///./src/erp/elements/notiz-form-command/notiz-form-command.ts","webpack:///./src/erp/elements/notiz-form-command/notiz-form-command.html","webpack:///./src/erp/elements/notiz-form-command/notiz-form-command.less","webpack:///./src/erp/elements/passwort-aendern/passwort-aendern.ts","webpack:///./src/erp/elements/passwort-aendern/passwort-aendern.html","webpack:///./src/erp/elements/popup-hider/popup-hider.ts","webpack:///./src/erp/elements/prod-auftrag-search-result/prod-auftrag-search-result.ts","webpack:///./src/erp/elements/prod-auftrag-search-result/prod-auftrag-search-result.html","webpack:///./src/erp/elements/prod-auftrag/prod-auftrag.ts","webpack:///./src/erp/elements/prod-auftrag/prod-auftrag.html","webpack:///./src/erp/elements/projekt-dms-viewer/projekt-dms-viewer.ts","webpack:///./src/erp/elements/projekt-dms-viewer/projekt-dms-viewer.html","webpack:///./src/erp/elements/projekt-dms-viewer/projekt-dms-viewer.less","webpack:///./src/erp/elements/projekt-search-result/projekt-search-result.ts","webpack:///./src/erp/elements/projekt-search-result/projekt-search-result.html","webpack:///./src/erp/elements/projekt-taetigkeit-buchung-command/projekt-taetigkeit-buchung-command.ts","webpack:///./src/erp/elements/projekt-taetigkeit-buchung-command/projekt-taetigkeit-buchung-command.html","webpack:///./src/erp/elements/projekt-taetigkeit-buchung-command/projekt-taetigkeit-buchung-command.less","webpack:///./src/erp/elements/projekt/projekt.ts","webpack:///./src/erp/elements/projekt/projekt.html","webpack:///./src/erp/elements/search-result/search-result.ts","webpack:///./src/erp/elements/search-result/search-result.html","webpack:///./src/erp/elements/search-result/search-result.less","webpack:///./src/erp/elements/sprache-uebersetzung/sprache-uebersetzung.ts","webpack:///./src/erp/elements/sprache-uebersetzung/sprache-uebersetzung.html","webpack:///./src/erp/elements/sprache-uebersetzung/sprache-uebersetzung.less","webpack:///./src/erp/elements/statistik-einkauf-detail/statistik-einkauf-detail.ts","webpack:///./src/erp/elements/statistik-einkauf-detail/statistik-einkauf-detail.html","webpack:///./src/erp/elements/statistik-einkauf-detail/statistik-einkauf-detail.less","webpack:///./src/erp/elements/statistik-verkauf-detail/statistik-verkauf-detail.ts","webpack:///./src/erp/elements/statistik-verkauf-detail/statistik-verkauf-detail.html","webpack:///./src/erp/elements/statistik-verkauf-detail/statistik-verkauf-detail.less","webpack:///./src/erp/elements/status-form-command/status-form-command.ts","webpack:///./src/erp/elements/status-form-command/status-form-command.html","webpack:///./src/erp/elements/tags-list/tags-list.ts","webpack:///./src/erp/elements/tags-list/tags-list.html","webpack:///./src/erp/elements/tags/tag-color.ts","webpack:///./src/erp/elements/tags/tag-color.html","webpack:///./src/erp/elements/tags/tags.ts","webpack:///./src/erp/elements/tags/tags.html","webpack:///./src/erp/elements/tags/tags.less","webpack:///./src/erp/elements/validation-info/validation-info.ts","webpack:///./src/erp/elements/validation-info/validation-info.html","webpack:///./src/erp/elements/validation-info/validation-info.less","webpack:///./src/erp/elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl.ts","webpack:///./src/erp/elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl.html","webpack:///./src/erp/elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl.less","webpack:///./src/erp/elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern.ts","webpack:///./src/erp/elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern.html","webpack:///./src/erp/elements/version-check/version-check.ts","webpack:///./src/erp/elements/version-check/version-check.html","webpack:///./src/erp/elements/version-check/version-check.less","webpack:///./src/erp/elements/zugriff-historie-command/zugriff-historie-command.ts","webpack:///./src/erp/elements/zugriff-historie-command/zugriff-historie-command.html","webpack:///./src/erp/index.ts","webpack:///./src/erp/value-converters/entitaet-full-name-zu-name-value-converter.ts","webpack:///./src/erp/value-converters/industriezeit-zu-zeit-value-converter.ts","webpack:///./src/erp/value-converters/stueckliste-faktor-value-converter.ts","webpack:///./src/erp/value-converters/ticket-kategorie-name-value-converter.ts","webpack:///./src/erp/value-converters/ticket-status-farbe-value-converter.ts","webpack:///./src/erp/value-converters/ticket-status-name-value-converter.ts","webpack:///./src/erp/value-converters/ticket-typ-name-value-converter.ts","webpack:///./src/erp/value-converters/type-display-name-value-converter.ts","webpack:///./src/erp/views/Konfiguration/Instanz/instanz-edit-form.ts","webpack:///./src/erp/views/Konfiguration/Instanz/instanz-edit-form.html","webpack:///./src/erp/views/Konfiguration/Instanz/instanz-list-form.ts","webpack:///./src/erp/views/Konfiguration/Instanz/instanz-list-form.html","webpack:///./src/erp/views/Konfiguration/beleg-import/beleg-import-edit-form.ts","webpack:///./src/erp/views/Konfiguration/beleg-import/beleg-import-edit-form.html","webpack:///./src/erp/views/Konfiguration/beleg-import/beleg-import-list-form.ts","webpack:///./src/erp/views/Konfiguration/beleg-import/beleg-import-list-form.html","webpack:///./src/erp/views/Konfiguration/datenbank-info/datenbank-info-list-form.ts","webpack:///./src/erp/views/Konfiguration/datenbank-info/datenbank-info-list-form.html","webpack:///./src/erp/views/Konfiguration/einstellung/einstellung-edit-form.ts","webpack:///./src/erp/views/Konfiguration/einstellung/einstellung-edit-form.html","webpack:///./src/erp/views/Konfiguration/fehler/fehler-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fehler/fehler-edit-form.html","webpack:///./src/erp/views/Konfiguration/fehler/fehler-list-form.ts","webpack:///./src/erp/views/Konfiguration/fehler/fehler-list-form.html","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-edit-form.html","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-filter-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-filter-edit-form.html","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-list-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-konto/fibu-konto-list-form.html","webpack:///./src/erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-edit-form.html","webpack:///./src/erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-list-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-list-form.html","webpack:///./src/erp/views/Konfiguration/fibu-oss/fibu-oss-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-oss/fibu-oss-edit-form.html","webpack:///./src/erp/views/Konfiguration/fibu-oss/fibu-oss-list-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-oss/fibu-oss-list-form.html","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-edit-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-edit-form.html","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-list-form.ts","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-list-form.html","webpack:///./src/erp/views/Konfiguration/import/import-edit-form.ts","webpack:///./src/erp/views/Konfiguration/import/import-edit-form.html","webpack:///./src/erp/views/Konfiguration/import/import-list-form.ts","webpack:///./src/erp/views/Konfiguration/import/import-list-form.html","webpack:///./src/erp/views/Konfiguration/status/connected-clients/connected-clients.ts","webpack:///./src/erp/views/Konfiguration/status/connected-clients/connected-clients.html","webpack:///./src/erp/views/Konfiguration/status/cron-jobs/cron-jobs.ts","webpack:///./src/erp/views/Konfiguration/status/cron-jobs/cron-jobs.html","webpack:///./src/erp/views/Konfiguration/status/health-checks/health-checks.ts","webpack:///./src/erp/views/Konfiguration/status/health-checks/health-checks.html","webpack:///./src/erp/views/Konfiguration/status/status-list-form.ts","webpack:///./src/erp/views/Konfiguration/status/status-list-form.html","webpack:///./src/erp/views/Konfiguration/status/status-list-form.less","webpack:///./src/erp/views/arbeitszeit/lohnexport/lohnexport-edit-form.ts","webpack:///./src/erp/views/arbeitszeit/lohnexport/lohnexport-edit-form.html","webpack:///./src/erp/views/arbeitszeit/lohnexport/lohnexport-list-form.ts","webpack:///./src/erp/views/arbeitszeit/lohnexport/lohnexport-list-form.html","webpack:///./src/erp/views/dashboard/dashboard-list-form.ts","webpack:///./src/erp/views/dashboard/dashboard-list-form.html","webpack:///./src/erp/views/diverse/impressum/impressum-form.ts","webpack:///./src/erp/views/diverse/impressum/impressum-form.html","webpack:///./src/erp/views/diverse/impressum/impressum-form.less","webpack:///./src/erp/views/einkauf/bestellung/bestellung-edit-form.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellung-edit-form.html","webpack:///./src/erp/views/einkauf/bestellung/bestellung-list-form.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellung-list-form.html","webpack:///./src/erp/views/einkauf/bestellung/bestellungsgruppe-edit-form.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellungsgruppe-edit-form.html","webpack:///./src/erp/views/einkauf/bestellung/bestellungsposition-edit-form.ts","webpack:///./src/erp/views/einkauf/bestellung/bestellungsposition-edit-form.html","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-edit-form.ts","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-edit-form.html","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-list-form.ts","webpack:///./src/erp/views/einkauf/bestellvorschlag/bestellvorschlag-list-form.html","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-edit-form.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-edit-form.html","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-list-form.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-list-form.html","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnungsposition-edit-form.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnungsposition-edit-form.html","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnungszuschlag-edit-form.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnungszuschlag-edit-form.html","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahme-edit-form.ts","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahme-edit-form.html","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahme-list-form.ts","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahme-list-form.html","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahmeposition-edit-form.ts","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahmeposition-edit-form.html","webpack:///./src/erp/views/kalkulation/kondition/kondition-edit-form.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-edit-form.html","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-form.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-form.html","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-nested-form.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-nested-form.html","webpack:///./src/erp/views/kalkulation/konditionsfeld/konditionsfeld-edit-form.ts","webpack:///./src/erp/views/kalkulation/konditionsfeld/konditionsfeld-edit-form.html","webpack:///./src/erp/views/kalkulation/konditionsfeld/konditionsfeld-list-form.ts","webpack:///./src/erp/views/kalkulation/konditionsfeld/konditionsfeld-list-form.html","webpack:///./src/erp/views/kassa/kassa-beleg/kassa-beleg-edit-form.ts","webpack:///./src/erp/views/kassa/kassa-beleg/kassa-beleg-edit-form.html","webpack:///./src/erp/views/kassa/kassa-beleg/kassa-beleg-list-form.ts","webpack:///./src/erp/views/kassa/kassa-beleg/kassa-beleg-list-form.html","webpack:///./src/erp/views/lager/artikelverleih/artikelverleih-edit-form.ts","webpack:///./src/erp/views/lager/artikelverleih/artikelverleih-edit-form.html","webpack:///./src/erp/views/lager/artikelverleih/artikelverleih-list-form.ts","webpack:///./src/erp/views/lager/artikelverleih/artikelverleih-list-form.html","webpack:///./src/erp/views/lager/inventur/inventur-edit-form.ts","webpack:///./src/erp/views/lager/inventur/inventur-edit-form.html","webpack:///./src/erp/views/lager/inventur/inventur-list-form.ts","webpack:///./src/erp/views/lager/inventur/inventur-list-form.html","webpack:///./src/erp/views/lager/inventur/inventurposition-edit-form.ts","webpack:///./src/erp/views/lager/inventur/inventurposition-edit-form.html","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-detail-list-nested-form.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-detail-list-nested-form.html","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-list-nested-form.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-list-nested-form.html","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-info-list-nested-form.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-info-list-nested-form.html","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-list-nested-form.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-list-nested-form.html","webpack:///./src/erp/views/lager/lagerkorrektur/lagerkorrektur-edit-form.ts","webpack:///./src/erp/views/lager/lagerkorrektur/lagerkorrektur-edit-form.html","webpack:///./src/erp/views/lager/lagerkorrektur/lagerkorrektur-list-form.ts","webpack:///./src/erp/views/lager/lagerkorrektur/lagerkorrektur-list-form.html","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-edit-form.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-edit-form.html","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-list-form.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-list-form.html","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/elements/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/elements/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung.html","webpack:///./src/erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/elements/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung.less","webpack:///./src/erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-edit-form.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-edit-form.html","webpack:///./src/erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-list-form.ts","webpack:///./src/erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-list-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-edit-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-einheit-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-einheit-edit-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-kunde-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-kunde-edit-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-lieferant-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-lieferant-edit-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-list-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-list-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-mindestbestand-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-mindestbestand-edit-form.html","webpack:///./src/erp/views/stammdaten/artikel/artikel-stueckliste-edit-form.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-stueckliste-edit-form.html","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-edit-form.ts","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-edit-form.html","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-list-form.ts","webpack:///./src/erp/views/stammdaten/aufgabe/aufgabe-list-form.html","webpack:///./src/erp/views/stammdaten/benachrichtigung/benachrichtigung-edit-form.ts","webpack:///./src/erp/views/stammdaten/benachrichtigung/benachrichtigung-edit-form.html","webpack:///./src/erp/views/stammdaten/benachrichtigung/benachrichtigung-list-form.ts","webpack:///./src/erp/views/stammdaten/benachrichtigung/benachrichtigung-list-form.html","webpack:///./src/erp/views/stammdaten/benutzer/benutzer-einstellungen-edit-form.ts","webpack:///./src/erp/views/stammdaten/benutzer/benutzer-einstellungen-edit-form.html","webpack:///./src/erp/views/stammdaten/benutzer/qr-image.ts","webpack:///./src/erp/views/stammdaten/benutzer/qr-image.html","webpack:///./src/erp/views/stammdaten/brief/brief-edit-form.ts","webpack:///./src/erp/views/stammdaten/brief/brief-edit-form.html","webpack:///./src/erp/views/stammdaten/brief/brief-list-form.ts","webpack:///./src/erp/views/stammdaten/brief/brief-list-form.html","webpack:///./src/erp/views/stammdaten/geschaeftspartner/bankverbindung-edit-form.ts","webpack:///./src/erp/views/stammdaten/geschaeftspartner/bankverbindung-edit-form.html","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-form.ts","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-form.html","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-form.less","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-list-form.ts","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-list-form.html","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-edit-form.ts","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-edit-form.html","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-list-form.ts","webpack:///./src/erp/views/stammdaten/intrastat-sync/intrastat-sync-list-form.html","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-anhang-edit-form.ts","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-anhang-edit-form.html","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-edit-form.ts","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-edit-form.html","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-edit-form.less","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-list-form.ts","webpack:///./src/erp/views/stammdaten/mail-import-item/mail-import-item-list-form.html","webpack:///./src/erp/views/stammdaten/mandant/mandant-wechseln-form.ts","webpack:///./src/erp/views/stammdaten/mandant/mandant-wechseln-form.html","webpack:///./src/erp/views/stammdaten/medien/medien-edit-form.ts","webpack:///./src/erp/views/stammdaten/medien/medien-edit-form.html","webpack:///./src/erp/views/stammdaten/medien/medien-list-form.ts","webpack:///./src/erp/views/stammdaten/medien/medien-list-form.html","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-edit-form.ts","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-edit-form.html","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-list-form.ts","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-list-form.html","webpack:///./src/erp/views/stammdaten/newsletter/newsletter-edit-form.ts","webpack:///./src/erp/views/stammdaten/newsletter/newsletter-edit-form.html","webpack:///./src/erp/views/stammdaten/newsletter/newsletter-list-form.ts","webpack:///./src/erp/views/stammdaten/newsletter/newsletter-list-form.html","webpack:///./src/erp/views/stammdaten/notiz/notiz-edit-form.ts","webpack:///./src/erp/views/stammdaten/notiz/notiz-edit-form.html","webpack:///./src/erp/views/stammdaten/person/person-edit-form.ts","webpack:///./src/erp/views/stammdaten/person/person-edit-form.html","webpack:///./src/erp/views/stammdaten/person/person-list-form.ts","webpack:///./src/erp/views/stammdaten/person/person-list-form.html","webpack:///./src/erp/views/stammdaten/projekt/projekt-edit-form.ts","webpack:///./src/erp/views/stammdaten/projekt/projekt-edit-form.html","webpack:///./src/erp/views/stammdaten/projekt/projekt-edit-form.less","webpack:///./src/erp/views/stammdaten/projekt/projekt-list-form.ts","webpack:///./src/erp/views/stammdaten/projekt/projekt-list-form.html","webpack:///./src/erp/views/stammdaten/projekt/projekt-taetigkeit-edit-form.ts","webpack:///./src/erp/views/stammdaten/projekt/projekt-taetigkeit-edit-form.html","webpack:///./src/erp/views/stammdaten/provisionsmodell/provisionsfeld-edit-form.ts","webpack:///./src/erp/views/stammdaten/provisionsmodell/provisionsfeld-edit-form.html","webpack:///./src/erp/views/suche/volltext-thesaurus/volltext-thesaurus-edit-form.ts","webpack:///./src/erp/views/suche/volltext-thesaurus/volltext-thesaurus-edit-form.html","webpack:///./src/erp/views/suche/volltext-thesaurus/volltext-thesaurus-list-form.ts","webpack:///./src/erp/views/suche/volltext-thesaurus/volltext-thesaurus-list-form.html","webpack:///./src/erp/views/verkauf/angebot/angebot-edit-form.ts","webpack:///./src/erp/views/verkauf/angebot/angebot-edit-form.html","webpack:///./src/erp/views/verkauf/angebot/angebot-list-form.ts","webpack:///./src/erp/views/verkauf/angebot/angebot-list-form.html","webpack:///./src/erp/views/verkauf/angebot/angebotsgruppe-edit-form.ts","webpack:///./src/erp/views/verkauf/angebot/angebotsgruppe-edit-form.html","webpack:///./src/erp/views/verkauf/angebot/angebotsposition-edit-form.ts","webpack:///./src/erp/views/verkauf/angebot/angebotsposition-edit-form.html","webpack:///./src/erp/views/verkauf/auftrag/abschlagsfaktura-edit-form.ts","webpack:///./src/erp/views/verkauf/auftrag/abschlagsfaktura-edit-form.html","webpack:///./src/erp/views/verkauf/auftrag/auftrag-edit-form.ts","webpack:///./src/erp/views/verkauf/auftrag/auftrag-edit-form.html","webpack:///./src/erp/views/verkauf/auftrag/auftrag-list-form.ts","webpack:///./src/erp/views/verkauf/auftrag/auftrag-list-form.html","webpack:///./src/erp/views/verkauf/auftrag/auftragsgruppe-edit-form.ts","webpack:///./src/erp/views/verkauf/auftrag/auftragsgruppe-edit-form.html","webpack:///./src/erp/views/verkauf/auftrag/auftragsposition-edit-form.ts","webpack:///./src/erp/views/verkauf/auftrag/auftragsposition-edit-form.html","webpack:///./src/erp/views/verkauf/faktura/faktura-edit-form.ts","webpack:///./src/erp/views/verkauf/faktura/faktura-edit-form.html","webpack:///./src/erp/views/verkauf/faktura/faktura-list-form.ts","webpack:///./src/erp/views/verkauf/faktura/faktura-list-form.html","webpack:///./src/erp/views/verkauf/faktura/fakturagruppe-edit-form.ts","webpack:///./src/erp/views/verkauf/faktura/fakturagruppe-edit-form.html","webpack:///./src/erp/views/verkauf/faktura/fakturaposition-edit-form.ts","webpack:///./src/erp/views/verkauf/faktura/fakturaposition-edit-form.html","webpack:///./src/erp/views/verkauf/gutschein/gutschein-edit-form.ts","webpack:///./src/erp/views/verkauf/gutschein/gutschein-edit-form.html","webpack:///./src/erp/views/verkauf/gutschein/gutschein-list-form.ts","webpack:///./src/erp/views/verkauf/gutschein/gutschein-list-form.html","webpack:///./src/erp/views/verkauf/kundenreklamation/Kundenreklamation-edit-form.ts","webpack:///./src/erp/views/verkauf/kundenreklamation/Kundenreklamation-edit-form.html","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamation-list-form.ts","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamation-list-form.html","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamationsposition-edit-form.ts","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamationsposition-edit-form.html","webpack:///./src/erp/views/verkauf/ladeliste/ladeliste-edit-form.ts","webpack:///./src/erp/views/verkauf/ladeliste/ladeliste-edit-form.html","webpack:///./src/erp/views/verkauf/ladeliste/ladeliste-list-form.ts","webpack:///./src/erp/views/verkauf/ladeliste/ladeliste-list-form.html","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-edit-form.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-edit-form.html","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-list-form.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-list-form.html","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheingruppe-edit-form.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheingruppe-edit-form.html","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheinposition-edit-form.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferscheinposition-edit-form.html","webpack:///./src/erp/views/verkauf/mahnung/mahnung-edit-form.ts","webpack:///./src/erp/views/verkauf/mahnung/mahnung-edit-form.html","webpack:///./src/erp/views/verkauf/mahnung/mahnung-list-form.ts","webpack:///./src/erp/views/verkauf/mahnung/mahnung-list-form.html","webpack:///./src/erp/views/verkauf/provision/provision-edit-form.ts","webpack:///./src/erp/views/verkauf/provision/provision-edit-form.html","webpack:///./src/erp/views/verkauf/provision/provision-list-form.ts","webpack:///./src/erp/views/verkauf/provision/provision-list-form.html","webpack:///./src/erp/views/verkauf/provision/provisionsposition-edit-form.ts","webpack:///./src/erp/views/verkauf/provision/provisionsposition-edit-form.html","webpack:///./src/erp/views/verkauf/zahlung/zahlung-edit-form.ts","webpack:///./src/erp/views/verkauf/zahlung/zahlung-edit-form.html","webpack:///./src/erp/views/verkauf/zahlung/zahlung-list-form.ts","webpack:///./src/erp/views/verkauf/zahlung/zahlung-list-form.html","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr-sync-job/zahlungsverkehr-sync-job-edit-form.ts","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr-sync-job/zahlungsverkehr-sync-job-edit-form.html","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-edit-form.ts","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-edit-form.html","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-list-form.ts","webpack:///./src/erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-list-form.html","webpack:///./src/framework/base/services/web-event-service.ts","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-edit-utils.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbestand-detail-list-nested-utils.ts","webpack:///./src/erp/enumerations/export.ts","webpack:///./src/framework/base/attributes/animation-tracker/animation-tracker-attribute.ts","webpack:///./src/framework/base/attributes/animation/animation-attribute.ts","webpack:///./src/framework/base/attributes/grid-size/grid-size-attribute.ts","webpack:///./src/framework/base/attributes/icon/fa-icon-attribute.ts","webpack:///./src/framework/base/attributes/translation/translation-attribute.ts","webpack:///./src/framework/base/index.ts","webpack:///./src/framework/base/value-converters/background-image/background-image-value-converter.ts","webpack:///./src/framework/base/value-converters/file-download/file-download-value-converter.ts","webpack:///./src/framework/base/value-converters/format/format-value-converter.ts","webpack:///./src/framework/base/value-converters/max-text-length/max-text-length-value-converter.ts","webpack:///./src/framework/base/value-converters/sort/sort-value-converter.ts","webpack:///./src/framework/base/value-converters/translation/translation-value-converter.ts","webpack:///./src/framework/default-ui/index.ts","webpack:///./src/framework/default-ui/views/commands/commands.ts","webpack:///./src/framework/default-ui/views/commands/commands.html","webpack:///./src/framework/default-ui/views/container/container.ts","webpack:///./src/framework/default-ui/views/container/container.html","webpack:///./src/framework/default-ui/views/container/container.less","webpack:///./src/framework/default-ui/views/content/content.ts","webpack:///./src/framework/default-ui/views/content/content.html","webpack:///./src/framework/default-ui/views/content/content.less","webpack:///./src/framework/default-ui/views/header/header.ts","webpack:///./src/framework/default-ui/views/header/header.html","webpack:///./src/framework/default-ui/views/header/header.less","webpack:///./src/framework/default-ui/views/loading/loading.ts","webpack:///./src/framework/default-ui/views/loading/loading.html","webpack:///./src/framework/default-ui/views/sidebar-sub/sidebar-sub.ts","webpack:///./src/framework/default-ui/views/sidebar-sub/sidebar-sub.html","webpack:///./src/framework/default-ui/views/sidebar-sub/sidebar-sub.less","webpack:///./src/framework/default-ui/views/sidebar/sidebar.ts","webpack:///./src/framework/default-ui/views/sidebar/sidebar.html","webpack:///./src/framework/default-ui/views/sidebar/sidebar.less","webpack:///./src/framework/dx/elements/dx-widget.ts","webpack:///./src/framework/dx/elements/dx-widget.html","webpack:///./src/framework/dx/index.ts","webpack:///./src/framework/forms/attributes/stack-router-link/stack-router-link.ts","webpack:///./src/framework/forms/elements/code-editor/code-editor.ts","webpack:///./src/framework/forms/elements/code-editor/code-editor.html","webpack:///./src/framework/forms/elements/code-editor/code-editor.less","webpack:///./src/framework/forms/elements/custom-edit-popup/custom-edit-popup.ts","webpack:///./src/framework/forms/elements/custom-edit-popup/custom-edit-popup.html","webpack:///./src/framework/forms/elements/file-uploader-with-viewer/tip-file-uploader-with-viewer.ts","webpack:///./src/framework/forms/elements/file-uploader-with-viewer/tip-file-uploader-with-viewer.html","webpack:///./src/framework/forms/elements/file-uploader-with-viewer/tip-file-uploader-with-viewer.less","webpack:///./src/framework/forms/elements/grid-layout-columns/grid-layout-columns.ts","webpack:///./src/framework/forms/elements/grid-layout-columns/grid-layout-columns.html","webpack:///./src/framework/forms/elements/grid-layout-columns/grid-layout-columns.less","webpack:///./src/framework/forms/elements/html-editor/html-editor.ts","webpack:///./src/framework/forms/elements/html-editor/html-editor.html","webpack:///./src/framework/forms/elements/html-editor/html-editor.less","webpack:///./src/framework/forms/elements/list-view/list-view.ts","webpack:///./src/framework/forms/elements/list-view/list-view-item.ts","webpack:///./src/framework/forms/elements/list-view/list-view-item.html","webpack:///./src/framework/forms/elements/list-view/list-view-items.ts","webpack:///./src/framework/forms/elements/list-view/list-view-items.html","webpack:///./src/framework/forms/elements/list-view/list-view.html","webpack:///./src/framework/forms/elements/list-view/list-view.less","webpack:///./src/framework/forms/elements/loading-spinner/loading-spinner.ts","webpack:///./src/framework/forms/elements/loading-spinner/loading-spinner.html","webpack:///./src/framework/forms/elements/loading-spinner/loading-spinner.less","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar.ts","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-category.ts","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-category.html","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-item.ts","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-item-tmpl.ts","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-item-tmpl.html","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar-item.html","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar.html","webpack:///./src/framework/forms/elements/ribbon-toolbar/ribbon-toolbar.less","webpack:///./src/framework/forms/elements/toolbar/toolbar.ts","webpack:///./src/framework/forms/elements/toolbar/toolbar.html","webpack:///./src/framework/forms/elements/web-socket/web-socket.ts","webpack:///./src/framework/forms/index.ts","webpack:///./src/framework/forms/views/stack-router/stack-router.ts","webpack:///./src/framework/forms/views/stack-router/stack-router.html","webpack:///./src/framework/forms/views/stack-router/stack-router.less","webpack:///./src/framework/forms/views/view/view.ts","webpack:///./src/framework/forms/views/view/view.html","webpack:///./src/framework/forms/views/view/view.less","webpack:///./src/framework/login/login.ts","webpack:///./src/framework/login/login.html","webpack:///./src/framework/login/login.less","webpack:///./src/framework/login/views/activate-account/activate-account-form.ts","webpack:///./src/framework/login/views/activate-account/activate-account-form.html","webpack:///./src/framework/login/views/login/login-form.ts","webpack:///./src/framework/login/views/login/login-form.html","webpack:///./src/framework/login/views/password-reset/password-reset-form.ts","webpack:///./src/framework/login/views/password-reset/password-reset-form.html","webpack:///./src/framework/reports/elements/report/report.ts","webpack:///./src/framework/reports/elements/report/report.html","webpack:///./src/framework/reports/elements/report/report.less","webpack:///./src/framework/reports/elements/variable/variable.ts","webpack:///./src/framework/reports/elements/variable/variable.html","webpack:///./src/framework/reports/elements/variable/variable.less","webpack:///./src/framework/security/index.ts","webpack:///./src/erp/views/verkauf/angebot/angebot-edit-utils.ts","webpack:///./src/framework/reports/elements/report/nav.ts","webpack:///./src/framework/base/services/deep-observer-service.ts","webpack:///./src/erp/enumerations/dyn-feld-logik-typ.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-edit-utils.ts","webpack:///./src/erp/views/kalkulation/kondition/kondition-list-utils.ts","webpack:///./src/framework/forms/services/form-info-service.ts","webpack:///./src/erp/services/artikel-search-service.ts","webpack:///./src/framework/base/services/alert-service.ts","webpack:///./src/erp/views/einkauf/eingangsrechnung/eingangsrechnung-list-utils.ts","webpack:///./src/framework/base/export.ts","webpack:///./src/erp/views/verkauf/provision/provision-list-utils.ts","webpack:///./src/erp/services/lager-service.ts","webpack:///./src/framework/forms/services/export.ts","webpack:///./src/erp/services/mail-import-service.ts","webpack:///./src/framework/reports/elements/report/excel.ts","webpack:///./src/framework/forms/widget-services/data-grid-widget-creator-service.ts","webpack:///./src/framework/base/services/markdown-service.ts","webpack:///./src/framework/base/services/error-service.ts","webpack:///./src/framework/base/services/export.ts","webpack:///./src/erp/views/lager/inventur/inventur-edit-utils.ts","webpack:///./src/framework/base/services/login-url-service.ts","webpack:///./src/framework/forms/widget-options/export.ts","webpack:///./src/erp/enumerations/statistik-darstellung-typ.ts","webpack:///./src/erp/views/verkauf/kundenreklamation/kundenreklamation-edit-utils.ts","webpack:///./src/erp/views/einkauf/warenuebernahme/warenuebernahmeposition-edit-utils.ts","webpack:///./src/erp/views/verkauf/angebot/angebot-list-utils.ts","webpack:///./src/main.ts","webpack:///./src/framework/forms/services/command-service.ts","webpack:///./src/framework/login/images/background10.jpg","webpack:///./src/framework/forms/interfaces/export.ts","webpack:///./src/framework/login/images/background11.jpg","webpack:///./src/framework/base/services/window-service.ts","webpack:///./src/framework/reports/elements/report/ui.ts","webpack:///./src/framework/dx/dx-loader.ts","webpack:///./src/erp/services/aufgabe-service.ts","webpack:///./src/framework/forms/services/setting-service.ts","webpack:///./src/framework/forms/classes/variables.ts","webpack:///./src/erp/views/stammdaten/artikel/artikel-stueckliste-edit-utils.ts","webpack:///./src/framework/default-ui/services/layout-service.ts","webpack:///./src/erp/views/Konfiguration/beleg-import/beleg-import-edit-utils.ts","webpack:///./src/framework/base/services/rest-service.ts","webpack:///./src/erp/services/kondition-service.ts","webpack:///./src/erp/views/lager/artikelverleih/artikelverleih-edit-utils.ts","webpack:///./src/erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-edit-utils.ts","webpack:///./src/erp/services/lieferschein-service.ts","webpack:///./src/erp/views/stammdaten/person/person-list-utils.ts","webpack:///./src/framework/forms/services/form-event-service.ts","webpack:///./src/framework/forms/classes/form-base.ts","webpack:///./src/erp/services/auftrag-service.ts","webpack:///./src/erp/services/angebot-service.ts","webpack:///./src/framework/login/images/background08.jpg","webpack:///./src/erp/services/filiale-service.ts","webpack:///./src/framework/base/services/permission-service.ts","webpack:///./src/erp/views/stammdaten/benachrichtigung/benachrichtigung-edit-utils.ts","webpack:///./src/framework/forms/elements/export.ts","webpack:///./src/erp/enumerations/client-events.ts","webpack:///./src/framework/base/services/globalization-service.ts","webpack:///./src/erp/enumerations/stueckliste-faktor-typ.ts","webpack:///./src/erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-list-utils.ts","webpack:///./src/framework-data/events.ts","webpack:///./src/framework/default-ui/services/loading-service.ts","webpack:///./src/framework/login/images/background06.jpg","webpack:///./src/framework/dx/services/dx-template-service.ts","webpack:///./src/erp/services/template-register-service.ts","webpack:///./src/erp/services/beleg-export-service.ts","webpack:///./src/erp/views/stammdaten/person/person-edit-utils.ts","webpack:///./src/erp/templates/cbo-type-bezeichnung-tag.xhtml","webpack:///./src/framework/base/services/binding-service.ts","webpack:///./src/erp/services/brief-service.ts","webpack:///./src/framework/forms/services/select-item-service.ts","webpack:///./src/erp/views/verkauf/lieferschein/lieferschein-list-utils.ts","webpack:///./src/erp/views/verkauf/auftrag/auftragsposition-edit-utils.ts","webpack:///./src/framework/forms/services/routes-creator-service.ts","webpack:///./src/erp/enumerations/artikel-bezug-typ.ts","webpack:///./src/erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-utils.ts","webpack:///./src/framework/forms/widget-services/export.ts","webpack:///./src/framework/reports/services/data-grid-service.ts","webpack:///./src/framework/base/services/browser-service.ts","webpack:///./src/framework/forms/classes/context-menu.ts","webpack:///./src/erp/services/export.ts","webpack:///./src/erp/views/verkauf/faktura/faktura-edit-utils.ts","webpack:///./src/erp/views/verkauf/auftrag/abschlagfaktura-edit-utils.ts","webpack:///./src/erp/views/diverse/impressum/impressum-utils.ts","webpack:///./src/erp/views/lager/lagerbestand/lagerbuchung-list-nested-utils.ts","webpack:///./src/erp/views/stammdaten/benutzer/benutzer-einstellungen-edit-utils.ts"],"names":["onQueryGlobalCommand","GlobalCommandService","autoinject","CustomEvent","asyncService","eximService","doExport","id","icon","idCategory","sortIndex","title","execute","grid","this","form","convertToPromise","instance","selectAll","getSelectedRowKeys","keys","clearSelection","export","bind","GeschaeftspartnerListUtils","transient","AsyncService","EximService","_functionInstances","add","functionInstance","namespace","customParameters","push","registerForm","Error","dispose","unbindAll","splice","forEach","unbind","Functions","singleton","baseWidgetCreator","addList","options","listOptions","createWidgetOptions","itemTemplate","dataModel","binding","bindTo","dataSource","createListDataSource","bindingOptions","bindToFQ","setListClickActions","customOptions","getCustomOptions","hasClickActions","onItemClick","e","data","itemData","clickActions","item","openClickActions","checkListToolbar","ListType","List","checkListRelationEdit","ListWidgetCreatorService","BaseWidgetCreatorService","rest","globalizationService","getOffenePostenOptions","idGeschaeftspartner","columns","where","orderBy","columnName","sortOrder","getOffenePosten","get","url","getWebApiUrl","getOptions","r","now","Date","getTime","tooltipArr","ZahlungFaelligkeit","IsFaellig","format","Mahnstufe","length","Tooltip","join","hasFakturagruppePositionenZugeteilt","idFakturagruppe","Promise","resolve","FakturaService","RestService","GlobalizationService","loadSprachen","whereOptions","show","modelData","spracheUebersetzung","SpracheUebersetzungService","dynFelder","entitaetInfo","updateKopftextCommand","isEnabled","isVisible","updateTexte","updateFusstextCommand","callOnBind","checkUpdateText","models","onLoaded","register","model","modelWithKeyId","checkEnabled","mainModel","webApiAction","info","getEntitaetInfoByWebApiAction","FullName","hasManuellerText","result","HasKopftext","HasFusstext","enabled","CanSave","kopf","fuss","saveIfDirty","isValid","Id","updateManuelleTexte","reloadAll","UpdateManuelleTexteUtils","DynFelderService","EntitaetInfoService","_belegExportService","_webEventService","_asyncService","_localizationService","_startupService","_validationExService","NOTIFY_TIMEOUT","isVisibleExpression","BelegImportTyp","Faktura","doAbschliessenCommand","getSelectedRowsData","fakturaGridRowData","translateOnce","question","DevExpress","ui","dialog","confirm","some","c","Status","Typ","notify","faktura","executeServerValidation","idFakturaList","map","OnFakturaListAbschliessenEvent","IdFakturaList","onAttached","isBelegExportMandantAktiv","onZahlungFaelligCellPrepared","rowType","BezahltTyp","cell","cellElement","style","color","backgroundColor","FakturaListUtils","BelegExportService","WebEventService","LocalizationService","StartupService","ValidationExService","dynFelderDataService","startupService","_artikelService","_dynFelderService","_kalkulationRefreshService","_modelUtilsService","_dxCustomizeService","showVariablerSetartikelKomponentenAuswahlCommand","showVariablerSetartikelStuecklistenKomponentenAuswahl","showVariablerSetartikelPreisAendernCommand","showVariablerSetartikelPreisAendernAuswahl","idMainModel","idVorgEntitaetPropertyName","refreshOptions","modelName","kalkulationRef","einheitPropertyName","mengeVerpEHPropertyName","registerRefresh","editPopups","onEditPopupHidden","hasDataReloaded","editPopup","showVariablerSetartikelCheckbox","$m_Fakturaposition","Artikel","BezugTyp","refreshFakturagruppeButton","onSaving","startupInfo","Lizenz","HasVariablerSetartikel","IsVariablerSetartikel","MengeIstVerpEH","variablerSetartikelKomponentenAuswahlList","reject","onSaved","IsSetartikel","onReloadStuecklistemkomponentenlist","webEvent","OnFakturapositionVariableStuecklistenkomponentenErstellenEvent","IdFakturaposition","StuecklistenkomponentenMengeList","idArtikelChanged","onIdArtikelChanged","loadVorbelegungen","setDirty","doEvalVerkaufArtikeldaten","detail","value","getArtikelById","artikel","loadDynFeldEintragByLogikttyp","IdDynamischesFeldContainer","DynFeldLogikTyp","VariablerSetartikel","dynFeldEintrag","WertNummer","OnFakturapositionVariableStuecklisteAuswahlEvent","IdArtikel","StuecklistenkomponentenAuswahlList","StuecklisteList","callback","auswahl","console","log","save","RabattEntfernen","OnFakturapositionVariablerSetartikelRabattEntfernenEvent","IdFakturapositionSetartikel","ManuellerPreisEntfernen","OnFakturapositionVariablerSetartikelManuellerPreisEntfernenEvent","OnFakturapositionVariablerSetartikelPreisAendernEvent","KalkulationsFeldTyp","Wert","idArtikel","OnEvalVerkaufArtikeldatenEvent","IdKunde","$m_Faktura","IdRechnungsort","IdEinheit","IdArtikelEinheit","KundeArtikelNr","KundeArtikelbezeichnung","onReloadStuecklistenkomponentenChanged","previousValue","onFakturagruppeChanged","copyFakturaposition","$delegate","editor","buttons","IdFakturagruppe","location","name","disabled","stylingMode","tabIndex","onClick","$m_FakturagruppeEdit","showEx","idEditPopup","modelLoaded","ev","$m_Fakturagruppe","IdFaktura","closeCallback","getDataSource","reload","onEditorValueChanged","fire","dataContext","updateEditorButtons","FakturapositionEditUtils","DynFelderDataService","ArtikelService","KalkulationRefreshService","ModelUtilsService","DxCustomizeService","onFaelligAmCellPrepared","rowData","FaelligAm","moment","isSameOrAfter","AufgabeListUtils","file","eventAggregator","locationService","localizationService","briefService","herunterladenCommand","isEnabledExpression","downloadCurrentDokument","versendenCommand","sendCurrentDokument","dokumentenartZuteilenCommand","dokumentenartZuteilen","neuCommand","ctxMenu","ContextMenu","items","text","OnNeuErstellenClicked","event","target","verknuepfenCommand","onVerknuepfenClicked","MailImportItemAnhaenge","setCurrentDokument","selectCurrentDokument","_windowResizeSubscription","subscribe","setViewerHeight","onReady","onGeschaeftspartnerChanged","$m_MailImportItem","IdPerson","onAnhangClicked","onVerknuepfenItemClicked","idPopup","doVerknuepfen","hide","entitaetName","ctrlKeyPressed","ctrlKey","idMailImportItem","getWebEvent","webEventResult","navigationUrl","getNavigationUrlFromWebEventResult","openWindow","goTo","clearStack","idGrid","refresh","selectedRows","Array","isArray","row","getDownloadUrl","DMSLink","window","open","currentDokument","dmsLinkList","filter","createAndGoToBrief","viewScrollInfo","getViewScrollInfoMailImportItemAnhang","$m_MailImportItemAnhang","mailImportItemAnhang","lastLoadInfo","totalCount","index","pageIndex","pageSize","indexOf","maxCount","selectRows","dokument","OnErstelleAngebotAusMailImportItemEvent","IdMailImportItem","OnErstelleAuftragAusMailImportItemEvent","OnErstelleKundenreklamationAusMailImportItemEvent","OnErstelleBestellungAusMailImportItemEvent","IdAngebot","IdAuftrag","IdKundenreklamation","IdBestellung","idMail","OnVerknuepfenEntitaetenEvent","IdEntitaet1","IdEntitaet2","publish","viewer","element","querySelector","formContent","classList","contains","parentElement","height","clientHeight","MailImportItemEditUtils","FileService","EventAggregator","LocationService","BriefService","webEventService","showImportCommand","$m_Import","popup","focus","doImportCommand","Bezeichnung","OnNewsletterEmpfaengerImportEvent","NewsletterEmpfaengerListUtils","command","localization","dxTemplate","titleItemTemplate","_pages","_categories","toolbarModuleId","addPage","addCategory","idPage","createPageCategoryItemStructure","categories","category","pages","key","page","p","sort","a","b","createFormToolbarOptions","createToolbarOptions","scopeContainer","commands","getCommands","observe","expression","newValue","smallToolbar","createToolbarItems","i","createToolbarItem","expressionScope","scope","ToolbarService","CommandService","BindingService","DxTemplateService","_bestellungService","onDeleting","hasBestellungsgruppePositionenZugeteilt","$m_Bestellungsgruppe","BestellungsgruppeEditUtils","BestellungService","baseUrl","apiUrl","webApiUrl","webSocketUrl","loginApp","mainApp","appId","_eximService","doBelegExport","ArtikelListUtils","restService","jsonService","getAllOperators","getAllTypes","getTextEditor","getDateEditor","getNumberEditor","getBoolEditor","checkVariableValue","stateVariable","operator","hasBetweenValue","hasInValue","value1","value2","concat","hasVariableValue","toString","getVariableDisplayText","variable","type","lookupAction","parse","lookupGetOptions","tokens","lookupDisplayExpr","split","token","getVariableValue","valueKey","setVariableValue","VariableService","JsonService","CustomEditPopupService","CommandServerData","$m_Eingangsrechnungsposition","doEvalEinkaufArtikeldaten","OnEvalEinkaufArtikeldatenEvent","IdEingangsrechnung","$m_Eingangsrechnung","IdLieferant","LieferantArtikelNr","LieferantArtikelbezeichnung","Steuersatz","EingangsrechnungspositionEditUtils","elementService","createOptions","viewModel","idDataSource","Object","assign","prepareContentReady","addOnInitialized","registerDataSourceChanged","component","option","ChartService","ElementService","_eventAggregator","_taskQueue","_windowService","bindShortcut","sequence","idCommand","bindGlobal","mousetrap","blurCurrentElement","queueTask","ShortcutService","TaskQueue","WindowService","addStyles","styleClasses","removeStyleTag","styleTag","document","createElement","appendChild","createTextNode","getCssClasses","head","getElementById","removeChild","getCssClass","properties","propertyName","StyleService","showSynchronsierenPopupCommand","selectBox","setOption","selectBoxTyp","subtract","startOf","toDate","endOf","doSynchronisierenCommand","dateBoxVon","dateBoxBis","firmaSelectBox","idFirma","OnErstellenIntrastatSyncEvent","DatumVon","DatumBis","IdFirma","IntrastatSyncListUtils","_restService","getBestellungPosByIdBestellung","idBestellung","getBestellungListByIdAuftrag","idAuftrag","getIdBestellungspositionByIdAuftragsposition","idAuftragsposition","getMengeVerpEHByIdAuftragsposition","idAufragsposition","reduce","MengeVerpEH","idBestellungsgruppe","startup","KonditionsfeldEditUtils","FormBase","FormBaseImport","ZahlungTyp","then","catch","callbackSuccess","callbackCancel","prodAuftragSearchResult","showPopup","ProdAuftragSearchService","showLohnexportErstellenPopupCommand","arbeitszeitLohnexportErstellen","post","getApiUrl","Stichtag","ArbeitszeitLohnexportListUtils","modelEvent","modelUtils","objectService","permissionService","onLoadRequired","onLoadedInterceptor","onDeleted","waitTimeout","args","isBound","autoLoad","evaluate","loadModel","addInfo","keyProperty","addObservers","isModelWithKeyId","allowNew","allowSave","modificationInfoEnabled","allowDelete","callOnLoaded","canNew","canWebApiNew","moduleId","canSave","canWebApiModify","canDelete","canWebApiDelete","createNewModelData","getInfo","throwErrorIfMissing","getModels","arr","getModelWithKeyId","find","m","hasChangedData","postOnSave","isDirty","keyValue","createGetOptions","increaseLoadingCount","transferValuesFromRouteInfo","loadModelWithKeyId","variables","$id","loadInfo","loadDependent","prefix","next","startsWith","n","setDataChanged","promiseArr","method","all","nestedForms","getNestedForms","f","delete","clearDirty","addObserversDetail","checkKeyProperty","oldValue","viewItemInfo","routeInfo","setValues","setValuesOnModelWithKeyIdLoaded","setValue","Models","DataSourceService","ModelEventService","ObjectService","PermissionService","_headerService","_customEditPopupService","_locationService","_moduleService","aufgabeCommand","badgeColor","HeaderCommandEvent","onShowingPopover","aufgabe","showPopover","getCommandTarget","benachrichtigungCommand","benachrichtigung","mailCommand","mail","arbeitszeitStempelnCommand","arbeitszeitStempeln","projektTaetigkeitBuchungCommand","projektTaetigkeitBuchung","zugriffHistorieCommand","zugriffHistorie","office365AuthCommand","onAvatarCommandClicked","OnOffice365TokenAnfordernEvent","AuthUrl","benutzereinstellungenAendernCommand","Benutzer","benutzer","benutzerEinstellungenEditPopup","mappings","mandantWechselnCommand","mandant","Mandant","mandantWechselnPopup","impressumCommand","impressumEditPopup","passwortAendernCommand","passwortAendern","passwortAendernPopup","versionsinfoCommand","supportCenterCommand","hewNewVersionCommand","className","initialize","existsCommand","updateHasOffice365","HasProjektzeiterfassung","hasBerechtigungProjektzeit","hasArbeitszeitStempeln","HasMailImport","IsCloudAdministrator","CanMandantWechseln","avatarCommands","updateCanMandantWechseln","updateHasNewVersion","hasAttribute","hideAvatarPopoper","commandList","cmd","OnVersionHasUpdateEvent","HasNewVersion","NotificationTyp","office365TokenChanged","HasOffice365MailServer","OnOffice365AuthTokenAbfrageEvent","HasAuthToken","benutzerCanMandantWechselnChanged","IsVisible","HasArbeitszeit","hasBerechtigungArbeitszeit","IdBenutzer","errorCallback","HeaderCommandService","HeaderService","ModuleService","simpleWidgetCreator","dataGridWidgetCreator","listWidgetCreator","listViewWidgetCreator","addAccordion","addCalendar","addCheckBox","addColorBox","addCommand","addDateBox","addDataGrid","addFileUploaderWithViewer","addHtmlEditor","addInclude","addListView","addLookup","addNumberBox","addPopover","addPopup","addRadioGroup","addTab","addSelectBox","addTagBox","addTextBox","addTextArea","addValidationGroup","WidgetCreatorService","SimpleWidgetCreatorService","DataGridWidgetCreatorService","ListViewWidgetCreatorService","getDisplayText","typeName","enumItems","EnumItemService","browserService","taskQueue","returnTrueFalse","isMobile","body","DxLoader","createInstance","message","showCancelButton","onOptionChanged","button","custom","messageHtml","DialogConfirmService","BrowserService","dynFelderData","_auftragService","_filialeService","_firmaService","_geschaeftspartnerSearchService","_geschaeftspartnerService","_lagerService","_lieferscheinService","_popupInfoService","_personService","$m_Auftrag","Auftrag","showImportAngebotspositionenPopupCommand","angebotspositionenGrid","deselectAll","importAngebotspositionenCommand","OnImportAngebotspositionenInAuftragEvent","IdAngebotspositionList","bestaetigenCommand","IsBestaetigt","OnAuftragBestaetigtEvent","reservierenCommand","doReservieren","reservierungEntfernenCommand","showLieferscheinErstellenCommand","TypeName","lieferscheinGrid","canAuftragMerge","doInLieferscheinUebernehmen","bestellungErstellenCommand","OnBestellungStreckengeschaeftErstellenEvent","hasStreckengeschaeftBestellung","icBestellungErstellenCommand","OnBestellungIntercompanyErstellenEvent","zuMarkiertemLieferscheinHinzufuegenCommand","neuenLieferscheinErstellenCommand","refreshGewichtCommand","onAuftragGewichtAktualisierenEvent","OnAuftragGewichtAktualisierenEvent","neueKonditionenLaden","selectedKeys","AllePositionen","IdAuftragPosList","OnAuftragKondAktualisierenEvent","auftragKopieErstellenCommand","OnAuftragspositionenInNeuenAuftragUebernehmenEvent","IdAuftragKopie","positionenSortierenCommand","typ","OnAuftragPositionenSortierenEvent","contextMenu","vorauskasseCommand","OnAuftragVorauskasseEvent","recalcLieferdatumCommand","IsBerechnungLieferdatumAktiv","OnAuftragRecalcLieferdatumEvent","doCopyPosCommand","auftragPosGridRowData","auftragsposition","OnKopierenRequestEvent","IdSourceOjekt","CustomData","doDeletePosCommand","tooltip","CanDelete","idList","OnDeleteIdAuftragspositionListEvent","IdAuftragspositionList","_infobarZuletztArtikelAddSubscription","isPopupOpen","isCurrentForm","addLieferscheinposition","focusFirstEnabledEditor","kunde","hasStreckengeschaeftBestellungBereitsErstellt","updateLieferdatumFarbe","updateBerechnLieferdatumFarbe","updateBerechnLieferdatumButtons","HasIntercompany","IsIcAuftrag","dynFeldList","LogikTyp","Intercompany","dynFeldEintragIntercompany","DynamischesFeldContainer","DynamischesFeldEintraege","IdDynamischesFeld","HasIntercompanyBestellung","onlyCurrentPage","idArtPropertyName","getIdFilialeVorbelegung","IdLieferfiliale","getIdLagerVorbelegung","IdLieferlager","getWaehrungIdOfFiliale","idWaehrung","IdWaehrung","getWaehrungIdOfFirma","getLieferdatum","IdAuftragsart","Lieferdatum","posGridOptions","berechnLieferdatumIndex","findIndex","dataField","DoReservieren","OnAuftragReservierenEvent","mergeMitLieferschein","openInNewWindow","selectedAuftragspositionKeys","getSelectedAuftragspositionen","idMergeMitLieferschein","getSelectedLieferschein","OnErstelleLieferscheinAusAuftragEvent","UebernehmeAllePositionen","IdMergeMitLieferschein","IdLieferschein","OnAuftragAddLieferscheinpositionEvent","IdLieferscheinposition","idLieferscheinposition","isHandled","onMengeReserviertCellPrepared","MengeReserviertVerpEH","MengeOffenVerpEH","HasLagerfuehrung","onLieferdatumValueChanged","onBerechnLieferdatumCellPrepared","HasFehlendeBeschaffungsperiode","onKundeChanged","onEvalLieferRechnungsortEvent","OnEvalLieferRechnungsortEvent","onEvalLieferRechnungsortData","setGeschaeftpartnerById","IdLieferort","HasMoreThanOneLieferort","caption","filters","webApiCustomKey","webApiCustomValue","setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen","onKundeAnsprechpersonChanged","idPerson","idKunde","IdLieferortAnsprechperson","onLieferortAnsprechpersonChanged","IdRechnungsortAnsprechperson","getPersonTelefon","LieferortTelefon","onKundeAdresseChanged","refreshGeschaeftspartnerById","onLieferortAdresseChanged","onRechnungsortAdresseChanged","berechnLieferdatum","input","BerechnetLieferdatum","auftrag","hint","IsStreckengeschaeft","bestellungList","getGeschaeftspartnerById","geschaeftspartner","getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen","getIdFirmaVorbelegung","AuftragEditUtils","AuftragService","FilialeService","FirmaService","GeschaeftspartnerSearchService","GeschaeftspartnerService","LagerService","LieferscheinService","PopupInfoService","PersonService","_entitaetInfoService","$m_Artikel","artikelBestellungErstellenCommand","OnErstelleBestellungEvent","artikelProdAuftragErstellenCommand","OnErstelleProdAuftragEvent","IdProdAuftrag","doCopyCommand","doBestellvorschlagBerechnenCommand","onBVRechnenEvent","OnBVRechnenEvent","IdArtikelList","doArtikelartAendernCommand","doArtikelartaendern","showArtikelartAendernCommand","onShowArtikelartAendernClicked","calcLieferterminCommand","ArtikelBezugTyp","Setartikel","Eigenfertigung","hasArtikelBeistellartikel","VerknuepfteEntitaet","getUrl","closeAllPopups","pr","copyArtikel","copyPopup","$m_ArtikelCopy","IdArtikelart","DoKopierenNotizen","DoKopierenKonditionen","onEinstandspreisVerknEntitaetCellPrepared","verkn","html","TypeBezeichnung","CboBezeichnung","innerHTML","onArtikelartChanged","getArtikelartById","artikelart","IsLagerfuehrend","IsLagerfuehrendVorbelegung","onArtikelartAendernEvent","OnArtikelartAendernEvent","computedFrom","ArtikelEditUtils","getReport","getData","state","idReport","DataService","formEvent","toolbar","setToolbarPages","setToolbarCategories","attachFormCommand","commandInstance","commandOptions","onBind","isCommandVisibleModelProperty","getCommandCategory","canExecute","formCommandExecOptions","callBack","onFormModelLoaded","onCommandAttached","onModelLoaded","onDetached","onCommandDetached","getReloadCommand","forms","getReloadFormCommand","entitaetFullName","substring","lastIndexOf","toLowerCase","undefined","getCommandElement","getFormCommandById","commandExists","getFormByProperty","modelPropertyName","modelPropertyValue","parent","needsToReload","commandForm","setCommandBindings","badgeText","FormCommandService","FormEventService","SupportedDashboardTyp","FibuKontoEditUtils","hasAuftragsgruppePositionenZugeteilt","$m_Auftragsgruppe","AuftragsgruppeEditUtils","_fakturaService","FakturagruppeEditUtils","_validationService","_formEventService","registerDeleteValidation","registerEAN","registerKassaCode","code","OnWebValidateEvent","Code","ResultList","validationInfo","cancel","registerValidator","parameters","reevaluate","validationCallback","Barcoder","validate","test","ValidationService","deleteDokument","idDokument","showConfirmation","saveDokument","dmsDokument","saveDokumentartToDokument","idDokumentenart","IdDokumentenart","getAnzahlDokumente","idDokumentContainer","AnzahlDokumente","showDmsViewerPopupFromFormCommand","showDmsViewerPopup","IdDokumentContainer","dmsViewer","DmsViewerService","doBestellvorschlagRechnenCommand","selectedData","doArtikelBestellenCommand","OnBVArtikelBestellenEvent","IdBestellvorschlagList","DoAbschliessen","doArtikelBestellenUndVersendenCommand","doArtikelIgnorierenCommand","OnBVArtikelIgnorierenEvent","BestellvorschlagListUtils","globalization","defaultCommands","validation","selectItem","popupInfo","setting","templatingEngine","htmlEditorService","createEditorOptions","editorOptions","IsLabelBeforeEditor","editAlphaChannel","min","max","displayFormat","getFormatterParser","commandServerData","buttonOptions","width","optionsName","widgetOptions","acceptType","acceptTypeEnum","iconDownload","iconDownloadExpression","placeholderIcon","placeholderIconExpression","placeholderImage","placeholderImageExpression","placeholderImageText","showViewer","maxFileSizeMB","showToolbar","showClearButton","isDisabled","isDisabledExpression","isReadOnly","readOnly","isReadOnlyExpression","configureHtmlEditor","getSelectItem","idSelect","addDataExpressionOptions","closeOnOutsideClick","searchMode","titleTemplateName","titleTemplate","fieldTemplateName","fieldTemplate","itemTemplateName","getNumberFormat","showSpinButtons","step","contentTemplate","registerPopupInfo","idToolbar","showCloseButton","container","setAttribute","view","enhance","bindingContext","overrideContext","dxEventOn","events","on","detached","onInitialized","content","onShowPopup","owner","onHidePopup","maxHeight","maxWidth","getClosePopupCommand","searchEnabled","searchExpr","displayMember","tabOptions","propSelected","pageOptions","visible","__options","__index","if","queueMicroTask","firstVisible","onSelectionChanged","addedItems","onActivated","callOnActivate","getAttribute","children","from","querySelectorAll","gr","getInstance","updateDimensions","checkGridInitialize","valueExpr","valueMember","displayExpr","itemValueExpr","itemDisplayExpr","itemDataContext","createDataSource","batchSelectionEnabled","showSelectionControls","applyValueMode","tagTemplateName","tagTemplate","scArgs","removedItems","list","relationBinding","indexOf1","d","indexOf2","relationProperty","newObj","maxLength","mode","useMaskedValue","mask","maskChar","inputAttr","onValidating","widget","validationEngine","getGroupConfig","validationResult","messages","brokenRules","updatePopupOptions","updateablePopupOptions","executeCommand","onValueChanged","readOnlyExpression","modExpression","placeholder","validationRules","v","getValidator","current","createSelectDataSource","customs","dataSourceOptions","observers","getElementsToObserve","evcArgs","DefaultCommandsService","SelectItemService","SettingService","TemplatingEngine","HtmlEditorService","_popupStack","hasPopupWithUnchangedData","isOpen","lastPopupInfo","getCurrentPopup","off","popupInfoIndex","getPopup","closeCurrentPopup","handleChangedData","onReloadStuecklistenkomponentenlist","$m_Kundenreklamationsposition","onErsatzartikelChanged","ErsatzartikelPreisbasis","KundenreklamationspositionEditUtils","_authorizationService","_historyService","_localization","showTwoFactorAuth","loginCommand","preventDefault","stopPropagation","$m_login","Username","Password","login","isLoggedIn","goToUrlAfterLogin","pipelineUrl","needsTwoFactorAuthKey","keyInput","forgotPasswordCommand","goBackToLoginCommand","lastRequestUrl","StayLoggedOn","LoginFuncs","AuthorizationService","HistoryService","TicketStatus","addToContentReady","_onContentReadyQueue","onContentReadyOld","onContentReady","onInitializedOld","status","doVerbuchen","$m_Lagerkorrektur","OnLagerkorrekturVerbuchenEvent","IdLagerkorrektur","offenStatus","getStatusByTyp","Statustyp","Offen","IdStatus","LagerkorrekturEditUtils","StatusService","DynFeldTyp","waitForViewModel","counter","currentViewModel","destroyView","TemplatingExService","doMahnungErstellen","OnMahnlaufEvent","doMahnungenVersenden","OnMahnungenVersendenEvent","MahnungListUtils","projektSearchResult","ProjektSearchService","hasLieferscheingruppePositionenZugeteilt","$m_Lieferscheingruppe","LieferscheingruppeEditUtils","_isDirtyProperty","enumItem","listViewOptions","DataSource","CustomStore","cacheRawData","loadMode","load","requireTotalCount","newVal","groupProperty","hoverStateEnabled","selectionMode","pagingMode","ListViewPagingMode","loadNext","paging","itemClass","getSelectionMode","showPagerInfo","showReloadButton","useDefaultListItemStyle","ListView","SelectionModeEnum","Multiple","Single","_selectItemService","_tagCache","checkTagInjection","fillTagCache","addSelectItem","createTag","bezeichnung","OnTagCreateEvent","EntitaetFullName","Tag","updateTag","farbe","OnTagUpdateEvent","IdTag","Farbe","getEntitaetList","idTag","tag","TagZuEntitaet","Entitaet","getTagList","localeCompare","getAllTagList","getTagContainer","idTagContainer","expand","renderTagList","tags","addWrap","tagElement","innerText","elementname","action","addTagToDataGrids","idDataGrid","tooltipElement","tooltipWidget","columnOptions","allowSorting","allowHeaderFiltering","minWidth","cellTemplate","_Tags","position","visibility","restElement","count","offsetWidth","lastChild","padding","calculateFilterExpression","op","headerFilter","t","onCellHoverChanged","column","eventType","ct","append","TagService","objectInfo","delegates","argsQueue","anyRegistered","equal","timeoutCancel","clearTimeout","setTimeout","fireQueue","slice","ObjectInfoService","onIsPrioritaetCellPrepared","IsPrioritaet","BenachrichtigungService","doShowWaehrungFirmaFelder","betragFirmaFeldBez","skontoFirmaFeldBez","setInitialData","$m_Zahlung","idEingangsrechnung","$v_IdEingangsrechnung","idFaktura","$v_IdFaktura","IdGeschaeftspartner","Eingang","eingangsrechnung","Eingangsrechnung","Ausgang","Waehrung","Firma","ISO4217","ZahlungEditUtils","getMainForm","treatEditPopupAsMainForm","isEditPopup","isNestedForm","mainForm","FormUtilsService","initializeSubscribers","getWaehrungList","waehrung","_waehrungList","KonditionsfeldWaehrung","IsProzent","Prozent","waehrungChanged","WaehrungService","LayoutService","LoadingService","ModuleLoader","refreshBestellungsgruppeButton","$m_Bestellungsposition","mengeVerpEH","validateVariablerSetartikel","validateMindestbestellmenge","validateIntercompany","$m_Bestellung","onBestellungsgruppeChanged","copyBestellungsposition","dataPos","dataBestellung","IdBestellungsgruppe","HasStreckengeschaeftAuftrag","$m_BestellungsgruppeEdit","OnBestellungspositionVariablerSetartikelRabattEntfernenEvent","IdBestellungspositionSetartikel","OnBestellungspositionVariablerSetartikelManuellerPreisEntfernenEvent","OnBestellungspositionVariablerSetartikelPreisAendernEvent","getLieferantById","artikelLieferant","menge","bestellungPosList","mengeBestellungPos","MindestbestellmengeVerpEH","getEinheitbezeichnungByArtikelEinheit","einheit","IsIntercompany","IdIcAuftrag","getAuftragspositionByIdIcBestellungsposition","icAuftragsposition","validateIntercompanyLieferschein","validateIntercompanyBestellung","MengeLieferscheinVerpEH","BestellungspositionEditUtils","_excelExportService","layoutOeffnenCommand","$m_Newsletter","_NewsletterUrl","empfaenger","OnNewsletterVersendenEvent","IdNewsletter","testVersendenCommand","testVersendenNowCommand","emailTextBox","email","OnNewsletterTestVersendenEvent","Email","doExportGridCommand","exportDataGrid","selectedRowsOnly","NewsletterEditUtils","ExcelExportService","verknuepfteEntitaet","verknuepfteEntitaetCommand","onVerknuepfteEntitaetCommandClicked","setFollowerCurrentBenutzer","dateBox","setDatumStyle","$m_Aufgabe","IdVerknuepfteEntitaet","idVerknuepfteEntitaet","isVorbei","AufgabeInfoBenutzer","onAufgabeKommentarChanged","AufgabeEditUtils","VerknuepfteEntitaetService","showZahlungsverkehrSyncJobCommand","ZahlungsverkehrEditUtils","regexDateISO","json","JSON","stringify","exec","obj","_bindingService","setCustomLocalization","localizationCustom","_localizationCustom","addLocalizationNeutral","translation","localizationNeutral","getTranslationInfo","needsBinding","getLocalizationItem","expr","replace","RegExp","translateItem","resultCustom","getLocalizationItemEx","resultNeutral","val","createZugriffHistorie","idEntitaet","OnCreateZugriffHistorieEvent","IdEntitaet","ZugriffHistorieService","KalkulationFeldTyp","commandData","Commands","layout","searchTimeout","getDefinition","defaultOptions","WidgetExtenderService","getAdresseById","AdresseService","doSynchronisierungStarten","OnPrepareIntrastatSyncEvent","IdIntrastatSync","$m_IntrastatSync","IntrastatSyncEditUtils","_permissionService","_shortcutService","_dialogConfirmService","getFormAddCommand","canAdd","getFormSaveCommand","canSaveNow","error","showAndLogError","getEditPopupSaveAndAddCommand","small","getEditPopupSaveAndCloseCommand","getFormDeleteCommand","canDeleteNow","translate","deleteResult","history","back","getEditPopupDeleteCommand","getFormGoBackCommand","goBack","getListAddCommand","showEditPopupAdd","editUrl","listEdits","getListEditCommand","getListExcelExportCommand","dataGrid","onlySelected","getListCommands","addEditCommand","listType","addCmd","editCmd","isMainList","DataGrid","getScrollDown","scroll","getScrollUp","editDataContext","getNextKey","loadById","take","skip","searchtext","rows","resultKeyResolver","popupService","edit","isRelation","onEditPopupModelLoaded","createToolbar","optionsToolbar","customizationOptions","getCustomWhere","whereParam","canLoad","every","getViewScrollInfo","customDataSource","pageStart","rowIndex","hasAllPages","ds","ObjectTypeName","createOverrideContext","editUrlIdProperty","listInstance","clickArguments","onDisposing","callCustomDisposing","onUnbind","disposing","registerCustomDisposing","geschaeftspartnerSearchResult","changeColumnVisible","isMapped","$v_idArtikel","$v_idGeschaeftspartner","KonditionListNestedUtils","router","popupInfoService","isActive","checkHasChangedDataBeforeUnload","clearAndGoToFallback","currentViewItem","navigate","hash","substr","getUrlWithHash","navigateCurrentOrInPipeline","guardedNavigate","setUrlWithoutNavigation","currentStateHistory","urlWithHash","updateCurrentUrl","replaceState","currentStateRouter","getCurrentHistoryState","pushState","addEventListener","hasRoute","isForward","hasRouteWithId","canDeactivateCurrentView","currentState","historyState","isPopState","returnValue","promise","navigateByLocation","navigationArgs","setCurrentHistory","didReplace","locationGoTo","viewStack","controller","currentHistoryState","RouterService","bestaetigenSetzenCommand","auftragGridData","idAuftragList","IdAuftragList","OnAuftragListBestaetigtEvent","bestaetigenEntfernenCommand","lieferdatumAendernCommand","doLieferdatumAendernCommand","datum","OnAuftragListLieferdatumAendernEvent","onReservierungsgradCellPrepared","Reservierungsgrad","HasArtikelNichtLagerfuehrendOffen","AuftragListUtils","layoutService","gridOptions","dataGridOptions","modelInfo","getMainModelFromCustomizeEvent","addGridColumnExtender","viewUrl","getCustomFilters","getDynamicColumns","parentViewUrl","allowColumnReordering","allowColumnResizing","getLayout","GRID_LAYOUT","assignLayoutToColumnsInt","loadContexMenuItems","dynColumns","GRID_COLUMNS","setDynColumns","onContextMenuPreparing","insertAt","beginGroup","gridLayoutColumnsElement","formViewUrl","gridInstance","onColumnsAdded","assignLayoutToColumns","dataGridWidget","loadLayout","getColumnsLayout","getVisibleColumns","visibleIndex","layoutColumns","lc","dc","newColumn","canDeleteLayout","showColumnChooser","saveLayout","deleteLayout","GridLayoutService","getProjektById","idProjekt","getProjektByNummer","nummer","getProjektBySearchtextEindeutig","ProjektService","showDruckenPopup","dmsLink","druckenCommand","showDruckenContextMenu","reportList","showContextMenu","executeDruckCommand","OnReportRequestEvent","IdObjekt","ReportItemList","handleDruckRequest","executeDruckJob","anzAusdrucke","OnErstelleDruckJobEvent","AnzAusdrucke","getAnzAusdrucke","OnRequestAnzAusdruckeEvent","idObjekt","OnReportDruckEvent","IdReport","res","report","DruckenService","x","y","constructor","Function","valueOf","_templatingEngine","_templatingExService","_routerService","_zugriffHistorieService","registerAendInfo","registerFormReloadOnActivate","registerEditFormZugriffHistorie","showAendinfo","modelPraefix","aendDiv","erstelltDiv","inaktivDiv","inaktivContainerDiv","erstelltText","replaceIndex","geandertDiv","geaendertText","insertBefore","firstChild","resultAendInfo","resultInaktiv","reloadIfServerHasNewVersion","Url","existsNavigationRoute","loadedArgs","FormExtenderService","ScopeContainer","fileService","eximName","OnEximExportEvent","EximName","IdList","download","TicketTyp","_layouts","initializeLayouts","AssignedType","getLayoutType","Type","getKey","Form","IdWidget","Layout","idWidget","doExportExcelCommand","LagerbestandListNestedUtils","currentMandantId","$m_Mandant","mandantWechseln","OnMandantWechselnEvent","IdMandant","MandantWechselnUtils","_fileService","showDokumentErstellenPopupCommand","zahlungsverkehrGridRowData","doDokumentErstellenCommand","valutadatumBehaltenCheckbox","valutaDatumBehalten","valutaDatum","IdZahlungsverkehrList","ValutaDatum","DMSLinkList","dMSLink","onValutaDatumBeibehaltenChanged","onValutaDatumAendernChanged","ZahlungsverkehrListUtils","_instance","loadRequiredAction","createDataStore","timeout","setLastLoadAction","lastAccessInfo","resultPromise","byKey","getModuleId","loadOptions","searchOperation","searchValue","webApiSearchtextEnabled","searchWhere","totalSummary","selector","desc","loadOptionsDataField","distinct","resultInterceptor","summary","ignoreWhere","webApiColumns","webApiExpand","webApiOrderBy","webApiWhere","customWhere","constructWhere","constructFilters","getSearchText","webApiMaxRecords","maxRecords","getDataSourceKeyValues","optionsPrepareCallback","getLastLoadInfo","mergeDeep","orderby","observer","evalElementsToObserveWhere","evalElementsToObserveDetail","property","allowLoad","customFilters","w","registerEditorValueChanged","registerEditPopups","doKalkulieren","doLoadItemsFromContainer","refreshKonditionen","NummernkreisTyp","getProdAuftragById","idAufgrag","getProdAuftragByNummer","getProdAuftragtBySearchtextEindeutig","ProdAuftragService","$m_LagerbuchungInfoE","filterOperations","onVerknEntitaetCellPrepared","onVerknEntitaetCalcFilter","LagerbuchungInfoListNestedUtils","kondition","currentKonditionsfeldOptions","geschaeftspartnerInfoSelectBoxOptions","getSelectBoxItemTemplate","artikelInfoSelectBoxOptions","artikelInfoRequiredRule","IsArtikelPflicht","$m_Kondition","IdArtikelInfo","onValueChangedByUser","getKonditionFeldById","onKonditionsFeldChanged","updateWertFormat","IdKonditionsfeld","IdGeschaeftspartnerInfo","geschaeftspartnerInfoDataSource","Suchtext","ItemList","artikelInfoDataSource","getVorbelegungVonDatum","gueltigkeit","VorbGueltigVon","Min","Heute","Monatsbeginn","Jahresbeginn","getVorbelegungBisDatum","VorbGueltigBis","Monatsende","Jahresende","Max","setKonditionfeldOptions","konditionsfeld","IdVorbWaehrung","Staffel","VorbStaffel","VorbWert","WertPer","VorbWertPer","GueltigVon","GueltigBis","anzKommastellen","AnzKommastellen","repeat","KonditionEditUtils","KonditionService","module","exports","_typeNameDic","_webApiActionDic","setEntitaetDic","EntitaetInfos","parentTypeName","getTypeNameParent","getParentId","getUrlString","getBezeichnung","getEntitaetInfoByTypeName","getEntitaetInfoList","predicate","createViewScrollInfo","WebApiUrl","needsParentTypeNameForUrl","createViewScrollInfoEx","loadWebApiAction","queryId","childTypeName","childId","childInfo","parentInfo","getParentIdFromDetail","getEntitaetUrlById","entitaet","getBaseEntitaetUrl","propertyNameList","getEntitaetName","positionInfo","positionId","idParentPropertyName","detailTypeName","parentEntitaetInfo","entitaetList","webpackContext","req","webpackContextResolve","__webpack_require__","o","authorization","resetPasswordCommand","$m_Password","resetPassword","backToLoginCommand","PasswordResetFuncs","registerDataSourceSelectionChanged","EditorService","$m_Warenuebernahme","OnWarenuebernahmeAbschliessenEvent","IdWarenuebernahme","showImportBestellungspositionenPopupCommand","bestellungspositionGrid","importBestellungspositionenCommand","OnImportBestellungspositionenInWarenuebernahmeEvent","IdBestellungspositionList","warenuebernahmePosGridRowData","warenuebernahmeposition","OnDeleteIdWarenuebernahmepositionListEvent","IdWarenuebernahmepositionList","lieferant","onLieferantChanged","WarenuebernahmeEditUtils","registerModules","canActivateModule","isCloudAdministrator","isAdministrator","IsAdministrator","isSupport","IsSupport","moduleInfo","_moduleInfos","moduleIdStart","hasLizenz","hasOnlyCloudAdmin","hasCloudAdmin","hasBerechtigung","hasOnlyAdmin","hasOnlySupport","resetBerechtModules","_berechtModules","ModulList","Modul","hasBerechtigungDashboardUnternehmen","HasBerechtigung","lizenz","hasEinkaufVerkauf","hasMailImport","hasNewsletter","hasProduktion","hasSkript","hasWebshop","HasWooCommerce","hasKassa","hasMahnung","hasFibu","hasProjektzeiterfassung","hasLadeliste","hasArtikelverleih","hasBelegImportExport","hasProjektplanung","hasIntrastat","hasProjektzeitverrechnung","hasVariablerSetartikel","hasArbeitszeit","hasIntercompany","hasZahlungsverkehr","hasOSS","hasLagerOhneMHDCharge","HasEinkaufVerkauf","HasNewsletter","HasProduktion","hasProvision","HasProvision","HasSkript","HasWebshop","HasKassa","HasMahnung","HasFibu","HasLadeliste","HasArtikelverleih","HasBelegImportExport","HasProjektplanung","HasIntrastat","HasProjektzeitverrechnung","HasZahlungsverkehr","HasOSS","HasLagerOhneMHDCharge","moduleInfos","hasBenutzerrolle","showArtikelErsetzenCommand","idArtikelErsetzen","artikelNummer","doArtikelErsetzen","OnAngebotspositionArtikelErsetzenEvent","IdAngebotsposition","$m_Angebotsposition","refreshAngebotsgruppeButton","OnAngebotspositionVariableStuecklistenkomponentenErstellenEvent","copyAngebotsposition","OnAngebotspositionVariableStuecklisteAuswahlEvent","OnAngebotspositionVariablerSetartikelRabattEntfernenEvent","IdAngebotspositionSetartikel","OnAngebotspositionVariablerSetartikelManuellerPreisEntfernenEvent","OnAngebotspositionVariablerSetartikelPreisAendernEvent","$m_Angebot","onAngebotsgruppeChanged","IdAngebotsgruppe","$m_AngebotsgruppeEdit","$m_Angebotsgruppe","AngebotspositionEditUtils","activateCommand","$m_activateAccount","ConfirmPassword","ActivationKey","activationKey","activateAccount","onActivate","ActivateAccountFuncs","$m_Lieferscheinposition","refreshLieferscheingruppeButton","onLieferscheingruppeChanged","IdLieferscheingruppe","$m_LieferscheingruppeEdit","OnLieferscheinpositionVariablerSetartikelRabattEntfernenEvent","IdLieferscheinpositionSetartikel","OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernenEvent","OnLieferscheinpositionVariablerSetartikelPreisAendernEvent","LieferscheinpositionEditUtils","_manuellerTextCache","_dynFeldCache","OnDynamischesFeldHasManuellerTextEvent","kopftext","fusstext","OnDynamischesFeldUpdateManuellerTextEvent","Kopftext","Fusstext","showWertVorlageAuswahlPopup","htmlEditor","dynFeldWertVorlage","getDynFeldById","getDynFeldOptions","loadDynFelder","DynamischesFeldZuEntitaeten","loadDynFelderContainer","idDynFeldContainer","logikTyp","loadVorbelegungDynFelder","vorbelegungEvent","OnDynamischesFeldEvalVorbelegungEvent","idDynamischesFeldContainer","FirmaUmstellungMehrereFirmen","idWertAuswahlliste","IdWertAuswahlliste","getDynamischeEntitaetElementById","dynEntitaetElement","parseInt","IdDynamischeEntitaetElement","_objectService","attaching","checkFilterBuilderFieldOperators","fields","checkFilterBuilderAnyOfSupported","field","dataType","lookup","customOperations","displayInfo","customizeText","valueText","editorTemplate","conditionInfo","keyExpr","getValue","div","addTelefon","updateTelefonButton","telefon","href","addHomepage","updateHomepageButton","homepage","match","addBrief","updateBriefButton","addUid","updateUidButton","reloadUid","byUser","uidNummer","validateUidNummer","Exists","IsGueltig","Text","neuValidieren","showLoading","OnUIDValidierenEvent","UIDNummer","NeuValidieren","searchResult","showSearchPopup","SearchResultSearchService","_globalizationService","_dataSourceService","onDynFelderDataReloadRequested","_form","_options","loadDynFeldList","loadDynFeldContainer","getDynFeldAnzeigeList","anzeigeort","isDefault","elemente","getFilteredDynFeldList","feld","Anzeigeort","getDynFeldAnzeige","editorType","getWidgetType","isHtmlEditor","isDxEditor","feldAnzeige","colClass","BreiteMD","BreiteLG","useDxWidget","useHtmlEditor","eintrag","addBinding","getWidgetOptions","auswahllisteDatenquelle","idDynFeld","returnStore","hasVolltext","HasVolltext","WebApiOrderBy","getIdDynFeldContainer","IdArt","IdVorgEntitaet","VorbIdWertAuswahlliste","VorbWertText","VorbWertDatum","VorbWertNummer","WertText","WertDatum","idArt","zu","mehrzeiligerText","checkbox","auswahlliste","formatiertenText","Hoehe","Format","AuswahllisteDatenquelle","HasWertVorlagen","details","dynFeldZuEntitaet","IsPflicht","canWertAendernReadOnly","updateCanWertAendernButtons","IsReadOnly","CanAenderWennDatensatzErledigt","dynFeldContainer","showWertAendern","parentScopeContainer","_disposables","addDisposable","disposable","disposeAll","disposeScope","ArrayStore","PivotService","_statusService","Bestellung","bestellungGridData","idBestellungList","IdBestellungList","OnBestellungListBestaetigtEvent","OnBestellungListLieferdatumAendernEvent","onLieferdatumCellPrepared","_LieferdatumTyp","isOffen","getLieferdatumTypFarbe","BestellungListUtils","sources","source","shift","isObject","createObjectIfMissing","TicketKategorie","onFirmaChanged","$m_Gutschein","GutscheinEditUtils","_statusInfo","onCellPrepared","statusResult","idStatus","isErledigt","statusChanged","templatingExService","dynFeldDataService","dxCustomizeService","selectItemService","checkFilterInjectionModel","checkFilterInjection","getFilterGruppen","_filterGruppeList","FilterElemente","getFilterBuilderFeldList","filterFeldItemList","Name","Datentyp","Operatoren","DynFeldAuswahlliste","store","IdDynFeld","IdSelect","SelectFilter","SelectCustoms","addFilter","HasFilterManuell","filterInject","filterDefault","gruppe","IsVorbelegung","$v_filter","filterContainer","relativeContainer","$v_filterSearchtext","filtergruppeChanged","filterelementChanged","FilterService","routes","routeInfoId","registerAppChanging","registerShortcuts","registerTitleChanged","constructUrl","route","parameter","deactivate","navigationRoutes","existsNavigationRouteEx","getRoute","indexQuestionMark","searchRouteInfo","isRoute","fallbackRoute","getFallbackRoute","isFallback","routerInterceptorArgs","moduleIdPromise","getParameters","routerCanNavigateArgs","removeLastViewItem","newViewItem","ViewItem","addViewItem","viewItem","registerRoutes","validateRoutes","getNavigationRoutes","reset","setCurrentViewItem","reactivate","isAttached","childRoute","navigation","canActivate","navigationRoute","parts","part","isRoutePattern","routeParts","urlParts","routePart","indexOfBracket","lastIndexOfBrack","setFormTitle","newCurrentViewItem","isCurrent","doNeuerMitarbeiterstatus","arbeitszeitBenutzerZuteilung","$m_ArbeitszeitBenutzerZuteilung","idPartei","IdArbeitszeitPartei","idMitarbeiterstatus","IdArbeitszeitBenutzerZuteilung","ArbeitszeitBenutzerZuteilungEditUtils","aurelia","X_TIP_AUTH","X_TIP_AUTH_LOCAL_STORAGE","useSessionStorageForTemporarySessions","getAuthLocalStorageKey","getAuthorizationHeader","getAuthorizationHeaders","getAuthorizationToken","checkAlive","getAuthorizationKey","sessionStorage","getItem","localStorage","openApp","IsValid","showNotificationOnError","onBeforeLogin","AppId","AuthenticationToken","onAfterLoginCompleted","setItem","NeedsTwoFactorAuthKey","TwoFactorAuthKey","logout","removeItem","changePassword","isLoggedInChanged","app","setRoot","keyStr","origin","pathname","charCodeAt","headers","auth","navigator","onLine","response","hidden","setInterval","observable","Aurelia","DashboardTyp","widgets","registerWidgets","getCellsFromDefinition","definition","settings","minHeight","isDesignMode","getWidgets","dashboardTyp","supportedDashboardTyp","Allgemein","Geschaeftspartner","includes","settingViewModel","ueberschrift","showNewsletterAbmeldungen","showNewsletterAktivierungen","showOffeneAngebote","showOffeneAuftraege","showOffeneBestellung","showOffeneEingangsrechnungen","showOffeneFakturen","showOffeneKundenreklamationen","showOffeneLieferscheine","showOffenePosten","showOffeneProduktionen","showOffeneWarenuebernahmen","anzahl","art","TopKundenGPArt","Kunde","showDB","showAuftragseingang","showNetto","standard","StatistikVerkaufWertTyp","Netto","showNettoJahr","showNettoYTD","StatistikVerkaufZeitraumTyp","YTD","showEinsatz","showNettoMitForecast","nurAktiveDatensaetze","zeitraumTyp","WidgetService","showTaetigkeiten","geschaeftspartnerZuordnenCommand","doGeschaeftspartnerZuordnen","IdProjekt","$m_Projekt","IsManuell","doGeschaeftspartnerZuordnungenEntfernen","selectedRowsData","invalidSelectedKeys","projektdateienCommand","ProjektEditUtils","_formCommandService","fakturaStatusAendernCommand","changeFakturaStatus","$m_Lieferschein","OnLieferscheinAbschliessenEvent","onLieferscheinGewichtAktualisierenEvent","OnLieferscheinGewichtAktualisierenEvent","showImportAuftragPopupCommand","auftragGrid","importAuftraegeCommand","OnImportAuftragInLieferscheinEvent","lieferscheinPosGridRowData","lieferscheinposition","OnDeleteIdLieferscheinpositionListEvent","IdLieferscheinpositionList","onEvalLiefeRechnungsortData","fakturaStatus","OnLieferscheinFakturaStatusAendernEvent","LieferscheinEditUtils","getArtikelByNummer","getArtikelBySearchtextEindeutig","getIdHauptlieferant","idLieferant","idArtikelEinheit","Einheit","getUmrechner","Umrechner","onArtikeldatenChanged","positionData","getGeschaeftspartnerBasicDataById","needsAdresse","Adresse","getGeschaeftspartnerByNummer","getGeschaeftspartnerBySearchtextEindeutig","getGeschaeftspartnerBankverbindungList","showImportLieferscheinPopupCommand","lieferscheinpositionGrid","importLieferscheinpositionCommand","OnImportLieferscheinInLadelisteEvent","IdLadeliste","$m_Ladeliste","IdLieferscheinList","lieferscheinEntfernenCommand","IdLadelistePosList","OnLadelisteEntferneLieferscheineEvent","LadelisteEditUtils","$m_Bestellvorschlag","onBestellvorschlagBedarfClick","BestellvorschlagEditUtils","bindingEngine","widgetCreator","permission","functions","browser","windowService","dialogConfirm","formInfoService","onReactivated","BindingEngine","ErrorService","NestedForms","Variables","EditPopups","FormInfoService","authKey","encodeURIComponent","getInlineUrl","downloadUrl","inline","upload","formData","FormData","onExporting","prepareOptions","excelExporter","onExported","exportPivotGrid","workbookName","workbook","ExcelJS","Workbook","worksheetName","worksheet","addWorksheet","saveAndOpenWorkbookAfterExport","exporting","saving","xlsx","writeBuffer","buffer","saveAs","Blob","_router","_routesCreator","_header","_headerCommand","_layout","_startup","_file","_searchResultSearch","_shortcut","_status","_kondition","_waehrung","_templateRegister","_formExtender","_filter","_style","_validationEx","_formLayoutService","_widgetExtenderService","_tagService","_routes","configureHeader","activate","loadRoutes","loadStartupInfo","loadMandantDaten","startupInfoLoaded","allowAllPermission","attached","registerAvatarUrlChanged","registerStartupInfoLoaded","registerHeaderSearch","registerMandantSwitched","registerMandantChanged","registerHtmlEditorMention","_avatarUrlChangedSubscription","_startupInfoLoadedSubscription","_headerSearchSubscription","_headerShowSearchPopupSubscription","_mandantSwitchedSubscription","_mandantChangedSubscription","_htmlEditorMentionSubscription","createRoutes","routesStructure","routesForm","routeAuswertung","auswertungList","auswertung","orderRoutes","benutzerAvatarUrlChanged","avatarUrl","autoLoadMandantDaten","isSearchRegistered","urlToNavigate","mandantSwitched","aufgabeAnzahlChanged","benachrichtigungAnzahlChanged","briefAnzahlChanged","mailAnzahlChanged","mandantChanged","mentionKey","mention","dashboard","dashboardIndex","_startupInfo","Benutzername","AvatarDownloadKey","Logo","setLogoUrl","themeColor","activateTheme","memoryTest","isEdit","switchForm","App","RoutesCreatorService","TemplateRegisterService","cb","require","getFirmaBezeichnungById","getFirmaSteuerInformationListByIdFirma","doAktualisierenCommand","loadQueries","doKillSessionsCommand","sessionIdList","SessionId","OnDatabaseKillSessionEvent","SessionIdList","doStatistikenAktualisierenCommand","OnDatabaseUpdateStatisticsEvent","OnDatabaseRunningQueryRequestEvent","DatabaseQueryList","DatenbankInfoListUtils","create","node","blotName","tagName","Quill","import","CustomTabBlot","commandService","bindingService","defaultHeaders","quill","getQuillInstance","configurePasteWithoutFont","rebindTabKey","mentions","toolbarItems","allowImages","addImageButton","allowHeaders","formatName","formatValues","allowColors","variableEscapeChars","escapeChar","addCommandDataToToolbar","clipboard","addMatcher","Node","ELEMENT_NODE","delta","ops","attributes","font","size","insert","tabBindings","keyboard","bindings","insertEmbed","setSelection","getHtmlEditor","_imgUpload","accept","files","reader","FileReader","onload","selection","getSelection","pasteIndex","getLength","src","readAsDataURL","click","_commandData","_druckenService","showEditor","briefEmpfaengerTagBoxOptions","getTagBoxItemTemplate","getTagBoxTagTemplate","$f_briefEditUtils","$m_Brief","BriefZuEmpfaenger","addItemOfEmpfaengerList","removeItemOfEmpfaengerList","briefEmpfaengerCCTagBoxOptions","BriefZuCC","briefEmpfaengerBCCTagBoxOptions","BriefZuBCC","showDivAdresse","IdAdresse","HasDiverseAdresse","hideDivAdresse","doVersendenEmail","BriefVersendenTyp","doDrucken","Drucken","doDruckvorschau","preview","showHtmlBriefOptions","write","TextHtml","close","__BriefZuEmpfaenger_Empfaenger","IdEmpfaenger","__BriefZuCC_Empfaenger","__BriefZuBCC_Empfaenger","IsDruckJobAktiv","briefEmpfaengerDataSource","getBriefEmpfaengerFilterList","briefEmpfaengerCCDataSource","briefEmpfaengerBCCDataSource","loadOptionsFilter","el","entry","versandTyp","OnBriefVersendenEvent","IdBrief","VersandTyp","execOptions","BriefEditUtils","_manualClose","_socket","WebSocket","getWebSocketUrl","onmessage","Data","onclose","tryToReconnect","unsuscribe","NotificationService","getPersonBasicDataById","getIdPersonVorbelegung","requestTyp","OnPersonRequestEvent","Telefon","Mobiltelefon","createMappings","mapping","setVariable","nestedForm","to","checkPrimitiveType","doMahnungVersenden","OnMahnungVersendenEvent","IdMahnung","$m_Mahnung","MahnungEditUtils","_angebotService","hasAngebotsgruppePositionenZugeteilt","AngebotsgruppeEditUtils","AngebotService","showVerkaufDetail","verkaufElement","showEinkaufDetail","einkaufElement","StatistikService","logo","user","logoUrl","default","avatarUrlChanged","image","avatarStyle","popover","header","avatarPopover","$idEinstellung","EinstellungEditUtils","viewModelItem","customClassName","debug","testing","onEditPopupShown","_editPopups","showInstance","isInitialized","initializeContent","idContent","onContentTemplateRendered","modelLoadedArgs","savedCallback","callOnCommandsLoaded","toolbarOptions","showing","shown","dispatchOnReady","hiding","doFreigebenCommand","OnImportFreigebenEvent","IdImport","doCreateVorlageCommand","OnImportCreateVorlageEvent","ImportEditUtils","loadData","StatusListUtils","validators","registerRequired","registerConditionalRequired","registerEmail","registerEmailMultiple","registerStringLength","registerIBAN","registerBIC","registerDuration","registerAHVNr","registerSVNr","registerTelefonLandvorwahl","validator","condition","pattern","durationPeriodTypeParameter","durationPeriodType","trim","OnBestellungBestaetigtEvent","icAuftragErstellenCommand","OnAuftragIntercompanyErstellenEvent","doWarenuebernahmeErstellenCommand","OnErstelleWarenuebernahmeAusBestellungEvent","IdBestellungPosList","bestellungKopieErstellenCommand","OnBestellungspositionenInNeueBestellungUebernehmenEvent","IdBestellungKopie","OnBestellungKondAktualisierenEvent","OnBestellungPositionenSortierenEvent","bestellungPosGridRowData","bestellungsposition","OnDeleteIdBestellungspositionListEvent","IsGeaendert","BestellungEditUtils","customEditPopup","_isClickRegistered","_onElementClicked","onElementClicked","display","removeEventListener","getEditPopup","openEditPopup","personEditPopup","geschaeftspartnerEditPopup","OpenEditCustomAttribute","Element","___CSS_LOADER_API_IMPORT___","_widgetService","cells","tabDataSource","tabsOptions","selectedIndex","selectedDashboardIndex","mainModelChanged","loadDashboard","currentDashboard","selectedDashboardIndexChanged","dashboardList","Definition","bindable","Viewer","_element","widgetModel","_bindingContext","onSettingClick","dispatchEvent","bubbles","widgetViewModel","onDeleteClick","WidgetToolbar","_aufgabeBenutzer","aufgabeListViewOptions","showAufgabePopup","aufgabeStatusAendernButtonOptions","erledigenAufgabe","Sachbearbeiter","aufgabeUrl","heute","aufgabeEditPopup","aufgabeErledigenEvent","OnAufgabeErledigenRequestEvent","IdAufgabe","AufgabeTags","idAuswertung","widgetUeberschrift","Auswertung","auswertungOptions","reloadData","widgetSettings","loadDataSource","AuswertungSettings","entitaetListViewOptions","ObjektTypeName","typeNameEntitaet","Erledigt","entitaetListView","replaceDataSource","EntitaetTags","tagBoxOptions","loadEntitaetenDataSource","entitaetBoxOptions","doShowAktivBoxOptions","loadTagDataSource","dataSourceEntitaeten","dataSourceTags","EntitaetTagsSettings","typList","StatistikKennzahlenTyp","OffeneBestellungen","OffeneWarenuebernahmen","OffeneEingangsrechnungen","OffeneAngebote","OffeneAuftraege","OffeneLieferscheine","OffeneFakturen","OffenePosten","OffeneKundenreklamationen","OffeneProduktionen","AnzNewsletterAnmeldung","AnzNewsletterAbmeldung","OnStatistikKennzahlenEvent","TypList","getFirmaBezeichnung","itemList","FilterInject","Where","firmaBezeichnung","Kennzahlen","firmaSelectBoxOptions","doShowOffeneBestellungCheckBoxOptions","doShowOffeneEingangsrechnungCheckBoxOptions","doShowOffeneAuftraegeCheckBoxOptions","doShowOffeneFakturenCheckBoxOptions","doShowOffeneKundenreklamationCheckBoxOptions","doShowOffeneWarenuebernahmeCheckBoxOptions","doShowOffeneAngeboteCheckBoxOptions","doShowOffeneLieferscheineCheckBoxOptions","doShowOffenePostenCheckBoxOptions","doShowOffeneProduktionenCheckBoxOptions","doShowNewsletterAktivierungenCheckBoxOptions","doShowNewsletterAbmeldungenCheckBoxOptions","loadFirmaDataSource","firmaDataSource","KennzahlenSettings","offeneAuftraegeListViewOptions","KundeAdresse","getCellFormat","returnCss","OffeneAuftraegeSettings","_statistikVerkaufService","pieChartOptions","legend","orientation","itemTextPosition","horizontalAlignment","verticalAlignment","columnCount","resolveLabelOverlapping","series","argumentField","valueField","label","connector","onPointClick","showStatistikDetail","updateChartHeight","onWertClick","zeitraumTypValue","year","Vorjahr","UmsatzWhereTyp","Jahr","getIdGeschaeftspartner","getIdArtikel","Datum","entitaetFullname","ArtikelGeschaeftspartner","IdIncludeList","IdExcludeList","StatistikVerkaufDetailViewTyp","Statistik","setUeberschrift","setZeitraumTypUeberschrift","darstellungTyp","OnStatistikGruppiertDashboardEvent","ZeitraumTyp","Anzahl","ShowRest","showRest","DataList","zeitraum","dynFeld","chartHeight","pieChart","StatistikGruppiert","entitaetDataSource","Value","zeitraumDataSource","darstellungDataSource","StatistikDarstellungTyp","Tabelle","Kreisdiagramm","loadDynFeldDataSource","dynFeldBoxOptions","zeitraumBoxOptions","numberBoxOptions","doShowRestBoxOptions","darstellungBoxOptions","dynFeldDataSource","isArtikelOrGeschaeftspartner","bezWert","bezVergl","OnTopArtikelEvent","onVergleichClick","TopArtikel","anzahlOptions","TopArtikelSettings","_statistikService","Lieferant","OnTopKundeEvent","Art","TopKunden","geschaeftspartnerartOptions","TopKundenSettings","statistikWertTyp","wertAuftragseingangButtonOptions","Auftragseingang","wertNettoButtonOptions","wertDBButtonOptions","DB","WhereWert","onWertVergleichClick","WhereVergleich","onWertVergleich2Click","WhereVergleich2","OnUmsatzAktuellEvent","WertTyp","UmsatzAktuell","setValueSelectBox","doShowNettoCheckBoxOptions","doShowAuftragseingangCheckBoxOptions","doShowDBBoxOptions","selectBoxOptions","UmsatzAktuellSettings","_jsonService","commonSeriesSettings","argumentAxis","argumentType","valueAxis","zIndex","customizeTooltip","argumentText","seriesName","WaehrungCode","percent","getValueFields","valueFields","Info","DataField","Land","statistikZeitraumTyp","ytdButtonOptions","jahrButtonOptions","render","OnUmsatzLandEvent","Bez","total","UmsatzLand","doShowNettoYTDCheckBoxOptions","doShowNettoJahrCheckBoxOptions","UmsatzLandSettings","DisplayType","displayType","chart","NettoMitForecast","Forecast","getCellValue","showRowLines","sorting","customizeExcelCell","gridCell","IsDiff","fillPatternColor","fillPatternType","bold","numberFormat","onCellClick","wertNettoMitForecastButtonOptions","wertEinsatzButtonOptions","Einsatz","diagrammButtonOptions","gridButtonOptions","exportGridButtonOptions","OnUmsatzMonatEvent","chartOptions","JahrVergleich2","JahrVergleich","gridData","Vergleich2","Vergleich","sum","diff1","calcDiff","diff2","obj1","obj2","fontWeight","Math","abs","UmsatzMonat","doShowNettoMitForecaseCheckBoxOptions","doShowEinsatzCheckBoxOptions","doShowDBCheckBoxOptions","UmsatzMonatSettings","adresseService","modelUtilsService","requiredOptions","isAdresseReadOnly","firmenbez1Options","setMainModelDirty","firmenbez2Options","firmenbez3Options","plzOptions","checkLandPlzOrt","ortOptions","strasseOptions","landOptions","autocomplete","isDelayed","adresse","adressePropertyName","setAdresse","idAdresse","idAdresseChanged","oldVal","resetAdresse","Firmenbez1","Firmenbez2","Firmenbez3","Strasse","IdLand","PLZ","Ort","setAdresseByGeschaeftspartner","adr","OnLandPlzQueryOrtEvent","Plz","defaultBindingMode","bindingMode","twoWay","_simpleWidgetCreatorService","_routeService","popupOptions","filterRow","getIdAndShow","formBase","getExtendedIds","IdKundeAdresse","IdRechnungsortAdresse","IdLieferortAdresse","IdLieferantAdresse","IdSteuer","Aendprot","anzNumberBoxOptions","onDisposed","_simpleWidgetCreator","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupOptions","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupCommands","isDataValid","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopup","arbeitszeitAbrechnungsmodellArbeitszeitmuster","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidationGroup","gueltigVonDateBoxOptions","arbeitszeitmusterSelectBoxOptions","abrechnungsmodellSelectBoxOptions","loadArbeitszeitmusterDatasource","loadAbrechnungsmodellDatasource","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidation","mitarbeiterstatus","Eintrittsdatum","arbeitszeitmusterList","abrechnungsmodellList","ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit","columnResizingMode","onNeuButtonClick","arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit","IdMitarbeiterstatus","IdArbeitszeitmuster","IdAbrechnungsmodell","loadMitarbeiterstatusAbrechnungsmodellArbeitszeitmusterZuteilung","mitarbeiterstatusChanged","ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungList","arbeitszeitAnspruchsgruppeZuteilungEditPopupOptions","arbeitszeitAnspruchsgruppeZuteilungEditPopupCommands","arbeitszeitAnspruchsgruppeZuteilungEditPopup","arbeitszeitAnspruchsgruppe","arbeitszeitAnspruchsgruppeZuteilungEditValidationGroup","anspruchsgruppeSelectBoxOptions","loadAnspruchsgruppeDatasource","arbeitszeitAnspruchsgruppeZuteilungEditValidation","anspruchsgruppeList","ArbeitszeitAnspruchsgruppeZuteilungEdit","arbeitszeitAnspruchsgruppeZuteilungEdit","arbeitszeitAbspruchsgruppe","IdAnspruchsgruppe","loadMitarbeiterstatusAnspruchsgruppeZuteilung","ArbeitszeitAnspruchsgruppeZuteilungList","arbeitszeitBeschaeftigungsausmassZuteilungEditPopupOptions","arbeitszeitBeschaeftigungsausmassZuteilungEditPopupCommands","arbeitszeitBeschaeftigungsausmassZuteilungEditPopup","arbeitszeitBeschaeftigungsausmass","arbeitszeitBeschaeftigungsausmassZuteilungEditValidationGroup","beschaeftigungsausmassNumberBoxOptions","arbeitszeitBeschaeftigungsausmassZuteilungEditValidation","ArbeitszeitBeschaeftigungsausmassZuteilungEdit","arbeitszeitBeschaeftigungsausmassZuteilungEdit","BeschaeftigungsausmassProzent","Beschaeftigungsausmass","loadMitarbeiterstatusBeschaeftigungsausmassZuteilung","ArbeitszeitBeschaeftigungsausmassZuteilungList","arbeitszeitFreieInformationEditPopupOptions","arbeitszeitFreieInformationEditPopupCommands","freieInformationDetail","arbeitszeitFreieInformation","IdFreieInformationDetail","ObjectType","valueString","valueBoolean","valueNumber","arbeitszeitFreieInformationEditPopup","arbeitszeitFreieInformationEditValidationGroup","gueltigBisDateBoxOptions","freieInformationSelectBoxOptions","freieInformationDetailList","valueNumberBoxOptions","valueTextBoxOptions","valueCheckBoxOptions","loadFreieInformationDetailDatasource","parseFloat","arbeitszeitFreieInformationEditValidation","ArbeitszeitFreieInformationEdit","onRowClick","arbeitszeitArbeitszeitFreieInformationEdit","saveFreieInformation","idParteiChanged","loadParteiFreieInformationen","IdPartei","ArbeitszeitFreieInformationList","arbeitszeitGehaltsschemaZuteilungEditPopupOptions","arbeitszeitGehaltsschemaZuteilungEditPopupCommands","arbeitszeitGehaltsschemaZuteilungEditPopup","arbeitszeitGehaltsschema","arbeitszeitGehaltsschemaZuteilungEditValidationGroup","gehaltsschemaSelectBoxOptions","loadGehaltsSchemaDatasource","arbeitszeitGehaltsschemaZuteilungEditValidation","gehaltsSchemaList","ArbeitszeitGehaltsschemaZuteilungEdit","arbeitszeitGehaltsschemaZuteilungEdit","IdGehaltsschema","loadMitarbeiterstatusGehaltsschemaZuteilung","ArbeitszeitGehaltsschemaZuteilungList","arbeitszeitKalenderZuteilungEditPopupOptions","arbeitszeitKalenderZuteilungEditPopupCommands","arbeitszeitKalenderZuteilungEditPopup","arbeitszeitKalender","arbeitszeitKalenderZuteilungEditValidationGroup","kalenderSelectBoxOptions","loadKalenderDatasource","arbeitszeitKalenderZuteilungEditValidation","kalenderList","ArbeitszeitKalenderZuteilungEdit","arbeitszeitKalenderZuteilungEdit","IdKalender","loadMitarbeiterstatusKalenderZuteilung","ArbeitszeitKalenderZuteilungList","arbeitszeitKostenstelleZuteilungEditPopupOptions","arbeitszeitKostenstelleZuteilungEditPopupCommands","arbeitszeitKostenstelleZuteilungEditPopup","arbeitszeitKostenstelle","arbeitszeitKostenstelleZuteilungEditValidationGroup","kostenstelleSelectBoxOptions","loadKostenstelleDatasource","arbeitszeitKostenstelleZuteilungEditValidation","kostenstelleList","ArbeitszeitKostenstelleZuteilungEdit","arbeitszeitKostenstellZuteilungEdit","IdKostenstelle","loadMitarbeiterstatusKostenstelleZuteilung","ArbeitszeitKostenstelleZuteilungList","months","arbeitszeitLohnexportErstellenPopupOptions","monatBoxOptions","jahr","monat","jahrBoxOptions","arbeitszeitLohnexportInfoOptions","lohnexportInfo","arbeitszeitLohnexportInfoList","showLohnexportSettingInfo","arbeitszeitLohnexportInfoKalkulierbarList","LohndatenberechnungEinstellungenKalkulierbarList","arbeitszeitLohnexportInfoNichtKalkulierbarList","LohndatenberechnungEinstellungenNichtKalkulierbarList","arbeitszeitLohnexportErstellenPopupCommands","idLohnexportInfo","setHours","arbeitszeitLohnexportErstellenPopup","loadLohnexportInfoLaden","ArbeitszeitLohnexportErstellen","arbeitszeitMitarbeiterstatusAustrittPopupOptions","arbeitszeitMitarbeiterstatusAustrittPopupCommands","arbeitszeitMitarbeiterstatusAustrittPopup","austrittDatum","arbeitszeitMitarbeiterstatusAustrittValidationGroup","austrittDateBoxOptions","austrittDateBox","arbeitszeitMitarbeiterstatusAustrittValidation","ArbeitszeitMitarbeiterstatusAustritt","arbeitszeitMitarbeiterstatusPopupOptions","arbeitszeitMitarbeiterstatusPopupCommands","arbeitszeitMitarbeiterstatusPopup","arbeitszeitBenutzerzuteilung","arbeitszeitMitarbeiterstatusValidationGroup","personalnummerNumberBoxOptions","vordienstzeitenMonateNumberBoxOptions","vordienstzeitenTageNumberBoxOptions","eintrittsDatumBoxOptions","gehaltsSchemaSelectBoxOptions","arbeitszeitBenutzerZuteilungValidation","ArbeitszeitMitarbeiterstatus","_headerCommandService","popoverOptions","kommenButtonOptions","postStempeln","idZeitartKommen","gehenButtonOptions","idZeitartGehen","zeitartBoxOptions","kommentarTextBoxOptions","jetztButtonOptions","idZeitart","kommentar","vormerkenButtonOptions","zeitart","zeitartList","IsVormerk","CanAddKommentar","targetElement","loadBenutzerStatus","loadSaldo","loadZeitartList","loadZeitartKommen","loadZeitartGehen","idBenutzer","benutzerStatus","saldo","isVormerk","IdZeitart","Kommentar","ArbeitszeitStempelnCommand","_artikelSearchService","_gridLayoutService","searchResultDataGridOptions","_onArtikelSelected","searchResultPopup","remoteOperations","filtering","searchResultPopupOptions","onHidden","_onArtikelSelectedCancel","searchTextBoxOptions","focusSearchTextBox","artikelSearchResult","gridColumnExtenderResult","resources","optionsCaption","searchListDataSource","Artikelart","optionsWhere","optionsFilters","dynamicColumns","onArtikelSelected","onArtikelSelectedCancel","searchResultDataGrid","getCombinedFilter","clearFilter","searchTextBox","select","ArtikelSearchResult","ArtikelSearchService","isRequired","isBezeichnungEditierbar","validatorOptions","artikelNummerOptions","updateArtikelButtons","onArtikelChanged","resetData","artikelBezeichnungOptions","hasOwnBezeichnung","setArtikelData","setBezeichnung","isReadOnlyChanged","r1","setIdArtikel","r2","showArtikelSearchPopup","isResetByCode","setNummer","resetValidation","isChangeByCode","sender","forceUpdateBezeichnung","IsBezeichnungEditierbar","Nummer","artikelBezeichnung","shiftKey","openArtikelInNewTab","openArtikelPopup","isReadOnlyChecked","getViewUrl","artikelEditPopup","artikelkategorieTreeViewOptions","parentIdExpr","dataStructure","showCheckBoxesMode","selectNodesRecursive","onItemSelectionChanged","changeSelection","selected","loadTreeViewDataSource","artikelkategorieTreeView","unselectAll","Artikelkategorien","IdArtikelkategorie","expandAll","treeViewDataSource","isSelected","artKatList","selectedKeysList","Artikelkategorie","reserviertGridOptions","onRowPrepared","IsGleichzeitig","rowElement","fontStyle","IdArtikelverleih","reserviertList","refreshNow","idLagerChanged","idArtikelverleihChanged","datumVonChanged","datumBisChanged","_refreshTimeout","idLager","OnArtikelverleihVerfuegbarEvent","IdLager","idArtikelverleih","datumVon","datumBis","verfuegbarList","VerfuegbarList","ReserviertList","ArtikelverleihVerfuegbar","needsReload","aufgabeOptions","onShowing","repaint","aufgabeListView","newAufgabeButtonOptions","onNewAufgabeClicked","showAllAufgabeButtonOptions","onAlleAnzeigenClicked","_anzahlChangedSubscription","loadAnzahl","_commandShowingSubscription","setModelData","isHeaderCommand","firstElementChild","done","goToAufgabeList","aufgabeAnzahlEvent","OnAufgabeAnzahlRequestEvent","AufgabeBenutzer","textColor","borderColor","AnzahlErinnernFaellig","badgeTextColor","badgeBorderColor","_idProjekt","AufgabeCommand","formCommand","headerCommand","_availableForms","showAufgabeFormCommand","addAufgabeFormCommand","_aufgabeFormCommandSubscription","loadAufgabeBadge","_detachedShowCommand","addAvailableForm","deleteAvailableForm","_detachedAddCommand","commandToReload","AufgabeFormCommand","showKommentareButtonVisible","showKommentareAbIndex","showKommentareStandard","showKommentarButtonOptions","kommentarList","showKommentarButtonText","saveAufgabeKommentarButtonOptions","loadKommentar","idAufgabeChanged","dispatchKommentarChanged","idAufgabe","KommentarHtml","showKommentarButton","AufgabeKommentar","AnlageBenutzer","IdAnlageBenutzer","AnlageBenutzerInitiale","marginRight","marginLeft","setContent","_currentAvatarDownloadKey","dataChanged","avatarDownloadKey","AvatarUrl","BenutzerList","Initiale","toUpperCase","highlight","Avatar","_verknuepfteEntitaetService","benachrichtigungOptions","benachrichtigungListviewOptions","goToBenachrichtigung","gelesenBenachrichtigungButtonOptions","onBenachrichtigungGelesen","verknuepfteEntitaetButtonOptions","benachrichtigungEditPopup","OnBenachrichtigungGelesenEvent","IdBenachrichtigung","OnBenachrichtigungAnzahlRequestEvent","benachrichtigungEvent","BenachrichtigungCommand","_briefService","showBriefFormCommand","addBriefFormCommand","briefPopoverOptions","briefListView","briefListViewOptions","goToBrief","briefPopover","_idVerknuepfteEntitaet","_briefFormCommandSubscription","loadBriefBadge","saveModelOnExecute","OnBriefAnzahlRequestEvent","brief","BriefFormCommand","mengeLagEH","scrollViewOptions","lagerSelectBoxOptions","mengeNumberBoxOptions","refreshButtonOptions","detailTreeListOptions","openTree","detailList","k","expandRow","bestandDataGridOptions","puffer","PufferPeriodeZwischenProduktion","umrechner","showLager","showMenge","setStandardLager","_idStandardlager","idFiliale","bestandList","lieferdatum","bereitstelldatum","hasFehlendeBeschaffungsperiode","OnCalcLieferterminEvent","MengeLagEH","Bereitstelldatum","DetailList","BestandList","CalcLiefertermin","briefEditPopup","projektEditPopup","notizEditPopup","prodAuftragEditPopup","CustomEditPopupContainer","_dmsViewerService","_isDokumentVersion","_selectAfterContentReady","MimeType","currentVersionDokument","hasSelectedDokument","dmsViewerPopupCommands","deleteSelectedDokumente","downloadSelectedDokumente","sendSelectedDokumente","isDruckJobAktiv","template","onSendDruckJob","neueVersionPopup","versionPopup","dmsViewerPopupOptions","dokumentGrid","neueVersionPopupOptions","versionPopupOptions","onHiding","dokumentGridOptions","getDmsGridOptions","versionGridOptions","fileUploaderOptions","clearCurrentValueAfterUpload","onFileKeyChanged","neueVersionUploaderOptions","dokumentenartSelectBoxOptions","currentGrid","versionGrid","setDataSources","dokumentCommand","_detachedCommand","containerOrIdDokumentContainer","localizationAnzahl","dmsViewerPopup","getDokumentToSave","dmsLinkValue","setVersion","toSave","savedDokument","onNewDokumentSaved","selectedRowKeys","updateSendDokumentCommand","selectRowsByIndexes","dokumentKey","getDokumentKeyByAnzahlVersion","AnzahlVersionen","toDelete","getSelectedDMSLinkList","dmsLInk","versionNr","versionGridDataSource","VersionNr","cmdId","dokumentGridDataSource","Dokumentenart","searchPanel","DmsViewer","mimeType","DokumentViewer","drucken","templating","druckenPopupCommands","onSendDokumentClick","anzAusdruckeVorb","druckenPopupOptions","druckenContextMenuOptions","my","at","empfaengerList","druckenPopup","dokumentList","druckenContextMenu","DruckenCommand","wertAendernPopupOptions","onShown","wertAendernOptions","wertEditor","wertAendernSpeichernCommand","saveWertAendern","Container","feldOptions","wertOptions","wertAendernPopup","wertAendernValidationGroup","wert","OnDynamischesFeldUpdateWertEvent","DynFeldContainer","dataSourceService","simpleWidgetCreatorService","dynFelderService","_centerPopup","wertVorlagePopupOptions","wertVorlageDataGridOptions","wertVorlagePopup","dangerouslyPasteHTML","indexCursorHtmlEditor","dynFeldId","setGridDataSources","wertVorlageGridDataSource","DynamischesFeld","wertVorlageDataGrid","DynFeldWertVorlage","IdVerknuepft","hasNotiz","HasVerknuepftNotiz","HasNotiz","showNotizListPopover","getId","notizShowListPopover","EntitaetMenu","filterService","searchtextOptions","filterManuellButtonOptions","filterManuellFeldList","loadFilterFeldList","showFilterBuilder","filterManuellPopupOptions","filterManuellPopupCommands","setFilter","filterBuilder","filterManuellPopup","filterBuilderOptions","filterInjectData","isAktiv","filterGruppen","idElementAktiv","getIdElementAktiv","onFilterInjectClicked","idGruppe","OnFilterFeldRequestEvent","FeldList","currentFilter","filterManuell","Filter","_onGeschaeftspartnerSelected","_onGeschaeftspartnerSelectedCancel","Geschaeftspartnerart","onGeschaeftspartnerSelected","onGeschaeftspartnerSelectedCancel","GeschaeftspartnerSearchResult","_taskQueueService","validationFieldName","geschaeftspartnerValidationOptions","rule","geschaeftspartnerNummerOptions","updateGeschaeftspartnerButtons","onGeschaeftspartnerChangedNummer","onGeschaeftspartnerChangedText","resetGeschaeftspartner","ansprechpersonOptions","updateAnsprechpersonButtons","dispatchAnsprechpersonChanged","isDiverserGeschaeftspartner","OverrideContext","geschaeftspartnerNummer","idGeschaeftspartnerChanged","setGeschaeftspartnerDataById","showAnsprechperson","updateAdresse","adresseElement","idAnsprechpersonChanged","setAnsprechpersonDataById","setGeschaeftspartner","showGeschaeftspartnerSearchPopup","idAnsprechperson","telefonAnsprechperson","setGeschaeftspartnerNummer","loadAnsprechperson","personTyp","OnIsDiverserGeschaeftspartnerEvent","isDiversResult","IsDivers","idAnsprechpersonOld","openGeschaeftspartnerInNewTab","openGeschaeftspartnerPopup","ansprechperson","openAnsprechpersonInNewTab","openAnsprechpersonPopup","isReadOnlyAnsprechperson","update","_startupInfoLoaded","HeaderCommands","idAuftragChanged","LieferortAdresse","LieferortAnsprechperson","Anrede","lieferadresse","lieferadresseAnsprechperson","BestellungStreckengeschaeft","idChanged","_loadedId","OnInfobarDynFeldRequestEvent","DynamischeFelder","fehlerList","loadFehler","idRechnungsortChanged","_timeout","OnFehlerRequestEvent","idRechnungsort","FehlerList","Fehler","bankverbindungList","bankverbindungWhere","GeschaeftspartnerInfo","typeNameChanged","idFilialeChanged","_loadTimeout","OnInfoBVRohwareRequestEvent","IdFiliale","DetailFWList","DetailRWList","DetailVerwandtList","InfoBvRohware","getIdLieferfiliale","IsRechnungsadresse","Infobar","OnLagerbestandRequestEvent","LagerbestandList","lines","Bestand","Bestellt","Produktion","Reserviert","Frei","Lagerbestand","letzteAktivitaetenLadenButtonOptions","showLetzteAktivitaeten","Beschreibung","Ausgangspunkt","OnCreateLoggingEvent","typeFilterSelectBoxOptions","getTypeInfo","_currentTypeFilter","refreshListView","letzteAktivitaetenListViewOptions","getTypeNameFilter","showLetzteAktivitaetenChanged","clearCurrentTypeFilter","typeFilterSelectBox","letzteAktivitaetenListView","LetzteAktivitaeten","notizListViewOptions","onNotizClicked","geschaeftspartnerNotizListViewOptions","artikelNotizListViewOptions","projektNotizListViewOptions","_notizAnzahlChangedSubscription","notizAnzahlChanged","reloadNotizen","notizListView","geschaeftspartnerNotizListView","artikelNotizListView","projektNotizListView","notiz","notizShowEditPopup","Notiz","anlageinfo","AnlageDatum","NotizItem","fakturaService","entitaetInfoService","onFakturaClick","betragOffenGesamt","BetragOffen","projekteListViewOptions","projekteListView","Projekte","OnAuftragRequestStatistikEvent","HasData","StatistikAuftrag","idProjektChanged","OnProjektRequestStatistikEvent","StatistikProjekt","verknEntitaetListViewOptions","VerknuepftTypeName","showNotizenButtonOptions","_refreshSubscription","verknEntitaetListView","zuletztArtikelListViewOptions","addArtikel","Lieferschein","idKundeChanged","zuletztArtikelListView","ZuletztGekaufteArtikel","waehrungService","firmaService","kalkulationModel","firmaOptions","artikelOptions","berechnungVersionOptions","kundeOptions","mengeOptions","datumOptions","waehrungOptions","kalkulationButtonOption","idBerechnungsversion","kalkulation","waehrungList","Alles","KalkulationContainer","taskqueue","DEFAULT_ANZ_KOMMASTELLEN","feldInfo","onFeldValueChanged","onKeyDown","keyCode","nettoWertOptions","steuerWertOptions","bruttoWertOptions","customWaehrungOptions","wertPerOptions","staffelOptions","IdKalkulationContainer","isKalkulationKopf","steuersatz","idBerechnungsversionChanged","checkReadOnly","loadKalkulationFelder","restoreKalkulationLayout","needsLoadKonditionen","kalkulationEventOptions","getKalkulationEventOptions","kalkulationOptions","hasMainModelOrArtikelChanged","InputList","_InputItemList","OutputList","WertNetto","WertSteuer","WertBrutto","updateBerechnung","idKalkulationContainer","OnKalkulationItemRequestEvent","getKalkulationEventDataOptions","InputItemList","FixList","FixItemList","OutputItemList","PosList","PosItemList","SteuerPosList","kalkulationLayoutData","Konditionsfeld","kalkulationEvent","OnKalkulationFeldRequestEvent","IdBerechnungsversion","IsKalkulationKopf","addKondition","addBerechnung","addFehlendeFelder","sortLayout","konditionList","createLayoutFeld","WaehrungISO4217","wertPer","staffel","_inputKondition","berechnungList","berechnung","_isWertPerVisible","_isStaffelVisible","IsSichtbar","_code","_isReadOnly","_isAenderbar","_sortNr","VorbWaehrungISO4217","HasWertPer","HasStaffel","SortNr","_typ","IsAenderbar","_format","getFormat","OnDoKalkulierenEvent","MengeVerrVerpEH","LoadKonditionen","IdKopf","idKopf","IdPos","idPos","IsGratis","isGratis","IsFromWebshop","isFromWebshop","getPosList","getSteuerPosList","getInputList","getFixList","posList","steuerPosList","inputList","fixList","updateKalkulation","propertyNameToUpdate","newFeldValue","updateFeldInputList","updatedOutput","Berechnungsfeld","updateFeldWerte","kalkulationOutput","konditionToUpdate","propertyNameToChange","attribute","Kalkulation","kopierenFormCommand","copyObjekt","idSourceObjekt","copyFunc","doCopy","getCustomCopyFunc","customCopyFunc","customData","currentForm","funcNamespace","copyFuncName","funcNameIndex","onKopierenRequest","IdTargetObjekt","notifySuccess","KopierenFormCommand","mailOptions","mailListViewOptions","goToMail","showAllMailButtonOptions","mailListView","scrollToTop","goToMailList","mailEvent","OnMailImportItemAnzahlRequestEvent","MailCommand","mhdChargeList","mhdChargeBestandList","fireMengeEditorValueChanged","openPopupButtonOptions","compareMHDCharge","item1","item2","isEquals","Charge","MHD","mhdChargeContainer","MHDChargeEintraege","bestand","Ref","MaxMengeVerpEH","round","currentTarget","mhdChargeMengeNumberBoxOptions","useButtonOptions","maxMengeVerp","mengeVerp","mengeRest","mengeZiel","submitButtonOptions","deleteList","remove","ref","MHDChargeContainer","mengeProperty","cancelButtonOptions","isReadOnlyInternal","hasMhdCharge","loadArtikelData","loadLagerData","loadEinheit","loadMHDChargeContainer","artikelChanged","idEinheitChanged","isMhdChargeLagerDeaktiviertChanged","checkIsMhdChargeLagerDeaktiviert","isMhdChargeLagerDeaktiviert","IdMHDChargeContainer","SupportsMHD","SupportsCharge","itemRowClass","idEinheit","MhdChargeMengeAusw","mhdChargeDeleteList","mhdDateBoxOptions","chargeTextBoxOptions","deleteButtonOptions","addButtonOptions","MhdChargeMengeErf","notizOptions","showNotizPopup","showNotizFormCommand","addNotizFormCommand","_notizFormCommandSubscription","onNotizAnzahlChanged","_notizShowEditPopupSubscription","_notizShowListSubscription","showNotizPopover","onShowNotizenClicked","loadNotizBadge","onAddNotizClicked","isNotizAlt","notizAnzahlEvent","OnNotizAnzahlRequestEvent","NotizFormCommand","passwortAendernValidationGroup","passwortAendernPopupOptions","passwortAltOptions","passwortNeuOptions","passwortNeuRepeatOptions","passwortAendernPopupCommands","doPasswortAendern","passwortAendernValidation","passwortNeu","passwortNeuRepeat","OnPasswortAendernEvent","PasswortAlt","passwortAlt","PasswortNeu","PasswortAendern","_hiddenPopups","popupsHidden","_onHideKeyDown","onHideKeyDown","_onHideKeyUp","onHideKeyUp","_timerId","canHidePopups","changeState","opacity","PopupHider","noView","prodAuftragSearch","getFormatter","_onProdAuftragSelected","_onProdAuftragSelectedCancel","onProjektSelected","onProjektSelectedCancel","ProdAuftragSearchResult","prodAuftrag","prodAuftragNummerOptions","setProdAuftragtById","onProdAuftragChanged","showProdAuftragButtonOptions","idProdAuftrag","idProdAuftragChanged","prodAuftragArtikelBezeichnungOptions","projekt","showProjektSearchPopup","prodAuftragNummer","prodAuftragArtikelBezeichnung","ProdAuftrag","_mailImportService","projektDmsViewerPopupCommands","projektDmsViewerPopupOptions","groupIndex","saveDokumentartToMailImportItemAnhang","projektDmsViewerPopup","loadDokumentartData","OnProjektDokumentRequestEvent","DokumentList","grouping","autoExpandAll","allowCollapsing","collapsedItems","Gruppe","ProjektDmsViewer","MailImportService","_projektSearchService","_onProjektSelected","_onProjektSelectedCancel","Projektart","ProjektSearchResult","aktuellList","historieList","vergangeneTageList","taetigkeitListViewOptions","vergangeneTageChartOptions","rotated","alignment","overlappingBehavior","allowDecimals","tickInterval","visualRange","visualRangeUpdateMode","startButtonOptions","start","endeButtonOptions","aktuell","ende","korrButtonOptions","historie","buchungEditPopup","neuButtonOptions","taetigkeitListView","_buchungChangedSubscription","loadHistorie","loadAktuell","loadVergangeneTage","ProjektEx","Taetigkeit","ProjektTaetigkeit","OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequestEvent","taetigkeit","IdProjektTaetigkeit","Start","_AndereBeenden","buchung","Ende","OnProjektTaetigkeitBuchungAnzahlAktiveBuchungenEvent","ProjektTaetigkeitBuchungCommand","_projektService","projektNummerOptions","updateProjektButtons","setProjektById","onProjektChanged","projektBezeichnungOptions","projektNummer","projektBezeichnung","openProjektInNewTab","openProjektPopup","Projekt","_searchResultSearchService","showAktiveDatensaetze","showAktiveDatensaetzeCheckboxOptions","searchResultListViewOptions","onSearchResultItemClick","selectedTypeName","goToListButtonOptions","openListSuche","onSucheTypeNameClick","loadSucheResult","openSingleItem","showAktiveDatensaetzeChanged","searchResultListView","sucheTypeNameList","hasMoreData","onSearchResultSelected","onSearchResultCancel","_onSearchResultSelected","_onSearchResultCancel","loadSuchtextTypeNames","InaktiveDatensaetzeLaden","SelectedTypeName","sortedList","bezA","bezB","searchDataSource","isPopupVisible","SuchePlainText","goToPage","suchtext","SearchResult","spracheUebersetzungPopupCommands","setUebersetzungData","spracheUebersetzungPopupOptions","resetUebersetzungData","spracheSelectBoxOptions","onSpracheChanged","idSpracheContainer","IdSpracheContainer","loadUebersetzungData","spracheUebersetzungPopup","spracheItemList","_uebersetzungData","IdSprache","currentSprache","_availableSprachen","OnSpracheUebersetzenEvent","DoSave","vorbelegungSprache","IsVorbelegungUebersetzung","spracheSelectBox","SpracheUebersetzung","doGruppieren","doGruppierenCheckBoxOptions","loadDataAndSetDataSource","canShow","OnStatistikEinkaufDetailRequestEvent","DoGruppieren","getColumns","getSummaryStatistik","totalItems","summaryType","valueFormat","scrollList","modul","StatistikEinkaufDetail","viewTyp","OnStatistikVerkaufDetailRequestEvent","ViewTyp","StatistikVerkaufDetail","statusFormCommand","statusContextMenuOptions","setStatus","removeAvailableForm","statusContextMenu","getStatusList","StatusList","OnStatusMoeglichRequestEvent","OnStatusAendernEvent","reloadForm","StatusFormCommand","renderTags","tagsChanged","TagsList","TagColor","farben","acceptCustomValue","onCustomItemCreating","customItem","tagList","values","updateTagContainer","bezeichnungOptions","farbeOptions","saveSettingsOptions","currentItem","_tagRefreshedSubscription","oldValues","loadTags","onContextMenu","onTagDeleteClick","tagBox","onColorClick","IdTagContainer","TagContainer","TagEintraege","tagContainer","hasChanges","Tags","hasNoErrors","continueCommand","_result","_callback","validationResultList","IsError","ValidationInfo","variablerSetartikelKomponentenAuswahlPopupOptions","variablerSetartikelKomponentenAuswahlPopupCommands","auswahlUebernehmen","doKomponenteAuswahlCheckBoxOptions","komponente","IsInaktiv","IsChecked","HasVariablerSetartikelVorbelegung","variablerSetartikelKomponentenAuswahlPopup","IdStuecklistenkomponente","Menge","VariablerSetartikelKomponentenAuswahl","variablerSetartikelPreisAendernPopupOptions","variablerSetartikelPreisAendernPopupCommands","rabattEntfernen","manuellerPreisEntfernen","wertNumberBoxOptions","konditionsFeldSelectBoxOptions","modelZuruecksetzen","variablerSetartikelPreisAendernPopup","variablerSetartikelPreisAendernResult","VariablerSetartikelPreisAendern","showVersionReload","reloadButtonOptions","checkVersion","_timeoutId","port","_version","VersionCheck","headerCommandService","zugriffHistorieOptions","zugriffHistorieListViewOptions","openEntitaet","zugriffHistorieListView","ZugriffHistorieCommand","config","globalResources","toView","EntitaetFullNameZuNameValueConverter","valueConverter","stundenZahl","floor","stunden","minuten","IndustriezeitZuZeitValueConverter","StuecklisteFaktorTyp","ProFW","ProProduktion","StuecklisteFaktorValueConverter","Dashboard","Stammdaten","Einkauf","Verkauf","Lager","Konfiguration","Andere","TicketKategorieNameValueConverter","InBearbeitungTIP","ErledigtTIP","MitNaechstemUpdate","ErledigtKunde","WarteAufKunde","Doppelt","TicketStatusFarbeValueConverter","TicketStatusNameValueConverter","Frage","Wunsch","Neuigkeit","TicketTypNameValueConverter","TypeDisplayNameValueConverter","formBaseImport","addModel","onConstructionFinished","InstanzEditForm","fwx","InstanzListForm","$f_belegImportEditUtils","$f_StatusService","addFunction","BelegImportEditForm","BelegImportEditUtils","BelegImportListForm","$f_DatenbankInfoListUtils","DatenbankInfoListForm","$f_Einstellung","addVariable","EinstellungEditForm","FehlerEditForm","FehlerListForm","$f_FibuKontoEditUtils","addEditPopup","FibuKontoEditForm","FibuKontoFilterEditForm","FibuKontoListForm","FibuKontogruppeEditForm","FibuKontogruppeListForm","FibuOssEditForm","FibuOssListForm","$f_FibuSyncJobEditUtils","FibuSyncJobEditForm","FibuSyncJobEditUtils","$f_FibuSyncJobListUtils","FibuSyncJobListForm","FibuSyncJobListUtils","$f_importEditUtils","ImportEditForm","ImportListForm","ConnectedClients","CronJobs","calculateCellValue","State","HealthChecks","$f_StatusList","StatusListForm","LohnexportEditForm","$f_ArbeitszeitLohnexportListUtils","LohnexportListForm","DashboardListForm","$f_ImpressumUtils","ImpressumForm","ImpressumUtils","$f_BestellungEditUtils","$f_UpdateManuelleTexteUtils","r_tabSelected","BestellungEditForm","$f_BestellungListUtils","BestellungListForm","$f_BestellungsgruppeEditUtils","BestellungsgruppeEditForm","$f_BestellungspositionEditUtils","BestellungspositionEditForm","$f_BestellvorschlagEditUtils","BestellvorschlagEditForm","$f_BestellvorschlagListUtils","BestellvorschlagListForm","$f_EingangsrechnungEditUtils","EingangsrechnungEditForm","EingangsrechnungEditUtils","$f_EingangsrechnungListUtils","EingangsrechnungListForm","EingangsrechnungListUtils","$f_EingangsrechnungspositionEditUtils","EingangsrechnungspositionEditForm","EingangsrechnungszuschlagEditForm","$f_WarenuebernahmeEditUtils","WarenuebernahmeEditForm","WarenuebernahmeListForm","$f_WarenuebernahmepositionEditUtils","WarenuebernahmepositionEditForm","WarenuebernahmepositionEditUtils","$f_konditionEditUtils","KonditionEditForm","$f_KonditionListUtils","KonditionListForm","KonditionListUtils","$f_konditionList","KonditionListNestedForm","$f_KonditionsfeldEditUtils","KonditionsfeldEditForm","KonditionsfeldListForm","KassaBelegEditForm","KassaBelegListForm","$f_ArtikelverleihEditUtils","ArtikelverleihEditForm","ArtikelverleihEditUtils","ArtikelverleihListForm","$f_InventurEditUtils","InventurEditForm","InventurEditUtils","InventurListForm","InventurpositionEditForm","$f_lagerbestandDetailListNestedUtils","LagerbestandDetailListNestedForm","LagerbestandDetailListNestedUtils","$f_lagerbestandListNestedUtils","LagerbestandListNestedForm","$f_LagerbuchungInfoListNestedUtils","LagerbuchungInfoListNestedForm","$f_LagerbuchungListNestedUtils","LagerbuchungListNestedForm","LagerbuchungListNestedUtils","$f_LagerkorrekturEditUtils","LagerkorrekturEditForm","LagerkorrekturListForm","$f_ArbeitszeitBenutzerZuteilungEditUtils","ArbeitszeitBenutzerZuteilungEditForm","ArbeitszeitBenutzerZuteilungListForm","mitarbeiterstatusSelectBoxOptions","austrittMitarbeiterstatusButtonOptions","arbeitszeitMitarbeiterstatusAustritt","austrittsDatum","mitarbeiterstatusAbgrenzen","loadMitarbeiterstatus","idMitarbeiterstatusChanged","mitarbeiterstatusList","arbeitszeitMitarbeiterstatus","idArbeitszeitBenutzerZuteilung","mitarbeiterstatusErstellen","Austrittsdatum","IdGehaltsSchema","Personalnummer","VordienstzeitenMonate","VordienstzeitenTage","ArbeitszeitBenutzerZuteilung","ArbeitszeitKostenstelleEditForm","ArbeitszeitKostenstelleListForm","$f_ArtikelEditUtils","addNestedForm","ArtikelEditForm","ArtikelEinheitEditForm","ArtikelKundeEditForm","ArtikelLieferantEditForm","$f_ArtikelListUtils","ArtikelListForm","ArtikelMindestbestandEditForm","$f_ArtikelService","$f_ArtikelStuecklisteEditUtils","ArtikelStuecklisteEditForm","ArtikelStuecklisteEditUtils","$f_AufgabeEditUtils","AufgabeEditForm","$f_AufgabeService","$f_AufgabeListUtils","AufgabeListForm","AufgabeService","$f_BenachrichtigungUtils","BenachrichtigungEditForm","BenachrichtigungEditUtils","$f_BenachrichtigungService","BenachrichtigungListForm","$f_BenutzerEinstellungenEditUtils","r_tabsSelected","BenutzerEinstellungenEditForm","BenutzerEinstellungenEditUtils","showCodeButtonOptions","showCode","urlQrCode","QrImage","r_briefTabsSelected","BriefEditForm","BriefListForm","BankverbindungEditForm","$f_GeschaeftspartnerEditUtils","$f_AuftragService","r_tabBewegungSelected","Person","GeschaeftspartnerEditForm","GeschaeftspartnerEditUtils","$f_GeschaeftspartnerListUtils","GeschaeftspartnerListForm","$f_IntrastatSyncJobEditUtils","IntrastatSyncEditForm","$f_IntrastatSyncListUtils","IntrastatSyncListForm","MailImportItemAnhangEditForm","$f_MailImportItemEditUtils","MailImportItemEditForm","MailImportItemListForm","$f_mandantWechselenUtils","MandantWechselnForm","MedienEditForm","MedienListForm","$f_NewsletterEmpfaengerEditUtils","NewsletterEmpfaengerEditForm","NewsletterEmpfaengerEditUtils","$f_NewsletterEmpfaengerListUtils","NewsletterEmpfaengerListForm","$f_NewsletterEditUtils","NewsletterEditForm","NewsletterListForm","NotizEditForm","$f_PersonEditUtils","PersonEditForm","PersonEditUtils","$f_PersonListUtils","PersonListForm","PersonListUtils","$f_ProjektEditUtils","ProjektEditForm","ProjektListForm","ProjektTaetigkeitEditForm","ProvisionsfeldEditForm","VolltextThesaurusEditForm","VolltextThesaurusListForm","$f_AngebotEditUtils","AngebotEditForm","AngebotEditUtils","$f_AngebotListUtils","AngebotListForm","AngebotListUtils","$f_AngebotsgruppeEditUtils","AngebotsgruppeEditForm","$f_AngebotspositionEditUtils","AngebotspositionEditForm","$f_AbschlagfakturaEditUtils","AbschlagsfakturaEditForm","AbschlagfakturaEditUtils","$f_AuftragEditUtils","AuftragEditForm","$f_AuftragListUtils","AuftragListForm","$f_AuftragsgruppeEditUtils","AuftragsgruppeEditForm","$f_AuftragspositionEditUtils","AuftragspositionEditForm","AuftragspositionEditUtils","$f_FakturaEditUtils","FakturaEditForm","FakturaEditUtils","$f_FakturaListUtils","FakturaListForm","$f_FakturagruppeEditUtils","FakturagruppeEditForm","$f_FakturapositionEditUtils","FakturapositionEditForm","$f_GutscheinEditUtils","GutscheinEditForm","GutscheinListForm","$f_KundenreklamationEditUtils","KundenreklamationEditForm","KundenreklamationEditUtils","KundenreklamationListForm","$f_KundenreklamationspositionEditUtils","KundenreklamationspositionEditForm","$f_LadelisteEditUtils","LadelisteEditForm","LadelisteListForm","$f_LieferscheinEditUtils","LieferscheinEditForm","$f_LieferscheinListUtils","LieferscheinListForm","LieferscheinListUtils","$f_LieferscheingruppeEditUtils","LieferscheingruppeEditForm","$f_LieferscheinpositionEditUtils","LieferscheinpositionEditForm","$f_MahnungEditUtils","MahnungEditForm","$f_MahnungListUtils","MahnungListForm","ProvisionEditForm","$f_ProvisionListUtils","ProvisionListForm","ProvisionListUtils","ProvisionspositionEditForm","$f_ZahlungEditUtils","ZahlungEditForm","ZahlungListForm","ZahlungsverkehrSyncJobEditForm","$f_ZahlungsverkehrEditUtils","ZahlungsverkehrEditForm","$f_ZahlungsverkehrListUtils","ZahlungsverkehrListForm","eventInfo","executeWithProgress","webSocket","onopen","send","Percent","onerror","OnPrepareFibuSyncJobEvent","IdFibuSyncJob","$m_FibuSyncJob","_eventStart","getEventStart","_handlerStart","handleEnd","_eventEnd","getEventEnd","_handlerEnd","transitions","handleStart","AnimationTrackerAttribute","customAttribute","valueChanged","doAnimation","animatingElementsCount","getElementsByClassName","AnimationCustomAttribute","_detached","_setClassCounter","_checkClassSubscription","isParent","setClass","child","widthElement","isInline","styles","clientWidth","newStyle","_currentStyle","getComputedStyle","GridSizeAttribute","iconChanged","currentIcon","FaIconAttribute","markdownService","_isBound","created","owningView","myView","destroyCreated","keyChanged","_createdSpan","_createdView","isHtml","getText","markdown","TrCustomAttribute","MarkdownService","BackgroundImageValueConverter","FileDownloadValueConverter","FormatValueConverter","MaxTextLengthValueConverter","direction","factor","valA","valB","SortValueConverter","TranslationValueConverter","globalCommand","commandPopupOptions","_currentCommands","_currentForm","commandSelectBox","commandSelectBoxOptions","onEnterKey","executeCurrentCommand","_onExecuteCommandDispose","onExecuteCommand","openCommands","allowGlobalCommands","addNavigationRoutes","commandPopup","currCommand","_navigationCommands","nav1","pushRoute","nav2","isSidebarCollapsed","Content","shortcut","searchShowPopupButton","searchShowPopupButtonOptions","avatarPopoverOptions","prepareCommands","onAvatarClick","avatar","convertCommand","Header","loading","Loading","top","offsetTop","offsetHeight","innerHeight","SidebarSub","sidebarExpandedProp","onWindowClick","onHeaderClicked","onRouteClicked","routeExpanded","getClosest","classString","Sidebar","deepObserver","_createdViews","_valueChangeByCodeCount","templates","checkMobile","extractTemplates","checkBindings","renderInline","initializeOptions","getInitializeOptions","_widgetElement","exists","validatorInstance","registerBindings","mainElement","tooltipInstance","createTooltip","textContent","showEvent","hideEvent","hasValueProperty","getOwnPropertyNames","fullScreen","modelByElement","renderData","onRenderedName","getPascalCase","getTemplates","onOptionChangedOld","integrationOptions","registerDeepObserver","checkBinding","deep","isChangeToPublish","DxWidget","processContent","DeepObserverService","locale","language","palette","animation","firstDayOfWeek","duration","easing","of","altKey","metaKey","StackRouterLinkCustomAttribute","CodeEditor","createEditorOnMonacoLoaded","editorDidChangeModelContentEvent","getModel","getPosition","executeEdits","range","monaco","Range","lineNumber","createEditorOnMonacoLoaded2","_jsLoadedPromise","loaderScript","_vsLoadedPromise","createEditor","host","autoIndent","automaticLayout","fontSize","minimap","onDidChangeModelContent","_isInitialized","_idToolbar","_createdToolbarView","delayedInitialize","_showOptions","firstShownAction","currentController","CustomEditPopup","observables","dropEnabled","downloadButtonOptions","clearButtonOptions","observeValue","currentValue","showDownloadButton","imageContainerStyle","createToolbarTop","createToolbarBottom","uploadFile","getExpressionContext","getBindingContext","setValueCallback","parseExpression","context","expressionObserver","currentValueChanged","showImage","iconDownloadChanged","downloadButton","canUpload","onDragOver","isDropEnabled","onDragLeave","onDrop","dataTransfer","toolbarTopOptions","showToolbarBottom","toolbarBottomOptions","types","isFileTypeValid","dispatchUploadedEvent","indexOfWildcard","endsWith","fileKey","TipFileUploaderWithViewer","GridColumnDataType","gridLayoutService","_deleteColumnList","gridColumns","addColumnCommand","gridColumnsValidation","captionFQ","dataFieldFQ","saveColumnsCommand","validateGridLayout","getColumnsLayoutToSave","updateVisibleGridColumns","gridColumnsPopup","deleteColumnButtonOptions","gridColumn","captionTexBoxOptions","gridColumnsPopupOptions","gridColumnDropBoxOptions","gridColumnTreeViewOptions","itemsExpr","selectByClick","focusStateEnabled","hasLoaded","parentFQ","expandItem","hasChildren","hasItems","DataType","gridColumnsValidationGroupOptions","loadProperties","loadCurrentLayout","prepareProperties","gridColumnsData","gridColumnsDataSource","getCaptionFQ","getDataType","Unknown","getGridColumnWith","Number","Boolean","getGridColumnMinWith","NestedProperties","prefixCaptionFQ","prefixDataFieldFQ","Caption","hasColumnsAdded","beginUpdate","deleteColumn","columnOption","addColumn","endUpdate","sameGridColum","s","GridLayoutColumns","htmlEditorOptions","slots","au","hasBottomToolbar","bottomToolbar","updateVariables","HtmlEditor","itemsOptions","selectedItems","hasSelection","totalPages","showLoadNextButton","itemAlias","itemOverrideContext","getKeyProperty","getItemKey","goToNextPage","selectByKey","selectByKeys","isSelectedByKey","handleDataSourceChanged","handleDataSourceLoadingChanged","createViewClass","createItemClass","_pageIndex","scrollView","scrollTo","searchByText","setTotalCount","ceil","calcPageInfo","pagerInfoText","getSelectedKeys","set","__isGroup","viewClasses","viewStyle","viewClass","itemClasses","alias","insertItems","isLoading","itemCount","realItemCount","checkGroupProperty","last","getLastGroup","__groupValue","currentPage","arrIndex","lastIndex","_itemNode","cloneNode","isListView","viewResources","_itemView","ListViewItem","loadNextButtonOptions","ListViewItems","LoadingSpinner","updateOptions","optionsChanged","constructPages","disposeOldSubscriber","onPageClick","checkPage","_itemSubscriptionDisposable","afterPages","afterPage","checkCategoryVisible","checkBadge","badges","Set","badgesArr","right","countSmall","setSmallToBig","smallChecked","class","RibbonToolbar","RibbonToolbarCategory","RibbonToolbarItem","RibbonToolbarItemTmpl","_hasModifiedOptionsScopeContainer","toolbarModel","_scope","_scopeContainer","refreshToolbarModel","checkExpressions","getItemScope","classNameExpression","Toolbar","notification","onAnimationStart","onAnimationEnd","StackRouter","View","imageList","background01","background02","background03","background04","background05","background06","background07","background08","background09","background10","background11","background12","imageIndex","random","loginImageStyle","Login","$f","ActivateAccountForm","___HTML_LOADER_GET_SOURCE_FROM_IMPORT___","LoginForm","PasswordResetForm","_dataService","_dataGridService","_chartService","_pivotService","_editorService","_variableService","reportDef","createViewModel","initialState","onDataSourceChanged","onDataSourceSelectionChanged","registerVariableChanged","onVariableChanged","createView","dispatchLoaded","loadInitialData","createState","dataSourceSelected","hasDataSourceSelected","javaScript","func","nav","excel","dataSourceChanged","dataSourceSelectionChanged","selectionHandled","variableChanged","fireDataSourceChanged","fireDataSourceSelectionChanged","fireVariableChanged","invokerMethod","idVariable","handlesSelection","dataSources","hasRelation","parentIds","allParentsHere","idDatasourceParent","idDataSourceChild","parentsRecurive","Report","DataGridService","variableService","operatorOptions","dropDownOptions","dropDownPopupInstance","setDropDownText","onClosed","deleteValueOptions","repaintDropDownPopup","setCurrentValue","getValueField","showOperator","operators","dateBoxOptions","switchOptions","switchedOnText","switchedOffText","lookupValueExpr","valueList","displayText","Variable","Angebot","auftragErstellenCommand","OnErstelleAuftragAusAngebotEvent","IdAngebotPosList","onAngebotGewichtAktualisierenEvent","OnAngebotGewichtAktualisierenEvent","OnAngebotKondAktualisierenEvent","OnAngebotPositionenSortierenEvent","angebotKopieErstellenCommand","OnAngebotspositionenInNeuesAngebotUebernehmenEvent","IdAngebotKopie","angebotPosGridRowData","angebotssposition","angebotsposition","OnDeleteIdAngebotspositionListEvent","getGueltigBis","IdAngebotsart","OnAngebotAddLieferscheinpositionEvent","vm","currentVM","subscription","Subscription","__observe","__observeArray","__observeObject","newSubscription","createChildSubscription","collectionObserver","change","addedCount","removed","hasOwnProperty","propertyObserver","addObserver","Map","_selectedWarenuebernahmepositionen","id0","showImportWarenuebernahmepositionenPopupCommand","LieferantLieferscheinNr","$m_WarenuebernahmepositionFilter","FilterLS","warenuebernahmepositionGrid","importWarenubernahmepositionenCommand","OnImportWarenuebernahmepositionenInEingangsrechnungEvent","erledigenWarenubernahmepositionenCommand","OnWarenuebernahmeNichtVerrechnenEvent","doBezahltAendernCommand","changeStatus","OnEingangsrechnungBezahltAendernEvent","showImportProduktionPopupCommand","prodFertigwareGrid","importProduktionCommand","OnImportProdFertigwareInEingangsrechnungEvent","IdProdFertigwareList","OnEingangsrechnungAbschliessenEvent","eingangsrechnungPosGridRowData","eingangsrechnungsposition","OnDeleteIdEingangsrechnungspositionListEvent","IdEingangsrechnungspositionList","registerWarenuebernahmeSelectAll","setSteuertyp","onDifferenzValueChanged","OnEvalSteuertypEvent","SteuerTyp","formUtilsService","registerMainFormModuleId","getMainFormModuleId","displayTime","alert","AlertService","diff","localizationServive","provisionBerechnenCommand","doProvisionBerechnenCommand","webEventData","Bis","OnProvisionBerechnenEvent","idMailImportItemAnhang","registerOnCellPrepared","col","enumTypeName","cellInfo","onCustomizeText","onCalculateFilterExpression","showTotalAggSum","showFilterRow","allowSearch","isSelectionModeSingle","None","contentReadyActions","pager","showInfo","_regexBold1","_regexBold2","_regexLink","showError","logError","$m_Inventur","doZaehllisteErstellen","OnInventurZaehllisteErstellenEvent","IdInventur","doInventurVerbuchen","OnInventurVerbuchenEvent","doFehlendeArtikelHinz","OnInventurFehlArtZuZaehllisteEvent","init","suffix","getSuffixOfLocalStorage","getUrlOfSuffix","setBaseUrl","usernameSplit","hostname","LoginUrlService","importLieferscheinpositionenCommand","importLieferscheinpositionenEvent","OnImportLieferscheinpositionenInKundenreklamationEvent","$m_Kundenreklamation","showImportLieferscheinpositionenPopupCommand","lieferscheinpositionenGrid","reklamationAbschliessenCommand","OnKundenreklamationAbschliessenEvent","warenuebernahmeErstellenCommand","warenuebernahmeErstellen","ersatzlieferscheinErstellenCommand","ersatzauftragErstellen","OnKundenreklamationWarenuebernahmeErstellenEvent","OnKundenreklamationErsatzauftragErstellenEvent","$m_Warenuebernahmeposition","copyWarenuebernahmeposition","OnWarenuebernahmepositionVariablerSetartikelRabattEntfernenEvent","IdWarenuebernahmepositionSetartikel","OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernenEvent","OnWarenuebernahmepositionVariablerSetartikelPreisAendernEvent","use","basicConfiguration","plugin","feature","developmentLogging","isCommandExecuting","isVisibleAndEnabled","registerEvents","activeElement","blur","_viewModel","calendar","checkBox","numberBox","textBox","textArea","switch","pivot","getElement","jquery","themes","setTemplateEngine","integration","date","dxAutocomplete","dxButton","dxCalendar","dxCheckBox","dxColorBox","dxDateBox","dxDeferRendering","dxDropDownMenu","dxFileUploader","dxFilterBuilder","dxForm","dxHtmlEditor","dxList","dxLoadIndicator","dxLoadPanel","dxLookup","dxMap","dxNavBar","dxNumberBox","dxOverlay","dxPopover","dxPopup","dxProgressBar","dxRadioGroup","dxRangeSlider","dxResizable","dxScrollView","dxSelectBox","dxSlider","dxSwitch","dxTabPanel","dxTabs","dxTagBox","dxTextArea","dxTextBox","dxDropDownBox","dxToast","dxToolbar","dxTooltip","dxTrackBar","dxValidationSummary","dxValidationGroup","dxValidator","dxAccordion","dxContextMenu","dxDataGrid","dxMenu","dxPivotGrid","dxPivotGridFieldChooser","PivotGridDataSource","XmlaStore","dxScheduler","dxTreeView","dxTreeList","dxDraggable","viz","currentTheme","registerTheme","exportFromMarkup","currentPalette","getPalette","registerPalette","dxChart","dxPieChart","dxPolarChart","dxLinearGauge","dxCircularGauge","dxFunnel","dxBarGauge","dxRangeSelector","dxVectorMap","projection","dxSparkline","dxBullet","checkNestedFormMapping","$m_ArtikelStueckliste","isSidebarCollapsedChanged","$m_BelegImport","OnBelegImportFreigebenEvent","IdBelegImport","RestGetResultType","errorService","loadingCount","createHeaders","resultType","includeResponseHeaders","put","authToken","protocol","changeLoadingCount","client","HttpClient","checkGetOptions","fetch","fetchResult","ok","get409Message","statusText","blob","hasNonAscii","Message","_konditionFeld","idKonditionFeld","getKalkulationInputItems","getKalkulationOutputItems","konditionsfeldChanged","doAbholen","$m_Artikelverleih","IsVorlaeufigeReservierung","OnArtikelverleihAbholungEvent","doRueckgabe","OnArtikelverleihRueckgabeEvent","hours","minutes","GeplanteRueckgabe","loadingService","deleteSelectedCommand","getEmpfaengerGrid","beginLoading","refreshPersonGrid","endLoading","onPersonClick","MergeKey","idLieferscheingruppe","newsletterEmpfErstellenCommand","getNewsletterEmpfPopup","bezeichnungTextBox","getNewsletterEmpfBezeichnungTextBox","newsletterEmpfErstellenExCommand","getNewsletterEmpfValidationGroup","getPersonGrid","OnCreateNewsletterEmpfaengerEvent","IdPersonList","onCreated","onReactivating","_callOnBind","_callOnCommandsLoaded","focusFirstEnabledEditorEx","canGoBack","dispatchOnActivate","registerHasChangedData","registerReloadEventAggregator","registerRouterCurrentViewItemChanged","validateViewScrollInfo","dispatchOnBind","loadCommands","dispatchOnAttached","dispatchOnDetached","_beforeUnloadEventAggregatorSubscription","_reloadEventAggregatorSubscription","_routerCurrentViewItemChangedSubscription","dispatchOnUnbind","dispatchOnReactivated","getFileDownloadUrl","getFormsInclOwn","createValidationResult","showErrorIfInvalid","dispatchOnValidating","focusFirstEnabledEditorGuarded","optimisticLockingEnabled","dispatchOnSaving","setCurrentUrl","dispatchOnSaved","dispatchOnDeleting","dispatchOnDeleted","dispatchOnCreated","isTouch","addCommandServerData","customParameter","addMapping","submitForm","commandExpression","currentUrl","currentRoute","newUrl","cancelCurrent","Action","idAuftragsart","auftragsart","OnPeriodeRequestEvent","Periode","Ergebnis","idBestellungsposition","idAuftragsgruppe","idAngebotsart","angebotsart","idAngebotsgruppe","_permissionInfo","loadPermissions","permissionInfo","WebApiAction","canWebApi","hasAccess","doBenachrichtigungGelesen","doGelesen","$m_Benachrichtigung","IsGelesen","groupRegex","escapeRegex","formatters","parsers","setProvider","GermanGlobalizationProvider","provider","devExpress","getDevExpress","inject","getMonthNames","monthsShort","getDayNames","daysShort","days","formatter","momentFormat","culture","formatClass","valueInt","toFixed","valueIntAsString","String","groupRest","groupSeparator","commaSeparator","getParser","parser","numberAsStr","numb","isNaN","groupFinder","makeComma","nk","pow","D","E","F","g","G","T","showExportPersonenkontenPopupCommand","showOffenePostenImportPopupCommand","fileUploader","OnCreateFibuSyncJobsEvent","doOffenePostenImportCommand","OnImportFibuOPListeEvent","doExportPersonenkontenCommand","geschaeftspartnerartSelectBox","OnCreateFibuPersonenkontenEvent","IdGeschaeftspartnerart","EventName","OnInstanzBenutzerRequestEvent","OnBelegExportEvent","OnKassaCreateNullBelegEvent","OnKassaCreateSchlussBelegEvent","OnKassaCreateStartBelegEvent","OnKassaDEPRequestEvent","OnKassaZertifikatAnfordernEvent","OnAppMandantWechselnEvent","OnProdAuftragBestaetigtEvent","OnProdAuftragRohwareLieferscheinErstellenEvent","OnProdFertigwareQuickEvent","OnProjektTaetigkeitBuchungAusFakturaEntfernenEvent","OnProjektTaetigkeitBuchungNichtVerrechenbarEvent","OnProjektTaetigkeitBuchungVerrechnenEvent","OnProjektzeitReportDruckenEvent","OnProjektzeitReportRequestEvent","OnBriefErstellenEvent","OnCreateNewsletterEmpfaengerAusAnmeldungEvent","OnFirmaSteuerinformationGueltigkeitAbgrenzenEvent","OnGeschaeftspartnerartAendernEvent","OnNewsletterAnmeldungStatusAendernEvent","OnNewsletterAnmeldungStatusRequestEvent","OnPapierkorbWiederherstellenEvent","OnPersonWebshopEvent","OnRequestMandantEvent","OnRequestQRLabelEvent","OnTapiAnrufEvent","OnUIDListValidierenEvent","OnStatistikArtikelDataRequestEvent","OnStatistikArtikelInfoRequestEvent","OnStatistikAuftragDataRequestEvent","OnStatistikAuftragInfoRequestEvent","OnStatistikBestellungenDataRequestEvent","OnStatistikBestellungenInfoRequestEvent","OnStatistikDataRequestEvent","OnStatistikEinAuszahlungsRechnungDataRequestEvent","OnStatistikEinAuszahlungsRechnungInfoRequestEvent","OnStatistikFakturaDataRequestEvent","OnStatistikFakturaInfoRequestEvent","OnStatistikFeldRequestEvent","OnStatistikGeschaeftspartnerPersonDataRequestEvent","OnStatistikGeschaeftspartnerPersonInfoRequestEvent","OnStatistikGruppeDataRequestEvent","OnStatistikGruppeInfoRequestEvent","OnStatistikKassaDataRequestEvent","OnStatistikKassaDetailDataRequestEvent","OnStatistikKassaInfoRequestEvent","OnStatistikKundeDataRequestEvent","OnStatistikKundeInfoRequestEvent","OnStatistikLagerbestandDataRequestEvent","OnStatistikLagerbestandInfoRequestEvent","OnStatistikLagerbewegungenDataRequestEvent","OnStatistikLagerbewegungenInfoRequestEvent","OnStatistikProjektzeitDataRequestEvent","OnStatistikProjektzeitInfoRequestEvent","OnStatistikReklamationenDataRequestEvent","OnStatistikReklamationenInfoRequestEvent","OnStatistikRequestEvent","OnStatistikWebshopLoginLogDataRequestEvent","OnStatistikWebshopLoginLogInfoRequestEvent","OnVolltextSucheSingleEvent","OnTicketAufwandBestaetigenEvent","OnTicketBearbeiterRequestEvent","OnTicketFollowEvent","OnVersionUpdateGelesenEvent","OnAuftragspositionArtikelErsetzenEvent","OnAuftragspositionRecalcLieferdatumEvent","OnAuftragspositionVariablerSetartikelManuellerPreisEntfernenEvent","OnAuftragspositionVariablerSetartikelPreisAendernEvent","OnAuftragspositionVariablerSetartikelRabattEntfernenEvent","OnAuftragspositionVariableStuecklisteAuswahlEvent","OnAuftragspositionVariableStuecklistenkomponentenErstellenEvent","OnDeleteIdFakturapositionListEvent","OnErstelleAngebotEvent","OnErstelleAuftragEvent","OnErstelleFakturaStornoEvent","OnFakturaAbschliessenEvent","OnFakturaBezahltAendernEvent","OnFakturaMahnenEvent","OnLieferscheinListAbschliessenEvent","PositionSortierenTyp","VariablerSetartikelKalkulationFeldTyp","EingangsrechnungBezahltTyp","IntrastatSyncTyp","NewsletterAnmeldungStatus","PersonRequestTyp","PersonWebshopStatusWechselTyp","StatistikUmsatzTyp","StatistikGruppeVergleich","TopKundeArt","FakturaBezahltTyp","LieferscheinFakturaStatus","KalkulationItemFixTyp","KalkulationItemPosInputType","SpracheEditorTyp","DynamischesFeldtyp","StatistikFeldTyp","registerTemplate","templateKey","newElement","itemBindingContext","isFieldTemplate","extendFieldTemplate","textbox","cboTypeBezeichnung","cboTypeBezeichnungField","cboTypeBezeichnungTag","webshopAktivierenCommand","changeWebshopStatus","webshopDeaktivierenCommand","webshopNeuesPasswortCommand","$m_Person","anrede","checkNewsletterAnmeldungStatus","statusNewsletter","StatusWechselTyp","_bindingEngine","_aurelia","bindingBehaviors","getBindingBehavior","valueConverters","getValueConverter","object","call","parsedExpression","LiteralPrimitive","customScope","ov","parentOverrideContext","isHauptdokument","createBrief","idBrief","IsHauptdokument","selectItems","observerCallback","loadItemListDeferred","selectItemId","searchtextEnabled","lieferscheinGridRowData","lieferschein","idLieferscheinList","doArtikelErsetzenCommand","IdAuftragsposition","$m_Auftragsposition","calcLieferdatumCommand","IsAuftragBestaetigt","hasIntercompanyBestellungBereitsErstellt","refreshAuftragsgruppeButton","copyAuftragsposition","onAuftragsgruppeChanged","dataAuftrag","IdAuftragsgruppe","$m_AuftragsgruppeEdit","hasIntercompanyBestellung","getIcAuftragsposition","IdAuftragspositionSetartikel","structure","routeForms","parentDic","routeFormKey","routeForm","idParent","doGeschaeftspartnerartAendernCommand","doGeschaeftspartnerartAendern","showGeschaeftspartnerartAendernCommand","onShowGeschaeftspartnerartAendernClicked","gpAngebotErstellenCommand","gpAuftragErstellenCommand","mahnung","$m_Geschaeftspartner","uidNummerField","copyGeschaeftspartner","$m_GeschaeftspartnerCopy","onGeschaeftspartnerartAendernEvent","_elementService","focusedRowEnabled","customizeCell","_id","focusedRowKey","focusedRowIndex","getKeyByRowIndex","isIE","userAgent","isEdge","isFirefox","screen","isXL","isLG","isMD","isSM","isXS","iOS","webkit","isIOSSafari","isIOS","getElementsByTagName","boundary","boundaryOffset","doStornierenCommand","IdFakturaPosList","IdStorno","doMahnenCommand","onFakturaMahnenEvent","fakturaPosGridRowData","fakturaposition","IdFakturapositionList","rechnungsort","onRechnungsortChanged","onWertProzentValueChanged","wertNetto","$m_Abschlagsfaktura","IsVorausinkasso","IsVorauskasseAbschlagfakturaVorbelegt","$m_LagerbuchungE"],"mappings":"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EAAOC,QAFI,mM,kCCDX,OAAe,cAA0B,wC,sXC0EzC,iBACE,WACSkkB,EACAnuD,EACAre,EACAtP,EACA+7E,EACA1lE,EACAqmB,EACA2F,EACA0iB,EACAhE,EACAi7B,EACA17B,EACAjxC,EACArM,EACA2iB,EACAZ,EACAk3D,EACArkE,EACAhP,EACAnK,EACA2jC,EACA9rB,EACA8sB,EACAZ,EACA/F,EACAy/C,EACAC,EACAC,EACAC,EACA51E,EACAg3B,EACAgkC,EACAzkC,EACAsnB,EACArzC,EACAqrE,EACApyC,EACA77B,EACAhF,EACAQ,EACA+O,EACA4J,GAzCA,KAAAs5D,gBACA,KAAAnuD,YACA,KAAAre,kBACA,KAAAtP,OACA,KAAA+7E,gBACA,KAAA1lE,UACA,KAAAqmB,UACA,KAAA2F,kBACA,KAAA0iB,SACA,KAAAhE,UACA,KAAAi7B,aACA,KAAA17B,QACA,KAAAjxC,OACA,KAAArM,SACA,KAAA2iB,cACA,KAAAZ,YACA,KAAAk3D,YACA,KAAArkE,WACA,KAAAhP,aACA,KAAAnK,UACA,KAAA2jC,gBACA,KAAA9rB,eACA,KAAA8sB,oBACA,KAAAZ,YACA,KAAA/F,YACA,KAAAy/C,UACA,KAAAC,gBACA,KAAAC,gBACA,KAAAC,kBACA,KAAA51E,aACA,KAAAg3B,aACA,KAAAgkC,aACA,KAAAzkC,SACA,KAAAsnB,WACA,KAAArzC,UACA,KAAAqrE,gBACA,KAAApyC,eACA,KAAA77B,uBACA,KAAAhF,WACA,KAAAQ,UACA,KAAA+O,aACA,KAAA4J,YA0BX,OAvBE,YAAA7kB,QAAA,WACEtB,KAAKoK,WAAW9I,UAChBtB,KAAKohC,WAAW9/B,UAChBtB,KAAKolE,WAAW9jE,UAChBtB,KAAK2gC,OAAOr/B,UACZtB,KAAKioD,SAAS3mD,UACdtB,KAAK4U,QAAQtT,UACbtB,KAAKigF,cAAc3+E,UACnBtB,KAAK6tC,aAAavsC,UAClBtB,KAAKgS,qBAAqB1Q,UAC1BtB,KAAKgN,SAAS1L,UACdtB,KAAKwN,QAAQlM,UACbtB,KAAKuc,WAAWjb,UAChBtB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cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,yBACN,QAAW,wDACX,OAAU,MACV,SAAY,IACZ,aAAgB,4CACjB,CACC,GAAM,yBACN,QAAW,wDACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,qBACN,QAAW,oDACX,OAAU,iBACV,MAAS,SACV,CACC,GAAM,wBACN,QAAW,uDACX,OAAU,gBACV,MAAS,QACT,OAAU,KACX,CACC,GAAM,8BACN,QAAW,6DACX,OAAU,0BACV,MAAS,SACV,CACC,GAAM,iCACN,QAAW,gEACX,OAAU,yBACV,MAAS,QACT,OAAU,KACX,CACC,GAAM,wBACN,QAAW,uDACX,OAAU,oBACV,MAAS,SACV,CACC,GAAM,2BACN,QAAW,0DACX,OAAU,mBACV,MAAS,QACT,OAAU,KACX,CACC,GAAM,mBACN,QAAW,kDACX,OAAU,UACV,MAAS,QACV,CACC,GAAM,sBACN,QAAW,qDACX,OAAU,aACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kBACN,QAAW,iDACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,iDACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,mDACX,OAAU,mBACV,MAAS,SAEb,eAAkB,CACd,YAAe,iCACf,cAAiB,kCAErB,QAAW,kDACX,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,cACN,QAAW,6CACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,oBACN,QAAW,mDACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,eACN,QAAW,8CACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,kDACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM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wBACN,QAAW,CACP,YAAe,+BACf,cAAiB,kCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,yBACN,QAAW,8CACX,OAAU,kCACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,wBACN,QAAW,6CACX,OAAU,qBACV,MAAS,SACV,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,qBACV,MAAS,OACT,OAAU,IACV,eAAkB,8DACnB,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,iCACf,cAAiB,kCAErB,QAAW,wCACX,QAAW,CACP,YAAe,iBAEnB,UAAa,gBACb,QAAW,sBACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,0BACN,QAAW,+CACX,OAAU,kCACV,SAAY,KACb,CACC,GAAM,eACN,QAAW,oCACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,eACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,iCACf,cAAiB,kCAErB,QAAW,wCACX,QAAW,CACP,YAAe,iBAEnB,UAAa,gBACb,QAAW,sBACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,eACN,QAAW,oCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,0BACN,QAAW,+CACX,OAAU,2BACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,2CACf,cAAiB,4CAErB,QAAW,kDACX,QAAW,CACP,YAAe,2BAEnB,UAAa,0BACb,QAAW,gCACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,6BACN,QAAW,CACP,YAAe,oCACf,cAAiB,uCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,yBACN,QAAW,8CACX,OAAU,+BACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,cACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,oCACf,cAAiB,qCAErB,QAAW,CACP,YAAe,oBAEnB,UAAa,mBACb,QAAW,yBACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,aACN,QAAW,kCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,YACN,QAAW,iCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,wBACN,QAAW,6CACX,OAAU,+BACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,yCACf,cAAiB,0CAErB,QAAW,CACP,YAAe,yBAEnB,UAAa,wBACb,QAAW,8BACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,yBACN,QAAW,8CACX,OAAU,+BACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,0CACf,cAAiB,2CAErB,QAAW,CACP,YAAe,0BAEnB,UAAa,yBACb,QAAW,+BACX,OAAU,QACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,sCAGzB,EAAK6vD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,mCACN,QAAW,CACP,YAAe,0CACf,cAAiB,2CAErB,QAAW,wDACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,kDACV,SAAY,iEAIxB,YAAM8mH,uBAAsB,Q,EAGpC,OAl8CqC,iBAAxB8M,EAAe,cAD3B5M,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAAspC,iBACF,EAAA//C,kBANtBynH,GAAb,CAAqC5M,EAAIxyH,UAA5B,EAAAo/H,mB,kGCTb3oF,EAAOC,QAFI,wpQ,uECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,u7BAAw7B,KAEj9Bw/C,EAAOC,QAAUA,G,sOCAjB,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,yBAChB,aAAgB,CACZ,WAAc,KACd,OAAU,KACV,eAAkB,MAEtB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,kBAGR,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,yBACV,MAAS,SACV,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,SAAY,KACb,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,yBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA3FqC,iBAAxB+M,EAAe,cAD3B7M,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrBixG,GAAb,CAAqC7M,EAAIxyH,UAA5B,EAAAq/H,mB,gGCHb5oF,EAAOC,QAFI,oZ,2PCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,0BACV,EAAKI,MAAQ,0DACb,EAAKq3I,SAAS,CACV,GAAM,gBACN,aAAgB,mCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,oCACZ,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,0CACX,qBAAwB,mCACxB,QAAW,CACP,YAAe,gBACf,OAAU,UACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,2CACX,QAAW,CACP,YAAe,gBACf,OAAU,SACV,SAAY,oCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,aACZ,QAAW,GACX,QAAW,+CACX,qBAAwB,mCACxB,QAAW,CACP,YAAe,gBACf,OAAU,eACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,2CACX,YAAc,EACd,QAAW,CACP,YAAe,gBACf,OAAU,WACV,SAAY,sCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,IAAO,IACP,OAAU,KACV,QAAW,mDACX,QAAW,CACP,YAAe,gBACf,OAAU,iBACV,SAAY,4CAEhB,gBAAmB,GACnB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKuvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,0DACX,QAAW,CACP,YAAe,gBACf,OAAU,wBACV,SAAY,mDAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKiwD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qDACX,YAAc,EACd,QAAW,CACP,YAAe,gBACf,OAAU,mBACV,SAAY,8CAEhB,gBAAmB,GACnB,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OA7J+C,iBAAlCgN,EAAyB,cADrC9M,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrBkxG,GAAb,CAA+C9M,EAAIxyH,UAAtC,EAAAs/H,6B,2GCHb7oF,EAAOC,QAFI,2+E,iPCEX,kBACI,WACI7iD,EACAu+H,GAFJ,MAGI,YAAMv+H,EAASu+H,IAAe,K,OAC9B,EAAKx3I,GAAK,sBACV,EAAKI,MAAQ,kDACb,EAAKq3I,SAAS,CACV,GAAM,oBACN,aAAgB,+BAChB,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKt4D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,CAAC,CACR,IAAO,mBACP,MAAS,SAEb,QAAW,GACX,QAAW,wCACX,QAAW,CACP,YAAe,oBACf,OAAU,gBACV,SAAY,+CAEhB,gBAAmB,GACnB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,8CACX,QAAW,CACP,YAAe,oBACf,OAAU,gBACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,uCACX,QAAW,CACP,YAAe,oBACf,OAAU,SACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OAxF4C,iBAA/BiN,EAAsB,cADlC/M,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,kBAHfs/H,GAAb,CAA4C/M,EAAIxyH,UAAnC,EAAAu/H,0B,gHCAb9oF,EAAOC,QAFI,6hD,qPCEX,kBACI,WACI7iD,EACAu+H,GAFJ,MAGI,YAAMv+H,EAASu+H,IAAe,K,OAC9B,EAAKx3I,GAAK,0BACV,EAAKI,MAAQ,0DACb,EAAKq3I,SAAS,CACV,GAAM,uBACN,aAAgB,yBAChB,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKx3D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,+CACX,QAAW,CACP,YAAe,uBACf,OAAU,aACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,6CACX,QAAW,CACP,YAAe,uBACf,OAAU,WACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,YAAMymH,uBAAsB,Q,EAEpC,OAjF+C,iBAAlCkN,EAAyB,cADrChN,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,kBAHfu/H,GAAb,CAA+ChN,EAAIxyH,UAAtC,EAAAw/H,6B,iHCAb/oF,EAAOC,QAFI,u9B,qPCEX,kBACI,WACI7iD,EACAu+H,GAFJ,MAGI,YAAMv+H,EAASu+H,IAAe,K,OAC9B,EAAKx3I,GAAK,0BACV,EAAKI,MAAQ,0DACb,EAAKq3I,SAAS,CACV,GAAM,uBACN,aAAgB,yBAChB,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKx3D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,wBACN,QAAW,wDACX,OAAU,aACV,SAAY,KACb,CACC,GAAM,sBACN,QAAW,sDACX,OAAU,WACV,SAAY,MAEhB,eAAkB,CACd,YAAe,wCACf,cAAiB,yCAErB,QAAW,CACP,YAAe,wBAEnB,UAAa,uBACb,QAAW,yBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OAxD+C,iBAAlCmN,EAAyB,cADrCjN,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,kBAHfw/H,GAAb,CAA+CjN,EAAIxyH,UAAtC,EAAAy/H,6B,iHCAbhpF,EAAOC,QAFI,wa,2PCWX,kBACI,WACI7iD,EACAu+H,EACQsN,EACA/M,EACA6C,GALZ,MAMI,YAAM3hI,EAASu+H,IAAe,K,OAHtB,EAAAsN,sBACA,EAAA/M,mBACA,EAAA6C,8BAwqBZ,EAAAC,cAAgB,EAtqBZ,EAAK76I,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,yBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,eAAkB,KAClB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,MAEpB,YAAe,CAAC,oCAAoC,GACpD,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,iCACZ,QAAW,CAAC,CACR,gBAAmB,iCACnB,kBAAqB,WAG7B,EAAKA,SAAS,CACV,GAAM,0BACN,aAAgB,+BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,uBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,sBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,MAEpB,YAAe,CACX,CAAC,YAAa,CACV,SAAW,EACX,WAAc,8BAElB,CAAC,aAAc,MAEnB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,8CACV,SAAY,2DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,2CACV,SAAY,wDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,mDACV,SAAY,gEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,4CACV,SAAY,yDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAK0oH,aAAa,CACd,UAAa,mCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,0BACf,OAAU,KACV,SAAY,4CAGpB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,iCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,wBACf,OAAU,KACV,SAAY,0CAGpB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,kCAErB,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,sBAAuB8M,EAAqB,iCAC7D,EAAK9M,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,8BAA+B4C,EAA6B,yCAC7E,EAAK36D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,WACV,SAAY,mCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,cACZ,QAAW,GACX,QAAW,qCACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,QAAW,CACP,YAAe,aACf,OAAU,QACV,SAAY,gCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,wCACZ,CACC,GAAM,eACN,QAAW,qCACZ,CACC,GAAM,gBACN,QAAW,sCACZ,CACC,GAAM,eACN,QAAW,sCAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,6BACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,aACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAiB,EACjB,eAAkB,CACd,YAAe,uCACf,cAAiB,wCAErB,QAAW,8CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,yBACf,OAAU,YACV,SAAY,gDAEhB,UAAa,aACb,gBAAmB,0BACnB,YAAe,4BACf,cAAiB,EACjB,UAAa,GACb,QAAW,GACX,SAAY,CAAC,CACT,QAAW,CACP,OAAU,uCACV,SAAY,mDAEjB,CACC,QAAW,CACP,OAAU,yCACV,SAAY,sDAGpB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,mCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,aACV,MAAS,SACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,qCACf,cAAiB,sCAErB,QAAW,4CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,uBACf,OAAU,YACV,SAAY,8CAEhB,UAAa,aACb,gBAAmB,wBACnB,YAAe,0BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAK6vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,0CACX,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,+BACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,UACZ,OAAU,CAAC,UAAW,CAClB,SAAW,EACX,WAAc,mCAElB,QAAW,GACX,QAAW,uCACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,kBACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,2CAElB,QAAW,GACX,QAAW,qCACX,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,wCACX,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,uCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,aACf,OAAU,oBACV,SAAY,4CAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,YACZ,QAAW,GACX,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,0CACZ,eAAkB,UAEtB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,YAAM2mH,uBAAsB,Q,EAGpC,OA/qBqC,iBAAxBqN,EAAe,cAD3BnN,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACS,EAAA2/H,iBACH,EAAAxxG,cACW,EAAA9qC,4BANhCq8I,GAAb,CAAqCnN,EAAIxyH,UAA5B,EAAA2/H,mB,+FCTblpF,EAAOC,QAFI,48X,+OCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAkN,GAJZ,MAKI,YAAMhsI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAkN,sBAER,EAAKjlJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,YAAe,KACf,QAAW,KACX,OAAU,KACV,SAAY,KACZ,MAAS,KACT,aAAgB,CACZ,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,kBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,sBAAuBiN,EAAqB,iCAC7D,EAAKhlE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,aACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,eACN,QAAW,oCACX,OAAU,uBACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,iCACX,OAAU,gCACV,MAAS,SACV,CACC,GAAM,WACN,QAAW,gCACX,OAAU,mBACV,MAAS,SACV,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,qCACX,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA5IqC,iBAAxBwN,EAAe,cAD3BtN,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAA2xG,oBALxBD,GAAb,CAAqCtN,EAAIxyH,UAA5B,EAAA8/H,mB,6FCNbrpF,EAAOC,QAFI,oZ,iPCKX,kBACI,WACI7iD,EACAu+H,EACQ4N,GAHZ,MAII,YAAMnsI,EAASu+H,IAAe,K,OADtB,EAAA4N,6BAER,EAAKplJ,GAAK,sBACV,EAAKI,MAAQ,kDACb,EAAKq3I,SAAS,CACV,GAAM,oBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,0CACP,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKP,YAAY,6BAA8BoN,EAA4B,wCAC3E,EAAKnlE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,4CACX,QAAW,CACP,YAAe,oBACf,OAAU,cACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,sCACX,QAAW,CACP,YAAe,oBACf,OAAU,QACV,SAAY,uCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,2CACX,QAAW,CACP,YAAe,oBACf,OAAU,aACV,SAAY,4CAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,YAAM0nH,uBAAsB,Q,EAEpC,OAlG4C,iBAA/B2N,EAAsB,cADlCzN,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACgB,EAAAqrE,2BAJ/B20D,GAAb,CAA4CzN,EAAIxyH,UAAnC,EAAAigI,0B,oGCHbxpF,EAAOC,QAFI,msD,iQCQX,kBACI,WACI7iD,EACAu+H,EACQ8N,EACAvN,GAJZ,MAKI,YAAM9+H,EAASu+H,IAAe,K,OAFtB,EAAA8N,+BACA,EAAAvN,mBAER,EAAK/3I,GAAK,wBACV,EAAKI,MAAQ,sDACb,EAAKq3I,SAAS,CACV,GAAM,sBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,MAEf,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,8GACZ,OAAU,CACN,SAAY,qDAEhB,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,4CACP,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,oCACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,qBAAwB,KACxB,eAAkB,KAClB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,KAChB,gCAAmC,MAEvC,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,qCACN,aAAgB,+BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKroH,WAAW,CACZ,QAAW,CACP,OAAU,0DACV,SAAY,uEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,gFACV,SAAY,6FAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,0EACV,SAAY,uFAGpB,EAAK0oH,aAAa,CACd,UAAa,mCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,qCACf,OAAU,KACV,SAAY,uDAGpB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,iCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,wBACf,OAAU,KACV,SAAY,0CAGpB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,kCAErB,QAAW,wDACX,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,+BAAgCsN,EAA8B,0CAC/E,EAAKtN,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,wCACX,QAAW,CACP,YAAe,sBACf,OAAU,cACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,gFAClB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CACN,CAAC,YAAa,CACV,SAAW,EACX,WAAc,8CAElB,CAAC,qBAAqB,IAE1B,QAAW,GACX,QAAW,0CACX,QAAW,CACP,YAAe,sBACf,OAAU,YACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,gFAClB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,4CACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,gDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,kDACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,oBACN,QAAW,kDACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,8CACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,eACN,QAAW,6CACX,OAAU,yCACV,MAAS,QACT,aAAgB,sDACjB,CACC,GAAM,qBACN,QAAW,mDACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,kBACN,QAAW,gDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,OAEd,eAAkB,CACd,YAAe,mDACf,cAAiB,oDAErB,QAAW,mEACX,QAAW,CACP,YAAe,uBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,oCACf,OAAU,+BACV,SAAY,8EAEhB,UAAa,sBACb,gBAAmB,qCACnB,YAAe,4BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qCACN,QAAW,CACP,YAAe,4CACf,cAAiB,+CAGzB,EAAK6vD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,wDACX,qBAAwB,yCACxB,QAAW,CACP,YAAe,sBACf,OAAU,wBACV,SAAY,yDAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKiwD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,8CAElB,QAAW,GACX,QAAW,iDACX,QAAW,CACP,YAAe,sBACf,OAAU,mBACV,SAAY,oDAEhB,gBAAmB,GACnB,eAAkB,iEAClB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,wCACX,QAAW,CACP,YAAe,sBACf,OAAU,QACV,SAAY,yCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,6CACX,QAAW,CACP,YAAe,sBACf,OAAU,aACV,SAAY,8CAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKiwD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,iDACX,QAAW,CACP,YAAe,sBACf,OAAU,iBACV,SAAY,kDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,2BAErB,QAAW,2BAEf,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,0DACX,QAAW,CACP,YAAe,sBACf,OAAU,0BACV,SAAY,2DAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,QAAW,kCAEf,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,+CACX,QAAW,CACP,YAAe,sBACf,OAAU,iBACV,SAAY,kDAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,sBACf,OAAU,WACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,iCAErB,QAAW,uDACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,iDACV,SAAY,gEAIxB,YAAM8mH,uBAAsB,Q,EAEpC,OA9b8C,iBAAjC6N,EAAwB,cADpC3N,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACkB,EAAA+/C,0BACZ,EAAA5xB,iBALrB+xG,GAAb,CAA8C3N,EAAIxyH,UAArC,EAAAmgI,4B,wGCNb1pF,EAAOC,QAFI,g0S,qPCKX,kBACI,WACI7iD,EACAu+H,EACQgO,GAHZ,MAII,YAAMvsI,EAASu+H,IAAe,K,OADtB,EAAAgO,8BAER,EAAKxlJ,GAAK,wBACV,EAAKI,MAAQ,sDACb,EAAKq3I,SAAS,CACV,GAAM,sBACN,aAAgB,8BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,4CACP,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKP,YAAY,8BAA+BwN,EAA6B,yCAC7E,EAAKvlE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,iBAAmB,EACnB,IAAO,EACP,OAAU,KACV,QAAW,8CACX,qBAAwB,0JACxB,QAAW,CACP,YAAe,sBACf,OAAU,cACV,SAAY,+CAEhB,gBAAmB,GACnB,eAAkB,kEAClB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,4CACX,qBAAwB,mGACxB,QAAW,CACP,YAAe,sBACf,OAAU,YACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,6CACX,qBAAwB,gDACxB,QAAW,CACP,YAAe,sBACf,OAAU,aACV,SAAY,8CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKuvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,8CACX,qBAAwB,gDACxB,QAAW,CACP,YAAe,sBACf,OAAU,cACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKgvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,kDACX,QAAW,CACP,YAAe,sBACf,OAAU,kBACV,SAAY,mDAEhB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKiwD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,iDACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,YACV,SAAY,oCAEhB,gBAAmB,GACnB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,oDACX,QAAW,CACP,YAAe,aACf,OAAU,wBACV,SAAY,gDAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,2DACX,YAAc,EACd,QAAW,CACP,YAAe,sBACf,OAAU,2BACV,SAAY,4DAEhB,gBAAmB,GACnB,GAAM,6BACN,QAAW,CACP,YAAe,oCACf,cAAiB,uCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,yDACX,YAAc,EACd,QAAW,CACP,YAAe,sBACf,OAAU,yBACV,SAAY,0DAEhB,gBAAmB,GACnB,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OA7M8C,iBAAjC+N,EAAwB,cADpC7N,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACiB,EAAAqgI,4BAJhCD,GAAb,CAA8C7N,EAAIxyH,UAArC,EAAAqgI,4B,sGCHb5pF,EAAOC,QAFI,isG,2PCWX,kBACI,WACI7iD,EACAu+H,EACQmO,EACA5N,EACA6C,GALZ,MAMI,YAAM3hI,EAASu+H,IAAe,K,OAHtB,EAAAmO,sBACA,EAAA5N,mBACA,EAAA6C,8BA+kCZ,EAAAC,cAAgB,EA7kCZ,EAAK76I,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,yBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,KAChB,eAAkB,KAClB,iBAAoB,CAChBnzI,QAAS,CAAC,aACV,OAAU,CACN,QAAW,CACPA,QAAS,CAAC,cAK1B,YAAe,CAAC,oCAAoC,GACpD,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,wEACZ,QAAW,CAAC,CACR,gBAAmB,iCACnB,kBAAqB,WAG7B,EAAKmzI,SAAS,CACV,GAAM,0BACN,aAAgB,+BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,sBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,KAChB,QAAW,CACP,OAAU,CACN,aAAgB,KAChB,MAAS,QAIrB,YAAe,CACX,CAAC,aAAc,KACf,CAAC,oCAAoC,GACrC,CAAC,kBAAmB,CAChB,SAAW,EACX,WAAc,mCAElB,CAAC,kBAAmB,CAChB,SAAW,EACX,WAAc,oCAGtB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,aAAgB,CACZ,MAAS,KACT,aAAgB,KAChB,OAAU,MAEd,YAAe,CACX,CAAC,aAAc,KACf,CAAC,UAAW,CACR,SAAW,EACX,WAAc,mCAElB,CAAC,UAAW,CACR,SAAW,EACX,WAAc,mCAElB,CAAC,WAAY,CACT,SAAW,EACX,WAAc,qCAGtB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,CAAC,CACR,gBAAmB,YACnB,kBAAqB,gCAG7B,EAAKA,SAAS,CACV,GAAM,yBACN,aAAgB,8BAChB,aAAgB,CACZ,QAAW,MAEf,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,wEACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,0BACN,aAAgB,8BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,uBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,wEACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,uDACV,SAAY,oEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,mDACV,SAAY,gEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,yCACV,SAAY,sDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,yCACV,SAAY,sDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,mDACV,SAAY,gEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+DACV,SAAY,4EAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,2CACV,SAAY,wDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,mDACV,SAAY,gEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,4CACV,SAAY,yDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+CACV,SAAY,4DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAK0oH,aAAa,CACd,UAAa,mCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,0BACf,OAAU,KACV,SAAY,2CAEjB,CACC,GAAM,yBACN,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,oCAGpB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,QAAW,iDACX,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,mCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,0BACf,OAAU,KACV,SAAY,4CAGpB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,QAAW,iDACX,OAAU,QACV,MAAS,QACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,iCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,wBACf,OAAU,KACV,SAAY,0CAGpB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,kCAErB,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,sBAAuB2N,EAAqB,iCAC7D,EAAK3N,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,8BAA+B4C,EAA6B,yCAC7E,EAAK36D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,WACV,SAAY,mCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,cACZ,QAAW,GACX,QAAW,qCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,QACV,SAAY,gCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,qCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,cACV,SAAY,sCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,0DAClB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,4CACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,uBACV,SAAY,+CAEhB,gBAAmB,GACnB,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAK8vD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,wCACZ,CACC,GAAM,eACN,QAAW,qCACZ,CACC,GAAM,wBACN,QAAW,8CACZ,CACC,GAAM,gBACN,QAAW,sCACZ,CACC,GAAM,eACN,QAAW,sCAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,kCACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,yBACN,QAAW,8CACX,OAAU,mBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,wBACV,MAAS,OACT,OAAU,KACV,eAAkB,+DACnB,CACC,GAAM,gCACN,QAAW,qDACX,OAAU,0BACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,6BACN,QAAW,kDACX,OAAU,uBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,6BACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,2BACN,QAAW,gDACX,OAAU,uBACV,MAAS,OACT,OAAU,IACV,eAAkB,kEACnB,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAiB,EACjB,eAAkB,CACd,YAAe,uCACf,cAAiB,wCAErB,QAAW,8CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,yBACf,OAAU,YACV,SAAY,gDAEhB,UAAa,aACb,gBAAmB,0BACnB,YAAe,4BACf,cAAiB,EACjB,UAAa,GACb,QAAW,GACX,SAAY,CAAC,CACT,QAAW,CACP,YAAe,aACf,OAAU,uCACV,SAAY,mDAEjB,CACC,QAAW,CACP,YAAe,aACf,OAAU,yCACV,SAAY,sDAGpB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,mCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,qCACf,cAAiB,sCAErB,QAAW,4CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,uBACf,OAAU,YACV,SAAY,8CAEhB,UAAa,aACb,gBAAmB,wBACnB,YAAe,0BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,mBACN,QAAW,wCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,kBACV,MAAS,SACV,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,SACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,gBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,aAAgB,oDAEpB,eAAiB,EACjB,eAAkB,CACd,YAAe,uCACf,cAAiB,wCAErB,QAAW,8CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,yBACf,OAAU,YACV,SAAY,gDAEhB,UAAa,aACb,gBAAmB,0BACnB,YAAe,4BACf,UAAa,GACb,QAAW,GACX,SAAY,CAAC,CACT,QAAW,CACP,YAAe,sBACf,OAAU,qBACV,SAAY,sDAGpB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,mCAGzB,EAAK6vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,0CACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,+BACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,UACZ,OAAU,CAAC,UAAW,CAClB,SAAW,EACX,WAAc,mCAElB,QAAW,GACX,QAAW,uCACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,kBACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,2CAElB,QAAW,GACX,QAAW,qCACX,qBAAwB,4HACxB,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,wCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,uCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,2CACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,aACf,OAAU,oBACV,SAAY,4CAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,sCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,iBACV,SAAY,yCAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,YACZ,QAAW,GACX,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,0CACZ,eAAkB,UAEtB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKkvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,QAAW,iDACX,OAAU,QACV,MAAS,SACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,sDACV,SAAY,qEAIxB,EAAKqvD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,sBACN,QAAW,2CACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,gBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,yCACf,cAAiB,0CAErB,QAAW,CACP,YAAe,uBAEnB,UAAa,sBACb,cAAiB,EACjB,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,EAAK6vD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,+BACN,QAAW,CACP,YAAe,sCACf,cAAiB,uCAErB,QAAW,oDACX,OAAU,QACV,MAAS,SACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,iEACV,SAAY,6EAEjB,CACC,QAAW,CACP,OAAU,wDACV,SAAY,uEAIxB,EAAKqvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,4BACN,QAAW,iDACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,mCACf,cAAiB,oCAErB,QAAW,CACP,YAAe,mBAEnB,UAAa,kBACb,cAAiB,EACjB,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,YAAMsnH,uBAAsB,Q,EAGpC,OAtlCqC,iBAAxBkO,EAAe,cAD3BhO,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACS,EAAAyX,iBACH,EAAA0W,cACW,EAAA9qC,4BANhCk9I,GAAb,CAAqChO,EAAIxyH,UAA5B,EAAAwgI,mB,+FCTb/pF,EAAOC,QAFI,k7c,2PCWX,kBACI,WACI7iD,EACAu+H,EACQO,EACAsK,EACAwD,GALZ,MAMI,YAAM5sI,EAASu+H,IAAe,K,OAHtB,EAAAO,mBACA,EAAAsK,oBACA,EAAAwD,sBAER,EAAK7lJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,WAAc,KACd,OAAU,KACV,QAAW,KACX,SAAY,KACZ,MAAS,KACT,aAAgB,CACZ,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,kBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+CACV,SAAY,4DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,kDACV,SAAY,+DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,gDACV,SAAY,6DAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,oBAAqBqK,EAAmB,+BACzD,EAAKrK,YAAY,sBAAuB6N,EAAqB,iCAC7D,EAAK5lE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,cACV,MAAS,OACT,OAAU,IACV,eAAkB,yDACnB,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,eACN,QAAW,oCACX,OAAU,uBACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,iCACX,OAAU,gCACV,MAAS,SACV,CACC,GAAM,WACN,QAAW,gCACX,OAAU,mBACV,MAAS,SACV,CACC,GAAM,yBACN,QAAW,8CACX,OAAU,oBACV,MAAS,OACT,OAAU,KACV,eAAkB,iEACnB,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,qCACX,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAK6vD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,mCACN,QAAW,CACP,YAAe,0CACf,cAAiB,2CAErB,QAAW,wDACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,kDACV,SAAY,iEAIxB,EAAKqvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,QAAW,GACX,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,YAAMunH,uBAAsB,Q,EAEpC,OAnMqC,iBAAxBoO,EAAe,cAD3BlO,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACC,EAAAzW,eACE,EAAAsvB,oBANxBy5F,GAAb,CAAqClO,EAAIxyH,UAA5B,EAAA0gI,mB,6FCTbjqF,EAAOC,QAFI,w/B,iPCKX,kBACI,WACI7iD,EACAu+H,EACQuO,GAHZ,MAII,YAAM9sI,EAASu+H,IAAe,K,OADtB,EAAAuO,6BAER,EAAK/lJ,GAAK,sBACV,EAAKI,MAAQ,kDACb,EAAKq3I,SAAS,CACV,GAAM,oBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,0CACP,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKP,YAAY,6BAA8B+N,EAA4B,wCAC3E,EAAK9lE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,4CACX,QAAW,CACP,YAAe,oBACf,OAAU,cACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,sCACX,QAAW,CACP,YAAe,oBACf,OAAU,QACV,SAAY,uCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OApF4C,iBAA/BsO,EAAsB,cADlCpO,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACgB,EAAAie,2BAJ/B0iH,GAAb,CAA4CpO,EAAIxyH,UAAnC,EAAA4gI,0B,oGCHbnqF,EAAOC,QAFI,smC,iQCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAkO,GAJZ,MAKI,YAAMhtI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAkO,+BAER,EAAKjmJ,GAAK,wBACV,EAAKI,MAAQ,sDACb,EAAKq3I,SAAS,CACV,GAAM,sBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,MAEf,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,qJACZ,OAAU,CACN,SAAY,qDAEhB,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,4CACP,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,6BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,oCACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,KACX,qBAAwB,KACxB,eAAkB,KAClB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,KAChB,gCAAmC,MAEvC,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,qCACN,aAAgB,+BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKA,YAAY,CACb,GAAM,2BAEV,EAAKroH,WAAW,CACZ,QAAW,CACP,OAAU,0DACV,SAAY,uEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,sDACV,SAAY,mEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,wDACV,SAAY,qEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,gFACV,SAAY,6FAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,0EACV,SAAY,uFAGpB,EAAK0oH,aAAa,CACd,UAAa,mCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,qCACf,OAAU,KACV,SAAY,uDAGpB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,oCAErB,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,iCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,wBACf,OAAU,KACV,SAAY,0CAGpB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,kCAErB,QAAW,wDACX,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,+BAAgCiO,EAA8B,0CAC/E,EAAKhmE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,wCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,cACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,gFAClB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CACN,CAAC,YAAa,CACV,SAAW,EACX,WAAc,8CAElB,CAAC,qBAAqB,IAE1B,QAAW,GACX,QAAW,0CACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,YACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,gFAClB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,4CACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,gDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,kDACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,oBACN,QAAW,kDACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,yBACN,QAAW,uDACX,OAAU,mBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,uBACN,QAAW,qDACX,OAAU,wBACV,MAAS,OACT,OAAU,KACV,eAAkB,wEACnB,CACC,GAAM,gCACN,QAAW,8DACX,OAAU,0BACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,6BACN,QAAW,2DACX,OAAU,uBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,8CACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,eACN,QAAW,6CACX,OAAU,yCACV,MAAS,QACT,aAAgB,sDACjB,CACC,GAAM,kBACN,QAAW,gDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,OAEd,eAAkB,CACd,YAAe,mDACf,cAAiB,oDAErB,QAAW,mEACX,QAAW,CACP,YAAe,uBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,oCACf,OAAU,+BACV,SAAY,8EAEhB,UAAa,sBACb,gBAAmB,qCACnB,YAAe,4BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qCACN,QAAW,CACP,YAAe,4CACf,cAAiB,+CAGzB,EAAK6vD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,wDACX,qBAAwB,yCACxB,QAAW,CACP,YAAe,sBACf,OAAU,wBACV,SAAY,yDAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKiwD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,8CAElB,QAAW,GACX,QAAW,iDACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,mBACV,SAAY,oDAEhB,gBAAmB,GACnB,eAAkB,iEAClB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,wCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,QACV,SAAY,yCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,iDACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,iBACV,SAAY,kDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,0DACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,0BACV,SAAY,2DAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,sCAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,+CACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,iBACV,SAAY,kDAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,2CAElB,QAAW,GACX,QAAW,8CACX,qBAAwB,mFACxB,QAAW,CACP,YAAe,sBACf,OAAU,gBACV,SAAY,iDAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,yCACX,YAAc,EACd,qBAAwB,qCACxB,QAAW,CACP,YAAe,sBACf,OAAU,WACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,iCAErB,QAAW,uDACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,wDACV,SAAY,uEAIxB,YAAM8mH,uBAAsB,Q,EAEpC,OA9e8C,iBAAjCwO,EAAwB,cADpCtO,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACY,EAAA2yG,6BALjCD,GAAb,CAA8CtO,EAAIxyH,UAArC,EAAA8gI,4B,wGCNbrqF,EAAOC,QAFI,wlT,2PCWX,kBACI,WACI7iD,EACAu+H,EACQO,EACAqO,EACAxL,GALZ,MAMI,YAAM3hI,EAASu+H,IAAe,K,OAHtB,EAAAO,mBACA,EAAAqO,sBACA,EAAAxL,8BAopBZ,EAAAC,cAAgB,EAlpBZ,EAAK76I,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,OAAU,KACV,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,8BAChB,aAAgB,CACZ,QAAW,KACX,cAAiB,KACjB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,UAAa,CACTnzI,QAAS,CAAC,aACV,OAAU,CACN,QAAW,CACPA,QAAS,CAAC,aAItB,aAAgB,MAEpB,YAAe,CAAC,oCAAoC,GACpD,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,oEACZ,QAAW,CAAC,CACR,gBAAmB,iCACnB,kBAAqB,WAG7B,EAAKmzI,SAAS,CACV,GAAM,yBACN,aAAgB,8BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,sBACN,aAAgB,4BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,uBACN,aAAgB,4BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,4CACV,SAAY,yDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,0CACV,SAAY,uDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,8CACV,SAAY,2DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,sCACV,SAAY,mDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAK0oH,aAAa,CACd,UAAa,kCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,yBACf,OAAU,KACV,SAAY,2CAGpB,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,mCAErB,QAAW,gDACX,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,gCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,uBACf,OAAU,KACV,SAAY,yCAGpB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,iCAErB,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,kCACb,SAAY,CAAC,CACT,GAAM,eACN,QAAW,CACP,YAAe,aACf,OAAU,KACV,SAAY,8BAEjB,CACC,GAAM,MACN,QAAW,CACP,YAAe,sBACf,OAAU,MACV,SAAY,uCAGpB,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,mCAErB,OAAU,OACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,sBAAuBoO,EAAqB,iCAC7D,EAAKpO,YAAY,8BAA+B4C,EAA6B,yCAC7E,EAAK36D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,WACV,SAAY,mCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,QACV,SAAY,gCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,oBACZ,QAAW,GACX,QAAW,oCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKkvD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,wCACZ,CACC,GAAM,eACN,QAAW,qCACZ,CACC,GAAM,eACN,QAAW,sCAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,2BACV,MAAS,QACV,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,iBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,6BACN,QAAW,kDACX,OAAU,uBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,4BACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,sCACf,cAAiB,uCAErB,QAAW,6CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,wBACf,OAAU,YACV,SAAY,+CAEhB,UAAa,aACb,gBAAmB,yBACnB,YAAe,2BACf,cAAiB,EACjB,UAAa,GACb,QAAW,GACX,SAAY,CAAC,CACT,QAAW,CACP,YAAe,aACf,OAAU,uCACV,SAAY,mDAEjB,CACC,QAAW,CACP,YAAe,aACf,OAAU,yCACV,SAAY,sDAGpB,GAAM,wBACN,QAAW,CACP,YAAe,+BACf,cAAiB,kCAGzB,EAAK6vD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,oCACf,cAAiB,qCAErB,QAAW,2CACX,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,sBACf,OAAU,YACV,SAAY,6CAEhB,UAAa,aACb,gBAAmB,uBACnB,YAAe,yBACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAK6vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,+BACX,qBAAwB,gCACxB,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,wCACX,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,mCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,YACV,SAAY,oCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKgvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,4CACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,qBACV,SAAY,6CAEhB,gBAAmB,GACnB,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,kDACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,2BACV,SAAY,mDAEhB,gBAAmB,GACnB,GAAM,6BACN,QAAW,CACP,YAAe,oCACf,cAAiB,uCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gDACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,yBACV,SAAY,iDAEhB,gBAAmB,GACnB,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,wDACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,iCACV,SAAY,yDAEhB,gBAAmB,GACnB,GAAM,mCACN,QAAW,CACP,YAAe,0CACf,cAAiB,6CAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,uCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,2CACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,oBACV,SAAY,4CAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,cACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,YACZ,QAAW,GACX,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,0CACZ,eAAkB,UAEtB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,YAAM2mH,uBAAsB,Q,EAGpC,OA3pBqC,iBAAxB2O,EAAe,cAD3BzO,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAA8yG,iBACQ,EAAA59I,4BANhC29I,GAAb,CAAqCzO,EAAIxyH,UAA5B,EAAAihI,mB,+FCTbxqF,EAAOC,QAFI,yiV,+OCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAwO,GAJZ,MAKI,YAAMttI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAwO,sBAER,EAAKvmJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,SAAY,KACZ,OAAU,KACV,QAAW,KACX,aAAgB,KAChB,oBAAuB,CACnB,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,kBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,+BACV,SAAY,4CAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,4CACV,SAAY,yDAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,sBAAuBuO,EAAqB,iCAC7D,EAAKtmE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,sBACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,iCACV,SAAY,KACb,CACC,GAAM,eACN,QAAW,oCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,iCACX,OAAU,uCACV,MAAS,SACV,CACC,GAAM,WACN,QAAW,gCACX,OAAU,0BACV,MAAS,SACV,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,wBACN,QAAW,6CACX,OAAU,qBACV,MAAS,SACV,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,qBACV,MAAS,OACT,OAAU,IACV,eAAkB,8DACnB,CACC,GAAM,cACN,QAAW,mCACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,cACN,QAAW,mCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,qCACX,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA7JqC,iBAAxB8O,EAAe,cAD3B5O,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAAnoC,oBALxBm7I,GAAb,CAAqC5O,EAAIxyH,UAA5B,EAAAohI,mB,6FCNb3qF,EAAOC,QAFI,oZ,+OCKX,kBACI,WACI7iD,EACAu+H,EACQiP,GAHZ,MAII,YAAMxtI,EAASu+H,IAAe,K,OADtB,EAAAiP,4BAER,EAAKzmJ,GAAK,qBACV,EAAKI,MAAQ,gDACb,EAAKq3I,SAAS,CACV,GAAM,mBACN,aAAgB,4BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,iCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,yCACP,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKP,YAAY,4BAA6ByO,EAA2B,uCACzE,EAAKxmE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,2CACX,QAAW,CACP,YAAe,mBACf,OAAU,cACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,mBACf,OAAU,QACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OApF2C,iBAA9BgP,EAAqB,cADjC9O,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACe,EAAAme,0BAJ9BkjH,GAAb,CAA2C9O,EAAIxyH,UAAlC,EAAAshI,yB,mGCHb7qF,EAAOC,QAFI,mmC,+PCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACA4O,GAJZ,MAKI,YAAM1tI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAA4O,8BAER,EAAK3mJ,GAAK,uBACV,EAAKI,MAAQ,oDACb,EAAKq3I,SAAS,CACV,GAAM,qBACN,aAAgB,8BAChB,aAAgB,CACZ,QAAW,MAEf,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,4IACZ,OAAU,CACN,SAAY,mDAEhB,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,2CACP,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,uBACN,aAAgB,4BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,mCACN,aAAgB,8BAChB,aAAgB,CACZ,QAAW,KACX,qBAAwB,KACxB,cAAiB,KACjB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,KAChB,+BAAkC,MAEtC,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,oCACN,aAAgB,8BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKroH,WAAW,CACZ,QAAW,CACP,OAAU,+EACV,SAAY,4FAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,yEACV,SAAY,sFAGpB,EAAK0oH,aAAa,CACd,UAAa,kCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,oCACf,OAAU,KACV,SAAY,sDAGpB,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,mCAErB,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,gCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,uBACf,OAAU,KACV,SAAY,yCAGpB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,iCAErB,QAAW,sDACX,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,8BAA+B2O,EAA6B,yCAC7E,EAAK1mE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,iDACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,kBACV,SAAY,kDAEhB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gDACX,qBAAwB,sDACxB,QAAW,CACP,YAAe,qBACf,OAAU,iBACV,SAAY,iDAEhB,gBAAmB,GACnB,eAAkB,+EAClB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CACN,CAAC,YAAa,CACV,SAAW,EACX,WAAc,6CAElB,CAAC,qBAAqB,IAE1B,QAAW,GACX,QAAW,yCACX,QAAW,CACP,YAAe,qBACf,OAAU,YACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,+EAClB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,4CACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,gDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,qBACN,QAAW,kDACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,wBACN,QAAW,qDACX,OAAU,iBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,8CACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,gBACN,QAAW,6CACX,OAAU,wCACV,MAAS,QACT,aAAgB,sDACjB,CACC,GAAM,mBACN,QAAW,gDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,iDACX,OAAU,kCACV,MAAS,OACT,OAAU,OAEd,eAAkB,CACd,YAAe,kDACf,cAAiB,mDAErB,QAAW,iEACX,QAAW,CACP,YAAe,sBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,mCACf,OAAU,8BACV,SAAY,4EAEhB,UAAa,qBACb,gBAAmB,oCACnB,YAAe,2BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,oCACN,QAAW,CACP,YAAe,2CACf,cAAiB,8CAGzB,EAAK6vD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,uDACX,qBAAwB,wCACxB,QAAW,CACP,YAAe,qBACf,OAAU,wBACV,SAAY,wDAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKiwD,cAAclvD,aAAa,EAAM,CAClC,SAAY,gBACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,6CAElB,QAAW,GACX,QAAW,+CACX,QAAW,CACP,YAAe,qBACf,OAAU,kBACV,SAAY,kDAEhB,gBAAmB,GACnB,eAAkB,+DAClB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,uCACX,QAAW,CACP,YAAe,qBACf,OAAU,QACV,SAAY,wCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,gDACX,QAAW,CACP,YAAe,qBACf,OAAU,iBACV,SAAY,iDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,yDACX,QAAW,CACP,YAAe,qBACf,OAAU,0BACV,SAAY,0DAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,sCAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,8CACX,QAAW,CACP,YAAe,qBACf,OAAU,iBACV,SAAY,iDAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,YAAM2mH,uBAAsB,Q,EAEpC,OAvY6C,iBAAhCkP,EAAuB,cADnChP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACW,EAAA7gC,4BALhCi0I,GAAb,CAA6ChP,EAAIxyH,UAApC,EAAAwhI,2B,uGCNb/qF,EAAOC,QAFI,40Q,qPCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACA8O,GAJZ,MAKI,YAAM5tI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAA8O,wBAER,EAAK7mJ,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,wBAChB,aAAgB,CACZ,eAAkB,CACd,QAAW,CACP,KACA,UAIZ,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,wBAAyB6O,EAAuB,mCACjE,EAAK5mE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,iCACX,qBAAwB,kCACxB,QAAW,CACP,YAAe,eACf,OAAU,UACV,SAAY,oCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,iDAClB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,gCACX,QAAW,CACP,YAAe,eACf,OAAU,OACV,SAAY,iCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,SACN,QAAW,CACP,YAAe,gBACf,cAAiB,mBAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,gCACX,QAAW,CACP,YAAe,eACf,OAAU,OACV,SAAY,iCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,SACN,QAAW,CACP,YAAe,gBACf,cAAiB,mBAGzB,EAAKgvD,cAAc/uD,YAAY,EAAM,CACjC,OAAU,QACV,UAAa,IACb,QAAW,gCACX,QAAW,CACP,YAAe,eACf,OAAU,OACV,SAAY,iCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,SACN,QAAW,CACP,YAAe,gBACf,cAAiB,mBAGzB,EAAK+uD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,sCACX,QAAW,CACP,YAAe,eACf,OAAU,aACV,SAAY,uCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,oCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,aACV,SAAY,uCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,0CACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,iBACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,0CACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,iBACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,YACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,kCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,WACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,gDACX,qBAAwB,kCACxB,QAAW,CACP,YAAe,eACf,OAAU,uBACV,SAAY,iDAEhB,gBAAmB,GACnB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,mCAGzB,EAAKiwD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,sCACX,QAAW,CACP,YAAe,eACf,OAAU,aACV,SAAY,uCAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,YAAMunH,uBAAsB,Q,EAEpC,OAxRuC,iBAA1BoP,EAAiB,cAD7BlP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACK,EAAAk9B,sBAL1Bo2E,GAAb,CAAuClP,EAAIxyH,UAA9B,EAAA0hI,qB,iGCNbjrF,EAAOC,QAFI,krK,yOCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,wBAChB,aAAgB,CACZ,kBAAqB,CACjB,QAAW,CACP,KACA,wBAGR,SAAY,KACZ,OAAU,KACV,eAAkB,CACd,QAAW,CACP,KACA,UAIZ,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,oBAGR,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,aACN,QAAW,oCACX,OAAU,OACV,MAAS,SACV,CACC,GAAM,uBACN,QAAW,8CACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,0BACN,QAAW,iDACX,OAAU,wCACV,SAAY,KACb,CACC,GAAM,mBACN,QAAW,0CACX,OAAU,aACV,MAAS,OACT,OAAU,KACV,iBAAmB,GACpB,CACC,GAAM,uBACN,QAAW,8CACX,OAAU,iBACV,MAAS,OACT,OAAU,KACV,iBAAmB,GACpB,CACC,GAAM,uBACN,QAAW,8CACX,OAAU,iBACV,MAAS,OACT,OAAU,KACV,iBAAmB,GACpB,CACC,GAAM,kBACN,QAAW,yCACX,OAAU,YACV,MAAS,OACT,OAAU,KACV,iBAAmB,GACpB,CACC,GAAM,qBACN,QAAW,4CACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,sCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,gCACf,cAAiB,iCAErB,QAAW,CACP,YAAe,gBAEnB,UAAa,eACb,QAAW,wBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA7HuC,iBAA1BqP,EAAiB,cAD7BnP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrBuzG,GAAb,CAAuCnP,EAAIxyH,UAA9B,EAAA2hI,qB,iGCHblrF,EAAOC,QAFI,wZ,yRCWX,kBACI,WACI7iD,EACAu+H,EACQO,EACAiP,EACApM,GALZ,MAMI,YAAM3hI,EAASu+H,IAAe,K,OAHtB,EAAAO,mBACA,EAAAiP,gCACA,EAAApM,8BAsjBZ,EAAAC,cAAgB,EApjBZ,EAAK76I,GAAK,yBACV,EAAKI,MAAQ,wDACb,EAAKq3I,SAAS,CACV,GAAM,uBACN,aAAgB,gCAChB,aAAgB,CACZ,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,mCACN,aAAgB,yCAChB,aAAgB,CACZ,qBAAwB,CACpBnzI,QAAS,CAAC,kBACV,OAAU,CACN,aAAgB,CACZA,QAAS,CAAC,aAItB,QAAW,KACX,QAAW,CACP,QAAW,CACP,KACA,aAEJ,OAAU,CACN,QAAW,CACP,QAAW,CACP,mBAMpB,YAAe,CAAC,oCAAoC,GACpD,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKmzI,SAAS,CACV,GAAM,oCACN,aAAgB,yCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,4BACN,aAAgB,mCAChB,aAAgB,CACZ,aAAgB,CACZ,OAAU,CACN,SAAY,OAGpB,OAAU,KACV,QAAW,MAEf,YAAe,CACX,CAAC,uBAAwB,CACrB,SAAW,EACX,WAAc,6CAElB,CAAC,0BAA2B,KAC5B,CAAC,8BAA+B,IAAK,GACrC,CAAC,uBAAwB,CACrB,SAAW,EACX,WAAc,6CAElB,CAAC,oCAAoC,IAEzC,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,gEACV,SAAY,6EAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,+DACV,SAAY,4EAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,6EACV,SAAY,0FAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,mEACV,SAAY,gFAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAK0oH,aAAa,CACd,UAAa,6CACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,oCACf,OAAU,KACV,SAAY,qDAEjB,CACC,GAAM,yBACN,QAAW,CACP,YAAe,uBACf,OAAU,UACV,SAAY,8CAGpB,GAAM,sCACN,QAAW,CACP,YAAe,6CACf,cAAiB,8CAErB,QAAW,qEACX,MAAS,MACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,gCAAiCgP,EAA+B,2CACjF,EAAKhP,YAAY,8BAA+B4C,EAA6B,yCAC7E,EAAK36D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,0CACX,YAAc,EACd,QAAW,CACP,YAAe,uBACf,OAAU,SACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,0CACX,YAAc,EACd,QAAW,CACP,YAAe,uBACf,OAAU,WACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,yCACX,QAAW,CACP,YAAe,uBACf,OAAU,QACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,oBACZ,QAAW,GACX,QAAW,qDACX,QAAW,CACP,YAAe,uBACf,OAAU,sBACV,SAAY,wDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKkvD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,kDACZ,CACC,GAAM,gBACN,QAAW,gDACZ,CACC,GAAM,eACN,QAAW,gDAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,uBACN,QAAW,sDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,mDACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,4BACN,QAAW,2DACX,OAAU,2CACV,MAAS,QACV,CACC,GAAM,sBACN,QAAW,qDACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gCACN,QAAW,+DACX,OAAU,yBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,+BACN,QAAW,8DACX,OAAU,wBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,gDACX,OAAU,8BACV,MAAS,UAEb,eAAiB,EACjB,eAAkB,CACd,YAAe,mDACf,cAAiB,oDAErB,QAAW,oEACX,QAAW,CACP,YAAe,wBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,mCACf,OAAU,sBACV,SAAY,oEAEhB,UAAa,uBACb,gBAAmB,oCACnB,YAAe,sCACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qCACN,QAAW,CACP,YAAe,4CACf,cAAiB,+CAGzB,EAAK6vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,oDACX,QAAW,CACP,YAAe,uBACf,OAAU,mBACV,SAAY,qDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,4CACX,QAAW,CACP,YAAe,uBACf,OAAU,aACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,yCACX,QAAW,CACP,YAAe,uBACf,OAAU,UACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kDACX,QAAW,CACP,YAAe,uBACf,OAAU,mBACV,SAAY,qDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,UACZ,OAAU,CAAC,UAAW,CAClB,SAAW,EACX,WAAc,6CAElB,QAAW,GACX,QAAW,iDACX,QAAW,CACP,YAAe,uBACf,OAAU,kBACV,SAAY,oDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,OAAU,CAAC,YAAa,CACpB,SAAW,EACX,WAAc,qDAElB,QAAW,GACX,QAAW,+CACX,QAAW,CACP,YAAe,uBACf,OAAU,gBACV,SAAY,kDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,kDACX,QAAW,CACP,YAAe,uBACf,OAAU,iBACV,SAAY,mDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKgvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,oCACN,QAAW,CACP,YAAe,2CACf,cAAiB,4CAErB,QAAW,mEACX,OAAU,QACV,MAAS,SACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,oEACV,SAAY,mFAIxB,EAAKqvD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,2BACN,QAAW,0DACX,OAAU,sBACV,MAAS,QACV,CACC,GAAM,0BACN,QAAW,yDACX,OAAU,qBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kBACN,QAAW,iDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,mDACX,OAAU,eACX,CACC,GAAM,uBACN,QAAW,sDACX,OAAU,iBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,8BACN,QAAW,6DACX,OAAU,wBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,iDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,gDACX,OAAU,gCACV,MAAS,SAEb,eAAkB,CACd,YAAe,6CACf,cAAiB,8CAErB,QAAW,CACP,YAAe,6BAEnB,UAAa,4BACb,cAAiB,EACjB,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,+BACN,QAAW,CACP,YAAe,sCACf,cAAiB,yCAGzB,YAAMsnH,uBAAsB,Q,EAGpC,OA7jB+C,iBAAlCuP,EAAyB,cADrCrP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACa,EAAA0zG,2BACF,EAAAx+I,4BANhCu+I,GAAb,CAA+CrP,EAAIxyH,UAAtC,EAAA6hI,6B,mHCTbprF,EAAOC,QAFI,ohW,iQCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,yBACV,EAAKI,MAAQ,wDACb,EAAKq3I,SAAS,CACV,GAAM,uBACN,aAAgB,gCAChB,aAAgB,CACZ,SAAY,KACZ,OAAU,KACV,MAAS,KACT,QAAW,KACX,aAAgB,CACZ,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,4BAGR,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,8CACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,6CACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,gBACN,QAAW,+CACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,oBACN,QAAW,mDACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,mBACN,QAAW,kDACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,+CACX,OAAU,uBACV,MAAS,SACV,CACC,GAAM,aACN,QAAW,4CACX,OAAU,gCACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,2CACX,OAAU,mBACV,MAAS,SACV,CACC,GAAM,kBACN,QAAW,iDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,gDACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,8CACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,wCACf,cAAiB,yCAErB,QAAW,yDACX,QAAW,CACP,YAAe,wBAEnB,UAAa,uBACb,QAAW,gCACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA7H+C,iBAAlCyP,EAAyB,cADrCvP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrB2zG,GAAb,CAA+CvP,EAAIxyH,UAAtC,EAAA+hI,6B,iHCHbtrF,EAAOC,QAFI,wa,+RCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAqP,GAJZ,MAKI,YAAMnuI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAqP,yCAER,EAAKpnJ,GAAK,kCACV,EAAKI,MAAQ,0EACb,EAAKq3I,SAAS,CACV,GAAM,gCACN,aAAgB,yCAChB,aAAgB,CACZ,qBAAwB,CACpB,OAAU,CACN,aAAgB,QAI5B,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,uBACN,aAAgB,gCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,gEACP,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,8CACN,aAAgB,yCAChB,aAAgB,CACZ,qBAAwB,CACpB,OAAU,CACN,aAAgB,OAGxB,QAAW,KACX,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,+CACN,aAAgB,yCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKA,YAAY,CACb,GAAM,2BAEV,EAAKK,aAAa,CACd,UAAa,6CACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,+CACf,OAAU,KACV,SAAY,iEAGpB,GAAM,sCACN,QAAW,CACP,YAAe,6CACf,cAAiB,8CAErB,QAAW,8EACX,MAAS,MACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,yCAA0CoP,EAAwC,oDACnG,EAAKnnE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,wDACX,QAAW,CACP,YAAe,gCACf,OAAU,cACV,SAAY,yDAEhB,gBAAmB,GACnB,eAAkB,0FAClB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,kEACX,QAAW,CACP,YAAe,gCACf,OAAU,wBACV,SAAY,mEAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,8DACX,qBAAwB,+IACxB,QAAW,CACP,YAAe,gCACf,OAAU,oBACV,SAAY,+DAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,kEACX,QAAW,CACP,YAAe,gCACf,OAAU,wBACV,SAAY,mEAEhB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CACN,CAAC,YAAa,CACV,SAAW,EACX,WAAc,wDAElB,CAAC,qBAAqB,IAE1B,QAAW,GACX,QAAW,oDACX,qBAAwB,+IACxB,QAAW,CACP,YAAe,gCACf,OAAU,YACV,SAAY,uDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,0FAClB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,4EACX,QAAW,CACP,YAAe,gCACf,OAAU,kCACV,SAAY,6EAEhB,gBAAmB,GACnB,GAAM,oCACN,QAAW,CACP,YAAe,2CACf,cAAiB,8CAGzB,EAAKiwD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,uBACN,QAAW,+DACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,4DACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,4BACN,QAAW,oEACX,OAAU,2CACV,MAAS,QACV,CACC,GAAM,sBACN,QAAW,8DACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gCACN,QAAW,wEACX,OAAU,yBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,+BACN,QAAW,uEACX,OAAU,wBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,yDACX,OAAU,8BACV,MAAS,UAEb,eAAkB,CACd,YAAe,6DACf,cAAiB,8DAErB,QAAW,uFACX,QAAW,CACP,YAAe,iCAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,8CACf,OAAU,yCACV,SAAY,kGAEhB,UAAa,gCACb,gBAAmB,+CACnB,YAAe,sCACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,+CACN,QAAW,CACP,YAAe,sDACf,cAAiB,yDAGzB,EAAK6vD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,8DACX,YAAc,EACd,QAAW,CACP,YAAe,gCACf,OAAU,yBACV,SAAY,oEAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,uEACX,YAAc,EACd,QAAW,CACP,YAAe,gCACf,OAAU,2CACV,SAAY,qFACZ,eAAkB,qCAEtB,gBAAmB,GACnB,GAAM,+BACN,QAAW,CACP,YAAe,sCACf,cAAiB,yCAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,oBACZ,QAAW,GACX,QAAW,8DACX,QAAW,CACP,YAAe,gCACf,OAAU,sBACV,SAAY,iEAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,2CACZ,QAAW,GACX,QAAW,oEACX,qBAAwB,6MACxB,QAAW,CACP,YAAe,gCACf,OAAU,0BACV,SAAY,qEAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,sBACR,WAAc,CAAC,CACX,KAAQ,YACR,MAAS,iEAIrB,GAAM,4BACN,QAAW,CACP,YAAe,mCACf,cAAiB,sCAGzB,YAAM2mH,uBAAsB,Q,EAEpC,OAtWwD,iBAA3C2P,EAAkC,cAD9CzP,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACsB,EAAAzC,uCAL3Cs2G,GAAb,CAAwDzP,EAAIxyH,UAA/C,EAAAiiI,sC,4HCNbxrF,EAAOC,QAFI,4uR,qPCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAuP,GAJZ,MAKI,YAAMruI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAuP,wBA8WZ,EAAAzM,cAAgB,EA5WZ,EAAK76I,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,wBAChB,aAAgB,CACZ,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wBACN,aAAgB,iCAChB,aAAgB,CACZ,aAAgB,CACZ,OAAU,CACN,MAAS,CACL,OAAU,CACN,QAAW,UAM/B,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,aAAgB,CACZ,MAAS,CACL,OAAU,CACN,QAAW,QAIvB,YAAe,CACX,CAAC,aAAc,KACf,CAAC,uBAAwB,SAE7B,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,CAAC,CACR,gBAAmB,cACnB,kBAAqB,kCAG7B,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,2DACV,SAAY,wEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,qDACV,SAAY,kEAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,wBAAyBsP,EAAuB,mCACjE,EAAKrnE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,kCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,SACV,SAAY,mCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,kCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,WACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,iCACX,QAAW,CACP,YAAe,eACf,OAAU,QACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,0CACZ,CACC,GAAM,eACN,QAAW,wCAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,gBACN,QAAW,uCACX,OAAU,sBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,sCACX,OAAU,qBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kBACN,QAAW,yCACX,OAAU,4BACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,2CACX,OAAU,wCACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,wCACX,OAAU,qCACV,MAAS,SACV,CACC,GAAM,aACN,QAAW,oCACX,OAAU,iCACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,oCACX,OAAU,iCACV,MAAS,SACV,CACC,GAAM,uBACN,QAAW,8CACX,OAAU,6BACV,MAAS,OACT,OAAU,OAEd,eAAkB,CACd,YAAe,yCACf,cAAiB,0CAErB,QAAW,CACP,YAAe,gBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,wBACf,OAAU,cACV,SAAY,iDAEhB,UAAa,eACb,eAAiB,EACjB,cAAiB,EACjB,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,EAAK6vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,iCACX,qBAAwB,kCACxB,QAAW,CACP,YAAe,eACf,OAAU,UACV,SAAY,oCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,UACZ,OAAU,CAAC,UAAW,CAClB,SAAW,EACX,WAAc,qCAElB,QAAW,GACX,QAAW,yCACX,qBAAwB,kCACxB,QAAW,CACP,YAAe,eACf,OAAU,kBACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,YACZ,QAAW,GACX,QAAW,qCACX,QAAW,CACP,YAAe,eACf,OAAU,cACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKkvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,kCAErB,QAAW,iDACX,OAAU,QACV,MAAS,SACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,0DACV,SAAY,yEAIxB,EAAKqvD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,2BACN,QAAW,kDACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,qCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,qBACN,QAAW,4CACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,mBACN,QAAW,0CACX,OAAU,2BACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,uCACX,OAAU,wBACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,mCACX,OAAU,oBACV,MAAS,QACV,CACC,GAAM,YACN,QAAW,mCACX,OAAU,oBACV,MAAS,UAEb,eAAkB,CACd,YAAe,mCACf,cAAiB,oCAErB,QAAW,CACP,YAAe,mBAEnB,UAAa,kBACb,cAAiB,EACjB,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,YAAMsnH,uBAAsB,Q,EAGpC,OApXuC,iBAA1B6P,EAAiB,cAD7B3P,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACK,EAAAosC,sBAL1B2nE,GAAb,CAAuC3P,EAAIxyH,UAA9B,EAAAmiI,qB,iGCNb1rF,EAAOC,QAFI,gkI,yOCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,wBAChB,aAAgB,CACZ,UAAa,KACb,MAAS,KACT,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,oBAGR,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,sCACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,qCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kBACN,QAAW,yCACX,OAAU,wBACV,SAAY,KACb,CACC,GAAM,cACN,QAAW,qCACX,OAAU,oBACV,SAAY,KACb,CACC,GAAM,eACN,QAAW,sCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,gCACf,cAAiB,iCAErB,QAAW,yCACX,QAAW,CACP,YAAe,gBAEnB,UAAa,eACb,QAAW,wBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OAxFuC,iBAA1B8P,EAAiB,cAD7B5P,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrBg0G,GAAb,CAAuC5P,EAAIxyH,UAA9B,EAAAoiI,qB,iGCHb3rF,EAAOC,QAFI,wZ,0QCWX,kBACI,WACI7iD,EACAu+H,EACQiQ,EACA1P,EACA6C,GALZ,MAMI,YAAM3hI,EAASu+H,IAAe,K,OAHtB,EAAAiQ,2BACA,EAAA1P,mBACA,EAAA6C,8BA0yBZ,EAAAC,cAAgB,EAxyBZ,EAAK76I,GAAK,oBACV,EAAKI,MAAQ,8CACb,EAAKq3I,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,aAAgB,CACZ,OAAU,KACV,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,6BACN,aAAgB,mCAChB,aAAgB,CACZ,QAAW,KACX,mBAAsB,KACtB,iBAAoB,CAChB,QAAW,CACP,cACA,aAEJ,OAAU,CACN,QAAW,CACP,QAAW,CACP,aAKhB,QAAW,CACP,QAAW,CACP,KACA,aAEJ,OAAU,CACN,QAAW,CACP,QAAW,CACP,kBAKhB,aAAgB,CACZ,QAAW,CACP,iBAIZ,YAAe,CAAC,oCAAoC,GACpD,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,CAAC,CACR,gBAAmB,iCACnB,kBAAqB,WAG7B,EAAKA,SAAS,CACV,GAAM,8BACN,aAAgB,mCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,MAAS,CACL,OAAU,CACN,QAAW,CACP,OAAU,CACN,KAAQ,SAKxB,SAAY,KACZ,OAAU,MAEd,YAAe,CACX,CAAC,UAAW,CACR,SAAW,EACX,WAAc,wCAElB,CAAC,WAAY,CACT,SAAW,EACX,WAAc,yCAElB,CAAC,eAAgB,QACjB,CAAC,aAAc,MAEnB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,CAAC,CACR,gBAAmB,oBACnB,kBAAqB,QACtB,CACC,gBAAmB,iBACnB,kBAAqB,qCAG7B,EAAKA,SAAS,CACV,GAAM,2BACN,aAAgB,iCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,sCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,4BACN,aAAgB,iCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,uDACV,SAAY,oEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,yDACV,SAAY,sEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,oDACV,SAAY,iEAGpB,EAAK0oH,aAAa,CACd,UAAa,uCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,8BACf,OAAU,KACV,SAAY,gDAGpB,GAAM,gCACN,QAAW,CACP,YAAe,uCACf,cAAiB,wCAErB,QAAW,0DACX,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,qCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,4BACf,OAAU,KACV,SAAY,8CAGpB,GAAM,8BACN,QAAW,CACP,YAAe,qCACf,cAAiB,sCAErB,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,2BAA4ByP,EAA0B,sCACvE,EAAKzP,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,8BAA+B4C,EAA6B,yCAC7E,EAAK36D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,kBACf,OAAU,SACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,kBACf,OAAU,WACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,kBACf,OAAU,QACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,2CACX,QAAW,CACP,YAAe,kBACf,OAAU,eACV,SAAY,4CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAK8vD,cAAcnvD,OAAO,EAAM,CAC5B,MAAS,CAAC,CACN,GAAM,kBACN,QAAW,6CACZ,CACC,GAAM,eACN,QAAW,0CACZ,CACC,GAAM,gBACN,QAAW,2CACZ,CACC,GAAM,eACN,QAAW,2CAEf,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAKmvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,yCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,uBACN,QAAW,iDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,8CACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,wBACN,QAAW,kDACX,OAAU,kCACV,MAAS,QACV,CACC,GAAM,yBACN,QAAW,mDACX,OAAU,kBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,wBACN,QAAW,kDACX,OAAU,iBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,2CACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,sBACN,QAAW,gDACX,OAAU,2BACV,MAAS,SACV,CACC,GAAM,4BACN,QAAW,sDACX,OAAU,iCACV,SAAY,MAEhB,eAAiB,EACjB,eAAkB,CACd,YAAe,2CACf,cAAiB,4CAErB,QAAW,uDACX,QAAW,CACP,YAAe,mBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,6BACf,OAAU,iBACV,SAAY,yDAEhB,UAAa,kBACb,gBAAmB,8BACnB,YAAe,gCACf,cAAiB,EACjB,UAAa,GACb,QAAW,GACX,SAAY,CAAC,CACT,QAAW,CACP,YAAe,kBACf,OAAU,8CACV,SAAY,2DAGpB,GAAM,6BACN,QAAW,CACP,YAAe,oCACf,cAAiB,uCAGzB,EAAK6vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,4CACX,QAAW,CACP,YAAe,kBACf,OAAU,gBACV,SAAY,6CAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gDACX,QAAW,CACP,YAAe,kBACf,OAAU,oBACV,SAAY,iDAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,kBACf,OAAU,SACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,kBACf,OAAU,SACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,oCACX,QAAW,CACP,YAAe,kBACf,OAAU,QACV,SAAY,qCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,wCACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,8CACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,kBACN,QAAW,4CACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,yCACf,cAAiB,0CAErB,QAAW,qDACX,QAAW,CACP,YAAe,mBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,2BACf,OAAU,iBACV,SAAY,uDAEhB,UAAa,kBACb,gBAAmB,4BACnB,YAAe,8BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,EAAK6vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,+CACX,QAAW,CACP,YAAe,kBACf,OAAU,mBACV,SAAY,gDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,uCACX,QAAW,CACP,YAAe,kBACf,OAAU,aACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,kBACf,OAAU,aACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,oCACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,kBACf,OAAU,UACV,SAAY,uCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,UACZ,OAAU,CAAC,UAAW,CAClB,SAAW,EACX,WAAc,wCAElB,QAAW,GACX,QAAW,4CACX,qBAAwB,qCACxB,QAAW,CACP,YAAe,kBACf,OAAU,kBACV,SAAY,+CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,6CACX,QAAW,CACP,YAAe,kBACf,OAAU,mBACV,SAAY,gDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAchvD,WAAW,EAAM,CAChC,QAAW,yCACX,QAAW,CACP,YAAe,kBACf,OAAU,aACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,4BACZ,QAAW,GACX,QAAW,4CACX,YAAc,EACd,QAAW,CACP,YAAe,kBACf,OAAU,gBACV,SAAY,6CAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,YACZ,QAAW,GACX,QAAW,8CACX,YAAc,EACd,QAAW,CACP,YAAe,kBACf,OAAU,mBACV,SAAY,+CACZ,eAAkB,UAEtB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKkvD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,6BAErB,QAAW,+CACX,OAAU,QACV,MAAS,SACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,kDACV,SAAY,iEAIxB,EAAKqvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,qBACN,QAAW,+CACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,aACN,QAAW,uCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,mBACN,QAAW,6CACX,OAAU,cACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,oBACN,QAAW,8CACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,kBACN,QAAW,4CACX,OAAU,2BACV,SAAY,KACb,CACC,GAAM,YACN,QAAW,sCACX,OAAU,iCACV,MAAS,SACV,CACC,GAAM,WACN,QAAW,qCACX,OAAU,oBACV,MAAS,SACV,CACC,GAAM,eACN,QAAW,yCACX,OAAU,wBACV,MAAS,SACV,CACC,GAAM,iBACN,QAAW,2CACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,gBACN,QAAW,0CACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,cACN,QAAW,wCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,cAAiB,EACjB,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAGpC,OAjzB0C,iBAA7BgQ,EAAoB,cADhC9P,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACc,EAAA44D,sBACR,EAAAzqC,cACW,EAAA9qC,4BANhCg/I,GAAb,CAA0C9P,EAAIxyH,UAAjC,EAAAsiI,wB,yGCTb7rF,EAAOC,QAFI,ukb,8PCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACA4P,GAJZ,MAKI,YAAM1uI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAA4P,2BAER,EAAK3nJ,GAAK,oBACV,EAAKI,MAAQ,8CACb,EAAKq3I,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,aAAgB,CACZ,SAAY,KACZ,QAAW,KACX,OAAU,KACV,MAAS,KACT,aAAgB,CACZ,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,uBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,iDACV,SAAY,8DAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,2BAA4B2P,EAA0B,sCACvE,EAAK1nE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,gBACN,QAAW,0CACX,OAAU,SACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,yCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,iBACN,QAAW,2CACX,OAAU,sBACV,MAAS,SACV,CACC,GAAM,qBACN,QAAW,+CACX,OAAU,eACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,8CACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,2CACX,OAAU,uBACV,MAAS,SACV,CACC,GAAM,cACN,QAAW,wCACX,OAAU,gCACV,MAAS,SACV,CACC,GAAM,aACN,QAAW,uCACX,OAAU,mBACV,MAAS,SACV,CACC,GAAM,mBACN,QAAW,6CACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,4CACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,gBACN,QAAW,0CACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,mCACf,cAAiB,oCAErB,QAAW,+CACX,QAAW,CACP,YAAe,mBAEnB,UAAa,kBACb,QAAW,2BACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,qBACN,QAAW,CACP,YAAe,4BACf,cAAiB,+BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OAtI0C,iBAA7BkQ,EAAoB,cADhChQ,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACQ,EAAAq0G,yBAL7BD,GAAb,CAA0ChQ,EAAIxyH,UAAjC,EAAAwiI,wB,uGCNb/rF,EAAOC,QAFI,8Z,8PCKX,kBACI,WACI7iD,EACAu+H,EACQsQ,GAHZ,MAII,YAAM7uI,EAASu+H,IAAe,K,OADtB,EAAAsQ,iCAER,EAAK9nJ,GAAK,0BACV,EAAKI,MAAQ,0DACb,EAAKq3I,SAAS,CACV,GAAM,wBACN,aAAgB,iCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,sCACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,mDACP,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKP,YAAY,iCAAkC8P,EAAgC,4CACnF,EAAK7nE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,gDACX,QAAW,CACP,YAAe,wBACf,OAAU,cACV,SAAY,iDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,0CACX,QAAW,CACP,YAAe,wBACf,OAAU,QACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OApFgD,iBAAnCqQ,EAA0B,cADtCnQ,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACoB,EAAAmvB,+BAJnCuzG,GAAb,CAAgDnQ,EAAIxyH,UAAvC,EAAA2iI,8B,6GCHblsF,EAAOC,QAFI,knC,8QCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAiQ,GAJZ,MAKI,YAAM/uI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAiQ,mCAER,EAAKhoJ,GAAK,4BACV,EAAKI,MAAQ,8DACb,EAAKq3I,SAAS,CACV,GAAM,0BACN,aAAgB,mCAChB,aAAgB,CACZ,iBAAoB,KACpB,MAAS,MAEb,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,kBACN,aAAgB,2BAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qDACP,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,4BACN,aAAgB,iCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,wCACN,aAAgB,mCAChB,aAAgB,CACZ,QAAW,KACX,qBAAwB,KACxB,mBAAsB,KACtB,QAAW,CACP,OAAU,CACN,QAAW,OAGnB,OAAU,KACV,aAAgB,MAEpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,yCACN,aAAgB,mCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKroH,WAAW,CACZ,QAAW,CACP,OAAU,8EACV,SAAY,2FAGpB,EAAK0oH,aAAa,CACd,UAAa,uCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,yCACf,OAAU,KACV,SAAY,2DAGpB,GAAM,gCACN,QAAW,CACP,YAAe,uCACf,cAAiB,wCAErB,QAAW,kEACX,MAAS,MACT,SAAY,KAEhB,EAAKA,aAAa,CACd,UAAa,qCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,4BACf,OAAU,KACV,SAAY,8CAGpB,GAAM,8BACN,QAAW,CACP,YAAe,qCACf,cAAiB,sCAErB,QAAW,gEACX,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,mCAAoCgQ,EAAkC,8CACvF,EAAK/nE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,sDACX,YAAc,EACd,QAAW,CACP,YAAe,0BACf,OAAU,kBACV,SAAY,uDAEhB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,iBACZ,OAAU,CACN,CAAC,YAAa,CACV,SAAW,EACX,WAAc,kDAElB,CAAC,qBAAqB,IAE1B,QAAW,GACX,QAAW,8CACX,QAAW,CACP,YAAe,0BACf,OAAU,YACV,SAAY,iDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,oFAClB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,iDACX,OAAU,QACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,qDACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,qBACN,QAAW,uDACX,OAAU,cACV,SAAY,KACb,CACC,GAAM,yBACN,QAAW,2DACX,OAAU,kBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,wBACN,QAAW,0DACX,OAAU,iBACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,mDACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,mBACN,QAAW,qDACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,sDACX,OAAU,kCACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,oBACN,QAAW,sDACX,OAAU,kCACV,MAAS,OACT,OAAU,OAEd,eAAkB,CACd,YAAe,uDACf,cAAiB,wDAErB,QAAW,2EACX,QAAW,CACP,YAAe,2BAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,wCACf,OAAU,mCACV,SAAY,sFAEhB,UAAa,0BACb,gBAAmB,yCACnB,YAAe,gCACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,yCACN,QAAW,CACP,YAAe,gDACf,cAAiB,mDAGzB,EAAK6vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,qBACZ,OAAU,CAAC,iBAAkB,CACzB,SAAW,EACX,WAAc,uDAElB,QAAW,GACX,QAAW,yDACX,QAAW,CACP,YAAe,0BACf,OAAU,uBACV,SAAY,4DAEhB,gBAAmB,GACnB,eAAkB,yEAClB,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,4CACX,QAAW,CACP,YAAe,0BACf,OAAU,QACV,SAAY,6CAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,mDACX,QAAW,CACP,YAAe,0BACf,OAAU,iBACV,SAAY,sDAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,eACZ,QAAW,GACX,QAAW,kDACX,QAAW,CACP,YAAe,0BACf,OAAU,gBACV,SAAY,qDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,mDACX,YAAc,EACd,QAAW,CACP,YAAe,0BACf,OAAU,eACV,SAAY,oDAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,wDACX,QAAW,CACP,YAAe,0BACf,OAAU,oBACV,SAAY,yDAEhB,gBAAmB,GACnB,GAAM,sBACN,QAAW,CACP,YAAe,6BACf,cAAiB,gCAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,oDACX,YAAc,EACd,QAAW,CACP,YAAe,0BACf,OAAU,gBACV,SAAY,qDAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OArXkD,iBAArCuQ,EAA4B,cADxCrQ,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACgB,EAAA8yB,iCALrC2hF,GAAb,CAAkDrQ,EAAIxyH,UAAzC,EAAA6iI,gC,iHCNbpsF,EAAOC,QAFI,06R,+OCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAmQ,GAJZ,MAKI,YAAMjvI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAmQ,sBAER,EAAKloJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,yBACN,aAAgB,+BAChB,aAAgB,CACZ,QAAW,CACP,OAAU,CACN,OAAU,QAItB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,yCACV,SAAY,sDAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,sBAAuBkQ,EAAqB,iCAC7D,EAAKjoE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,+BACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,WACV,SAAY,mCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,QACV,SAAY,gCAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,cACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,mCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,eACV,SAAY,uCAEhB,gBAAmB,GACnB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,sCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,eACV,SAAY,uCAEhB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,wCACX,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,2CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,yBACN,QAAW,8CACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,wBACN,QAAW,6CACX,OAAU,gBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,8BACN,QAAW,mDACX,OAAU,6BACV,MAAS,OACT,UAAa,MACb,OAAU,KACX,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,YACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,uCACX,OAAU,6BACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,qCACf,cAAiB,sCAErB,QAAW,CACP,YAAe,cAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,yBACf,OAAU,YACV,SAAY,gDAEhB,UAAa,aACb,QAAW,sBACX,kBAAqB,YACrB,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA1TqC,iBAAxByQ,EAAe,cAD3BvQ,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAA+8C,oBALxB43D,GAAb,CAAqCvQ,EAAIxyH,UAA5B,EAAA+iI,mB,6FCNbtsF,EAAOC,QAFI,shK,+OCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAqQ,GAJZ,MAKI,YAAMnvI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAqQ,sBAER,EAAKpoJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,MAAS,KACT,OAAU,KACV,aAAgB,KAChB,SAAY,KACZ,oBAAuB,CACnB,OAAU,CACN,KAAQ,QAIpB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,OAAU,CACN,WAAa,EACb,kBAAqB,CACjB,kBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,yCACV,SAAY,sDAGpB,EAAKA,WAAW,CACZ,QAAW,CACP,OAAU,2CACV,SAAY,wDAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,sBAAuBoQ,EAAqB,iCAC7D,EAAKnoE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,mCACX,OAAU,oBACV,SAAY,KACb,CACC,GAAM,cACN,QAAW,mCACX,OAAU,QACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,sBACV,MAAS,QACV,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,iCACV,SAAY,KACb,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,8BACV,MAAS,SACV,CACC,GAAM,aACN,QAAW,kCACX,OAAU,uCACV,MAAS,SACV,CACC,GAAM,YACN,QAAW,iCACX,OAAU,0BACV,MAAS,SACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,cACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,eACN,QAAW,oCACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,mBACN,QAAW,wCACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,qBACN,QAAW,0CACX,OAAU,eACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,mBACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OAxJqC,iBAAxB2Q,EAAe,cAD3BzQ,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACG,EAAAW,oBALxBk0G,GAAb,CAAqCzQ,EAAIxyH,UAA5B,EAAAijI,mB,6FCNbxsF,EAAOC,QAFI,oZ,yOCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,0BAChB,aAAgB,CACZ,UAAa,KACb,MAAS,MAEb,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,2BACN,aAAgB,mCAChB,aAAgB,CACZ,gBAAmB,CACf,QAAW,CACP,KACA,YACA,cACA,aAEJ,OAAU,CACN,QAAW,CACP,QAAW,CACP,KACA,wBACA,SACA,SAEJ,OAAU,CACN,oBAAuB,CACnB,QAAW,CACP,aACA,UAKhB,QAAW,CACP,QAAW,CACP,KACA,aAKhB,UAAa,MAEjB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,4BACN,aAAgB,mCAChB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKmB,aAAa,CACd,UAAa,qCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,4BACf,OAAU,KACV,SAAY,8CAGpB,GAAM,8BACN,QAAW,CACP,YAAe,qCACf,cAAiB,sCAErB,QAAW,qDACX,OAAU,QACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,iCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,oBACV,SAAY,6CACZ,eAAkB,SAEtB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,YACV,SAAY,sCAEhB,gBAAmB,GACnB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+BACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,MACV,SAAY,gCAEhB,gBAAmB,GACnB,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,kCACX,YAAc,EACd,QAAW,CACP,YAAe,eACf,OAAU,WACV,SAAY,qCAEhB,gBAAmB,GACnB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc7vD,YAAY,EAAM,CACjC,eAAiB,EACjB,QAAW,CAAC,CACR,GAAM,qBACN,QAAW,4CACX,OAAU,iCACV,MAAS,QACV,CACC,GAAM,wBACN,QAAW,+CACX,OAAU,gCACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kCACN,QAAW,yDACX,OAAU,yDACV,SAAY,KACb,CACC,GAAM,2BACN,QAAW,kDACX,OAAU,kDACV,SAAY,KACb,CACC,GAAM,qBACN,QAAW,4CACX,OAAU,iCACV,MAAS,QACV,CACC,GAAM,8BACN,QAAW,qDACX,OAAU,8BACV,SAAY,KACb,CACC,GAAM,iBACN,QAAW,wCACX,OAAU,QACV,MAAS,QACT,OAAU,MACX,CACC,GAAM,yBACN,QAAW,gDACX,OAAU,gBACV,MAAS,QACT,OAAU,MACX,CACC,GAAM,qBACN,QAAW,4CACX,OAAU,YACV,MAAS,OACT,OAAU,OAEd,eAAiB,EACjB,eAAkB,CACd,YAAe,yCACf,cAAiB,0CAErB,QAAW,kDACX,QAAW,CACP,YAAe,gBAEnB,YAAc,EACd,gBAAmB,CACf,YAAe,2BACf,OAAU,cACV,SAAY,oDAEhB,UAAa,eACb,gBAAmB,4BACnB,YAAe,8BACf,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,2BACN,QAAW,CACP,YAAe,kCACf,cAAiB,qCAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OAxQuC,iBAA1B4Q,EAAiB,cAD7B1Q,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrB80G,GAAb,CAAuC1Q,EAAIxyH,UAA9B,EAAAkjI,qB,mGCHbzsF,EAAOC,QAFI,o8F,qPCQX,kBACI,WACI7iD,EACAu+H,EACQO,EACAwQ,GAJZ,MAKI,YAAMtvI,EAASu+H,IAAe,K,OAFtB,EAAAO,mBACA,EAAAwQ,wBAER,EAAKvoJ,GAAK,iBACV,EAAKI,MAAQ,wCACb,EAAKq3I,SAAS,CACV,GAAM,eACN,aAAgB,0BAChB,aAAgB,CACZ,UAAa,CACT,OAAU,CACN,QAAW,CACP,OAAU,CACN,KAAQ,SAKxB,OAAU,KACV,MAAS,MAEb,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,OAAU,CACN,kBAAqB,CACjB,oBAGR,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,kDACV,SAAY,+DAGpB,EAAK8nH,YAAY,mBAAoBD,EAAkB,8BACvD,EAAKC,YAAY,wBAAyBuQ,EAAuB,mCACjE,EAAKtoE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,cACN,QAAW,qCACX,OAAU,oBACV,SAAY,KACb,CACC,GAAM,mBACN,QAAW,0CACX,OAAU,+BACV,SAAY,KACb,CACC,GAAM,YACN,QAAW,mCACX,OAAU,MACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,kBACN,QAAW,yCACX,OAAU,YACV,MAAS,OACT,OAAU,KACV,iBAAmB,GACpB,CACC,GAAM,eACN,QAAW,sCACX,OAAU,qBACV,MAAS,QACT,eAAkB,8CAEtB,eAAkB,CACd,YAAe,gCACf,cAAiB,iCAErB,QAAW,CACP,YAAe,gBAEnB,UAAa,eACb,QAAW,0BACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAK6vD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,+BACN,QAAW,CACP,YAAe,sCACf,cAAiB,uCAErB,QAAW,sDACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,oDACV,SAAY,mEAIxB,EAAKqvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,uCACX,QAAW,GACX,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAK8vD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,0CACX,QAAW,GACX,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,mBACN,QAAW,CACP,YAAe,0BACf,cAAiB,6BAGzB,YAAM2mH,uBAAsB,Q,EAEpC,OA1JuC,iBAA1B8Q,EAAiB,cAD7B5Q,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,cACK,EAAAi1G,sBAL1BD,GAAb,CAAuC5Q,EAAIxyH,UAA9B,EAAAojI,qB,iGCNb3sF,EAAOC,QAFI,iyC,+OCEX,kBACI,WACI7iD,EACAu+H,GAFJ,MAGI,YAAMv+H,EAASu+H,IAAe,K,OAC9B,EAAKx3I,GAAK,0BACV,EAAKI,MAAQ,0DACb,EAAKq3I,SAAS,CACV,GAAM,wBACN,aAAgB,mCAChB,aAAgB,CACZ,gBAAmB,CACf,OAAU,CACN,QAAW,CACP,OAAU,CACN,oBAAuB,OAG/B,QAAW,QAIvB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKc,YAAY,CACb,GAAM,QAEV,EAAKt4D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,kDACX,YAAc,EACd,QAAW,CACP,YAAe,wBACf,OAAU,iCACV,SAAY,mEACZ,eAAkB,2BAEtB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,iDACX,YAAc,EACd,qBAAwB,mEACxB,QAAW,CACP,YAAe,wBACf,OAAU,gCACV,SAAY,kEACZ,eAAkB,2BAEtB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,0CACX,QAAW,CACP,YAAe,wBACf,OAAU,QACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,IAAO,EACP,OAAU,KACV,QAAW,kDACX,QAAW,CACP,YAAe,wBACf,OAAU,gBACV,SAAY,mDAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,8CACX,YAAc,EACd,QAAW,CACP,YAAe,wBACf,OAAU,YACV,SAAY,+CAEhB,gBAAmB,GACnB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OA5HgD,iBAAnCgR,EAA0B,cADtC9Q,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,kBAHfqjI,GAAb,CAAgD9Q,EAAIxyH,UAAvC,EAAAsjI,8B,0GCAb7sF,EAAOC,QAFI,i7E,mOCKX,kBACI,WACI7iD,EACAu+H,EACQmR,GAHZ,MAII,YAAM1vI,EAASu+H,IAAe,K,OADtB,EAAAmR,sBAER,EAAK3oJ,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,MAAS,KACT,QAAW,CACP,QAAW,CACP,KACA,SACA,UAGR,iBAAoB,CAChB,QAAW,CACP,KACA,SACA,UAGR,WAAc,CACV,QAAW,CACP,KACA,SACA,WAIZ,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,QAAW,KAEf,EAAKA,SAAS,CACV,GAAM,WACN,aAAgB,uBAChB,aAAgB,CACZ,SAAY,KACZ,QAAW,MAEf,0BAA4B,EAC5B,YAAe,KACf,QAAW,KAEf,EAAKO,YAAY,sBAAuB2Q,EAAqB,iCAC7D,EAAK1oE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,+BACX,qBAAwB,4FACxB,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,aACZ,QAAW,GACX,QAAW,oCACX,qBAAwB,4FACxB,QAAW,CACP,YAAe,aACf,OAAU,MACV,SAAY,8BAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,cACZ,QAAW,GACX,QAAW,qCACX,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,mCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,iBACV,SAAY,wCACZ,eAAkB,WAEtB,gBAAmB,GACnB,GAAM,cACN,QAAW,CACP,YAAe,qBACf,cAAiB,wBAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,sCACX,YAAc,EACd,qBAAwB,wCACxB,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,uCACZ,eAAkB,WAEtB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,4CACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,0BACV,SAAY,iDACZ,eAAkB,oBAEtB,gBAAmB,GACnB,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+CACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,yBACV,SAAY,gDACZ,eAAkB,oBAEtB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,sCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,oBACV,SAAY,2CACZ,eAAkB,cAEtB,gBAAmB,GACnB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,yCACX,YAAc,EACd,QAAW,CACP,YAAe,aACf,OAAU,mBACV,SAAY,0CACZ,eAAkB,cAEtB,gBAAmB,GACnB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAK8vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,iCACX,QAAW,CACP,YAAe,aACf,OAAU,UACV,SAAY,kCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,EAAKgvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,oCACX,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gCACX,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,gCACX,QAAW,CACP,YAAe,aACf,OAAU,SACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,kCACX,qBAAwB,4FACxB,QAAW,CACP,YAAe,aACf,OAAU,aACV,SAAY,qCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,uCACX,QAAW,CACP,YAAe,aACf,OAAU,gBACV,SAAY,wCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKgvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,aACf,OAAU,sBACV,SAAY,8CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKuvD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,qCACX,QAAW,CACP,YAAe,aACf,OAAU,sBACV,SAAY,8CAEhB,gBAAmB,GACnB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMgnH,uBAAsB,Q,EAEpC,OAxXqC,iBAAxBkR,EAAe,cAD3BhR,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACS,EAAAy2B,oBAJxB8sG,GAAb,CAAqChR,EAAIxyH,UAA5B,EAAAwjI,mB,6FCHb/sF,EAAOC,QAFI,qsN,uNCEX,kBACI,WACI7iD,EACAu+H,GAFJ,MAGI,YAAMv+H,EAASu+H,IAAe,K,OAC9B,EAAKx3I,GAAK,eACV,EAAKI,MAAQ,oCACb,EAAKq3I,SAAS,CACV,GAAM,aACN,aAAgB,sBAChB,aAAgB,CACZ,YAAe,KACf,SAAY,KACZ,kBAAqB,CACjB,OAAU,CACN,QAAW,OAGnB,QAAW,CACP,QAAW,CACP,KACA,SACA,UAGR,iBAAoB,CAChB,QAAW,CACP,KACA,SACA,UAGR,WAAc,CACV,QAAW,CACP,KACA,SACA,WAIZ,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,OAAU,CACN,WAAa,GAEjB,QAAW,KAEf,EAAKx3D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,eACN,QAAW,oCACX,OAAU,MACV,MAAS,QACT,aAAgB,4CACjB,CACC,GAAM,gBACN,QAAW,qCACX,OAAU,0BACV,SAAY,KACb,CACC,GAAM,sBACN,QAAW,2CACX,OAAU,uCACV,SAAY,KACb,CACC,GAAM,cACN,QAAW,mCACX,OAAU,iBACV,MAAS,QACV,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,gBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,uBACN,QAAW,4CACX,OAAU,0BACV,MAAS,QACV,CACC,GAAM,0BACN,QAAW,+CACX,OAAU,yBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,iBACN,QAAW,sCACX,OAAU,oBACV,MAAS,QACV,CACC,GAAM,oBACN,QAAW,yCACX,OAAU,mBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,YACN,QAAW,iCACX,OAAU,UACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,oCACX,OAAU,aACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,WACN,QAAW,gCACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,WACN,QAAW,gCACX,OAAU,SACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,aACN,QAAW,kCACX,OAAU,mBACV,MAAS,SAEb,eAAkB,CACd,YAAe,8BACf,cAAiB,+BAErB,QAAW,qCACX,QAAW,CACP,YAAe,cAEnB,UAAa,aACb,QAAW,sBACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,YAAMsnH,uBAAsB,Q,EAEpC,OA9JqC,iBAAxBmR,EAAe,cAD3BjR,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,kBAHfwjI,GAAb,CAAqCjR,EAAIxyH,UAA5B,EAAAyjI,mB,6FCAbhtF,EAAOC,QAFI,oZ,4RCKX,kBACI,WACI7iD,EACAu+H,EACQO,GAHZ,MAII,YAAM9+H,EAASu+H,IAAe,K,OADtB,EAAAO,mBAER,EAAK/3I,GAAK,gCACV,EAAKI,MAAQ,sEACb,EAAKq3I,SAAS,CACV,GAAM,4BACN,aAAgB,6CAChB,aAAgB,CACZ,MAAS,CACL,QAAW,CACP,KACA,gBAGR,OAAU,MAEd,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKO,YAAY,mBAAoBD,EAAkB,8BACvD,EAAK93D,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,UAAa,IACb,QAAW,gDACX,YAAc,EACd,QAAW,CACP,YAAe,4BACf,OAAU,oBACV,SAAY,0DACZ,eAAkB,SAEtB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,QAAW,0DACX,YAAc,EACd,QAAW,CACP,YAAe,4BACf,OAAU,cACV,SAAY,qDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,SAIrB,GAAM,oBACN,QAAW,CACP,YAAe,2BACf,cAAiB,8BAGzB,EAAKgvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,SACZ,QAAW,GACX,QAAW,iDACX,YAAc,EACd,QAAW,CACP,YAAe,4BACf,OAAU,WACV,SAAY,kDAEhB,gBAAmB,GACnB,eAAkB,4CAClB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKkvD,cAAc5vD,0BAA0B,EAAM,CAC/C,eAAkB,EAClB,iBAAmB,EACnB,QAAW,kDACX,YAAc,EACd,QAAW,CACP,YAAe,4BACf,OAAU,UACV,SAAY,iDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,YACN,QAAW,CACP,YAAe,mBACf,cAAiB,sBAGzB,YAAMqnH,uBAAsB,Q,EAEpC,OAtIoD,iBAAvCoR,EAA8B,cAD1ClR,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACM,EAAAmuB,iBAJrBs1G,GAAb,CAAoDlR,EAAIxyH,UAA3C,EAAA0jI,kC,uICHbjtF,EAAOC,QAFI,iiD,mQCKX,kBACI,WACI7iD,EACAu+H,EACQuR,GAHZ,MAII,YAAM9vI,EAASu+H,IAAe,K,OADtB,EAAAuR,8BAER,EAAK/oJ,GAAK,uBACV,EAAKI,MAAQ,oDACb,EAAKq3I,SAAS,CACV,GAAM,qBACN,aAAgB,sCAChB,aAAgB,CACZ,kBAAqB,KACrB,iBAAoB,MAExB,yBAA2B,EAC3B,0BAA4B,EAC5B,IAAO,qBACP,YAAe,KACf,YAAc,EACd,SAAY,QACZ,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,gEACV,SAAY,6EAGpB,EAAK0oH,aAAa,CACd,UAAa,yCACb,SAAY,CAAC,CACT,GAAM,MACN,QAAW,CACP,YAAe,qBACf,OAAU,2BACV,SAAY,6DAGpB,GAAM,kCACN,QAAW,CACP,YAAe,yCACf,cAAiB,0CAErB,OAAU,OACV,MAAS,SACT,SAAY,KAEhB,EAAKZ,YAAY,8BAA+B+Q,EAA6B,yCAC7E,EAAK9oE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAclvD,aAAa,EAAM,CAClC,SAAY,QACZ,QAAW,GACX,QAAW,uCACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,UACV,SAAY,0CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,uBACZ,QAAW,CAAC,CACR,IAAO,QACP,MAAS,2CAEb,QAAW,GACX,QAAW,sDACX,QAAW,CACP,YAAe,qBACf,OAAU,yBACV,SAAY,yDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,yBACN,QAAW,CACP,YAAe,gCACf,cAAiB,mCAGzB,EAAKkvD,cAAcvvD,aAAa,EAAM,CAClC,QAAW,oDACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,0BACV,SAAY,yDACZ,eAAkB,oBAEtB,gBAAmB,GACnB,GAAM,uBACN,QAAW,CACP,YAAe,8BACf,cAAiB,iCAGzB,EAAKuvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,uDACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,yBACV,SAAY,wDACZ,eAAkB,oBAEtB,gBAAmB,GACnB,GAAM,0BACN,QAAW,CACP,YAAe,iCACf,cAAiB,oCAGzB,EAAK8vD,cAAchvD,WAAW,EAAM,CAChC,UAAa,GACb,QAAW,4CACX,QAAW,CACP,YAAe,qBACf,OAAU,aACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,KAEnB,CACC,KAAQ,CACJ,KAAQ,eACR,WAAc,CAAC,CACX,KAAQ,MACR,MAAS,QAIrB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKgvD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,+CACX,QAAW,CACP,YAAe,qBACf,OAAU,gBACV,SAAY,gDAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAK8vD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,6CACX,QAAW,CACP,YAAe,qBACf,OAAU,cACV,SAAY,8CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAK8vD,cAAcvvD,aAAa,EAAM,CAClC,OAAU,KACV,QAAW,4CACX,QAAW,CACP,YAAe,qBACf,OAAU,aACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKuvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,WACZ,QAAW,GACX,QAAW,0CACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,aACV,SAAY,6CAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,aACN,QAAW,CACP,YAAe,oBACf,cAAiB,uBAGzB,EAAKkvD,cAAclvD,aAAa,EAAM,CAClC,SAAY,qBACZ,QAAW,GACX,QAAW,qCACX,YAAc,EACd,QAAW,CACP,YAAe,qBACf,OAAU,MACV,SAAY,sCAEhB,gBAAmB,CAAC,CAChB,KAAQ,CACJ,KAAQ,WACR,WAAc,MAGtB,GAAM,QACN,QAAW,CACP,YAAe,eACf,cAAiB,kBAGzB,YAAM2mH,uBAAsB,Q,EAEpC,OA9Q6C,iBAAhCsR,EAAuB,cADnCpR,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACiB,EAAA+7B,4BAJhC4nG,GAAb,CAA6CpR,EAAIxyH,UAApC,EAAA4jI,2B,uHCHbntF,EAAOC,QAFI,ugK,mQCKX,kBACI,WACI7iD,EACAu+H,EACQyR,GAHZ,MAII,YAAMhwI,EAASu+H,IAAe,K,OADtB,EAAAyR,8BAER,EAAKjpJ,GAAK,uBACV,EAAKI,MAAQ,oDACb,EAAKq3I,SAAS,CACV,GAAM,qBACN,aAAgB,sCAChB,aAAgB,CACZ,qBAAwB,CACpB,OAAU,CACN,oBAAuB,OAG/B,SAAY,KACZ,kBAAqB,CACjB,OAAU,CACN,QAAW,QAIvB,yBAA2B,EAC3B,0BAA4B,EAC5B,YAAe,KACf,SAAY,QACZ,OAAU,CACN,WAAa,GAEjB,QAAW,KAEf,EAAKvnH,WAAW,CACZ,QAAW,CACP,OAAU,gEACV,SAAY,6EAGpB,EAAK8nH,YAAY,8BAA+BiR,EAA6B,yCAC7E,EAAKhpE,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAc7vD,YAAY,EAAM,CACjC,QAAW,CAAC,CACR,GAAM,8BACN,QAAW,2DACX,OAAU,mCACV,SAAY,KACb,CACC,GAAM,aACN,QAAW,0CACX,OAAU,MACV,MAAS,QACT,aAAgB,oDACjB,CACC,GAAM,kBACN,QAAW,+CACX,OAAU,2BACV,MAAS,QACV,CACC,GAAM,eACN,QAAW,4CACX,OAAU,uCACV,SAAY,KACb,CACC,GAAM,oBACN,QAAW,iDACX,OAAU,aACV,MAAS,SACV,CACC,GAAM,uBACN,QAAW,oDACX,OAAU,gBACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,qBACN,QAAW,kDACX,OAAU,cACV,MAAS,OACT,OAAU,KACX,CACC,GAAM,oBACN,QAAW,iDACX,OAAU,aACV,MAAS,OACT,OAAU,MACX,CACC,GAAM,kBACN,QAAW,+CACX,OAAU,mBACV,MAAS,SAEb,eAAkB,CACd,YAAe,sCACf,cAAiB,uCAErB,QAAW,CACP,YAAe,sBAEnB,UAAa,qBACb,QAAW,sCACX,eAAiB,EACjB,YAAc,EACd,OAAU,OACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,GAAM,wBACN,QAAW,CACP,YAAe,+BACf,cAAiB,kCAGzB,EAAK6vD,cAAcrvD,SAAS,EAAM,CAC9B,GAAM,0CACN,QAAW,CACP,YAAe,iDACf,cAAiB,kDAErB,QAAW,uEACX,OAAU,OACV,MAAS,QACT,SAAY,CAAC,CACT,QAAW,CACP,OAAU,yDACV,SAAY,wEAIxB,EAAKqvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,8CACX,QAAW,GACX,gBAAmB,GACnB,eAAkB,wEAClB,GAAM,iBACN,QAAW,CACP,YAAe,wBACf,cAAiB,2BAGzB,EAAKiwD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,6CACX,QAAW,GACX,gBAAmB,GACnB,eAAkB,oEAClB,GAAM,gBACN,QAAW,CACP,YAAe,uBACf,cAAiB,0BAGzB,EAAKiwD,cAAc9vD,WAAW,EAAM,CAChC,OAAU,IACV,QAAW,uCACX,QAAW,GACX,gBAAmB,GACnB,GAAM,UACN,QAAW,CACP,YAAe,iBACf,cAAiB,oBAGzB,YAAMunH,uBAAsB,Q,EAEpC,OA1K6C,iBAAhCwR,EAAuB,cADnCtR,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACiB,EAAA6vC,4BAJhCg0F,GAAb,CAA6CtR,EAAIxyH,UAApC,EAAA8jI,2B,qHCHbrtF,EAAOC,QAFI,2kD,m2BCUX,iBACE,WACU53D,EACAo9C,GADA,KAAAp9C,OACA,KAAAo9C,OAuCZ,OApCE,YAAAjhD,QAAA,SAAQ8oJ,EAAuB1+E,GAC7B,YAD6B,IAAAA,OAAA,GACtBlqE,KAAK2D,KAAK8hB,KAAK,CACpBnhB,IAAKtE,KAAK2D,KAAK+hB,UAAU,mBACzB6C,qBAAsB2hD,EACtBlnE,KAAM4lJ,KAGV,YAAAC,oBAAA,SAAoBD,EAAuB15I,GAA3C,WACQ45I,EAAY,IAAIt6D,UAAUxuF,KAAK2D,KAAK8qF,gBAAgB,sBAE1D,OAAO,IAAIlpF,SAAQ,SAACC,EAAS+H,GAC3Bu7I,EAAUC,OAAS,WACjBD,EAAUE,KAAK,EAAKjoG,KAAKE,UAAU2nG,KAErCE,EAAUp6D,UAAY,SAAC3rF,GACrB,IAAMC,EAAO,EAAK+9C,KAAKniC,MAAM7b,EAAEC,MAE/B,OAAQA,EAAKgwD,MACX,IAAK,SACC9jD,GACFA,EAASlM,EAAK2rF,KAAK3kB,KAAMhnE,EAAK2rF,KAAKs6D,SAErC,MAEF,IAAK,SACHH,EAAU37D,QACV3nF,EAAQxC,EAAK2rF,QAKnBm6D,EAAUI,QAAU,SAACnmJ,GACnBwK,EAAOxK,QAtCFiI,EAAe,cAD3B,EAAA5L,W,kCAGiB,EAAAsG,YACA,EAAA4Z,eAHLtU,GAAb,GAAa,EAAAA,mB,oPCQb,iBACI,WACY2C,GADZ,WACY,KAAAA,WASZ,KAAA01C,0BAA0C,CACtC5jD,GAAI,4BACJE,WAAY,gBACZE,MAAO,4CACPH,KAAM,UACN4T,oBAAqB,mFACrBxT,QAAS,0D,oEACc,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV4F,EAAW,IAAI,EAAAw7I,0BAA0B,CAC3CC,cAAeppJ,KAAKC,KAAK0G,OAAO3D,KAAKqmJ,eAAerhJ,KAGX,GAAMhI,KAAK2N,SAAS7N,QAAQ6N,GAAU,KAP/E,I,cAOyC,SAE7C3N,KAAKC,KAAK0G,OAAOuB,Y,aAG7B,OAzBI,YAAAzH,KAAA,SAAKR,EAAgBgB,GACjBjB,KAAKC,KAAOA,GARP84I,EAAoB,cAFhC,EAAA35I,WACA,EAAAuB,Y,kCAGyB,EAAAqK,mBAFb+tI,GAAb,GAAa,EAAAA,wB,qPCPb,iBACE,WACUn6F,GADV,WACU,KAAAA,sBAIV,KAAA0U,qBAAqC,CACnC7zD,GAAI,gBACJC,KAAM,eACNG,MAAO,oBACPgJ,oBAAqB,oCACrB/I,QAAS,WACP,IAAMC,EAAiC,EAAKE,KAAyB,mBAAEE,SACvE,EAAKy+C,oBAAoBc,eAAe,CACtC9+B,UAAW7gB,EACX4/C,kBAAkB,MAe1B,OAVE,YAAAl/C,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAKwG,YAAW,WACd,IAAMulD,EAA+C,EAAK/rD,KAAgC,0BAE1F+rD,EAAYxpD,eAAiBwpD,EAAYxpD,gBAAkB,GAC3DwpD,EAAYxpD,eAAe,qBAAuB,sCA3B3Cg7I,EAAiC,cAF7C,EAAAp+I,WACA,EAAAuB,Y,kCAGgC,EAAAk/C,sBAFpB29F,GAAb,GAAa,EAAAA,qC,qaCZb,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,qB,sSCAA,iBAME,WACU9kI,GAAA,KAAAA,UAkGZ,OA7FE,YAAAjY,KAAA,WACET,KAAKspJ,YAActpJ,KAAKupJ,gBACpBvpJ,KAAKspJ,cACPtpJ,KAAKwpJ,cAAgBxpJ,KAAKypJ,UAAUhpJ,KAAKT,MACzCA,KAAK0Y,QAAQoxC,iBAAiB9pD,KAAKspJ,YAAatpJ,KAAKwpJ,gBAGvDxpJ,KAAK0pJ,UAAY1pJ,KAAK2pJ,cAClB3pJ,KAAK0pJ,YACP1pJ,KAAK4pJ,YAAc5pJ,KAAKypJ,UAAUhpJ,KAAKT,MACvCA,KAAK0Y,QAAQoxC,iBAAiB9pD,KAAK0pJ,UAAW1pJ,KAAK4pJ,eAIvD,YAAAloJ,OAAA,WACM1B,KAAKspJ,aACPtpJ,KAAK0Y,QAAQ88E,oBAAoBx1F,KAAKspJ,YAAatpJ,KAAKwpJ,eAEtDxpJ,KAAK0pJ,WACP1pJ,KAAK0Y,QAAQ88E,oBAAoBx1F,KAAK0pJ,UAAW1pJ,KAAK4pJ,cAIlD,YAAAL,cAAR,WACE,IAAMM,EAAc,CAClB,WAAc,kBACd,YAAe,mBACf,cAAiB,kBACjB,iBAAoB,yBAGhB/7D,EAAU9tF,KAAK0Y,QACrB,IAAK,IAAIugC,KAAK4wG,EACZ,QAAoBhoH,IAAhBisD,EAAGnjF,MAAMsuC,GACX,OAAO4wG,EAAY5wG,IAIjB,YAAA0wG,YAAR,WACE,IAAME,EAAc,CAClB,WAAc,gBACd,YAAe,iBACf,cAAiB,gBACjB,iBAAoB,uBAGhB/7D,EAAU9tF,KAAK0Y,QACrB,IAAK,IAAIugC,KAAK4wG,EACZ,QAAoBhoH,IAAhBisD,EAAGnjF,MAAMsuC,GACX,OAAO4wG,EAAY5wG,IAIjB,YAAA6wG,YAAR,SAAoB/mJ,GAClB,GAAKA,EAAE4f,gBAIH3iB,KAAK2iB,cAAgB3iB,KAAK2iB,cAAgB5f,EAAE4f,cAAhD,CAIA,IAAMzO,EAAQ,IAAI7U,YAAY,qBAAsB,CAClD+O,OAAQ,CACNgrG,OAAQp5G,KACR0Y,QAAS1Y,KAAK0Y,QACdiK,aAAc5f,EAAE4f,cAElBw0E,SAAS,IAGXn3F,KAAK0Y,QAAQw+E,cAAchjF,KAErB,YAAAu1I,UAAR,SAAkB1mJ,GAChB,GAAKA,EAAE4f,gBAIH3iB,KAAK2iB,cAAgB3iB,KAAK2iB,cAAgB5f,EAAE4f,cAAhD,CAIA,IAAMzO,EAAQ,IAAI7U,YAAY,mBAAoB,CAChD+O,OAAQ,CACNgrG,OAAQp5G,KACR0Y,QAAS1Y,KAAK0Y,QACdiK,aAAc5f,EAAE4f,cAElBw0E,SAAS,IAGXn3F,KAAK0Y,QAAQw+E,cAAchjF,KA7FnB,cAAT,EAAA0iF,S,uEAVUmzD,EAAyB,cAFrC,EAAA3qJ,WACA,EAAA4qJ,gBAAgB,qB,kCAQIl0D,WAPRi0D,GAAb,GAAa,EAAAA,6B,qRCAb,iBACE,WACUrxI,GAAA,KAAAA,UAsBZ,OAnBE,YAAAuxI,aAAA,SAAat1G,EAAQozD,GACfpzD,GAAUozD,GAGd/nG,KAAKkqJ,eAGC,YAAAA,YAAR,uBAEsB,IADAlqJ,KAAK0Y,QAAQG,UAAUC,SAAS,cAElD9Y,KAAK0Y,QAAQG,UAAU9X,IAAI,aAE7B,IAAMopJ,EAAyBloI,SAASmoI,uBAAuB,aAAallJ,OAG5E60C,YAAW,WACT,EAAKrhC,QAAQG,UAAUyoH,OAAO,eAC7B,IAJW,IAAM6oB,IAlBXE,EAAwB,cAFpC,EAAAjrJ,WACA,EAAA4qJ,gBAAgB,a,kCAGIl0D,WAFRu0D,GAAb,GAAa,EAAAA,4B,0TCEb,iBAOE,WACU3xI,EACA4Y,EACAre,EACA6sE,GAHA,KAAApnE,UACA,KAAA4Y,YACA,KAAAre,kBACA,KAAA6sE,gBAPF,KAAAwqE,WAAY,EACZ,KAAAC,iBAAmB,EA0H7B,OAjHE,YAAA9pJ,KAAA,sBACET,KAAKwqJ,wBAA0BxqJ,KAAKiT,gBAAgByB,UAAU,oBAAoB,SAAC3R,GAC7EA,EAAE2V,UACC,EAAK+xI,SAAS1nJ,EAAE2V,UAIvB,EAAKgyI,cAEP1qJ,KAAKyU,0BAA4BzU,KAAKiT,gBAAgByB,UAAU,iBAAiB,WAC/E,EAAKg2I,eAGT,YAAAhpJ,OAAA,WACE1B,KAAKwqJ,wBAAwBlpJ,UAC7BtB,KAAKyU,0BAA0BnT,WAEjC,YAAA0iF,SAAA,WACEhkF,KAAK0Y,QAAQG,UAAU9X,IAAI,MAE3Bf,KAAKsqJ,WAAY,EACjBtqJ,KAAK0qJ,YAEP,YAAAzgH,SAAA,WACEjqC,KAAKsqJ,WAAY,GAGX,YAAAG,SAAR,SAAiBroH,GAGf,IAFA,IAAIuoH,EAAQ3qJ,KAAK0Y,QAED,MAATiyI,GAAe,CACpB,GAAIA,GAASvoH,EACX,OAAO,EAGTuoH,EAAQA,EAAM5xI,cAGhB,OAAO,GAED,YAAA2xI,SAAR,SAAiBvhB,GAAjB,WAIE,QAJe,IAAAA,OAAA,GACXA,IACFnpI,KAAKuqJ,iBAAmB,KAEtBvqJ,KAAKsqJ,WAAatqJ,KAAKuqJ,iBAAmB,IAA9C,CAMA,IAFA,IAAM7xI,EAAW1Y,KAAK0Y,QAClBkyI,EAA4BlyI,EACzBkyI,GAAgB5qJ,KAAK6qJ,SAASD,IACnCA,EAAeA,EAAa7xI,cAG9B,IAAM+xI,EAAS,CAAC,MACV7jH,EAAQ2jH,EACVA,EAAaG,YACb,EAEC9jH,GACH8S,YAAW,WACT,EAAKwwG,mBACL,EAAKG,UAAS,KACb,IAGDzjH,GAAS,KACX6jH,EAAO3pJ,KAAK,MAEV8lC,GAAS,KACX6jH,EAAO3pJ,KAAK,MAEV8lC,GAAS,MACX6jH,EAAO3pJ,KAAK,MAGd,IAAM6pJ,EAAWF,EAAO1lJ,KAAK,KACzBpF,KAAKirJ,eAAiBD,IAI1BhrJ,KAAKirJ,cAAgBD,EAErBtyI,EAAQG,UAAU9X,IAAI,SAElBkmC,GAAS,IACXvuB,EAAQG,UAAU9X,IAAI,SAEtB2X,EAAQG,UAAUyoH,OAAO,SAGvBr6F,GAAS,IACXvuB,EAAQG,UAAU9X,IAAI,SAEtB2X,EAAQG,UAAUyoH,OAAO,SAGvBr6F,GAAS,KACXvuB,EAAQG,UAAU9X,IAAI,SAEtB2X,EAAQG,UAAUyoH,OAAO,SAGvBr6F,GAAS,KACXvuB,EAAQG,UAAU9X,IAAI,SAEtB2X,EAAQG,UAAUyoH,OAAO,YAIrB,YAAAupB,SAAR,SAAiBnyI,GACf,MAAmD,UAA5ClC,OAAO00I,iBAAiBxyI,GAAS68E,SA7H/B41D,EAAiB,cAF7B,EAAA/rJ,WACA,EAAA4qJ,gBAAgB,W,kCASIl0D,QACE,EAAAn0E,UACM,EAAAvI,gBACF,EAAAwI,iBAXdupI,GAAb,GAAa,EAAAA,qB,qQCFb,iBAGE,WACUzyI,GAAA,KAAAA,UA0BZ,OArBE,YAAAjY,KAAA,WACET,KAAK0qJ,YAGP,YAAAU,YAAA,SAAYzvI,EAAkBkO,GAC5B7pB,KAAK0qJ,YAGC,YAAAA,SAAR,WACE,IAAIhyI,EAAU1Y,KAAK0Y,QAEf1Y,KAAKqrJ,cACP3yI,EAAQG,UAAUyoH,OAAOthI,KAAKqrJ,aAC9BrrJ,KAAKqrJ,YAAc,MAGjBrrJ,KAAKN,OACPM,KAAKqrJ,YAAc,SAASrrJ,KAAKN,KACjCgZ,EAAQG,UAAU9X,IAAIf,KAAKqrJ,eApBrB,cAAT,EAAAz0D,S,+DAPU00D,EAAe,cAF3B,EAAAlsJ,WACA,EAAA4qJ,gBAAgB,W,kCAKIl0D,WAJRw1D,GAAb,GAAa,EAAAA,mB,0SCab,iBAKE,WACU5yI,EACAuB,EACAosB,EACAqqC,EACA66E,GAJA,KAAA7yI,UACA,KAAAuB,eACA,KAAAosB,mBACA,KAAAqqC,sBACA,KAAA66E,kBAPF,KAAAC,UAAoB,EAiG9B,OA/EE,YAAAC,QAAA,SAAQC,EAAiBC,GACvB3rJ,KAAK0rJ,WAAaA,GAEpB,YAAAjrJ,KAAA,SAAKmpC,EAAqBC,GACxB7pC,KAAKwrJ,UAAW,EAEXxrJ,KAAKic,QACRjc,KAAKic,MAAQ,CACX2tB,eAAc,EACdC,gBAAe,IAInB7pC,KAAKwkD,aAEP,YAAA9iD,OAAA,WACE1B,KAAKwrJ,UAAW,EAChBxrJ,KAAKic,MAAQ,KAEbjc,KAAK4rJ,kBAGP,YAAAC,WAAA,WACO7rJ,KAAKwrJ,WAIVxrJ,KAAK4rJ,iBACL5rJ,KAAKwkD,cAGC,YAAAonG,eAAR,WACM5rJ,KAAK8rJ,eACP9rJ,KAAK8rJ,aAAa/yI,cAAcyJ,YAAYxiB,KAAK8rJ,cACjD9rJ,KAAK8rJ,aAAe,MAGlB9rJ,KAAK+rJ,eACP/rJ,KAAK0wE,oBAAoBp9B,YAAYtzC,KAAK+rJ,cAC1C/rJ,KAAK+rJ,aAAe,OAGhB,YAAAvnG,UAAR,WACE,GAAKxkD,KAAK8a,IAAV,CAIA,IAAM3T,EAAOnH,KAAKia,aAAa0nC,mBAAmB3hD,KAAK8a,KAEvD,GAAI3T,EAAKy6C,aAAc,CACrB5hD,KAAK8rJ,aAAe7pI,SAASC,cAAc,QAEvCliB,KAAKgsJ,OACPhsJ,KAAK8rJ,aAAariH,aAAa,YAAazpC,KAAKisJ,QAAQ9kJ,EAAK6M,OAE9DhU,KAAK8rJ,aAAazsH,UAAYr/B,KAAKisJ,QAAQ9kJ,EAAK6M,MAElDhU,KAAK0Y,QAAQyJ,YAAYniB,KAAK8rJ,cAE9B,IAAM7vI,EAAQ9U,EAAK8U,OAASjc,KAAKic,MAEjCjc,KAAK+rJ,aAAe/rJ,KAAKqmC,iBAAiBsD,QAAQ,CAChDjxB,QAAS1Y,KAAK8rJ,aACd90C,UAAWh3G,KAAK0rJ,WAAW10C,UAC3BptE,eAAgB3tB,EAAM2tB,eACtBC,gBAAiB5tB,EAAM4tB,uBAGzB7pC,KAAK0Y,QAAQ2mB,UAAYr/B,KAAKisJ,QAAQ9kJ,EAAK6M,QAIvC,YAAAi4I,QAAR,SAAgBj4I,GACd,OAAKhU,KAAKksJ,SAIHlsJ,KAAKurJ,gBAAgBxpG,QAAQ/tC,GAH3BA,GAhFD,cAAT,EAAA4iF,S,+DACqB,cAArB,EAAAA,SAAU,EAAAhe,W,8DACD,cAAT,EAAAge,S,gEACS,cAAT,EAAAA,S,oEACS,cAAT,EAAAA,S,kEAnBUu1D,EAAiB,cAF7B,EAAA/sJ,WACA,EAAA4qJ,gBAAgB,M,kCAOIl0D,QACK,EAAA7qF,oBACI,EAAAukC,iBACG,EAAA+D,oBACJ,EAAA64G,mBAVhBD,GAAb,GAAa,EAAAA,qB,iOCfb,qBAA0BrX,GACxBA,EACGC,gBAAgB,uCAChBA,gBAAgB,8CAChBA,gBAAgB,kDAChBA,gBAAgB,8CAChBA,gBAAgB,8DAChBA,gBAAgB,8DAChBA,gBAAgB,sEAChBA,gBAAgB,gDAChBA,gBAAgB,oDAChBA,gBAAgB,kEAChBA,gBAAgB,0E,gUCVrB,iBACE,WACU1iF,GAAA,KAAAA,cAWZ,OARE,YAAA2iF,OAAA,SAAO3mI,GACL,OAAKA,EAKE,yBADKrO,KAAKqyD,YAAY/7C,eAAejI,GACT,IAJ1B,IAPAg+I,EAA6B,cAFzC,EAAAjtJ,WACA,EAAA81I,eAAe,mB,kCAGS,EAAA/7H,eAFZkzI,GAAb,GAAa,EAAAA,iC,uTCAb,iBACE,WACUh6F,GAAA,KAAAA,cAcZ,OAXE,YAAA2iF,OAAA,SAAO3mI,GACL,OAAKA,EAIDA,EAAM2a,WAAW,UAAY3a,EAAM2a,WAAW,UACzC3a,EAGFrO,KAAKqyD,YAAY/7C,eAAejI,GAP9B,IAPAi+I,EAA0B,cAFtC,EAAAltJ,WACA,EAAA81I,eAAe,gB,kCAGS,EAAA/7H,eAFZmzI,GAAb,GAAa,EAAAA,8B,mSCEb,iBACE,WACUvmH,GAAA,KAAAA,gBAMZ,OAHE,YAAAivG,OAAA,SAAO3mI,EAAYrJ,GACjB,OAAOhF,KAAK+lC,cAAc/gC,OAAOqJ,EAAOrJ,IAN/BunJ,EAAoB,cAFhC,EAAAntJ,WACA,EAAA81I,eAAe,U,kCAGW,EAAAvvI,wBAFd4mJ,GAAb,GAAa,EAAAA,wB,gTCHb,iBACE,cAUF,OAPE,YAAAvX,OAAA,SAAO3mI,EAAek/B,GACpB,YADoB,IAAAA,MAAA,KACfl/B,GAASA,EAAMnJ,OAASqoC,EACpBl/B,EAGFA,EAAM66C,OAAO,EAAG3b,GAAWlvB,OAAO,SAThCmuI,EAA2B,cAFvC,EAAAptJ,WACA,EAAA81I,eAAe,iB,sCACHsX,GAAb,GAAa,EAAAA,+B,6RCCb,iBACE,WACUvyI,GAAA,KAAAA,eA+BZ,OA5BE,YAAA+6H,OAAA,SAAOhyI,EAAa2f,EAAsB8pI,EAA2BjoG,GAArE,gBAA0C,IAAAioG,MAAA,YAA2B,IAAAjoG,OAAA,GACnE,IAAIkoG,EAAuB,QAAdD,EAAsB,GAAK,EAExC,OAAOzpJ,EACJi3C,MAAM,GACNh/B,MAAK,SAACC,EAAGC,GACR,IAAIwxI,EAAezxI,EAAEyH,GACT,MAARgqI,IACFA,EAAO,IAGT,IAAIC,EAAezxI,EAAEwH,GAcrB,OAbY,MAARiqI,IACFA,EAAO,IAGLpoG,IACEmoG,IACFA,EAAO,EAAK1yI,aAAa9Q,cAAcwjJ,IAAS,IAE9CC,IACFA,EAAO,EAAK3yI,aAAa9Q,cAAcyjJ,IAAS,KAI7CD,EAAK11G,cAAc21G,GAAQF,MA9B7BG,EAAkB,cAD9B,EAAAztJ,W,kCAGyB,EAAA6L,uBAFb4hJ,GAAb,GAAa,EAAAA,sB,kTCEb,iBACE,WACU5yI,GAAA,KAAAA,eAUZ,OAPE,YAAA+6H,OAAA,SAAO3mI,EAAYy1B,GACjB,YADiB,IAAAA,MAAA,MACJ,MAATz1B,EACK,GAGFrO,KAAKia,aAAa9Q,cAAckF,EAAOy1B,IAVrCgpH,EAAyB,cAFrC,EAAA1tJ,WACA,EAAA81I,eAAe,M,kCAGU,EAAAjqI,uBAFb6hJ,GAAb,GAAa,EAAAA,6B,wNCNb,qBAA0BhY,M,sTCuB1B,iBAME,WACU3lH,EACAiR,EACAnmB,EACAD,EACAsX,EACAy7H,EACArkG,EACAx1C,GARV,WACU,KAAAic,sBACA,KAAAiR,YACA,KAAAnmB,eACA,KAAAD,UACA,KAAAsX,YACA,KAAAy7H,gBACA,KAAArkG,SACA,KAAAx1C,kBAMV,KAAA85I,oBAAoD,CAClD/lH,MAAO,QACPjuB,OAAQ,OACR09F,SAAU,SAAC3zG,GACT,EAAKkqJ,iBAAmB,KACxB,EAAKC,aAAe,MAEtB1jC,QAAS,SAACzmH,GACR,EAAKoqJ,iBAAiBhtJ,SAAS0gB,OAAO,QAAS,MAC/C,EAAKssI,iBAAiBhtJ,SAASwZ,UAInC,KAAAyzI,wBAA4D,CAC1DlhH,UAAW,KACXE,YAAa,OACb1B,eAAe,EACfqY,cAAe,GACfsqG,WAAY,SAACtqJ,GACX,EAAKuqJ,0BAwIX,OApIE,YAAA7sJ,KAAA,SAAKmpC,EAAqBC,GAA1B,WACE7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAe,CACvCxoB,eAAgB5pC,KAChB6pC,gBAAiB,OAGnB7pC,KAAKmvB,oBAAoBif,mBAAmB,CAC1C9E,UAAW,sBACX3O,QAAS,6BACT54B,QAAS/B,KAAKgtJ,oBACd1xI,eAAgBtb,KAAKsb,eACrBC,SAAU,CAAC,CACT9b,GAAI,kBACJC,KAAM,QACNI,QAAS,WACP,EAAKwxB,UAAU7P,WAAU,WACvB,EAAK6rI,gCAMbttJ,KAAKutJ,yBAA2BvtJ,KAAKogC,UAAUotH,iBAAiB3mJ,UAAS,SAAApC,GAIvE,OAHA,EAAKyoJ,aAAezoJ,EAAExE,KACtB,EAAKwtJ,aAAahpJ,EAAE8W,SAAU9W,EAAEipJ,qBAEzBnoJ,QAAQC,cAGnB,YAAA9D,OAAA,WACE1B,KAAKsb,eAAeqzD,aAEpB3uE,KAAKutJ,2BACLvtJ,KAAKutJ,yBAA2B,MAG1B,YAAAE,aAAR,SAAqBlyI,EAA0BmyI,GAA/C,IAGMnjG,EAHN,OAKE,GAJAvqD,KAAKitJ,iBAAmB,EAAH,eAAO1xI,GAIxBmyI,EAAqB,CACvB1tJ,KAAK2tJ,sBAEL,IAAM,EAAkD,CACtDpyI,SAAU,IAGZgvC,EAAUvqD,KAAK+sJ,cACZ7tJ,qBAAqB+S,KAAK,GAC1B+S,MAAK,W,OACJ,IAAKioI,kBAAiB9rJ,KAAI,QAAI,EAAkBoa,kBAGpDgvC,EAAUhlD,QAAQC,UAGpB+kD,EAAQvlC,MAAK,WACX,IAAM1iB,EAAa,EAAK2qJ,iBACrBhjJ,KAAI,SAAAP,GACH,MAAO,CACLjK,GAAIiK,EAAEjK,GACNwR,KAAM,EAAKgJ,aAAa9Q,cAAcO,EAAE7J,QAAU,EAAKoa,aAAa9Q,cAAcO,EAAEysB,aAItF,EAAKg3H,kBAAoB,EAAKA,iBAAiBhtJ,SACjD,EAAKgtJ,iBAAiBhtJ,SAAS0gB,OAAO,aAAcve,GAEpD,EAAK8qJ,wBAAwB9qJ,WAAaA,EAG5C,EAAKsrJ,aAAaztJ,SAAS2F,WAGvB,YAAAwnJ,sBAAR,WACE,IAAMO,EAAc7tJ,KAAKmtJ,iBAAiBhtJ,SAAS0gB,OAAO,SAC1D,GAAKgtI,EAAL,CASA,IAAM7zI,EAAUha,KAAKitJ,iBAAiBjlI,MAAK,SAAAte,GAAK,OAAAA,EAAEjK,KAAOouJ,KACpD7zI,IAILha,KAAKga,QAAQla,QAAQE,KAAKktJ,aAAajxI,MAAOjC,EAAS,CACrD9F,MAAO,OAGTlU,KAAK4tJ,aAAaztJ,SAASiV,aAjBzB/L,WAAWC,GAAGO,OACZ7J,KAAKia,aAAa9Q,cAAc,6BAChC,QACA,MAgBE,YAAAwkJ,oBAAR,W,MACE,IAAK3tJ,KAAK8tJ,oBAAqB,CAC7B9tJ,KAAK8tJ,oBAAsB,GAE3B,IAAiB,UAAA9tJ,KAAK0oD,OAAO0qB,iBAAZ,eAA8B,CAA1C,IAAI26E,EAAI,KAKX,GAJIA,EAAK96E,OACPjzE,KAAKguJ,UAAUD,GAGbA,EAAKpiH,SACP,IAAiB,UAAAoiH,EAAKpiH,SAAL,eAAe,CAA3B,IAAIsiH,EAAI,KACPA,EAAKh7E,OACPjzE,KAAKguJ,UAAUC,MAOzB,EAAAjuJ,KAAKitJ,kBAAiB9rJ,KAAI,QAAInB,KAAK8tJ,sBAE7B,YAAAE,UAAR,SAAkB/6E,GAAlB,WACEjzE,KAAK8tJ,oBAAoB3sJ,KAAK,CAC5B1B,GAAI,eAAewzE,EAAMA,MACzBpzE,MAAOozE,EAAMt4C,QACbt0B,WAAW,EACXC,WAAW,EACXxG,QAAS,SAACiD,GACR,EAAKmQ,gBAAgB4C,KAAK,CACxBxR,IAAK2uE,EAAMA,MACXl9D,YAAY,QA1KT8sC,EAAQ,cADpB,EAAAzjD,W,kCAQgC,EAAA0xB,2BACV,EAAA4R,iBACG,EAAAz3B,oBACL,EAAAkR,eACE,EAAAwF,UACI,EAAAxiB,qBACP,EAAA6rD,cACS,EAAA3xC,mBAdhBwpC,GAAb,GAAa,EAAAA,Y,8FCxBbyY,EAAOC,QAFI,+Y,6OCQX,iBACE,WACUzY,GAAA,KAAAA,SAUZ,OALE,sBAAI,wBAAS,C,IAAb,WACE,OAAO9iD,KAAK8iD,OAAOorG,mBACf,uBACA,uB,gCAHN,cADC,EAAAruH,aAAa,6B,uGANHgqF,EAAS,cADrB,EAAAzqH,W,kCAGmB,EAAAm9C,iBAFPstE,GAAb,GAAa,EAAAA,a,kGCNbvuD,EAAOC,QAFI,6b,uECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,yOAA0O,KAEnQw/C,EAAOC,QAAUA,G,uOCEjB,iBACE,WACUzY,GAAA,KAAAA,SAIZ,OANaqrG,EAAO,cADnB,EAAA/uJ,W,kCAGmB,EAAAm9C,iBAFP4xG,GAAb,GAAa,EAAAA,W,8FCLb7yF,EAAOC,QAFI,8H,mECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,6eAA8e,KAEvgBw/C,EAAOC,QAAUA,G,wSCoBjB,iBACE,WACUjqC,EACAo3B,EACAqV,EACAmzB,EACAj3E,EACAD,EACAtR,EACA0lJ,EACAjoH,EACAlzB,GAVV,WACU,KAAAqe,YACA,KAAAo3B,SACA,KAAAqV,gBACA,KAAAmzB,SACA,KAAAj3E,eACA,KAAAD,UACA,KAAAtR,kBACA,KAAA0lJ,WACA,KAAAjoH,YACA,KAAAlzB,kBA0BV,KAAA2jG,qBAAuD,CACrDppE,KAAM,SACNkB,YAAa1uC,KAAKia,aAAa9Q,cAAc,eAC7CkkJ,WAAY,SAACtqJ,GACX,EAAKuuB,UAAU7P,WAAU,WACvB,IAAMpT,EAAQtL,EAAE6d,UAAUC,OAAO,SACpB,MAATxS,GAAiC,IAATA,IAI5B,EAAKggJ,sBAAsBluJ,SAAS0gB,OAAO,YAAY,GACvD,EAAK5N,gBAAgBuF,QAAQ,gBAAiB,CAC5CxE,KAAM3F,UAOd,KAAAigJ,6BAA8D,CAC5Dp9I,UAAU,EACVxR,KAAM,gBACN2R,QAAS,WACP,EAAK4B,gBAAgBuF,QAAQ,2BAA4B,MAM7D,KAAA+1I,qBAAuD,CACrDnlH,gBAAiB,kBACjBnC,MAAO,SAvDFjnC,KAAKkxF,OAAOtjE,eAAe5F,MAAK,SAAAte,GAAK,MAAS,WAATA,EAAEjK,OAC1CO,KAAKkxF,OAAOtjE,eAAezsB,KAAK,CAC9B1B,GAAI,SACJI,MAAOG,KAAKia,aAAa9Q,cAAc,eACvCrJ,QAAS,WACP,EAAK63E,YAKX33E,KAAKouJ,SAASjtI,aAAa,MAAM,WAC/B,IAAI,EAAKglB,UAAU1P,cAAnB,CAIA,IAAMoF,EAA0B,EAAK+7E,cAAcz3G,SAASuY,UACzDC,cAAc,+BAEjBkjB,EAAMliB,QACNkiB,EAAMg8E,aAkGZ,OApDE,sBAAI,uCAAwB,C,IAA5B,WACE,OAAO73G,KAAK0I,gBAAgBuE,YAAYif,SAASwB,sB,gCAGnD,YAAAjtB,KAAA,SAAKmpC,EAAqBC,GACxB7pC,KAAKic,MAAQ,CACX2tB,eAAgBA,EAChBC,gBAAiBA,GAEnB7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9Cjc,KAAKkxF,OAAOA,OAASlxF,KACrBA,KAAKwuJ,mBAEP,YAAA9sJ,OAAA,WACE1B,KAAKsb,eAAeqzD,aACpB3uE,KAAKic,MAAQ,MAGf,YAAA07D,OAAA,WACE33E,KAAK+9D,cAAc4Z,UAGrB,YAAA82E,cAAA,WAC2CzuJ,KAAKmxF,cAAchxF,SACpD2F,KAAK9F,KAAK0uJ,SAGZ,YAAAF,gBAAR,sBACMxuJ,KAAKkxF,OAAOtjE,iBACd5tB,KAAK4tB,eAAiB5tB,KAAKkxF,OAAOtjE,eAAe3jB,KAAI,SAAAP,GACnD,OAAO,EAAKilJ,eAAejlJ,OAG3B1J,KAAKkxF,OAAO31E,WACdvb,KAAKub,SAAWvb,KAAKkxF,OAAO31E,SAAStR,KAAI,SAAAP,GACvC,OAAO,EAAKilJ,eAAejlJ,QAIzB,YAAAilJ,eAAR,SAAuB30I,GAUrB,OAPyB,MAArBA,EAAQ1T,YACV0T,EAAQ1T,WAAY,GAEG,MAArB0T,EAAQ3T,YACV2T,EAAQ3T,WAAY,GAGf2T,GAlDT,cADC,EAAA6lB,aAAa,6D,sHA7EH+uH,EAAM,cADlB,EAAAxvJ,W,kCAGsB,EAAAuiB,UACH,EAAAqpC,cACO,EAAAlZ,qBACP,EAAA7iB,cACM,EAAAhkB,oBACL,EAAAkR,eACQ,EAAAjR,eACP,EAAAwW,gBACC,EAAAqb,iBACM,EAAA3jB,mBAXhBw1I,GAAb,GAAa,EAAAA,U,4FCvBbtzF,EAAOC,QAFI,g7D,iECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,o+EAAq+E,KAE9/Ew/C,EAAOC,QAAUA,G,uOCGjB,iBACE,WACUszF,GAAA,KAAAA,UAEZ,OAJaC,EAAO,cADnB,EAAA1vJ,W,kCAGoB,EAAAo9C,kBAFRsyG,GAAb,GAAa,EAAAA,W,8FCNbxzF,EAAOC,QAFI,kN,sOCMX,iBACE,WACU7iD,GAAA,KAAAA,UAaZ,OARE,YAAAsrE,SAAA,WACE,IAAM9kD,EAAoBl/B,KAAK0Y,QAC/BwmB,EAAKv0B,MAAMokJ,IAAM,KAEb7vH,EAAK8vH,UAAY9vH,EAAK+vH,aAAez4I,OAAO04I,cAC9ChwH,EAAKv0B,MAAMokJ,IAAOv4I,OAAO04I,YAAchwH,EAAK+vH,aAAgB,OAPtD,cAAT,EAAAr4D,S,gEALUu4D,EAAU,cADtB,EAAA/vJ,W,kCAGoB02F,WAFRq5D,GAAb,GAAa,EAAAA,c,sGCJb7zF,EAAOC,QAFI,kb,2ECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,wEAAyE,KAElGw/C,EAAOC,QAAUA,G,mPCIjB,iBAIE,WACUzY,EACA4F,GADA,KAAA5F,SACA,KAAA4F,SALO,KAAA0mG,oBAAsB,kBAyEzC,OAhEE,sBAAI,yBAAU,C,IAAd,WACE,OAAIpvJ,KAAK8iD,OAAOorG,mBACP,OAEA,qB,gCAIX,YAAAlqE,SAAA,WACExtE,OAAOszC,iBAAiB,QAAS9pD,KAAKqvJ,cAAc5uJ,KAAKT,QAE3D,YAAAiqC,SAAA,WACEzzB,OAAOg/E,oBAAoB,QAASx1F,KAAKqvJ,cAAc5uJ,KAAKT,QAG9D,YAAAsvJ,gBAAA,WACEtvJ,KAAK8iD,OAAOorG,oBAAsBluJ,KAAK8iD,OAAOorG,oBAEhD,YAAAqB,eAAA,SAAet8E,GACTjzE,KAAKwvJ,gBACPxvJ,KAAKwvJ,cAAcxvJ,KAAKovJ,sBAAuB,EAC/CpvJ,KAAKwvJ,cAAgB,MAGO,IAA1Bv8E,EAAMtnC,SAASzmC,SAInBlF,KAAKwvJ,cAAgBv8E,EACrBjzE,KAAKwvJ,cAAcxvJ,KAAKovJ,sBAAuB,IAGjD,YAAAC,cAAA,SAActsJ,GACZ,GAAK/C,KAAKwvJ,cAAV,CAIA,IAAMr7I,EAAkBpR,EAAEoR,OAEtBA,EAAO0E,UAAUC,SAAS,oBAAsB9Y,KAAKyvJ,WAAWt7I,EAAQ,qBAI5EnU,KAAKwvJ,cAAcxvJ,KAAKovJ,sBAAuB,EAC/CpvJ,KAAKwvJ,cAAgB,QAGf,YAAAC,WAAR,SAAmB1sJ,EAAY2sJ,GAC7B,GAAG3sJ,EAAE8V,UAAUC,SAAS42I,GACtB,OAAO3sJ,EAIR,IADA,IAAIq/B,EAAS,KACNr/B,GAAG,CAER,IADAq/B,EAASr/B,EAAEgW,gBACGqpB,EAAOvpB,UAAUC,SAAS42I,GACtC,OAAOttH,EAGTr/B,EAAIq/B,EAGN,OAAO,MA9DV,cADC,EAAAvC,aAAa,6B,wGATH8vH,EAAO,cADnB,EAAAvwJ,W,kCAMmB,EAAAm9C,cACA,EAAAyO,iBANP2kG,GAAb,GAAa,EAAAA,W,8FCPbr0F,EAAOC,QAFI,w/B,mECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,g5DAAi5D,KAE16Dw/C,EAAOC,QAAUA,G,iSCoBjB,iBAKE,WACU7iD,EACA2tB,EACAjkC,EACAwtJ,EACA11I,EACAjH,EACAqe,EACAD,GAPA,KAAA3Y,UACA,KAAA2tB,mBACA,KAAAjkC,UACA,KAAAwtJ,eACA,KAAA11I,aACA,KAAAjH,kBACA,KAAAqe,YACA,KAAAD,iBAZF,KAAAw+H,cAAwB,GAExB,KAAAC,wBAAkC,EAwB1C,KAAAC,UAAY,GAwYd,OArYE,YAAAtE,QAAA,SAAQC,EAAiBC,GACvB3rJ,KAAK0rJ,WAAaA,EAEdA,GACCA,EAAW10C,WACX00C,EAAW10C,UAAU3qD,UACxBrsD,KAAKwsD,cAAgBk/F,EAAW10C,UAAU3qD,SAG5CrsD,KAAKP,GAAKO,KAAK0Y,QAAQgzB,aAAa,mBAEtC,YAAAg4C,SAAA,SAAS3gF,GACHA,GAAKA,EAAEkO,MAAQlO,EAAEhB,UACnB/B,KAAKiR,KAAOlO,EAAEkO,KACdjR,KAAK+B,QAAUgB,EAAEhB,UAGrB,YAAAtB,KAAA,SAAKmpC,EAAqBC,GACxB7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAe,CACvCxoB,eAAgBA,EAChBC,gBAAiBA,IAEnB7pC,KAAKgwJ,cACLhwJ,KAAKiwJ,mBACLjwJ,KAAKkwJ,iBAEP,YAAAxuJ,OAAA,WACE1B,KAAKsb,eAAeqzD,cAEtB,YAAAqV,SAAA,WACEhkF,KAAKmwJ,eAEL,IAAMC,EAAoBpwJ,KAAKqwJ,uBAK/B,IAJArwJ,KAAKswJ,eAAiBruI,SAASC,cAAc,OAItCliB,KAAK0Y,QAAQizB,SAASzmC,OAAS,GACpClF,KAAKswJ,eAAenuI,YAAYniB,KAAK0Y,QAAQizB,SAASxoC,KAAK,IAK7D,GAFAnD,KAAK0Y,QAAQyJ,YAAYniB,KAAKswJ,iBAEzB5+H,EAAS6+H,OAAOvwJ,KAAKiR,MACxB,MAAM,IAAI5P,MAAM,UAAUrB,KAAKiR,KAAI,mBAGrCjR,KAAKiT,gBAAgBuF,QAAQ,sBAAuB,CAClDs1B,OAAQ9tC,KACR0rJ,WAAY1rJ,KAAK0rJ,WACjBz6I,KAAMjR,KAAKiR,KACXlP,QAASquJ,IAGXpwJ,KAAKG,SAAWuxB,EAASC,eAAe3xB,KAAKiR,KAAMjR,KAAKswJ,eAAgBF,GAGpEpwJ,KAAK6zF,UACP7zF,KAAKwwJ,kBAAoB9+H,EAASC,eAAe,cAAe3xB,KAAKswJ,eAAgBtwJ,KAAK6zF,WACjF7zF,KAAK+B,QAAoB,aAClC/B,KAAKwwJ,kBAAoB9+H,EAASC,eAAe,cAAe3xB,KAAKswJ,eAAgB,CACnF3hH,gBAAiB3uC,KAAK+B,QAAoB,cAI9C/B,KAAKywJ,mBAELzwJ,KAAKiT,gBAAgBuF,QAAQ,qBAAsB,CACjDs1B,OAAQ9tC,KACR0rJ,WAAY1rJ,KAAK0rJ,WACjBz6I,KAAMjR,KAAKiR,KACXlP,QAASquJ,EACT13I,QAAS1Y,KAAKswJ,eACdnwJ,SAAUH,KAAKG,YAGnB,YAAA8pC,SAAA,WACE,IAAIymH,EACA34G,EAuBJ,GArBI/3C,KAAKG,WACPuwJ,EAAc1wJ,KAAKG,SAASuY,UAC5B1Y,KAAKG,SAASmB,UACdtB,KAAKG,SAAW,MAEdH,KAAKwwJ,oBACPxwJ,KAAKwwJ,kBAAkBlvJ,UACvBtB,KAAKwwJ,kBAAoB,MAEvBxwJ,KAAK2wJ,kBACP54G,EAAiB/3C,KAAK2wJ,gBAAgBj4I,UACtC1Y,KAAK2wJ,gBAAgBrvJ,UACrBtB,KAAK2wJ,gBAAkB,MAErBD,GACF1wJ,KAAK0Y,QAAQ8J,YAAYkuI,GAEvB34G,GACF/3C,KAAK0Y,QAAQ8J,YAAYu1B,GAGvB/3C,KAAK+B,SAAW/B,KAAK+B,QAAQS,eAC/B,IAAoB,UAAAxC,KAAK+B,QAAQS,eAAb,eAA6B,CAA5C,IAAIJ,EAAO,KACVA,EAAQwtJ,eACVxtJ,EAAQwtJ,eACRxtJ,EAAQwtJ,aAAe,MAK7B5vJ,KAAK6vJ,cAAcpuJ,SAAQ,SAAAiI,GACzBA,EAAEugC,WACFvgC,EAAEhI,YAEJ1B,KAAK6vJ,cAAcruJ,OAAO,IAG5B,YAAAovJ,cAAA,SAAcz6H,GACZ,GAAIn2B,KAAK2wJ,gBAAT,CAC+B3wJ,KAAK2wJ,gBAAgBj4I,UAC1CC,cAAc,qBAAqBk4I,YAAc16H,MAF3D,CAMA,IAAM4hB,EAAiB91B,SAASC,cAAc,OAC9C61B,EAAeL,UAAYvhB,EAC3Bn2B,KAAK0Y,QAAQyJ,YAAY41B,GAEzB/3C,KAAK2wJ,gBAAkBj/H,EAASC,eAAe,YAAaomB,EAAgB,CAC1E5jC,OAAQnU,KAAKG,SAASuY,UACtBo4I,UAAW,eACXC,UAAW,iBAIf,YAAA73C,gBAAA,YAC0C,IAApCl5G,KAAKG,SAAS0gB,OAAO,YACvB7gB,KAAK+iB,UAAU,CACbhb,SAAS,KAIf,YAAAgb,UAAA,SAAUhhB,GAGR,IAFA,IAAIivJ,GAAmB,EAEP,MAAAzwI,OAAO0wI,oBAAoBlvJ,GAA3B,eAAqC,CAAhD,IAAI+Y,EAAG,KAKV,GAJa,UAARA,GAA2B,eAARA,GAAyC,MAAhB/Y,EAAQ+Y,KACvD/Y,EAAQ+Y,GAAO,IAGN,WAAPA,EAEF,GADqB9a,KAAKG,SAAS0gB,OAAO/F,KACrB/Y,EAAQ+Y,GAAM,QAC1B/Y,EAAQ+Y,GACf,SAIQ,UAARA,IACFk2I,GAAmB,GAIvB,GAAmD,IAA/CzwI,OAAO0wI,oBAAoBlvJ,GAASmD,OAIxC,IACM8rJ,GACFhxJ,KAAK8vJ,0BAGP9vJ,KAAKG,SAAS0gB,OAAO9e,G,QAEjBivJ,GACFhxJ,KAAK8vJ,4BAKH,YAAAE,YAAR,WACOhwJ,KAAKqxB,eAAeG,WAIP,gBAAdxxB,KAAKiR,KACPjR,KAAKiR,KAAO,WACU,WAAbjR,KAAKiR,OACdjR,KAAK+B,QAAQmvJ,YAAa,SAEnBlxJ,KAAK+B,QAAQklC,aACbjnC,KAAK+B,QAAQiX,cACbhZ,KAAK+B,QAAQyoC,gBACbxqC,KAAK+B,QAAQwoC,aAGhB,YAAA4mH,eAAR,SAAuBz4I,GACrB,OAAO1Y,KAAKsb,eAAeW,OAErB,YAAAg0I,iBAAR,WAIE,IAJF,WACQtkH,EAAWx1B,MAAMy1B,KAAK5rC,KAAK0Y,QAAQizB,UACtC/0B,QAAO,SAAClN,GAAM,MAAa,eAAbA,EAAE0+E,W,WAEVtsE,GACP,IAAM3Y,EAAoBwoC,EAAS7vB,GAE7B,EAAO3Y,EAAKuoC,aAAa,QACjBvoC,EAAKuoC,aAAa,SAEhC,EAAKqkH,UAAU,GAAQ,CACrBvsD,OAAQ,SAAC4tD,GACP,IAAM7pJ,EAAS,EAAK2S,WAAWspF,OAC7BrgG,EACAiuJ,EAAW5nH,UACX,EAAKkiH,WAAW10C,UAChB,EAAK17F,eAAeW,MACpBm1I,EAAWtqJ,MACX,GAGIuqJ,EAAiB,KAAK,EAAKC,cAAc,GAAK,WAMpD,OALI,EAAKvvJ,SAAW,EAAKA,QAAQsvJ,IAC/B,EAAKtvJ,QAAQsvJ,GAAgB,GAG/B,EAAKxB,cAAc1uJ,KAAKoG,EAAOmiC,MACxBniC,EAAOmR,UAIlBvV,EAAK4V,cAAcyJ,YAAYrf,I,OA3BxB2Y,EAAI,EAAGA,EAAI6vB,EAASzmC,OAAQ4W,I,EAA5BA,GA8BTyE,OAAOC,OAAOxgB,KAAK+vJ,UAAW/vJ,KAAKka,WAAWq3I,aAAavxJ,KAAKsb,eAAeW,MAAOjc,KAAK0rJ,WAAW10C,aAEhG,YAAAq5C,qBAAR,sBACErwJ,KAAK+B,QAAU/B,KAAK+B,SAAW,GAE/B,IAAMquJ,EAAoB7vI,OAAOC,OAAO,GAAIxgB,KAAK+B,SAE3CyvJ,EAAqBpB,EAAkBt+H,gBAc7C,GAbAs+H,EAAkBt+H,gBAAkB,SAAC/uB,GAC/ByuJ,GACFA,EAAmBzuJ,GAGrB,EAAK+uB,gBAAgB/uB,IAGvBqtJ,EAAkBe,eAAiBnxJ,KAAKmxJ,eAAe1wJ,KAAKT,MAC5DowJ,EAAkBqB,mBAAqB,CACrC1B,UAAW/vJ,KAAK+vJ,WAGd/vJ,KAAK+B,QAAQS,eACf,IAAK,IAAI40D,KAAYp3D,KAAK+B,QAAQS,eAAgB,CAChD,IAAMJ,EAAUpC,KAAK+B,QAAQS,eAAe40D,GACtC/oD,EAAQrO,KAAKoC,QAAQokB,SAASxmB,KAAKsb,eAAeW,MAAO7Z,EAAQsZ,YAEvE00I,EAAkBh5F,GAAY/oD,EAIlC,OAAO+hJ,GAED,YAAAK,iBAAR,sBACE,GAAKzwJ,KAAK+B,QAAQS,eAAlB,C,eAIS40D,GACP,IAAMh1D,EAAU,EAAKL,QAAQS,eAAe40D,GAE5C,EAAKh1D,QAAQqZ,QAAQ,CACnBH,eAAgB,EAAKA,eACrBI,WAAYtZ,EAAQsZ,WACpBxM,SAAU,SAACyM,EAAUkO,GACnB,IAAM9nB,EAAU,GACZ4Z,IAAa,EAAKxb,SAAS0gB,OAAOu2C,KAItCr1D,EAAQq1D,GAAYz7C,EACpB5Z,EAAiB,SAAI,EAErB,EAAKghB,UAAUhhB,GACf,EAAK2vJ,qBAAqBtvJ,EAASg1D,EAAU/oD,OAIjD,IAAMA,EAAQ,EAAKjM,QAAQokB,SAAS,EAAKlL,eAAeW,MAAO7Z,EAAQsZ,YAEvE,EAAKg2I,qBAAqBtvJ,EAASg1D,EAAU/oD,I,OAtB/C,IAAK,IAAI+oD,KAAYp3D,KAAK+B,QAAQS,e,EAAzB40D,KAyBH,YAAA84F,cAAR,WACE,IAAKlwJ,KAAK+B,QACR,MAAM,IAAIV,MAAM,6BAA6BrB,KAAKiR,MAGpD,GAAKjR,KAAK+B,QAAQS,eAIlB,IAAK,IAAI40D,KAAYp3D,KAAK+B,QAAQS,eAChBxC,KAAK2xJ,aAAav6F,IAG9B,YAAAu6F,aAAR,SAAqBv6F,GACnB,IAAM50D,EAAiBxC,KAAK+B,QAAQS,eAEI,iBAA7BA,EAAe40D,KACxB50D,EAAe40D,GAAY,CACzB17C,WAAYlZ,EAAe40D,MAIzB,YAAAs6F,qBAAR,SAA6BtvJ,EAASg1D,EAAU/oD,GAAhD,WACMjM,EAAQwtJ,eACVxtJ,EAAQwtJ,eACRxtJ,EAAQwtJ,aAAe,MAGpBxtJ,EAAQwvJ,OAIbxvJ,EAAQwtJ,aAAe5vJ,KAAK4vJ,aAAan0I,QAAQpN,GAAO,WACtD,IAAMtM,EAAU,GAChBA,EAAQq1D,GAAY/oD,EACpBtM,EAAiB,SAAI,EACrB,EAAKghB,UAAUhhB,QAGX,YAAA+vB,gBAAR,SAAwB/uB,GACtB,GAAe,UAAXA,EAAEkO,MAAqBjR,KAAK6xJ,kBAAkB9uJ,GAAlD,CAGA,GAAI/C,KAAK+B,QAAQS,eAAgB,CAC/B,IAAMJ,EAAUpC,KAAK+B,QAAQS,eAAeO,EAAEkO,MAC9C,GAAI7O,IAAYA,EAAQgmC,SAAU,CAGhC,GAFkBpoC,KAAKoC,QAAQokB,SAASxmB,KAAKsb,eAAeW,MAAO7Z,EAAQsZ,cAEzD3Y,EAAEsL,MAClB,OAGFrO,KAAKoC,QAAQoe,OAAOxgB,KAAKsb,eAAeW,MAAO7Z,EAAQsZ,WAAY3Y,EAAEsL,QAG1D,UAAXtL,EAAEkO,MAAoBjR,KAAK+B,QAAQk3D,sBAAyD,IAAjCj5D,KAAK8vJ,yBAClE9vJ,KAAK+B,QAAQk3D,qBAAqB,CAChCmgD,OAAQp5G,KACR8G,MAAO9G,KAAKsb,eAAeW,MAC3B5N,MAAOtL,EAAEsL,MACToC,cAAe1N,EAAE0N,kBAIf,YAAA0/I,aAAR,sBACEh6I,MAAMy1B,KAAK5rC,KAAK0Y,QAAQizB,UACrBlqC,SAAQ,SAACkpJ,GACR,IAAMpjJ,EAAS,EAAK8+B,iBAAiBsD,QAAQ,CAC3CjxB,QAASiyI,EACT3zC,UAAW,EAAK00C,WAAW10C,UAC3BptE,eAAgB,EAAKtuB,eAAeW,MAAM2tB,eAC1CC,gBAAiB,EAAKvuB,eAAeW,MAAM4tB,kBAG7C,EAAKgmH,cAAc1uJ,KAAKoG,OAGtB,YAAA+pJ,cAAR,SAAsBt9I,GACpB,OAAOA,EAAKk1C,OAAO,EAAG,GAAGy3D,cAAgB3sG,EAAKk1C,OAAO,IAE/C,YAAA2oG,kBAAR,SAA0B9uJ,GAIxB,QAH+B,gBAAd/C,KAAKiR,MACJ,YAAbjR,KAAKiR,QAMK,MAAXlO,EAAEsL,OAAwC,MAAnBtL,EAAE0N,gBA7YrB,cAAT,EAAAmmF,S,+DACS,cAAT,EAAAA,S,kEACS,cAAT,EAAAA,S,oEAlBUk7D,EAAQ,cAFpB,EAAA1yJ,WACA,EAAA2yJ,gBAAe,G,kCAOKj8D,QACS,EAAAtmD,iBACT,EAAApzB,eACK,EAAA41I,oBACF,EAAA31I,kBACK,EAAAjD,gBACN,EAAAuI,UACK,EAAAwQ,kBAbf2/H,GAAb,GAAa,EAAAA,Y,iFCvBbx2F,EAAOC,QAFI,+C,mOCSX,qBAA0Bu5E,GACPpjH,EAASvE,aAE1B9jB,WAAW4Q,aAAag4I,OAAO15E,UAAU25E,UAAY,MAErDxgI,EAASsxB,cAAc,WAAWC,eAAe,CAC/ClhD,QAAS,CACPowJ,QAAS,YAGbzgI,EAASsxB,cAAc,cAAcC,eAAe,CAClDlhD,QAAS,CACPowJ,QAAS,YAGbzgI,EAASsxB,cAAc,aAAaC,eAAe,CACjDlhD,QAAS,CACPqwJ,UAAW,CAAEtsJ,KAAM,CAAE4Y,KAAM,OAAQktB,KAAM,EAAG8jD,GAAI,GAAKt6E,KAAM,CAAEsJ,KAAM,OAAQgxE,GAAI,IAC/En3C,SAAU,YAGd7mB,EAASsxB,cAAc,cAAcC,eAAe,CAClDlhD,QAAS,CACPswJ,eAAgB,KAGpB3gI,EAASsxB,cAAc,WAAWC,eAAe,CAC/ClhD,QAAS,CACPqwJ,UAAW,CACTtsJ,KAAM,CAIJ4Y,KAAM,OACNktB,KAAM,GACN8jD,GAAI,EACJ4iE,SAAU,IACVC,OAAQ,kCAGZh6G,SAAU,CAAEywE,GAAI,SAAUC,GAAI,SAAUupC,GAAIh8I,WAIhDs+H,EACGC,gBAAgB,0B,8SChDrB,iBACE,WACUr8H,EACAxF,GADA,KAAAwF,UACA,KAAAxF,kBAyBZ,OApBE,YAAAzS,KAAA,sBACET,KAAK0Y,QAAQoxC,iBAAiB,SAAS,SAAC/mD,GACtC,IAAMmR,EAAanR,EACdmR,EAAMqB,SACLrB,EAAMu+I,QACNv+I,EAAMulG,UACNvlG,EAAMw+I,UACG,EAAKh6I,QAAQgzB,aAAa,SAGrC,EAAKx4B,gBAAgB4C,KAAK,CACxBxR,IAAK,EAAKoU,QAAQgzB,aAAa,QAC/B31B,WAAY,EAAKA,aAIrBhT,EAAE+tC,sBAlBE,cAAT,EAAA8lD,S,sEANU+7D,EAA8B,cAD1C,EAAAvzJ,W,kCAGoB02F,QACQ,EAAAz8E,mBAHhBs5I,GAAb,GAAa,EAAAA,kC,4QCMb,iBAIE,WACUj6I,EACA4Y,EACAxL,GAFA,KAAApN,UACA,KAAA4Y,YACA,KAAAxL,a,MAmIZ,O,EA1Ia8sI,EAqBX,sBAAI,uBAAQ,C,IAAZ,WACE,OAAI5yJ,KAAKgZ,OACAhZ,KAAKgZ,OAGP,S,gCAGT,YAAAvY,KAAA,WACET,KAAK6yJ,6BAED7yJ,KAAKqO,OACPrO,KAAKiqJ,aAAajqJ,KAAKqO,QAG3B,YAAA3M,OAAA,WACM1B,KAAK8yJ,mCACP9yJ,KAAK8yJ,iCAAiCxxJ,UACtCtB,KAAK8yJ,iCAAmC,MAGtC9yJ,KAAK6Q,SACP7Q,KAAK6Q,OAAOkiJ,WAAWzxJ,UACvBtB,KAAK6Q,OAAOvP,UACZtB,KAAK6Q,OAAS,OAIlB,YAAAs5E,OAAA,SAAOn2E,GACL,IAAMukC,EAAWv4C,KAAK6Q,OAAOmiJ,cAC7BhzJ,KAAK6Q,OAAOoiJ,aAAa,GAAI,CAAC,CAC1BC,MAAO,IAAIC,OAAOC,MAAM76G,EAAS86G,WAC/B96G,EAASY,OACTZ,EAAS86G,WACT96G,EAASY,QACXnlC,KAAMA,MAIZ,YAAAsiF,iBAAA,sBACEt2F,KAAKsxB,UAAU8Z,gBAAe,WAC5B,EAAK6+G,aAAa,EAAK57I,WAG3B,YAAA47I,aAAA,SAAat1G,GACN30C,KAAK6Q,QAIN8jC,GAAU30C,KAAK6Q,OAAO+3D,YAI1B5oE,KAAK6Q,OAAOqZ,SAASyqB,GAAU,KAGzB,YAAAk+G,2BAAR,sBACYr8I,OAAQ0wE,QAChBlnF,KAAKszJ,8BACI,EAAWC,iBACpB,EAAWA,iBAAiBvuI,MAAK,WAC/B,EAAKsuI,iCAIP,EAAWC,iBAAmB,IAAIhuJ,SAAa,SAACC,EAAS+H,GACvD,IAAIimJ,EAAevxI,SAASC,cAAc,UAC1CsxI,EAAa90I,KAAO,kBACpB80I,EAAapoE,IAAM,eACnBooE,EAAa1pG,iBAAiB,QAAQ,WACpCtkD,GAAQ,GACR,EAAK8tJ,iCAEPrxI,SAASwP,KAAKtP,YAAYqxI,OAIxB,YAAAF,4BAAR,sBACO,EAAWG,mBACd,EAAWA,iBAAmB,IAAIluJ,SAAQ,SAACC,EAAS+H,GAC5CiJ,OAAQ0wE,QAAQ,CAAC,0BAA0B,WAC/C1hF,GAAQ,UAKd,EAAWiuJ,iBAAiBzuI,MAAK,WAC/B,EAAK0uI,mBAGD,YAAAA,aAAR,sBACE1zJ,KAAK6Q,OAASsiJ,OAAOtiJ,OAAOo3E,OAC1BjoF,KAAK2zJ,KAAM,CACTC,YAAY,EACZC,iBAAiB,EACjBC,SAAU,OACVC,QAAS,CACPrsJ,SAAS,GAEXwqJ,SAAUlyJ,KAAKkyJ,UAAY,SAC3B7jJ,MAAOrO,KAAKqO,QAGhBrO,KAAK8yJ,iCAAmC9yJ,KAAK6Q,OAAOmjJ,yBAAwB,WAC1E,IAAMr/G,EAAS,EAAK9jC,OAAO+3D,YAEtBj0B,GAAU,MAAQ,EAAKtmC,OAAS,MAIrC,EAAKA,MAAQsmC,EAET,EAAK1tC,WACP,EAAK6e,WAAW5X,SAAS,EAAKjH,gBA5H1B,cAAT,EAAA2vF,S,kEACqB,cAArB,EAAAA,SAAU,EAAAhe,W,oEACD,cAAT,EAAAge,S,mEACS,cAAT,EAAAA,S,iEACiE,cAAjE,EAAAA,SAAS,CAAEgS,mBAAoB,EAAAC,YAAYC,SAAW,EAAAlwB,W,gEAOvD,cADC,EAAA/4C,aAAa,U,sGApBH+yH,EAAU,gBADtB,EAAAxzJ,W,kCAMoB02F,QACE,EAAAn0E,UACC,EAAAnP,qBAPXogJ,GAAb,GAAa,EAAAA,c,oGCVbt3F,EAAOC,QAFI,qY,yECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,8EAA+E,KAExGw/C,EAAOC,QAAUA,G,iVCwBjB,iBAME,WACUl7B,EACA8F,EACApgB,EACAsgB,EACA/U,EACAo/C,EACAz9D,GAPV,WACU,KAAAotB,UACA,KAAA8F,YACA,KAAApgB,gBACA,KAAAsgB,mBACA,KAAA/U,YACA,KAAAo/C,sBACA,KAAAz9D,kBAZF,KAAAghJ,gBAA0B,EAE1B,KAAAC,WAAa,eAiBrB,KAAAjrD,aAA6C,CAC3C7/D,gBAAiB,kBACjBP,cAAe,SAACW,GACd,IAAMnJ,EAAUpe,SAASC,cAAc,WACvCme,EAAQoJ,aAAa,eAAgB,EAAKyqH,YAE1C1qH,EAAUrnB,YAAYke,GAEtB,EAAK8zH,oBAAsB,EAAK9tH,iBAAiBsD,QAAQ,CACvDjxB,QAAS2nB,EACTuJ,eAAgB,EAAKtuB,eAAeW,MAAM2tB,eAC1CC,gBAAiB,EAAKvuB,eAAeW,MAAM4tB,mBAG/CN,iBAAiB,EACjBozE,UAAW,SAAC55G,GACV,EAAKojC,UAAUiE,YAAY,CACzBC,MAAO,EACP3wB,MAA8B3W,EAAE6d,UAChC3gB,KAAM,EAAKA,KAAKozC,iBAChB/E,eAAgB,SAACjtB,GACf,EAAKphB,KAAKozC,iBAAiB/E,eAAejtB,IAE5C8uB,kBAAmB,WACjB,OAAO,EAAKlwC,KAAKozC,iBAAiBlD,qBAEpCjoB,eAAgB,WACd,OAAO,EAAKjoB,KAAKozC,iBAAiB1sC,OAAOuhB,qBAI/CshG,QAAS,SAACzmH,GACRA,EAAE6d,UAAUg8F,WAEdmJ,SAAU,SAAChjH,GACT,EAAKojC,UAAUmE,YAAmCvnC,EAAE6d,YAEtDmnC,YAAa,WACP,EAAKosG,sBACP,EAAKzjF,oBAAoBp9B,YAAY,EAAK6gH,qBAC1C,EAAKA,oBAAsB,QAoLnC,OAxKE,sBAAI,wBAAS,C,IAAb,WACE,OAAOn0J,KAAK0Z,OACP1Z,KAAK0Z,MAAMvZ,UACXH,KAAK0Z,MAAMvZ,SAAS0gB,OAAO,Y,gCAGlC,YAAApgB,KAAA,SAAKmpC,EAAqBC,GAA1B,WACE7pC,KAAKic,MAAQ,CACX2tB,eAAgB5pC,KAChB6pC,gBAAiB,EAAA8d,sBAAsB3nD,OAEzCA,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE3B,MAAfjc,KAAKgZ,SACPhZ,KAAKipG,aAAajwF,OAAShZ,KAAKgZ,QAEb,MAAjBhZ,KAAKwqC,WACPxqC,KAAKipG,aAAaz+D,SAAWxqC,KAAKwqC,UAEd,MAAlBxqC,KAAKuqC,YACPvqC,KAAKipG,aAAa1+D,UAAYvqC,KAAKuqC,WAG/BvqC,KAAKipG,aAAcjX,0BAA4B,SAACjvF,IACrB,IAA3B,EAAKqxJ,mBAIT,EAAK9iI,UAAU7P,WAAU,WACvB1e,EAAE5C,SAAS2F,YAIgB,IAA3B9F,KAAKo0J,mBACPp0J,KAAKsxB,UAAU7P,WAAU,WACvBs4B,YAAW,WACT,EAAK+3C,sBACJ,UAIT,YAAApwF,OAAA,WACE1B,KAAKsb,eAAeqzD,cAGtB,YAAA7oE,KAAA,SAAK/D,GACH/B,KAAKq0J,aAAetyJ,EAEf/B,KAAKi0J,gBAOVj0J,KAAKC,KAAK6W,eAAiB9W,KAAKq0J,aAAav9I,eAC7C9W,KAAK0Z,MAAMvZ,SAAS2F,QAPlB9F,KAAK8xF,qBAST,YAAA18E,KAAA,WACEpV,KAAK0Z,MAAMvZ,SAASiV,QAEtB,YAAA86B,kBAAA,WACElwC,KAAKoV,QAGC,YAAA08E,kBAAR,sBACE9xF,KAAKi0J,gBAAiB,EAEtB,IAAMv6I,EAA+B1Z,KAAK0Z,MAAMvZ,SAChDuZ,EAAMmH,OAAO,kBAAkB,GAE/B,IAAIyzI,EAAmB,SAACnqH,GACtBA,EAAQgoD,sBAAqB,WAC3B,IAAMC,EAAiB,EAAK/xD,QAAQhlB,qBAClC8uB,EAAQ7uB,eACR6uB,EAAQtqC,MACRsqC,EAAQ5uB,SAASC,eAEnB2uB,EAAQ/nC,QAAQqZ,QAAQ,CACtBH,eAAgB6uB,EAAQ7uB,eACxBI,WAAY,QACZxM,SAAU,SAACylC,GACTy9C,EAAevyF,MAAQ80C,KAI3B,EAAK,EAAKu/G,YAAc9hE,KAG1BjoD,EAAQxjC,OAAOC,SAASC,UAAS,SAAA9D,GAC/B,GAAIA,EAAE+D,QAAUqjC,EAAQxjC,OAAOI,eAC7B,OAAOxB,QAAQC,UAEjB,IAAKzC,EAAEC,KACL,OAAOuC,QAAQC,UAGjB,IAAK,EAAK6uJ,eAAiB,EAAKA,aAAapqI,gCAC3C,OAAO1kB,QAAQC,UAGjB,IAAMwkB,EAAY,EAAKqqI,aAAapqI,gCAEpC,IAAK,IAAInP,KAAOkP,EACd,EAAKjE,cAAcmE,SAASnnB,EAAEC,KAAM8X,EAAKkP,EAAUlP,IACnD/X,EAAEC,KAAK8X,GAAOkP,EAAUlP,GAG1B,OAAOvV,QAAQC,aAGjB2kC,EAAQxjC,OAAO6G,QAAQ3G,UAAS,SAAA9D,GAK9B,OAJI,EAAKsxJ,cAAgB,EAAKA,aAAaniE,eACzC,EAAKmiE,aAAaniE,cAAc/nD,GAG3B5kC,QAAQC,cAInBkU,EAAMswB,GAAG,CACPqoD,QAAS,SAAAtvF,GACkBA,EAAE6d,UAAUupB,UAC7BpxB,cAAcF,UAAU9X,IAAI,aAEtCuxF,MAAO,0D,sEACqB,SAAMtyF,KAAK0wE,oBAAoBv9B,iBAAiBnzC,KAAKC,O,OAS/E,IATMkqC,EAAoB,UAElBrzB,eAAiB9W,KAAKq0J,aAAav9I,eAEvCw9I,IACFA,EAAiBnqH,GACjBmqH,EAAmB,MAGjBt0J,KAAKq0J,cAAgBr0J,KAAKq0J,aAAahoI,SACzC,IAASvR,KAAO9a,KAAKq0J,aAAahoI,SAChC8d,EAAQzhB,UAAU1lB,KAAK8X,GAAO9a,KAAKq0J,aAAahoI,SAASvR,G,OAG7D9a,KAAKiT,gBAAgBuF,QAAQ,kBAAmB,CAC9CvY,KAAMkqC,IAGRA,EAAQooD,kB,YAEVC,OAAQ,WACD,EAAK6hE,cAAiB,EAAKA,aAAaxiJ,eAI7C,EAAKwiJ,aAAaxiJ,cAAc,EAAK5R,KAAKozC,mBAE5CqlC,OAAQ,WACN,GAAI,EAAK27E,cAAgB,EAAKA,aAAahoI,SAAU,CACnD,IAAM8d,EAAoB,EAAKlqC,KAAKozC,iBACpC,IAAK,IAAIv4B,KAAO,EAAKu5I,aAAahoI,SAChC8d,EAAQzhB,UAAU1lB,KAAK8X,GAAO,KAGlC,EAAK7H,gBAAgBuF,QAAQ,mBAAoB,CAC/CvY,KAAM,EAAKA,KAAKs0J,kBAAkBl0I,YAGpC,EAAKg0I,aAAe,SA3KhB,cAAT,EAAAz9D,S,iEACS,cAAT,EAAAA,S,iEACS,cAAT,EAAAA,S,mEACS,cAAT,EAAAA,S,oEACS,cAAT,EAAAA,S,6EACW,cAAX,EAAAhe,W,+DAtEU47E,EAAe,cAD3B,EAAAp1J,W,kCAQoB,EAAA8c,eACE,EAAA6gB,iBACI,EAAAzS,cACG,EAAAklB,iBACP,EAAA7tB,UACU,EAAA4xB,oBACJ,EAAAn6B,mBAbhBo7I,GAAb,GAAa,EAAAA,mB,8GC3Bbl5F,EAAOC,QAFI,mQ,2UC0BX,iBAGE,WACU7iD,EACA1F,EACAiH,EACA7X,EACAq9E,EACAnuD,EACAs1E,EACA3zF,GARV,WACU,KAAAyF,UACA,KAAA1F,OACA,KAAAiH,eACA,KAAA7X,UACA,KAAAq9E,gBACA,KAAAnuD,YACA,KAAAs1E,oBACA,KAAA3zF,kBAgBV,KAAAwhJ,YAA4B,GAC5B,KAAAC,aAAuB,EAevB,KAAAC,sBAAuD,CACrD3gJ,KAAM,WACN3C,QAAS,WACPmF,OAAOC,KAAK,EAAKkqE,YAAa,YAGlC,KAAAi0E,mBAAoD,CAClDl1J,KAAM,gBACN2R,QAAS,WACP,EAAK6Y,SAAS,QA0WpB,OArWE,sBAAI,yBAAU,C,IAAd,WACE,OAAOlqB,KAAK2gF,eACL3gF,KAAK+B,SACsB,MAA3B/B,KAAK+B,QAAQ8lC,YACc,GAA3B7nC,KAAK+B,QAAQ8lC,a,gCAGtB,sBAAI,8BAAe,C,IAAnB,WACE,OAAO7nC,KAAK6nC,YACP7nC,KAAK+B,SACsB,WAA3B/B,KAAK+B,QAAQqlC,Y,gCAGpB,sBAAI,6BAAc,C,IAAlB,WACE,OAAIpnC,KAAK00J,YACA,sDAEA,I,gCAIX,sBAAI,wBAAS,C,IAAb,WACE,OAAQ10J,KAAKmoC,aAAenoC,KAAKioC,Y,gCAGnC,YAAAxnC,KAAA,SAAKmpC,EAAqBC,GAA1B,WACE7pC,KAAK4pC,eAAiBA,EACtB5pC,KAAK6pC,gBAAkBA,EAEvB7pC,KAAKic,MAAQ,CACX2tB,eAAgB5pC,KAChB6pC,gBAAiB,MAEnB7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9C,IAAMzZ,EAAiBxC,KAAK+B,QAAwB,eAChDS,GAAkBA,EAAe6L,OACnCrO,KAAK60J,aAAaryJ,EAAe6L,OAAO,SAACugC,GAAM,SAAKkmH,aAAelmH,KAGjE5uC,KAAK+B,QAAQwlC,uBACfvnC,KAAK60J,aAAa70J,KAAK+B,QAAQwlC,wBAAwB,SAACqH,GAAM,SAAKtH,aAAesH,KACzE5uC,KAAK+B,QAAQulC,eACtBtnC,KAAKsnC,aAAetnC,KAAK+B,QAAQulC,cAG/BtnC,KAAK+B,QAAQ4lC,2BACf3nC,KAAK60J,aAAa70J,KAAK+B,QAAQ4lC,4BAA4B,SAACiH,GAAM,SAAKlH,iBAAmBkH,KACjF5uC,KAAK+B,QAAQ2lC,mBACtB1nC,KAAK0nC,iBAAmB1nC,KAAK+B,QAAQ2lC,kBAGnC1nC,KAAK+B,QAAQ0lC,0BACfznC,KAAK60J,aAAa70J,KAAK+B,QAAQ0lC,2BAA2B,SAACmH,GAAM,SAAKpH,gBAAkBoH,KAC/E5uC,KAAK+B,QAAQylC,kBACtBxnC,KAAKwnC,gBAAkBxnC,KAAK+B,QAAQylC,iBAGlCxnC,KAAK+B,QAAQsmC,qBACfroC,KAAK60J,aAAa70J,KAAK+B,QAAQsmC,sBAAsB,SAACuG,GAAM,SAAKzG,WAAayG,KACrE5uC,KAAK+B,QAAQomC,aACtBnoC,KAAKmoC,WAAanoC,KAAK+B,QAAQomC,YAG7BnoC,KAAK+B,QAAQmmC,qBACfloC,KAAK60J,aAAa70J,KAAK+B,QAAQmmC,sBAAsB,SAAC0G,GAAM,SAAK3G,WAAa2G,KACrE5uC,KAAK+B,QAAQkmC,aACtBjoC,KAAKioC,WAAajoC,KAAK+B,QAAQkmC,YAGM,MAAnCjoC,KAAK+B,QAAQgzJ,qBACf/0J,KAAK+B,QAAQgzJ,oBAAqB,GAGpC/0J,KAAK4nC,qBAAuB5nC,KAAK+B,QAAQ6lC,qBACzC5nC,KAAK0uC,YAAc1uC,KAAKia,aAAa9Q,cAAc,8BAEnDnJ,KAAKg1J,oBAAsB,CACzBh8I,OAAQhZ,KAAK+B,QAAQiX,OACjBhZ,KAAK+B,QAAQiX,OACb,SAGNhZ,KAAKiT,gBAAgBuF,QAAQ,qBAAsB,CACjDE,QAAS1Y,KAAK0Y,QACd3W,QAAS/B,KAAK+B,UAGhB/B,KAAKi1J,mBACLj1J,KAAKk1J,uBAEP,YAAAxzJ,OAAA,WACM1B,KAAKy0J,cACPz0J,KAAKy0J,YAAYhzJ,SAAQ,SAAAiI,GAAK,OAAAA,EAAEpI,aAChCtB,KAAKy0J,YAAYvvJ,OAAS,GAE5BlF,KAAKsb,eAAeqzD,aACpB3uE,KAAKic,MAAQ,MAEf,YAAA+nE,SAAA,sBACEhkF,KAAK67B,MAAMiuB,iBAAiB,UAAU,SAAC/mD,GACL,IAA5B,EAAK84B,MAAM+uD,MAAM1lF,QAIrB,EAAKiwJ,WAAW,EAAKt5H,MAAM+uD,MAAM,QAIrC,YAAAwqE,qBAAA,SAAqBzyI,GACnB,OAAO3iB,KAAKoC,QAAQizJ,kBAAkB,CACpCzrH,eAAgB5pC,KAAK4pC,eACrBC,gBAAiB7pC,KAAK6pC,iBACrBlnB,IAEL,YAAAkyI,aAAA,SAAalyI,EAAsB2yI,GAAnC,WACQ55I,EAAa1b,KAAKy/E,cAAc81E,gBAAgB5yI,GAChD6yI,EAAUx1J,KAAKo1J,qBAAqBzyI,GACpCs0C,EAAWj3D,KAAKy/E,cAAcg2E,mBAAmBD,EAAS7yI,GAEhE3iB,KAAKy0J,YAAYtzJ,KAAK81D,EAASviD,WAAU,SAACiH,EAAUkO,GAClDyrI,EAAiB55I,EAAW8K,SAAS,CACnCojB,eAAgB,EAAKA,eACrBC,gBAAiB,EAAKA,uBAI1ByrH,EAAiB55I,EAAW8K,SAAS,CACnCojB,eAAgB5pC,KAAK4pC,eACrBC,gBAAiB7pC,KAAK6pC,oBAI1B,YAAA6rH,oBAAA,SAAoB/5I,GAApB,WAEI3b,KAAK2gF,YADHhlE,EACiB3b,KAAKgT,KAAKsD,eAAeqF,GAEzB,KAGrB3b,KAAKsxB,UAAU7P,WAAU,WAEvB,EAAKk0I,YAAc,EAAKh1E,gBAG5B,YAAAi1E,oBAAA,SAAoBj6I,GAClB,IAAIk6I,EAAyC71J,KAAqB,eAC5DN,EAAO,UAASM,KAAKsnC,cAAgB,kBAEvCuuH,EACFA,EAAeh1I,OAAO,OAAQnhB,GAE9BM,KAAK20J,sBAAsBj1J,KAAOA,GAItC,YAAA2R,QAAA,WACOrR,KAAK81J,YAIV91J,KAAK67B,MAAMyvD,QAEXp3E,MAAM68B,kBACN78B,MAAM48B,mBAER,YAAAilH,WAAA,SAAW7hJ,GACTA,EAAM48B,iBACN9wC,KAAK00J,YAAc10J,KAAKg2J,cAAc9hJ,IAExC,YAAA+hJ,YAAA,SAAY/hJ,GACVA,EAAM48B,iBACN9wC,KAAK00J,aAAc,GAErB,YAAAwB,OAAA,SAAOhiJ,GACLA,EAAM48B,iBAED9wC,KAAKg2J,cAAc9hJ,KAIxBlU,KAAKm1J,WAAWjhJ,EAAMiiJ,aAAavrE,MAAM,IACzC5qF,KAAK00J,aAAc,IAGrB,YAAAxqI,SAAA,SAASm4B,GACP,IAAM7/C,EAAiBxC,KAAK+B,QAAwB,eAChDS,GAAkBA,EAAe6L,OAChBrO,KAAKy/E,cAAc81E,gBAAgB/yJ,EAAe6L,OAC1DmS,OAAO,CAChBopB,eAAgB5pC,KAAK4pC,eACrBC,gBAAiB7pC,KAAK6pC,iBACrBwY,EAAK,MAGNriD,KAAK+B,QAAQskH,kBACfrmH,KAAK+B,QAAQskH,iBAAiBhkE,GAG5BriD,KAAK+B,SAAW/B,KAAK+B,QAAQqkH,+BAC/BpmH,KAAK80J,aAAe,OAIhB,YAAAG,iBAAR,sBACOj1J,KAAK+B,QAAQgmC,cAIlB/nC,KAAKo2J,kBAAoB,CACvBv2J,MAAOG,KAAK+B,QAAQ44B,QACpB5mB,MAAO,GACP6H,cAAc,GAGhB5b,KAAKo2J,kBAAkBriJ,MAAM5S,KAAK,CAChC1B,GAAI,cACJC,KAAM,SACN4T,oBAAqB,YACrBxT,QAAS,WACP,EAAKuR,aAGTrR,KAAKo2J,kBAAkBriJ,MAAM5S,KAAK,CAChC1B,GAAI,cACJC,KAAM,QACN4T,oBAAqB,YACrBxT,QAAS,WACP,EAAKoqB,SAAS,SAIlBlqB,KAAKiT,gBAAgBuF,QAAQ,mCAAoC,CAC/DE,QAAS1Y,KAAK0Y,QACd3W,QAAS/B,KAAK+B,QACd5B,SAAUH,KACVoyF,eAAgBpyF,KAAKo2J,sBAGjB,YAAAlB,oBAAR,WACOl1J,KAAK+B,QAAQs0J,oBAIlBr2J,KAAKs2J,qBAAuB,CAC1Bz2J,MAAO,KACPkU,MAAO,GACP6H,cAAc,GAGhB5b,KAAKiT,gBAAgBuF,QAAQ,sCAAuC,CAClEE,QAAS1Y,KAAK0Y,QACd3W,QAAS/B,KAAK+B,QACd5B,SAAUH,KACVoyF,eAAgBpyF,KAAKs2J,yBAGjB,YAAAN,cAAR,SAAsB9hJ,GACpB,QAAKlU,KAAK81J,cAIL5hJ,EAAMiiJ,eAAiBjiJ,EAAMiiJ,aAAaI,OAA6C,IAApCriJ,EAAMiiJ,aAAaI,MAAMrxJ,SAM3E,YAAAiwJ,WAAR,SAAmBniJ,GAAnB,WACE,OAAIhT,KAAK+B,SAAW/B,KAAK+B,QAAQ+lC,eAAiB90B,EAAKk3E,KAAoC,KAA7BlqF,KAAK+B,QAAQ+lC,cAAuB,MAChGz+B,WAAWC,GAAGO,OACZ7J,KAAKia,aAAa9Q,cAAc,+BAAgC,CAACnJ,KAAK+B,QAAQ+lC,cAAcvpB,aAC5F,QACA,UAEFve,KAAK67B,MAAMxtB,MAAQ,OAIjB2E,EAAKk3E,KAAO,UACd7gF,WAAWC,GAAGO,OACZ7J,KAAKia,aAAa9Q,cAAc,+BAAgC,CAAC,OACjE,QACA,UAEFnJ,KAAK67B,MAAMxtB,MAAQ,OAIhBrO,KAAKw2J,gBAAgBxjJ,QAU1BhT,KAAKsxB,UAAU7P,WAAU,WACvB,EAAKzO,KACF6tE,OAAO7tE,GACPgS,MAAK,SAAAvgB,GACJ,GAAKA,EAAL,CAIA,IAAMqW,EAAMrW,EACZ,EAAKo3B,MAAMxtB,MAAQ,KACnB,EAAKymJ,aAAeh6I,EAEpB,EAAKoP,SAASpP,GACd,EAAK27I,sBAAsBzjJ,EAAM8H,OAElCmK,OAAM,WACL,EAAK4W,MAAMxtB,MAAQ,YAzBvBhF,WAAWC,GAAGO,OACZ7J,KAAKia,aAAa9Q,cAAc,gCAAiC,CAACnJ,KAAK+B,QAAQqlC,aAC/E,QACA,UAEFpnC,KAAK67B,MAAMxtB,MAAQ,QAwBf,YAAAmoJ,gBAAR,SAAwBxjJ,GACtB,IAAKhT,KAAK+B,UAAY/B,KAAK+B,QAAQqlC,WACjC,OAAO,EAGT,IAAIr/B,GAAU,EACd,GAAI/H,KAAK+B,QAAQqlC,WAAW7vB,QAAQ,MAAQ,EAAG,CAC7C,IAAI6vB,EAAapnC,KAAK+B,QAAQqlC,WAExBsvH,EAAkBtvH,EAAW7vB,QAAQ,MACvCm/I,GAAmB,IACrBtvH,EAAaA,EAAW8hB,OAAO,EAAGwtG,EAAkB,GACjDr4I,OAAO,KACPA,OAAO+oB,EAAW8hB,OAAOwtG,EAAkB,KAGhD3uJ,EAAU,IAAIi6C,OAAO,IAAI3jC,OAAO+oB,GAAY/oB,OAAO,MAAM8lB,KAAKnxB,EAAK0L,UAC9D,CAEL3W,EADe/H,KAAK+B,QAAQqlC,WAAWxF,cAAc5iB,MAAM,KAC1CvV,MAAK,SAAAC,GAAK,OAAAsJ,EAAK/B,KAAK2wB,cAAc+0H,SAASjtJ,MAG9D,OAAO3B,GAED,YAAA0uJ,sBAAR,SAA8BzjJ,EAAM8H,GAClC,IAAM5G,EAAQ,IAAI7U,YAAY,gBAAiB,CAC7C+O,OAAQ,CACNgrG,OAAQp5G,KACRqO,MAAO,CACL2E,KAAMA,EACN4jJ,QAAS97I,IAGbq8E,SAAS,IAGXn3F,KAAK0Y,QAAQw+E,cAAchjF,IA9YnB,cAAT,EAAA0iF,S,kEACW,cAAX,EAAAhe,W,uEAsBW,cAAX,EAAAA,W,uEAoBD,cADC,EAAA/4C,aAAa,qBAAsB,e,yGAQpC,cADC,EAAAA,aAAa,aAAc,sB,8GAO5B,cADC,EAAAA,aAAa,e,4GASd,cADC,EAAAA,aAAa,aAAc,c,wGA7EjBg3H,EAAyB,cADrC,EAAAz3J,W,kCAKoB02F,QACH,EAAA38E,YACQ,EAAAlO,oBACL,EAAAmR,eACM,EAAA8jE,cACJ,EAAAv+D,UACQ,EAAAnP,kBACF,EAAA4G,mBAXhBy9I,GAAb,GAAa,EAAAA,6B,oICxBbv7F,EAAOC,QAFI,gyD,yGCCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,ohDAAqhD,KAE9iDw/C,EAAOC,QAAUA,G,uTCCjB,IAkZKu7F,EAlZL,aAGE,WACUzsC,EACA0sC,EACAnzJ,EACAmoD,EACA54C,EACAmK,EACA6R,EACAmC,GARV,WACU,KAAA+4F,oBACA,KAAA0sC,oBACA,KAAAnzJ,uBACA,KAAAmoD,gBACA,KAAA54C,sBACA,KAAAmK,cACA,KAAA6R,sBACA,KAAAmC,YAVF,KAAA0lI,kBAA8B,GAiBtC,KAAAC,YAAmC,GAEnC,KAAAC,iBAAiC,CAC/Bz3J,GAAI,sBACJI,MAAO,iCACPH,KAAM,OACNE,UAAW,KACXE,QAAS,WACP,GAAI,EAAKm3J,YAAY/xJ,OAAS,IACb,EAAKiyJ,sBAAsBh3J,SAAS+jC,WAEvCn8B,QACV,OAIJ,EAAKkvJ,YAAY91J,KAAK,CACpBw5B,QAAS,KACTy8H,UAAW,KACXx+H,UAAW,KACXy+H,YAAa,KACblvF,SAAU,KACVnjE,OAAQ,SAId,KAAAsyJ,mBAAmC,CACjC73J,GAAI,sBACJI,MAAO,YACPH,KAAM,WACNE,UAAW,KACXE,QAAS,0D,oEAEP,OADgBE,KAAKu3J,sBAIfz0G,EAAS9iD,KAAKw3J,yBAEpB,GAAMx3J,KAAK+rD,cAAcsC,WACvBruD,KAAK+2J,kBAAkB/pG,aACvBhtD,KAAK+B,QAAQurD,YACbttD,KAAK+B,QAAQiU,OACb8sC,KARA,I,cAIF,SAMA9iD,KAAKy3J,2BACLz3J,KAAK03J,iBAAiBv3J,SAASiV,OAE/B/L,WAAWC,GAAGO,OACZ7J,KAAKmT,oBAAoBhK,cAAc,qBACvC,UACA,K,aAIN,KAAAwuJ,0BAA2D,CACzDj4J,KAAM,oBACN2R,QAAS,SAACtO,GACR,IAAM60J,EAAgC70J,EAAE+D,MAAM8iC,eAAeguH,WACvDxgJ,EAAQ,EAAK6/I,YAAYt+H,WAAU,SAAAwU,GAAK,OAAAA,IAAMyqH,KACpD,EAAKX,YAAYz1J,OAAO4V,EAAO,GAE/B,EAAK4/I,kBAAkB71J,KAAKy2J,EAAWP,eAI3C,KAAAQ,qBAAuD,CACrDr1J,eAAgB,CACd6L,MAAO,uBAIX,KAAAypJ,wBAAwD,CACtD7wH,MAAO,QACPmyC,UAAW,QACX7uC,UAAW,SAEb,KAAAwtH,yBAA+D,CAC7D3rH,YAAa,YACbF,UAAW,cACXlE,iBAAiB,EACjBoB,gBAAiB,0BACjBc,cAAe,SAACnnC,GACAA,EAAE6d,UAAUC,OAAO,UAKjC9d,EAAE6d,UAAUC,OAAO,QAAS,CAAC9d,EAAE+D,MAAM8iC,eAAeguH,cAEtDp1J,eAAgB,CACd6L,MAAO,2BAGX,KAAA2pJ,0BAA6D,CAC3D/9C,cAAe,OACfg+C,UAAW,mBACXtvF,QAAS,cACTv8B,YAAa,UACb0I,cAAe,SACfojH,eAAe,EACfl/I,OAAQ,QACRm/I,mBAAmB,EACnBjuH,cAAe,SAACnnC,GAEd,GADmBA,EAAE6d,UAAUC,OAAO,cACtC,CAIA,IAAMw2I,EAAsBt0J,EAAE+D,MAAM8iC,eAAe5mC,KAAKqL,MAClD+pJ,EAAYr1J,EAAE6d,UAAUC,OAAO,SAAS3b,OACxC0b,EAAsC7d,EAAE6d,UAE9C,GAAKy2I,GAAgBe,EAArB,CAKA,IAAMC,EAAWhB,EAAY31H,UAAU,EAAG21H,EAAY11H,YAAY,OAE9D02H,GAAYA,EAASrvI,WAAW,UAClC,EAAKsI,UAAU8Z,gBAAe,WAC5BxqB,EAAU03I,WAAWD,MAIzBz3I,EAAUslB,WAAWmxH,QAZnBz2I,EAAU65F,gBAcdL,uBAAwB,SAACr3G,GACvB,IAAMw1J,EAAcx1J,EAAEE,SAASu1J,SACgBz1J,EAAE+D,MAAM8iC,eAAe5mC,KAAK4d,UAC3E7d,EAAE+D,MAAM+iC,gBAAgBD,eAAeguH,WAAWP,YAAekB,EAE7D,KADAx1J,EAAEE,SAASo0J,YAEft0J,EAAE+D,MAAM+iC,gBAAgBD,eAAeguH,WAAWzvF,SAAYowF,EAE1D,KADAx1J,EAAEE,SAASw1J,SAEf11J,EAAE+D,MAAM+iC,gBAAgBD,eAAeguH,WAAW5yJ,OAAUuzJ,EAExD,KADAx1J,EAAEE,SAAS0qE,OAGf5qE,EAAE+D,MAAM8iC,eAAe5mC,KAAK4d,UAAUC,OAAO,QAAS,CAAC9d,EAAEE,YAE3DT,eAAgB,CACdF,WAAY,0BAQhB,KAAAo2J,kCAA4E,GAC5E,KAAA7xD,gBAAoD,CAClDl4D,gBAAiB,CAAC,CAAEjwB,KAAM,cAsN9B,OAnNE,YAAAslE,SAAA,WACEhkF,KAAK+2J,kBAAkB1pG,yBAA2BrtD,MAGpD,YAAAS,KAAA,SAAKmpC,EAAqBC,GACxB7pC,KAAKic,MAAQ,CACX2tB,eAAgB5pC,KAChB6pC,gBAAiB,EAAA8d,sBAAsB3nD,KAAM,OAE/CA,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9Cjc,KAAKmvB,oBAAoBif,mBAAmB,CAC1C9E,UAAW,yBACX3O,QAAS,kCACT54B,QAAS/B,KAAK83J,wBACdv8I,SAAU,CAACvb,KAAKk3J,iBAAkBl3J,KAAKs3J,oBACvCh8I,eAAgBtb,KAAKsb,kBAGzB,YAAA5Z,OAAA,WACE1B,KAAKsb,eAAeqzD,aACpB3uE,KAAKic,MAAQ,MAGT,YAAAoJ,UAAN,SAAgBtjB,G,gHAId,OAHA/B,KAAKg3J,kBAAoB,GACzBh3J,KAAK+B,QAAUA,EAEV/B,KAAK+B,QAAQmF,aAIlB,GAAMlH,KAAK24J,kBAHT,I,cAGF,SACA34J,KAAK44J,oBAEL54J,KAAK03J,iBAAiBv3J,SAAS2F,O,YAGnB,YAAA6yJ,eAAd,W,sHACsB,SAAM34J,KAAKsd,YAAYjZ,IAAI,CAC7CC,IAAQtE,KAAKsd,YAAYoI,UAAU,8BAA6B,kBAAkB1lB,KAAK+B,QAAQmF,aAAY,e,cADvGlE,EAAc,SAIpBhD,KAAK64J,kBAAkB,GAAI,QAAS71J,GAEpChD,KAAK84J,gBAAkB91J,EACvBhD,KAAK+4J,sBAAwB,IAAI1vJ,WAAWrG,KAAKqxC,WAAWrxC,G,YAEtD,YAAA41J,kBAAR,sBACQ70J,EAA+B/D,KAAK+rD,cAAcY,UACtD3sD,KAAK+2J,kBAAkB/pG,aACvBhtD,KAAK+B,QAAQurD,YACbttD,KAAK+B,QAAQiU,SAAW,GAE1BhW,KAAKi3J,YAAclzJ,EAAQmB,OAAS,EAChCnB,EAAQkG,KAAI,SAAAP,GACZ,MAAO,CACLixB,QAASjxB,EAAEixB,QACXy8H,UAAW,EAAK4B,aAAa,EAAKF,gBAAiBpvJ,EAAEkvB,WACrDA,UAAWlvB,EAAEkvB,UACby+H,YAAa3tJ,EAAEkvB,UACfuvC,SAAU,EAAK8wF,YAAY,EAAKH,gBAAiBpvJ,EAAEkvB,YAAck+H,EAAmBoC,QACpFl0J,OAAQ0E,EAAE1E,WAGZ,IAEE,YAAAm0J,kBAAR,SAA0BhxF,EAA8BnjE,GACtD,OAAQmjE,GACN,KAAK2uF,EAAmBsC,OACxB,KAAKtC,EAAmBuC,QACtB,MAAO,OACT,KAAKvC,EAAmBnyJ,KACtB,MAAiB,KAAVK,EAAgB,QAAU,OACnC,QACE,SAGE,YAAAs0J,qBAAR,SAA6BnxF,GAC3B,OAAQA,GACN,KAAK2uF,EAAmB9sF,KACxB,KAAK8sF,EAAmBoC,QACtB,OAAO,IACT,QACE,SAGE,YAAAF,aAAR,SAAqBh2J,EAAaq0J,GAChC,IAAiB,UAAAr0J,EAAA,eAAM,CAAlB,IAAIG,EAAI,KACX,GAAIA,EAAKk0J,cAAgBA,EACvB,OAAOl0J,EAAKi0J,UACP,GAAIj0J,EAAKq1J,SAAU,CACxB,IAAIpB,EAAYp3J,KAAKg5J,aAAa71J,EAAKo2J,iBAAkBlC,GACzD,GAAID,EACF,OAAOA,GAKb,MAAO,IAED,YAAA6B,YAAR,SAAoBj2J,EAAaq0J,GAC/B,IAAiB,UAAAr0J,EAAA,eAAM,CAAlB,IAAIG,EAAI,KACX,GAAIA,EAAKk0J,cAAgBA,EACvB,OAAOl0J,EAAKs1J,SACP,GAAIt1J,EAAKq1J,SAAU,CACxB,IAAIrwF,EAAWnoE,KAAKi5J,YAAY91J,EAAKo2J,iBAAkBlC,GACvD,GAAgB,MAAZlvF,EACF,OAAOA,KAOP,YAAAqvF,uBAAR,sBACE,OAAOx3J,KAAKi3J,YAAYhtJ,KAAI,SAAAP,GAC1B,MAAO,CACLixB,QAASjxB,EAAEixB,QACX/B,UAAWlvB,EAAE2tJ,YACbryJ,OAAQ0E,EAAE1E,OACVozC,SAAU,EAAKkhH,qBAAqB5vJ,EAAEy+D,UACtClhC,MAAO,EAAKkyH,kBAAkBzvJ,EAAEy+D,SAAUz+D,EAAE1E,aAI1C,YAAA6zJ,kBAAR,SAA0BW,EAAyBC,EAA2BzsH,GAC5E,IAAiB,UAAAA,EAAA,eAAM,CAAlB,IAAI7pC,EAAI,KACXA,EAAKi0J,UAAYoC,EAAgBn7I,OAAOlb,EAAKu2J,SAC7Cv2J,EAAKk0J,YAAcoC,EAAkBp7I,OAAOlb,EAAKkuE,MACjDluE,EAAKq1J,SAAWr1J,EAAKo2J,iBAAiBr0J,OAAS,EAE3C/B,EAAKq1J,UACPx4J,KAAK64J,kBAAkB11J,EAAKi0J,UAAU/4I,OAAO,KAAMlb,EAAKk0J,YAAYh5I,OAAO,MAAOlb,EAAKo2J,kBAI3FvsH,EAAK/xB,MAAK,SAACC,EAAGC,GACZ,OAAID,EAAEs9I,WAAar9I,EAAEq9I,SACZ,EACEr9I,EAAEq9I,WAAat9I,EAAEs9I,UAClB,EAGHt9I,EAAEw+I,QAAQziH,cAAc97B,EAAEu+I,aAG7B,YAAAjC,yBAAR,WACE,IACE,IAAIkC,GAAkB,EACtB35J,KAAK+B,QAAQwrD,aAAaqsG,cAE1B,IAAwB,UAAA55J,KAAKg3J,kBAAL,eAAwB,CAA3C,IAAIK,EAAW,KAClBr3J,KAAK+B,QAAQwrD,aAAassG,aAAaxC,GAEzCr3J,KAAKg3J,kBAAoB,GAEzB,IAAuB,UAAAh3J,KAAKi3J,YAAL,eAAkB,CAApC,IAAIW,EAAU,KAC8B53J,KAAK+B,QAAQwrD,aAAausG,aAAalC,EAAWP,aAG/Fr3J,KAAK+B,QAAQwrD,aAAausG,aAAalC,EAAWP,YAAa,UAAWO,EAAWj9H,UAErF36B,KAAK+B,QAAQwrD,aAAawsG,UAAU,CAClCp/H,QAASi9H,EAAWj9H,QACpB/B,UAAWg/H,EAAWP,YACtBryJ,OAAQ4yJ,EAAW5yJ,OAAShF,KAAK4D,qBAAqBkjC,mBAAmB8wH,EAAW5yJ,QAAU,KAC9FiiC,MAAOjnC,KAAKm5J,kBAAkBvB,EAAWzvF,SAAUyvF,EAAW5yJ,QAC9DozC,SAAUp4C,KAAKs5J,qBAAqB1B,EAAWzvF,UAC/Cn9B,SAAS,IAGX2uH,GAAkB,GAIlBA,GAAmB35J,KAAK+B,QAAQyrD,gBAClCxtD,KAAK+B,QAAQyrD,iB,QAIfxtD,KAAK+B,QAAQwrD,aAAaysG,cAGtB,YAAAzC,mBAAR,WACE,GAAIv3J,KAAKi3J,YAAY/xJ,QAAU,EAC7B,OAAO,EAGTlF,KAAKi3J,YAAYx1J,SAAQ,SAAAiI,GAAK,OAAAA,EAAY,UAAI,KAE9C,IAAI3B,EAAU/H,KAAKm3J,sBAAsBh3J,SAAS+jC,WAAWn8B,QAkB7D,OAhBgB,IAAZA,KACFA,GAAW/H,KAAKi3J,YAAYxtJ,MAAK,SAACC,EAAGoS,EAAGZ,GACtC,IAAM++I,EAAgB/+I,EAAEtE,QAAO,SAAAuE,GAAK,OAAAzR,EAAE2tJ,aAAel8I,EAAEk8I,eACvD,OAAI4C,EAAc/0J,OAAS,IACzB+0J,EAAcx4J,SAAQ,SAAAy4J,GAAK,OAAAA,EAAY,UAAI,MACpC,QAOT7wJ,WAAWC,GAAGO,OAAO7J,KAAKmT,oBAAoBhK,cAAc,uCAAwC,QAAS,MAI1GpB,GA/XEoyJ,EAAiB,cAD7B,EAAA/6J,W,kCAK8B,EAAAgrB,kBACA,EAAAmkC,kBACG,EAAA5oD,qBACP,EAAA42C,cACM,EAAAtxC,oBACR,EAAAvF,YACQ,EAAAorB,2BACV,EAAAnP,aAXVw4I,GAAb,GAAa,EAAAA,oBAkZb,SAAKrD,GACH,mBACA,uBACA,mBACA,yBACA,yBALF,CAAKA,MAAkB,M,oHCtZvBx7F,EAAOC,QAFI,ggD,yFCCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,mkCAAokC,KAE7lCw/C,EAAOC,QAAUA,G,wQCMjB,iBACE,WACU7iD,EACA4tB,EACAxgB,GAFA,KAAApN,UACA,KAAA4tB,oBACA,KAAAxgB,aA0EZ,OAhEE,sBAAI,gCAAiB,C,IAArB,WACE,OAAQ9lB,KAAK+B,UACoB,IAA5B/B,KAAK+B,QAAQomC,YACZnoC,KAAKiH,YAAwC,IAA3BjH,KAAKiH,UAAUU,S,gCAQzC,YAAAlH,KAAA,SAAKmpC,EAAgBC,GAArB,WACE7pC,KAAKic,MAAQ,CACX2tB,eAAgBA,EAChBC,gBAAiBA,GAEnB7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9Cjc,KAAKo6J,kBAAoB,GACzBp6J,KAAKsmC,kBAAkBgC,oBACrBtoC,KAAKsb,eACLtb,KAAK+B,QACL/B,KAAKo6J,mBAGFp6J,KAAKo6J,kBAAkB53J,iBAC1BxC,KAAKo6J,kBAAkB53J,eAAiB,IAE1CxC,KAAKo6J,kBAAkB53J,eAAe6L,MAAQ,QAC9CrO,KAAKo6J,kBAAkB53J,eAAe4lC,SAAW,oBACjDpoC,KAAKo6J,kBAAkBnhG,qBAAuB,SAACl2D,GACzC,EAAKkE,WACP,EAAK6e,WAAW5X,SAAS,EAAKjH,aAIpC,YAAA+8E,SAAA,WACE,IAEMq2E,EAFer6J,KAAK0Y,QAEJ4hJ,GAAGxvG,WAAWphB,KAAK2wH,MACzCr6J,KAAKu6J,iBAAmBF,GACnBA,EAAMG,eACNH,EAAMG,cAAc7uH,UACpB0uH,EAAMG,cAAc7uH,SAASzmC,OAAS,GAE7C,YAAA+kC,SAAA,aAEA,YAAAvoC,OAAA,WACE1B,KAAKsb,eAAeqzD,aACpB3uE,KAAKsb,eAAiB,KACtBtb,KAAKic,MAAQ,MAGf,YAAAw+I,gBAAA,SAAgB/xI,GACG,MAAbA,IACFA,EAAY,IAGV1oB,KAAKymE,YAAczmE,KAAKymE,WAAWtmE,SACrCH,KAAKymE,WAAWtmE,SAAS0gB,OAAO,uBAAwB6H,EAAU1J,MAAM,KAAKpI,QAAO,SAAAlN,GAAK,QAAEA,MAE3F1J,KAAK+B,QAAQ2mB,UAAYA,GAlEnB,cAAT,EAAAkuE,S,kEACS,cAAT,EAAAA,S,oEACqD,cAArD,EAAAA,SAAS,CAAEgS,mBAAoB,EAAAC,YAAYC,S,gEAG5C,cADC,EAAAjpE,aAAa,qBAAsB,qB,+GAbzB66H,EAAU,cADtB,EAAAt7J,W,kCAGoB02F,QACU,EAAArmD,kBACP,EAAAj9B,qBAJXkoJ,GAAb,GAAa,EAAAA,c,oGCTbp/F,EAAOC,QAFI,ikB,yECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,oIAAqI,KAE9Jw/C,EAAOC,QAAUA,G,kQCejB,iBAGE,WACU7iD,EACAtW,EACA6X,GAHV,WACU,KAAAvB,UACA,KAAAtW,UACA,KAAA6X,eAeV,KAAA0gJ,aAAsC,CACpCC,cAAoB,GACpBC,cAAc,EACd9mJ,MAAc,GACdo7H,WAAY,EACZ2rB,WAAY,EACZC,oBAAoB,EAEpBC,UAAW,KACX7lH,UAAW,KACXjzC,aAAc,KACd+4J,oBAAqB,KAErBC,eAAgBl7J,KAAKk7J,eAAez6J,KAAKT,MACzCm7J,WAAYn7J,KAAKm7J,WAAW16J,KAAKT,MAEjCo7J,aAAcp7J,KAAKo7J,aAAa36J,KAAKT,MAErCq7J,YAAar7J,KAAKs7J,aAAa76J,KAAKT,MACpCu7J,gBAAiBv7J,KAAKu7J,gBAAgB96J,KAAKT,MAE3C8C,YAAa9C,KAAK8C,YAAYrC,KAAKT,OAGrC,KAAAk0I,oBAAqD,CACnDlgI,KAAMhU,KAAKia,aAAa9Q,cAAc,oBACtCkI,QAAS,WACP,EAAK87H,SAAS,GAAG,KAuZvB,OAlZE,sBAAI,+BAAgB,C,IAApB,WACE,QAASntI,KAAK+B,QAAQuzC,kBACjBt1C,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBC,U,gCAGrD,sBAAI,0BAAW,C,IAAf,WACE,OAAOj1C,KAAKs1C,kBACPt1C,KAAK+B,QAAQszC,e,gCAGpB,YAAA50C,KAAA,SAAKmpC,EAAqBC,GACxB7pC,KAAK26J,aAAaM,oBAAsB,EAAAtzG,sBAAsB/d,EAAgBC,GAE9E7pC,KAAKiwJ,mBAEDjwJ,KAAK+B,QAAQuV,UACftX,KAAK+B,QAAQO,WAAWgV,SAAStX,KAAK+B,QAAQuV,UAGjB,MAA3BtX,KAAK+B,QAAQgzC,aACf/0C,KAAK+B,QAAQgzC,WAAa,EAAAC,mBAAmBC,UAG3Cj1C,KAAK+B,QAAQmoC,eACflqC,KAAK+B,QAAQmoC,cAAc,CACzBtpB,UAAW5gB,KACX0Y,QAAS1Y,KAAK0Y,UAIlB1Y,KAAK+B,QAAQO,WAAW0nC,GAAG,UAAWhqC,KAAKw7J,wBAAwB/6J,KAAKT,OACxEA,KAAK+B,QAAQO,WAAW0nC,GAAG,iBAAkBhqC,KAAKy7J,+BAA+Bh7J,KAAKT,OAEtFA,KAAK07J,kBACL17J,KAAK27J,kBAEL37J,KAAKmtI,SAAS,IAEhB,YAAAzrI,OAAA,WACE1B,KAAK+B,QAAQO,WAAWytC,IAAI,WAC5B/vC,KAAK+B,QAAQO,WAAWytC,IAAI,mBAG9B,YAAAqrH,aAAA,WACEp7J,KAAKmtI,SAASntI,KAAK47J,WAAa,IAElC,YAAAzuB,SAAA,SAAS91H,EAAmBmoH,GAA5B,gBAA4B,IAAAA,MAAA,MACT,MAAbnoH,IAIe,MAAfmoH,IACFA,EAAcx/H,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBE,QAG9Dl1C,KAAK+B,QAAQO,WAAW+U,UAAUA,GAClCrX,KAAK47J,WAAavkJ,EAElBrX,KAAK+B,QAAQO,WAAWmyC,OAAOzvB,MAAK,WAC9B,EAAK62I,YAAc,EAAKA,WAAW17J,UACU,EAAK07J,WAAW17J,SACpD8vH,YAIXuP,GACFx/H,KAAKw/H,gBAGT,YAAAvpH,QAAA,SAAQ2hB,IACDA,GACC53B,KAAK+B,QAAQO,WAAW+U,YAAc,EACxCrX,KAAKmtI,SAAS,GAAG,GAKrBntI,KAAKmtI,SAASntI,KAAK+B,QAAQO,WAAW+U,aAAcugB,IAEtD,YAAA4nG,YAAA,WACOx/H,KAAK67J,YAAe77J,KAAK67J,WAAW17J,UAIMH,KAAK67J,WAAW17J,SACpD27J,SAAS,IAEtB,YAAAC,aAAA,SAAa/nJ,GACXhU,KAAK+B,QAAQO,WAAWgzD,gBAAgB,YACxCt1D,KAAK+B,QAAQO,WAAWizD,YAAYvhD,GACpChU,KAAKmtI,SAAS,GAAG,IAEnB,YAAA6uB,cAAA,WACEh8J,KAAK26J,aAAaxrB,WAAanvI,KAAK+B,QAAQO,WAAW6U,aAEnDnX,KAAK26J,aAAaxrB,WAAa,IACjCnvI,KAAK26J,aAAaxrB,WAAanvI,KAAK+B,QAAQO,WAAWyR,QAAQ7O,QAGjElF,KAAK26J,aAAaG,WAAa10D,KAAK61D,KAAKj8J,KAAK26J,aAAaxrB,WAAanvI,KAAK+B,QAAQO,WAAWgV,YAEhGtX,KAAK26J,aAAaI,mBAAqB/6J,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBC,UAChFj1C,KAAK26J,aAAaxrB,WAAanvI,KAAK26J,aAAa5mJ,MAAM7O,OAExDlF,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBE,QAChDl1C,KAAKk8J,eAELl8J,KAAKm8J,cAAgBn8J,KAAKia,aAAa9Q,cACrC,uBACA,CAACnJ,KAAK26J,aAAaxrB,WAAW5wH,cAGhCve,KAAKm8J,cAAgBn8J,KAAKia,aAAa9Q,cACrC,iCACA,CAACnJ,KAAK26J,aAAaxrB,WAAW5wH,WAAYve,KAAK26J,aAAa5mJ,MAAM7O,OAAOqZ,cAK/E,YAAA28I,eAAA,WACE,OAAOl7J,KAAK+B,QAAQO,WAAWwY,OAAS,MAE1C,YAAAqgJ,WAAA,SAAWh4J,GACT,IAAM2X,EAAM9a,KAAKk7J,iBAEjB,OAAIpgJ,EACK9a,KAAKoC,QAAQokB,SAAS,CAC3BojB,eAAgBzmC,EAChB0mC,gBAAiB,MAChB/uB,GAEI3X,GAIX,YAAA5C,eAAA,WACEP,KAAK26J,aAAaC,cAAgB,GAClC56J,KAAK26J,aAAaE,cAAe,GAEnC,YAAAuB,gBAAA,WACE,IAAM70J,EAAS,GAEf,IAAK,IAAIuT,KAAO9a,KAAK26J,aAAaC,cAAe,CAC/C,IAAMv4G,EAAMriD,KAAK26J,aAAaC,cAAc9/I,GACjC,MAAPunC,GAIJ96C,EAAOpG,KAAKkhD,GAGd,OAAO96C,GAET,YAAAg0J,gBAAA,SAAgBzgJ,GACd,QAAS9a,KAAK26J,aAAaC,cAAc9/I,IAE3C,YAAAwgJ,aAAA,SAAah7J,EAAmB+7J,GAAhC,WACOlmJ,MAAMC,QAAQ9V,KACjBA,EAAO,CAACA,IAGN+7J,GAAqC,UAA9Br8J,KAAK+B,QAAQ+yC,gBACtB90C,KAAKO,iBAEDD,EAAK4E,OAAS,KAKpB5E,EAAKmB,SAAQ,SAAAqZ,GAET,EAAK6/I,aAAaC,cAAc9/I,GAD9BuhJ,EACqCvhJ,OAEA+mB,KAI3C7hC,KAAK26J,aAAaE,aAAe76J,KAAKo8J,kBAAkBl3J,OAAS,IAGnE,YAAA+zF,kBAAA,SAAkB32F,GACZtC,KAAK+B,QAAQO,aACftC,KAAK+B,QAAQO,WAAWytC,IAAI,WAC5B/vC,KAAK+B,QAAQO,WAAWytC,IAAI,mBAG9B/vC,KAAK+B,QAAQO,WAAaA,EAE1BtC,KAAK+B,QAAQO,WAAW0nC,GAAG,UAAWhqC,KAAKw7J,wBAAwB/6J,KAAKT,OACxEA,KAAK+B,QAAQO,WAAW0nC,GAAG,iBAAkBhqC,KAAKy7J,+BAA+Bh7J,KAAKT,OAEtFA,KAAKiW,SAAQ,IAGf,YAAAnT,YAAA,SAAYK,EAAW+Q,EAAcqzC,GAC/BpkD,EAAKm5J,WAGJt8J,KAAK+B,QAAQe,aAIlB9C,KAAK+B,QAAQe,YAAY,CACvBK,KAAMA,EACNH,KAAMG,EACN+Q,MAAOA,EACPqzC,SAAUA,EACVC,YAAcxnD,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBC,YAIxD,YAAAymH,gBAAR,WACE,IAAMa,EAAc,GACdC,EAAY,GAEdx8J,KAAK+B,QAAQiX,SACfwjJ,EAAkB,OAAIx8J,KAAK+B,QAAQiX,SAEO,MAAxChZ,KAAK+B,QAAQwzC,yBAAuCv1C,KAAK+B,QAAQwzC,0BACnEgnH,EAAYp7J,KAAK,gCAEfnB,KAAK+B,QAAQ8yC,mBACf0nH,EAAYp7J,KAAK,4BAEe,YAA9BnB,KAAK+B,QAAQ+yC,eACfynH,EAAYp7J,KAAK,6BAGnBnB,KAAKw8J,UAAYA,EACjBx8J,KAAKy8J,UAAYF,EAAYn3J,KAAK,MAE5B,YAAAu2J,gBAAR,WACE,IAAMe,EAAc,GACpBA,EAAYv7J,KAAKnB,KAAK+B,QAAQozC,UAAYn1C,KAAK+B,QAAQozC,UAAY,aAEnEn1C,KAAK26J,aAAaxlH,UAAYunH,EAAYt3J,KAAK,MAEzC,YAAA6qJ,iBAAR,WAIE,IAHA,IAAMtkH,EAAWx1B,MAAMy1B,KAAK5rC,KAAK0Y,QAAQizB,UACxC/0B,QAAO,SAAClN,GAAM,MAAa,mBAAbA,EAAE0+E,WAERtsE,EAAI,EAAGA,EAAI6vB,EAASzmC,OAAQ4W,IAAK,CACxC,IAAM3Y,EAAOwoC,EAAS7vB,GAChB,EAAO3Y,EAAKuoC,aAAa,QACzBixH,EAAQx5J,EAAKuoC,aAAa,UAAY,OAE5C,OAAQ,GACN,IAAK,OACH1rC,KAAK26J,aAAaz4J,aAAeiB,EACjCnD,KAAK26J,aAAaK,UAAY2B,EAQlCx5J,EAAK4V,cAAcyJ,YAAYrf,KAG3B,YAAAq4J,wBAAR,WACE,IAAMznJ,EAAQ/T,KAAK+B,QAAQO,WAAWyR,QAEtC/T,KAAK47J,WAAa57J,KAAK+B,QAAQO,WAAW+U,YAE1CrX,KAAK48J,YAAY7oJ,EAAO/T,KAAK47J,YAC7B57J,KAAKg8J,iBAEC,YAAAP,+BAAR,SAAuCoB,GACrC78J,KAAK68J,UAAYA,GAEX,YAAAD,YAAR,SAAoB7oJ,EAAcsD,G,MAE1BylJ,EAAYzlJ,EADDrX,KAAK+B,QAAQO,WAAWgV,WAGzC,GAAItX,KAAK+B,QAAQgzC,YAAc,EAAAC,mBAAmBE,OAChDl1C,KAAK26J,aAAa5mJ,MAAMvS,OAAO,QAE5B,GAAIxB,KAAK26J,aAAa5mJ,MAAM7O,OAAS43J,EAAW,CACnD,IAAIpzJ,EAAIozJ,EAER,GAAI98J,KAAK+B,QAAQ6yC,eAAiBkoH,EAAY,EAG5C,IAFA,IAAIC,EAAgB,EAEXjhJ,EAAI,EAAGA,EAAI9b,KAAK26J,aAAa5mJ,MAAM7O,OAAQ4W,IAOlD,GANK9b,KAAK26J,aAAa5mJ,MAAM+H,GAAGwgJ,WAC9BS,IAGFrzJ,EAAIoS,EAEAihJ,GAAiBD,EAAW,CAC1BhhJ,EAAI,GAAK9b,KAAK26J,aAAa5mJ,MAAM+H,EAAI,GAAGwgJ,YAC1C5yJ,EAAIoS,EAAI,GAEV,MAKN9b,KAAK26J,aAAa5mJ,MAAMvS,OAAOkI,GAGjC1J,KAAKg9J,mBAAmBjpJ,IACxB,EAAA/T,KAAK26J,aAAa5mJ,OAAM5S,KAAI,QAAI4S,IAE1B,YAAAipJ,mBAAR,SAA2BjpJ,GACzB,GAAK/T,KAAK+B,QAAQ6yC,cAKlB,IADA,IAAIqoH,EAAOj9J,KAAKk9J,eACPphJ,EAAI,EAAGA,EAAI/H,EAAM7O,OAAQ4W,IAAK,CACrC,IAAM3Y,EAAO4Q,EAAM+H,GAEbumC,EAAMriD,KAAKoC,QAAQokB,SAAS,CAChCojB,eAAgBzmC,EAChB0mC,gBAAiB,MAChB7pC,KAAK+B,QAAQ6yC,eAEZyN,GAAO46G,IACTlpJ,EAAMvS,OAAOsa,EAAG,EAAG,CACjB,WAAa,EACb,aAAgBumC,IAGlB46G,EAAO56G,KAIL,YAAA66G,aAAR,WACE,IAAKl9J,KAAK26J,aAAa5mJ,MACrB,OAAO,KAGT,IAAK,IAAI+H,EAAI9b,KAAK26J,aAAa5mJ,MAAM7O,OAAS,EAAG4W,GAAK,EAAGA,IAAK,CAC5D,IAAI3Y,EAAOnD,KAAK26J,aAAa5mJ,MAAM+H,GACnC,GAAK3Y,EAAKm5J,UAIV,OAAOn5J,EAAKg6J,aAGd,OAAO,MAED,YAAAjB,aAAR,WACOl8J,KAAK6a,QACR7a,KAAK6a,MAAQ,CACXuiJ,YAAa,KACbviJ,MAAO,GACPigJ,WAAY,IAIhB,IAAMA,EAAa96J,KAAK26J,aAAaG,WAC/BsC,EAAcp9J,KAAK47J,WAEzB,IAAI57J,KAAK6a,OAAS7a,KAAK6a,MAAMigJ,YAAcA,GAAc96J,KAAK6a,MAAMuiJ,aAAep9J,KAAK47J,WAAxF,CAIA57J,KAAK6a,MAAMigJ,WAAaA,EACxB96J,KAAK6a,MAAMuiJ,YAAcA,EAEzB,IAAMt1I,EAAkB,GACxB,GAAKgzI,EAAL,CAKA,IAAIuC,EAAW,CAAC,EAAGD,EAAatC,EAAa,GAC1B,GAAfsC,GACFC,EAASl8J,KAAK,EAAG,GAEfi8J,GAAetC,EAAa,GAC9BuC,EAASl8J,KAAK25J,EAAa,EAAGA,EAAa,GAG7CuC,EAASl8J,KAAKi8J,EAAc,EAAGA,EAAc,IAC7CC,EAAWA,EAASzmJ,QAAO,SAACg4B,EAAG9yB,GAC7B,OAAO8yB,GAAK,GACPA,EAAIksH,GACJuC,EAAS9lJ,QAAQq3B,KAAO9yB,MAGtBb,MAAK,SAACC,EAAGC,GAChB,OAAOD,EAAIC,KAIb,IADA,IAAImiJ,GAAa,EACC,MAAAD,EAAA,eAAU,CAAvB,IAAIjmJ,EAAK,KACRkmJ,EAAY,GAAKlmJ,GACnB0Q,EAAI3mB,KAAK,CAAE6S,KAAM,MAAOoD,MAAO,OAEjCkmJ,EAAYlmJ,EAEZ0Q,EAAI3mB,KAAK,CAAEiW,MAAOA,EAAOpD,MAAOoD,EAAQ,GAAGmH,aAG7Cve,KAAK6a,MAAMA,MAAQiN,OAjCjB9nB,KAAK6a,MAAMA,MAAQiN,IA3Zb,cAAT,EAAA8uE,S,kEA4CD,cADC,EAAA/2D,aAAa,2BAA4B,sB,+GAM1C,cADC,EAAAA,aAAa,mBAAoB,yB,0GAzDvB2V,EAAQ,cAFpB,EAAAp2C,WACA,EAAA2yJ,gBAAe,G,kCAKKj8D,QACA,EAAA15E,eACK,EAAAnR,uBANbuqC,GAAb,GAAa,EAAAA,Y,uSCJb,iBAIE,WACU98B,EACAtW,EACAikC,EACAqqC,GAHA,KAAAh4D,UACA,KAAAtW,UACA,KAAAikC,mBACA,KAAAqqC,sBAMV,KAAAoqC,YAAsB,EAoFxB,OA9EE,YAAA2wC,QAAA,SAAQC,EAAiBC,GACvB3rJ,KAAK0rJ,WAAaA,GAEpB,YAAAjrJ,KAAA,sBASE,GARAT,KAAKsb,eAAiB,IAAI,EAAA82C,eAAe,CACvCxoB,eAAgB5pC,KAChB6pC,gBAAiB,OAGnB7pC,KAAK8a,IAAM9a,KAAK+B,QAAQo5J,WAAWn7J,KAAKgD,MACxChD,KAAK86G,aAAe96G,KAAK+B,QAAQ64J,cAAc56J,KAAK8a,KAE5B,iBAAb9a,KAAK8a,KAAwC,iBAAb9a,KAAK8a,IAAkB,CAChE,IAAMA,EAA0B,iBAAb9a,KAAK8a,IACpB,IAAI9a,KAAK8a,IAAG,IACZ9a,KAAK8a,IAET9a,KAAKoC,QAAQqZ,QAAQ,CACnBH,eAAgBtb,KAAKsb,eACrBI,WAAY,2BAA2BZ,EAAG,IAC1C5L,SAAU,SAACyM,GACT,EAAKm/F,WAAan/F,OAK1B,YAAAja,OAAA,WACE1B,KAAKsb,eAAeqzD,cAEtB,YAAAqV,SAAA,WACEhkF,KAAKu9J,UAAYv9J,KAAK+B,QAAQG,aAAas7J,WAAU,GACrD,IAAMh0H,EAAYxpC,KAAK0Y,QAAQizB,SAAS,GAClCq/C,EAAYxhD,EAAUmC,SAAS,GACrCnC,EAAUmoB,aAAa3xD,KAAKu9J,UAAWvyE,GAEvC,IAAMphD,EAAiB,GACvBA,EAAe5pC,KAAK+B,QAAQi5J,WAAah7J,KAAKgD,KAM9C,IAHA,IAAIg0G,EAAY,KACZ50E,EAASpiC,KAAK0rJ,WAAWliH,UACzBi0H,GAAa,EACVr7H,GAAQ,CACb,GAAIq7H,GAAcr7H,EAAOs7H,eAAiD,qDAAhCt7H,EAAOs7H,cAAcrxG,QAAgE,CAC7H2qD,EAAY50E,EAAOs7H,cACnB,MACSt7H,EAAOs7H,eAAiD,qDAAhCt7H,EAAOs7H,cAAcrxG,UACtDoxG,GAAa,GAGfr7H,EAASA,EAAOA,OAGlBpiC,KAAK29J,UAAY39J,KAAKqmC,iBAAiBsD,QAAQ,CAC7CjxB,QAAS1Y,KAAKu9J,UACdvmD,UAAWA,GAAah3G,KAAK0rJ,WAAW10C,UACxCptE,eAAgBA,EAChBC,gBAAiB7pC,KAAK+B,QAAQk5J,uBAGlC,YAAAhxH,SAAA,WACMjqC,KAAKu9J,YACPv9J,KAAKu9J,UAAUxkJ,cAAcyJ,YAAYxiB,KAAKu9J,WAC9Cv9J,KAAKu9J,UAAY,MAGfv9J,KAAK29J,YACP39J,KAAK0wE,oBAAoBp9B,YAAYtzC,KAAK29J,WAC1C39J,KAAK29J,UAAY,OAIrB,YAAAtjD,gBAAA,SAAgBnmG,GACd,IAAM4mG,EAAa96G,KAAK+B,QAAQw5J,gBAAgBv7J,KAAK8a,KACrD9a,KAAK+B,QAAQs5J,YAAYr7J,KAAK8a,KAAMggG,GAEpC5mG,EAAM68B,mBArFE,cAAT,EAAA6lD,S,+DACS,cAAT,EAAAA,S,kEAZUgnE,EAAY,cADxB,EAAAx+J,W,kCAMoB02F,QACA,EAAA15E,eACS,EAAAozB,iBACG,EAAA+D,uBARpBqqH,GAAb,GAAa,EAAAA,gB,mGCdbtiG,EAAOC,QAFI,kP,qPCIX,iBACE,WACUthD,GADV,WACU,KAAAA,eAKV,KAAA4jJ,sBAAuD,CACrD7pJ,KAAMhU,KAAKia,aAAa9Q,cAAc,uBACtCkI,QAAS,WACP,EAAKtP,QAAQq5J,iBAGnB,OARY,cAAT,EAAAxkE,S,kEALUknE,EAAa,cADzB,EAAA1+J,W,kCAGyB,EAAA6L,uBAFb6yJ,GAAb,GAAa,EAAAA,iB,sGCFbxiG,EAAOC,QAFI,goB,oECEXD,EAAOC,QAFI,i7C,qECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,4pGAA+pG,KAExrGw/C,EAAOC,QAAUA,G,gPCDjB,iBACE,WACU7iD,GAAA,KAAAA,UAaZ,OARE,YAAAjY,KAAA,WACET,KAAK0Y,QAAQG,UAAUyoH,OAAO,sBAEhC,YAAAt9C,SAAA,sBACEjqC,YAAW,WACT,EAAKrhC,QAAQG,UAAU9X,IAAI,uBAC1B,MARK,cAAT,EAAA61F,S,sEALUmnE,EAAc,cAD1B,EAAA3+J,W,kCAGoB02F,WAFRioE,GAAb,GAAa,EAAAA,kB,4GCFbziG,EAAOC,QAFI,0X,iFCCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,imEAAsmE,KAE/nEw/C,EAAOC,QAAUA,G,qQCQjB,iBAGE,WACUl7B,EACA/O,EACAmuD,EACAr9E,GAHA,KAAAi+B,UACA,KAAA/O,YACA,KAAAmuD,gBACA,KAAAr9E,UAyMZ,OAlME,sBAAI,4BAAa,C,IAAjB,WACE,OAAIpC,KAAK+B,SAAW/B,KAAK+B,QAAQ6Z,aACxB,OAEA,Q,gCAGX,sBAAI,2BAAY,C,IAAhB,WACE,OAAI5b,KAAK+B,SAAW/B,KAAK+B,QAAQ6Z,aACxB,0BAGF,I,gCAQT,YAAA8nE,SAAA,SAAS58E,GAAT,WACE9G,KAAK8G,MAAQA,EAEb,IAAMk3J,EAAgB,WACpB,EAAKj8J,QAAU,EAAK+E,MAAM/E,SAE5B+E,EAAMm3J,eAAiB,WACrBD,KAEFA,KAEF,YAAAv9J,KAAA,WACMT,KAAK+B,SACP/B,KAAKk+J,kBAGT,YAAAx8J,OAAA,WACE1B,KAAKm+J,wBAGP,YAAAF,eAAA,SAAetpH,GACb30C,KAAKk+J,kBAGP,YAAAE,YAAA,SAAYrjJ,GACN/a,KAAKo9J,cACPp9J,KAAKo9J,YAAYx0G,UAAW,GAG9B5oD,KAAKq+J,UAAUtjJ,GACfA,EAAK6tC,UAAW,EAEhB5oD,KAAKo9J,YAAcriJ,GAGb,YAAAmjJ,eAAR,sBACEl+J,KAAKm+J,uBACLn+J,KAAKs+J,4BAA8B,GAEnC,IAAMzjJ,EAAQ7a,KAAKqgC,QAAQ3lB,gCAAgC1a,KAAK+B,QAAQgS,OACxE/T,KAAK6a,MAAQA,EAAMjE,QAAO,SAAAoE,GAAK,MAAS,WAATA,EAAEvb,MAEjC,IAAM8+J,EAAa1jJ,EAAMjE,QAAO,SAAAoE,GAAK,MAAS,WAATA,EAAEvb,MACb,IAAtB8+J,EAAWr5J,SACblF,KAAKw+J,UAAYD,EAAW,IAG9B,I,eAASxjJ,GACP,I,eAASH,GACP,IAAiB,UAAAA,EAAS7G,MAAT,eAAgB,CAA5B,IAAI5Q,EAAI,KACW,MAAlBA,EAAKmD,YACPnD,EAAKmD,WAAY,GAEG,MAAlBnD,EAAKkD,YACPlD,EAAKkD,WAAY,GAGnB,EAAKoV,QAAQtY,EAAM,aAAa,SAACwxC,GAC/B,EAAK8pH,qBAAqB1jJ,EAAMH,MAGlC,EAAKa,QAAQtY,EAAM,aAAa,SAACwxC,GAC/B,EAAK+pH,WAAW3jJ,MAElB,EAAKU,QAAQtY,EAAM,cAAc,SAACwxC,GAChC,EAAK+pH,WAAW3jJ,MAElB,EAAKU,QAAQtY,EAAM,oBAAoB,SAACwxC,GACtC,EAAK+pH,WAAW3jJ,MAIpB,EAAK0jJ,qBAAqB1jJ,EAAMH,IAxBb,MAAAG,EAAKJ,WAAL,eAAiB,C,EAArB,MA2BjB,EAAK+jJ,WAAW3jJ,I,OA5BD,MAAAF,EAAA,eAAO,C,EAAX,MA+BT7a,KAAK6a,OAAS7a,KAAK6a,MAAM3V,OAAS,GACpClF,KAAKo+J,YAAYp+J,KAAK6a,MAAM,IAE1B7a,KAAKw+J,WACPx+J,KAAKq+J,UAAUr+J,KAAKw+J,YAGhB,YAAAC,qBAAR,SAA6B1jJ,EAAaH,GACxCA,EAAStU,UAAYsU,EAAS7G,MAAMtK,MAAK,SAAAC,GAAK,OAAAA,EAAEpD,aAChDyU,EAAKzU,UAAYyU,EAAKJ,WAAWlR,MAAK,SAAAC,GAAK,OAAAA,EAAEpD,cAEvC,YAAAo4J,WAAR,SAAmB3jJ,GACjB,IAAM4jJ,EAAS,IAAIC,IAEnB7jJ,EAAKJ,WAAWlZ,SAAQ,SAAAiI,GACtBA,EAAEqK,MACC6C,QAAO,SAAAkF,GAAK,QAAEA,EAAE0mB,aAChB/gC,SAAQ,SAAAqa,GAAK,OAAA6iJ,EAAO59J,IAAI+a,EAAE+O,YAAc,iBAG7C,IAAMg0I,EAAsB,GACxB/iJ,EAAI,EACR6iJ,EAAOl9J,SAAQ,SAACmtC,EAAQs0E,GACtB27C,EAAU19J,KAAK,CACbyJ,MAAOs4G,EACP47C,MAAW,EAAJhjJ,EAAQ,IAGjBA,OAGFf,EAAK4jJ,OAASE,GAER,YAAAR,UAAR,SAAkBtjJ,GAAlB,WACEA,EAAKJ,WAAWlZ,SAAQ,SAAAiI,GACtB,IAAIq1J,EAAa,EAEbC,EAAgB,SAAC5nJ,GACfA,EAAQ,GAGR2nJ,EAAa,GAAK,IAItBr1J,EAAEqK,MAAMqD,GAAO6nJ,cAAe,IAGhCv1J,EAAEqK,MAAMtS,SAAQ,SAACqa,EAAG1E,GAGlB,GAFA0E,EAAEmjJ,aAAenjJ,EAAEsoC,OAEdtoC,EAAEsoC,MAGL,OAFA46G,EAAc5nJ,EAAQ,QACtB2nJ,EAAa,GAIfA,OAGFC,EAAct1J,EAAEqK,MAAM7O,OAAS,GAE/BwE,EAAEqK,MAAMtS,SAAQ,SAAAqa,GACV,EAAK/Z,QAAQ6Z,cACfE,EAAEojJ,MAAQ,6BAEK,MAAXpjJ,EAAEjc,QACJic,EAAEojJ,OAAS,uCAGbpjJ,EAAEojJ,MAAQpjJ,EAAEmjJ,aACR,+BACA,6BAEW,MAAXnjJ,EAAEjc,QACJic,EAAEojJ,OAAS,6CAMb,YAAAzjJ,QAAR,SAAgBtY,EAAawf,EAAsBi1B,GACjD,IAAM82B,EAAa1uE,KAAKy/E,cACrBg2E,mBAAmBtyJ,EAAMwf,GACzBjO,WAAU,SAACigC,GAAW,OAAAiD,EAAOjD,MAEhC30C,KAAKs+J,4BAA4Bn9J,KAAKutE,IAEhC,YAAAyvF,qBAAR,WACOn+J,KAAKs+J,8BAIVt+J,KAAKs+J,4BAA4B78J,SAAQ,SAAAiI,GAAK,OAAAA,EAAEpI,aAChDtB,KAAKs+J,4BAA8B,KAnMf,cAArB,EAAA1nE,SAAU,EAAAhe,W,kEAGX,cADC,EAAA/4C,aAAa,wB,2GAbHs/H,EAAa,cADzB,EAAA//J,W,kCAKoB,EAAA8c,eACE,EAAAyF,UACI,EAAAu+D,cACN,EAAA9jE,kBAPR+iJ,GAAb,GAAa,EAAAA,iB,0RCTb,iBAEE,cAKF,OAFY,cAAT,EAAAvoE,S,mEACS,cAAT,EAAAA,S,6EANUwoE,EAAqB,cADjC,EAAAhgK,W,sCACYggK,GAAb,GAAa,EAAAA,yB,mHCFb9jG,EAAOC,QAFI,4kB,sPCIX,iBACE,WACU7iD,GAAA,KAAAA,UAuBZ,OAlBE,YAAA5V,YAAA,SAAYK,EAAa+Q,GACvB,IAAMmS,EAAO,CACXnS,MAAOA,GAGJ/Q,EAAKmD,WAGLnD,EAAKkD,WAILlD,EAAKrD,SAIVqD,EAAKrD,QAAQumB,IAlBL,cAAT,EAAAuwE,S,+DALUyoE,EAAiB,cAD7B,EAAAjgK,W,kCAGoB02F,WAFRupE,GAAb,GAAa,EAAAA,qB,2RCDb,iBACE,WACU3mJ,GAAA,KAAAA,UAIZ,OADY,cAAT,EAAAk+E,S,+DALU0oE,EAAqB,cADjC,EAAAlgK,W,kCAGoB02F,WAFRwpE,GAAb,GAAa,EAAAA,yB,kHCDbhkG,EAAOC,QAFI,4T,iFCEXD,EAAOC,QAFI,4uB,8ECEXD,EAAOC,QAFI,g/C,+ECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,mlJAAslJ,KAE/mJw/C,EAAOC,QAAUA,G,6PCKjB,iBAME,WACSl7B,EACCo/C,EACAr9E,GAFD,KAAAi+B,UACC,KAAAo/C,gBACA,KAAAr9E,UALF,KAAAm9J,mCAA6C,EAUrD,KAAAC,aAA8B,CAC5Bz9J,QAAS,KACTk8J,eAAgB,cAsGpB,OAnGE,YAAAx9J,KAAA,SAAKmpC,EAAgBC,GACnB7pC,KAAKy/J,OAAS,CACZ71H,eAAgBA,EAChBC,gBAAiBA,GAEnB7pC,KAAK0/J,gBAAkB,IAAI,EAAAttG,eAAepyD,KAAKy/J,QAE3Cz/J,KAAK+B,UAAY/B,KAAK+B,QAAQuZ,iBAChCtb,KAAK+B,QAAQuZ,eAAiBtb,KAAK0/J,gBACnC1/J,KAAKu/J,mCAAoC,GAG3Cv/J,KAAK2/J,uBAEP,YAAAj+J,OAAA,WACE1B,KAAKm+J,uBACLn+J,KAAK0/J,gBAAgB/wF,aACrB3uE,KAAKy/J,OAAS,KAEVz/J,KAAKu/J,oCACPv/J,KAAK+B,QAAQuZ,eAAiB,KAC9Btb,KAAKu/J,mCAAoC,IAI7C,YAAAtB,eAAA,SAAetpH,GACb30C,KAAK2/J,uBAGC,YAAAA,oBAAR,WACM3/J,KAAK+B,SAAW/B,KAAK+B,QAAQgS,OAC/B/T,KAAK4/J,iBAAiB5/J,KAAK+B,QAAQgS,OAGrC/T,KAAKw/J,aAAaz9J,QAAU/B,KAAK+B,QACjC/B,KAAKw/J,aAAavB,kBAEZ,YAAA2B,iBAAR,SAAyB7rJ,GAAzB,WACE/T,KAAKm+J,uBACLn+J,KAAKs+J,4BAA8B,GAEnCvqJ,EAAMtS,SAAQ,SAAA0B,GACZ,IAAM8Y,EAAQ,EAAK4jJ,aAAa18J,GAE5BA,EAAKmQ,sBACP,EAAKmI,QAAQ,EAAKrZ,QAAQizJ,kBAAkBp5I,EAAO9Y,EAAKmQ,qBAAsBnQ,EAAKmQ,qBAAqB,SAACqhC,GACvGxxC,EAAKkD,UAAYsuC,KAGnBxxC,EAAKkD,UAAY,EAAKo5E,cAAc81E,gBAAgBpyJ,EAAKmQ,qBAAqBkT,SAASvK,IAErF9Y,EAAK0F,sBACP,EAAK4S,QAAQ,EAAKrZ,QAAQizJ,kBAAkBp5I,EAAO9Y,EAAK0F,qBAAsB1F,EAAK0F,qBAAqB,SAAC8rC,GACvGxxC,EAAKmD,UAAYquC,KAGnBxxC,EAAKmD,UAAY,EAAKm5E,cAAc81E,gBAAgBpyJ,EAAK0F,qBAAqB2d,SAASvK,IAErF9Y,EAAK28J,sBACP,EAAKrkJ,QAAQ,EAAKrZ,QAAQizJ,kBAAkBp5I,EAAO9Y,EAAK28J,qBAAsB38J,EAAK28J,qBAAqB,SAACnrH,GACvGxxC,EAAK+pB,UAAYynB,KAGnBxxC,EAAK+pB,UAAY,EAAKuyD,cAAc81E,gBAAgBpyJ,EAAK28J,qBAAqBt5I,SAASvK,IAGnE,MAAlB9Y,EAAKkD,YACPlD,EAAKkD,WAAY,GAEG,MAAlBlD,EAAKmD,YACPnD,EAAKmD,WAAY,OAIf,YAAAu5J,aAAR,SAAqB18J,GACnB,OAAIA,EAAK6Y,gBACA7Y,EAAK6Y,gBAEVhc,KAAK+B,QAAQuZ,eACRtb,KAAK+B,QAAQuZ,eAAeW,MAG9Bjc,KAAKy/J,QAEN,YAAAhkJ,QAAR,SAAgBtY,EAAawf,EAAsBi1B,GACjD,IAAM82B,EAAa1uE,KAAKy/E,cACrBg2E,mBAAmBtyJ,EAAMwf,GACzBjO,WAAU,SAACigC,GAAW,OAAAiD,EAAOjD,MAEhC30C,KAAKs+J,4BAA4Bn9J,KAAKutE,IAEhC,YAAAyvF,qBAAR,WACOn+J,KAAKs+J,8BAIVt+J,KAAKs+J,4BAA4B78J,SAAQ,SAAAiI,GAAK,OAAAA,EAAEpI,aAChDtB,KAAKs+J,4BAA8B,KAxGf,cAArB,EAAA1nE,SAAU,EAAAhe,W,kEAZAmnF,EAAO,cADnB,EAAA3gK,W,kCAQmB,EAAA8c,eACO,EAAAgkE,cACN,EAAA9jE,kBATR2jJ,GAAb,GAAa,EAAAA,W,0FCRbzkG,EAAOC,QAFI,gJ,6OCMX,iBACE,WACUykG,GAAA,KAAAA,eASZ,OANE,YAAAh8E,SAAA,WACEhkF,KAAKggK,aAAatrJ,aAEpB,YAAAu1B,SAAA,WACEjqC,KAAKggK,aAAalxE,cATTN,EAAS,cAFrB,EAAApvF,WACA,EAAAwmI,O,kCAGyB,EAAA72C,uBAFbP,GAAb,GAAa,EAAAA,a,8OCGb,qBAA0BsmD,GACxBA,EACGC,gBAAgB,sCAChBA,gBAAgB,sEAChBA,gBAAgB,kCAChBA,gBAAgB,kDAChBA,gBAAgB,8BAChBA,gBAAgB,sCAChBA,gBAAgB,qCAChBA,gBAAgB,oDAEmBD,EAAOtrG,UAAUnlC,IAAI,EAAAgY,qB,wTCA7D,iBAGE,WACUqoC,EACAgE,EACAz1C,GAFA,KAAAyxC,UACA,KAAAgE,SACA,KAAAz1C,kBAGA,KAAA4zC,eAAyB,EAoBrC,OAlBE,YAAA4kG,QAAA,SAAQC,GACN1rJ,KAAK0rJ,WAAaA,GAGpB,YAAA1nE,SAAA,WACEhkF,KAAK0kD,QAAQ0E,+BAGf,YAAA62G,iBAAA,SAAiB/rJ,GACflU,KAAKiT,gBAAgBuF,QAAQ,8BAA+B,CAC1DE,QAASxE,EAAM9F,OAAOsK,WAG1B,YAAAwnJ,eAAA,SAAehsJ,GACblU,KAAKiT,gBAAgBuF,QAAQ,4BAA6B,CACxDE,QAASxE,EAAM9F,OAAOsK,WAjBhB,cAAT,EAAAk+E,S,yEATUupE,EAAW,cADvB,EAAA/gK,W,kCAKoB,EAAA2yC,eACD,EAAAiZ,cACS,EAAA5xC,mBANhB+mJ,GAAb,GAAa,EAAAA,e,mGClBb7kG,EAAOC,QAFI,od,wECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,sGAAuG,KAEhIw/C,EAAOC,QAAUA,G,6MCKjB,iBACE,WACU7iD,EACA+mE,EACAnuD,GAFA,KAAA5Y,UACA,KAAA+mE,gBACA,KAAAnuD,YAGA,KAAAu1B,eAAyB,EA8BrC,OA1BE,sBAAI,wBAAS,C,IAAb,WACE,GAAI7mD,KAAK6mD,cACP,MAAO,wB,gCAKX,sBAAI,6BAAc,C,IAAlB,WACE,OAAK7mD,KAAK0pC,MAAS1pC,KAAK0pC,KAAKohB,YAAe9qD,KAAK0pC,KAAKohB,WAAWzX,iBAI1DrzC,KAAK0pC,KAAKohB,WAAWzX,iBAAiB++C,eAHpC,M,gCAMX,YAAA3xF,KAAA,WACET,KAAK0Y,QAAQG,UAAUyoH,OAAO,oBAC9BthI,KAAK0Y,QAAQC,cAAc,oBAAoBE,UAAUyoH,OAAO,6BAGlE,YAAAt9C,SAAA,sBACEjqC,YAAW,WACT,EAAKrhC,QAAQG,UAAU9X,IAAI,oBAC3B,EAAK2X,QAAQC,cAAc,oBAAoBE,UAAU9X,IAAI,8BAC5D,MA5BK,cAAT,EAAA61F,S,yEACS,cAAT,EAAAA,S,+DAGD,cADC,EAAA/2D,aAAa,iB,uGAQd,cADC,EAAAA,aAAa,mD,4GAjBHugI,EAAI,cADhB,EAAAhhK,W,kCAGoB02F,QACM,EAAA5V,cACJ,EAAAv+D,aAJVy+I,GAAb,GAAa,EAAAA,Q,mFCRb9kG,EAAOC,QAFI,6Z,wDCCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,4hBAA6hB,KAEtjBw/C,EAAOC,QAAUA,G,gWCcjB,iBACE,WACU7S,GAAA,KAAAA,SAER,IAAMnqB,EAAS,SAAC70B,GAAM,OAAAA,EAAEmnF,QAAUnnF,EAAEmnF,QAAUnnF,GAExC22J,EAAY,CAChB9hI,EAAO+hI,GACP/hI,EAAOgiI,GACPhiI,EAAOiiI,GACPjiI,EAAOkiI,GACPliI,EAAOmiI,GACPniI,EAAOoiI,GACPpiI,EAAOqiI,GACPriI,EAAOsiI,GACPtiI,EAAOuiI,GACPviI,EAAOwiI,GACPxiI,EAAOyiI,GACPziI,EAAO0iI,IAEHC,EAAa96D,KAAKw6B,MAAsB,GAAhBx6B,KAAK+6D,UAEnCnhK,KAAKohK,gBAAkB,CACrB,mBAAoB,QAAQf,EAAUa,GAAW,MAoCvD,OA7BE,sBAAI,oBAAK,C,IAAT,WACE,IAAKlhK,KAAK0oD,OAAOK,kBAAoB/oD,KAAK0oD,OAAOK,gBAAgB+B,WAC/D,OAAO,KAGT,IAAMzX,EAAmBrzC,KAAK0oD,OAAOK,gBAAgB+B,WAA6B,iBAClF,OAAKzX,EAIEA,EAAiBxzC,WAJxB,G,gCAOF,YAAAmkF,SAAA,WACEhkF,KAAK0oD,OAAO4rB,eAAe,CAAC,CAC1BjtD,SAAU,yCACVsT,QAAS,aACTs4C,MAAO,SACN,CACD5rD,SAAU,2DACVsT,QAAS,sBACTs4C,MAAO,kBACN,CACD5rD,SAAU,+DACVsT,QAAS,wBACTs4C,MAAO,qBAEN,UA3BL,cADC,EAAApzC,aAAa,4D,mGA7BHwhI,EAAK,cADjB,EAAAjiK,W,kCAGmB,EAAA4rD,iBAFPq2G,GAAb,GAAa,EAAAA,S,yECjBb/lG,EAAOC,QAFI,ma,8CCCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,q7BAAs7B,KAE/8Bw/C,EAAOC,QAAUA,G,wPCAjB,kBACI,WACI7iD,EACAu+H,EACQqqB,GAHZ,MAII,YAAM5oJ,EAASu+H,IAAe,K,OADtB,EAAAqqB,KAER,EAAK7hK,GAAK,wBACV,EAAKI,MAAQ,sDACb,EAAKq3I,SAAS,CACV,GAAM,qBACN,QAAW,KAEf,EAAKO,YAAY,KAAM6pB,EAAI,gBAC3B,EAAK5hF,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,KAAQ,WACR,QAAW,yCACX,QAAW,CACP,YAAe,qBACf,OAAU,WACV,SAAY,2CAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,KAAQ,WACR,QAAW,gDACX,QAAW,CACP,YAAe,qBACf,OAAU,kBACV,SAAY,kDAEhB,gBAAmB,GACnB,GAAM,kBACN,QAAW,CACP,YAAe,yBACf,cAAiB,4BAGzB,EAAKgvD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,qBACV,SAAY,kCAGpB,EAAK+vD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,wBACV,SAAY,qCAGpB,YAAMwnH,uBAAsB,Q,EAEpC,OA1EyC,iBAA5BoqB,EAAmB,cAD/BlqB,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACR,EAAAugD,wBAJPk8F,GAAb,CAAyClqB,EAAIxyH,UAAhC,EAAA08I,uB,gHCLb,IAIIh+H,EAAO,+QAJoC,EAAQ,OAGjBi+H,CAFL,EAAQ,SAGsS,8rCAE/UlmG,EAAOC,QAAUh4B,G,wNCDjB,kBACI,WACI7qB,EACAu+H,EACQqqB,GAHZ,MAII,YAAM5oJ,EAASu+H,IAAe,K,OADtB,EAAAqqB,KAER,EAAK7hK,GAAK,aACV,EAAKI,MAAQ,gCACb,EAAKq3I,SAAS,CACV,GAAM,WACN,QAAW,KAEf,EAAKO,YAAY,KAAM6pB,EAAI,gBAC3B,EAAK5hF,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,QAAW,8BACX,QAAW,CACP,YAAe,WACf,OAAU,WACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKgvD,cAAchvD,WAAW,EAAM,CAChC,KAAQ,WACR,QAAW,8BACX,QAAW,CACP,YAAe,WACf,OAAU,WACV,SAAY,iCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKgvD,cAAcjwD,YAAY,EAAM,CACjC,QAAW,kCACX,QAAW,CACP,YAAe,WACf,OAAU,eACV,SAAY,qCAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKiwD,cAAchvD,WAAW,EAAM,CAChC,QAAW,kCACX,QAAW,CACP,YAAe,WACf,OAAU,mBACV,SAAY,yCAEhB,gBAAmB,GACnB,GAAM,eACN,QAAW,CACP,YAAe,sBACf,cAAiB,yBAGzB,EAAKgvD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,kBACV,SAAY,+BAGpB,EAAK+vD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,2BACV,SAAY,wCAGpB,EAAK+vD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,0BACV,SAAY,uCAGpB,YAAMwnH,uBAAsB,Q,EAEpC,OAhH+B,iBAAlBsqB,EAAS,cADrBpqB,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACR,EAAA+sB,cAJP4vH,GAAb,CAA+BpqB,EAAIxyH,UAAtB,EAAA48I,a,0FCLb,IAIIl+H,EAAO,+QAJoC,EAAQ,OAGjBi+H,CAFL,EAAQ,SAGsS,+rEAE/UlmG,EAAOC,QAAUh4B,G,kPCDjB,kBACI,WACI7qB,EACAu+H,EACQqqB,GAHZ,MAII,YAAM5oJ,EAASu+H,IAAe,K,OADtB,EAAAqqB,KAER,EAAK7hK,GAAK,yBACV,EAAKI,MAAQ,wDACb,EAAKq3I,SAAS,CACV,GAAM,cACN,QAAW,KAEf,EAAKO,YAAY,KAAM6pB,EAAI,gBAC3B,EAAK5hF,cAAc9uD,mBAAmB,EAAM,CACxC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,gBAGzB,EAAK8uD,cAAchvD,WAAW,EAAM,CAChC,QAAW,0CACX,QAAW,CACP,YAAe,cACf,OAAU,WACV,SAAY,oCAEhB,gBAAmB,GACnB,GAAM,WACN,QAAW,CACP,YAAe,kBACf,cAAiB,qBAGzB,EAAKgvD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,0BACV,SAAY,uCAGpB,EAAK+vD,cAAc/vD,WAAW,EAAM,CAChC,GAAM,MACN,QAAW,CACP,YAAe,aACf,cAAiB,cAErB,QAAW,CACP,OAAU,wBACV,SAAY,qCAGpB,YAAMwnH,uBAAsB,Q,EAEpC,OA1DuC,iBAA1BuqB,EAAiB,cAD7BrqB,EAAIj4I,W,kCAGY02F,QACOuhD,EAAIvyH,eACR,EAAAs5C,sBAJPsjG,GAAb,CAAuCrqB,EAAIxyH,UAA9B,EAAA68I,qB,4GCLb,IAIIn+H,EAAO,+QAJoC,EAAQ,OAGjBi+H,CAFL,EAAQ,SAGsS,06BAE/UlmG,EAAOC,QAAUh4B,G,4VCWjB,iBACE,WACUuzD,EACApmC,EACAixG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAv3F,EACA//C,EACAk0B,EACA39B,GAXA,KAAA61E,WACA,KAAApmC,oBACA,KAAAixG,eACA,KAAAC,mBACA,KAAAC,gBACA,KAAAC,gBACA,KAAAC,iBACA,KAAAC,mBACA,KAAAv3F,wBACA,KAAA//C,mBACA,KAAAk0B,sBACA,KAAA39B,aA8VZ,OAvVQ,YAAA+iE,SAAN,W,0HACE,OAAKhkF,KAAKP,GAIK,GAAMO,KAAK2hK,aAAa5hI,UAAU//B,KAAKP,KAHpD,I,OAIF,OADM0wD,EAAS,WAKfnwD,KAAKiiK,UAAY9xG,EAAO+oB,WAClB1vC,EAAYxpC,KAAK82F,SAASn+E,cAAc,qBAE9C3Y,KAAKqgB,UAAYrgB,KAAKkiK,gBAAgB/xG,EAAOgyG,cAC7CniK,KAAK2gB,0BAA0B,KAAM3gB,KAAKoiK,oBAAoB3hK,KAAKT,OACnEA,KAAKq+D,mCAAmC,KAAMr+D,KAAKqiK,6BAA6B5hK,KAAKT,OACrFA,KAAKsiK,wBAAwB,KAAMtiK,KAAKuiK,kBAAkB9hK,KAAKT,OAEzD0pC,EAAO1pC,KAAKwiK,aAClBh5H,EAAUnK,UAAYqK,EAEtB1pC,KAAK0wD,kBAAkB/mB,QAAQ,CAC7BjxB,QAAS8wB,EACTI,eAAgB5pC,KAAKqgB,UACrB22F,UAAiBh3G,KAAK82F,SAAUwjE,GAAGxvG,WAAWphB,KAAKstE,YAGrDh3G,KAAKyiK,eAAetyG,GACpBnwD,KAAK0iK,kB,KArBH,YAwBJ,YAAAC,YAAA,WACE,IAAM1iI,EAAgB,CACpB2iI,mBAAoB,GACpBl6I,UAAW,IAGb,IAAK,IAAI5N,KAAO9a,KAAKqgB,UAAUuiJ,mBACxB5iK,KAAK6iK,sBAAsB/nJ,IAIhCmlB,EAAM2iI,mBAAmBzhK,KAAK,CAC5B1B,GAAIqb,EACJ/G,MAAO/T,KAAKqgB,UAAUuiJ,mBAAmB9nJ,KAI7C,IAAK,IAAIA,KAAO9a,KAAKqgB,UAAU5B,SACxBze,KAAKgiK,iBAAiB1jJ,iBAAiBte,KAAKqgB,UAAU5B,SAAS3D,KAIpEmlB,EAAMvX,UAAUvnB,KAAK,CACnB1B,GAAIqb,EACJkD,SAAUhe,KAAKqgB,UAAU5B,SAAS3D,GAAKkD,SACvC3P,MAAOrO,KAAKqgB,UAAU5B,SAAS3D,GAAKzM,QAIxC,OAAO4xB,GAET,YAAAiiI,gBAAA,SAAgBC,GACd,IAAMnuJ,EAAO,qBAAqBhU,KAAKiiK,UAAUa,WAAU,8BAGrDziJ,EADO,IAAImwC,SAASx8C,EACI+uJ,GAyC9B,GAvCA1iJ,EAAU/W,GAAK,IAAI,UACjB+W,EACArgB,KAAK+hK,eACL/hK,KAAK4hK,iBACL5hK,KAAK6hK,cACL7hK,KAAK8hK,eAEPzhJ,EAAU2iJ,IAAM,IAAI,UAClBhjK,KAAK82F,SACL92F,KAAK0qB,kBAEPrK,EAAU4iJ,MAAQ,IAAI,UACpBjjK,KAAK4+C,qBAGPv+B,EAAU8vC,OAASnwD,KAEnBqgB,EAAU/d,WAAa,GACvB+d,EAAUuiJ,mBAAqB,GAC/BviJ,EAAU5B,SAAW,GACrB4B,EAAU6iJ,kBAAoB,GAC9B7iJ,EAAU8iJ,2BAA6B,GACvC9iJ,EAAU+iJ,iBAAmB,GAC7B/iJ,EAAUgjJ,gBAAkB,GAC5BhjJ,EAAUM,0BAA4B3gB,KAAK2gB,0BAA0BlgB,KAAKT,MAC1EqgB,EAAUg+C,mCAAqCr+D,KAAKq+D,mCAAmC59D,KAAKT,MAC5FqgB,EAAUiiJ,wBAA0BtiK,KAAKsiK,wBAAwB7hK,KAAKT,MACtEqgB,EAAUijJ,sBAAwBtjK,KAAKsjK,sBAAsB7iK,KAAKT,MAClEqgB,EAAUkjJ,+BAAiCvjK,KAAKujK,+BAA+B9iK,KAAKT,MACpFqgB,EAAUmjJ,oBAAsBxjK,KAAKwjK,oBAAoB/iK,KAAKT,MAE9DqgB,EAAUrb,OAAShF,KAAKyqE,sBAAsBzlE,OAC9Cqb,EAAUymB,mBAAqB9mC,KAAKyqE,sBAAsB3jC,mBAC1DzmB,EAAU4oB,gBAAkBjpC,KAAKyqE,sBAAsBxhC,gBAEnD5oB,EAAUg1C,aACZh1C,EAAUg1C,cAGR8sG,GAAgBA,EAAaz5I,UAC/B,IAAqB,UAAAy5I,EAAaz5I,UAAb,eAAwB,CAAxC,IAAIjK,EAAQ,KACf4B,EAAU5B,SAASA,EAAShf,IAAMgf,EAItC,OAAO4B,GAET,YAAAmiJ,WAAA,WACE,IAAIj7J,EAAS,GAOb,OALIvH,KAAKiiK,UAAUt3J,QACjBpD,EAASA,EAAO8W,OAAO,aAAaA,OAAOre,KAAKiiK,UAAUt3J,OAAO0T,OAAO,iBAG1E9W,EAASA,EAAO8W,OAAOre,KAAKiiK,UAAU/iI,OAGxC,YAAAujI,eAAA,SAAetyG,GACb,IAAMj8C,EAAQ,IAAI7U,YAAY,gBAAiB,CAC7C+O,OAAQ,CACNgrG,OAAQp5G,KACRqO,MAAO8hD,GAETgnC,SAAS,IAGXn3F,KAAK82F,SAASI,cAAchjF,IAG9B,YAAAovJ,sBAAA,SAAsBhjJ,EAAsBtd,GAC1ChD,KAAKqgB,UAAU/d,WAAWge,GAAgBtd,EAE1C,IAAiB,UAAAhD,KAAKqgB,UAAU6iJ,kBAAf,eAAkC,CAA9C,IAAI//J,EAAI,KACX,IAAIA,EAAKmd,cAAgBnd,EAAKmd,cAAgBA,EAA9C,CAIAnd,EAAK+L,SAASoR,EAActd,GAE5B,IAAMygK,EAAmBnjJ,EAAY,SACjCtgB,KAAKqgB,UAAUojJ,IACjBzjK,KAAKqgB,UAAUojJ,GAAezgK,MAIpC,YAAAugK,+BAAA,SAA+BjjJ,EAAsBtd,GACnDhD,KAAKqgB,UAAUuiJ,mBAAmBtiJ,GAAgBtd,EAElD,IAAiB,UAAAhD,KAAKqgB,UAAU8iJ,2BAAf,eAA2C,CAAvD,IAAIhgK,EAAI,KACPA,EAAKmd,cAAgBnd,EAAKmd,cAAgBA,GAI9Cnd,EAAK+L,SAASoR,EAActd,KAGhC,YAAAwgK,oBAAA,SAAoBE,GAClB,IAAiB,UAAA1jK,KAAKqgB,UAAUgjJ,gBAAf,eAAgC,CAA5C,IAAIlgK,EAAI,KACPA,EAAKugK,YAAcvgK,EAAKugK,YAAcA,GAI1CvgK,EAAK+L,SAASw0J,KAGlB,YAAA/iJ,0BAAA,SAA0BL,EAAsBpR,EAAyDy0J,GAAzG,gBAAyG,IAAAA,OAAA,GACvG,IAAMx8J,EAAO,CACXmZ,aAAY,EACZpR,SAAQ,GASV,OANAlP,KAAKqgB,UAAU6iJ,kBAAkB/hK,KAAKgG,GAElCmZ,GAAgBqjJ,IAClB3jK,KAAKqgB,UAAU+iJ,iBAAiB9iJ,IAAgB,GAG3C,WACL,IAAMlJ,EAAQ,EAAKiJ,UAAU6iJ,kBAAkB3rJ,QAAQpQ,GAClDiQ,GAIL,EAAKiJ,UAAU6iJ,kBAAkB1hK,OAAO4V,EAAO,KAGnD,YAAAinD,mCAAA,SAAmC/9C,EAAsBpR,GAAzD,WACQ/H,EAAO,CACXmZ,aAAY,EACZpR,SAAQ,GAKV,OAFAlP,KAAKqgB,UAAU8iJ,2BAA2BhiK,KAAKgG,GAExC,WACL,IAAMiQ,EAAQ,EAAKiJ,UAAU8iJ,2BAA2B5rJ,QAAQpQ,GAC3DiQ,GAIL,EAAKiJ,UAAU8iJ,2BAA2B3hK,OAAO4V,EAAO,KAG5D,YAAAkrJ,wBAAA,SAAwBoB,EAAoBx0J,GAA5C,WACQ/H,EAAO,CACXu8J,WAAU,EACVx0J,SAAQ,GAKV,OAFAlP,KAAKqgB,UAAUgjJ,gBAAgBliK,KAAKgG,GAE7B,WACL,IAAMiQ,EAAQ,EAAKiJ,UAAUgjJ,gBAAgB9rJ,QAAQpQ,GAChDiQ,GAIL,EAAKiJ,UAAUgjJ,gBAAgB7hK,OAAO4V,EAAO,KAG3C,YAAAgrJ,oBAAN,SAA0B9hJ,EAAsBtd,G,yFAC9C,OAAmB,GAAfA,EAAKkC,QAIJlF,KAAKqgB,UAAU+iJ,iBAAiB9iJ,IACnCtgB,KAAKujK,+BAA+BjjJ,EAAc,CAACtd,EAAK,KAJxD,WAOE,YAAAq/J,6BAAN,SAAmC/hJ,G,8HACV,EAAAtgB,KAAKiiK,UAAU2B,Y,wBAAf,YAAdthK,EAAU,KACGtC,KAAK6jK,YAAYvjJ,EAAche,EAAW7C,IAK9D,GAAMO,KAAK04F,eAAep2F,EAAW7C,KAHnC,OAH6C,M,OAM/C,S,wBANqB,I,+BASnB,YAAA8iK,kBAAN,SAAwBmB,G,+IAGtB,IAFMztJ,EAAyB,GAE1B,EAAL,EAAuB,EAAAjW,KAAKiiK,UAAU2B,YAAf,gBAAdthK,EAAU,MACDomB,WAIIpmB,EAAWomB,UAAUjf,MAAK,SAAAmlC,GAAK,OAAAA,GAAK80H,MAKxDztJ,EAAQ9U,KAAKmB,GAGf,I,WAASwZ,GAEP,IADoB7F,EAAQW,QAAO,SAAAnS,GAAK,OAAAA,GAAKwR,EAAQ6F,MAAIrS,MAAK,SAAAhF,GAAK,SAAKo/J,YAAYp/J,EAAEhF,GAAIwW,EAAQ6F,GAAGrc,IAAI,M,SADlGqc,EAAC,WAMR7F,EAAQzU,OAAOsa,EAAG,GAClBA,I,EAPOA,KAAI,EAAGA,EAAI7F,EAAQ/Q,OAAQ4W,I,EAA3BA,KAAI,E,IAUI,EAAA7F,E,wBAAA,YAAR9S,EAAI,KACX,GAAMnD,KAAK04F,eAAev1F,EAAK1D,MADT,M,OACtB,S,wBADe,I,+BAKb,YAAAijK,gBAAN,W,8HACyB,EAAA1iK,KAAKiiK,UAAU2B,Y,wBAAf,YAAdthK,EAAU,MACFwhK,UACb,MAGF,GAAM9jK,KAAK04F,eAAep2F,EAAW7C,KALU,M,OAK/C,S,wBALqB,I,+BAQnB,YAAAi5F,eAAN,SAAqBp4E,G,gIAKnB,IAJAtgB,KAAKujK,+BAA+BjjJ,EAAc,IAClDtgB,KAAKsjK,sBAAsBhjJ,EAAc,IAErCyjJ,GAAiB,EAChB,EAAL,EAAiB,EAAA/jK,KAAKiiK,UAAU2B,YAAf,eACf,GADOzgK,EAAI,KACNnD,KAAK6jK,YAAY1gK,EAAK1D,GAAI6gB,KAI1BtgB,KAAK6iK,sBAAsB1/J,EAAK1D,IAAK,CACxCskK,GAAiB,EACjB,M,OAIAA,EACQ,GAAM/jK,KAAK2hK,aAAa3hI,QAAQhgC,KAAKP,GAAI6gB,EAActgB,KAAK2iK,gBADpE,M,OACIl+J,EAAI,SAEJ,GAAQ,IAAIE,MAAOC,UAAU2Z,WACnC9Z,EAAEhD,SAAQ,SAAC0B,EAAMiU,GACfjU,EAAU,IAAI,EAAMkb,OAAOjH,EAAMmH,eAGnCve,KAAKsjK,sBAAsBhjJ,EAAc7b,G,mCAI7C,YAAAo+J,sBAAA,SAAsBviJ,GACpB,OAAOtgB,KAAKqgB,UAAUuiJ,mBAAmBtiJ,IACpCnK,MAAMC,QAAQpW,KAAKqgB,UAAUuiJ,mBAAmBtiJ,KAChDtgB,KAAKqgB,UAAUuiJ,mBAAmBtiJ,GAAcpb,OAAS,GAEhE,YAAA2+J,YAAA,SAAYG,EAA4BC,EAA2BC,GAAnE,gBAAmE,IAAAA,OAAA,GACjE,IAAMvZ,EAAQ3qJ,KAAKiiK,UAAU2B,YAAY57I,MAAK,SAAAmlB,GAAK,OAAAA,EAAE1tC,IAAMwkK,KAC3D,IAAKtZ,EAAMmZ,UACT,OAAO,EAOT,GAJgBnZ,EAAMmZ,UAEQr6J,MAAK,SAAAuR,GAAK,OAAAA,GAAKgpJ,KAG3C,OAAO,EACF,GAAIE,EAAiB,CAC1B,IAAM,EAASlkK,KAAKiiK,UAAU2B,YAAY57I,MAAK,SAAAmlB,GAAK,OAAAA,EAAE1tC,IAAMukK,KAC5D,QAAK,EAAOF,WAIL,EAAOA,UAAUr6J,MAAK,SAAAuR,GAAK,SAAK6oJ,YAAY7oJ,EAAGipJ,GAAmB,MAEzE,OAAO,GAzVD,cAAT,EAAArtE,S,6DAfUutE,EAAM,cADlB,EAAA/kK,W,kCAGqB02F,QACS,EAAAtmD,iBACL,EAAArP,YACI,EAAAikI,gBACH,EAAAtjJ,aACA,EAAAguD,aACC,EAAAxQ,cACE,EAAAj/C,gBACK,EAAA1Z,qBACL,EAAA0T,gBACG,EAAAwmC,mBACT,EAAAl+B,aAbXwiJ,GAAb,GAAa,EAAAA,U,4FCfb7oG,EAAOC,QAFI,wJ,iECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,suDAAuuD,KAEhwDw/C,EAAOC,QAAUA,G,sPCCjB,iBACE,WACU33D,EACAygK,EACAh6C,EACA9sG,EACA+T,GALV,WACU,KAAA1tB,uBACA,KAAAygK,kBACA,KAAAh6C,oBACA,KAAA9sG,cACA,KAAA+T,YAcV,KAAAgzI,gBAAoD,CAClDl4H,YAAa,OACbF,UAAW,MACXhC,cAAe,SAACnnC,GACdA,EAAE6d,UAAUC,OAAO,QAAS,EAAKof,MAAMjiB,UAEvCjb,EAAE6d,UAA4B,iBAAI,EAAKuvC,OAAOmyG,wBAAwB,EAAK7iK,IAAI,WAC7EsD,EAAE6d,UAAUC,OAAO,QAAS,EAAKof,MAAMjiB,cAG3CuwB,eAAgB,SAACxrC,GACVA,EAAEmR,QAIP,EAAK+rB,MAAMjiB,SAAWjb,EAAEsL,MACxB,EAAKg2J,gBAAgBvmJ,mBAAmB,EAAKmiB,OAE7C,EAAKkwB,OAAOqzG,oBAAoB,EAAK/jK,MAEvCsoD,YAAa,SAAChlD,GACPA,EAAE6d,UAA4B,mBAInC7d,EAAE6d,UAA4B,0BACvB7d,EAAE6d,UAA4B,oBAIzC,KAAA2jJ,gBAAsD,CACpDt9H,MAAO,OACPmC,gBAAiB,kBACjBm7H,gBAAiB,CACfvrJ,OAAQ,OACRogE,UAAW,QACXujC,UAAW,SAAC55G,GACV,EAAKyhK,sBAAwBzhK,EAAE6d,WAEjC81F,SAAU,SAAC3zG,GACT,EAAKyhK,sBAAwB,OAGjCt6H,cAAe,SAACnnC,GACd,EAAK0hK,gBAAgB1hK,EAAE6d,WAEvB7d,EAAE6d,UAA4B,iBAAI,EAAKuvC,OAAOmyG,wBAAwB,EAAK7iK,IAAI,WAC7E,EAAKglK,gBAAgB1hK,EAAE6d,eAG3B8jJ,SAAU,SAAC3hK,GACT,EAAKotD,OAAOqzG,oBAAoB,EAAK/jK,KAEvCsoD,YAAa,SAAChlD,GACPA,EAAE6d,UAA4B,mBAInC7d,EAAE6d,UAA4B,0BACvB7d,EAAE6d,UAA4B,oBAGzC,KAAA+jJ,mBAAoD,CAClD3wJ,KAAM,UACNizB,MAAO,OACP51B,QAAS,SAACtO,GACR,IAAMsL,EAAQtL,EAAE+D,MAAM8iC,eAAev7B,MAC/B+I,EAAQ,EAAK6oB,MAAM5xB,MAAMkJ,QAAQlJ,GACnC+I,EAAQ,IAIZ,EAAK6oB,MAAM5xB,MAAM7M,OAAO4V,EAAO,GAC/B,EAAKwtJ,0BAKT,KAAAp+H,cAA6C,CAC3CS,MAAO,OACPiD,cAAe,SAACnnC,GACd,EAAK8hK,gBAAgB9hK,EAAE6d,UAAW7d,EAAS,OAIzB,aAFC,EAAK+hK,cAAc/hK,EAAE6d,WAGtC7d,EAAE6d,UAAUC,OAAO,YAAY,GAE/B9d,EAAE6d,UAA4B,iBAAI,EAAKuvC,OAAOmyG,wBAAwB,EAAK7iK,IAAI,WAC7E,EAAKolK,gBAAgB9hK,EAAE6d,eAI7B2tB,eAAgB,SAACxrC,GACf,GAAKA,EAAEmR,MAAP,CAIA,IAAMiL,EAAW,EAAK2lJ,cAAc/hK,EAAE6d,WACtC,GAAgB,aAAZzB,EAAyB,CAC3B,GAAe,MAAXpc,EAAEsL,MACJ,OAGFtL,EAAE6d,UAAUC,OAAO,QAAS,MAC5B,EAAK+jJ,uBAGF,EAAKG,eACR,EAAK9kI,MAAMjiB,SAAW,KAGxB,EAAKqmJ,gBAAgBjlJ,iBAAiB,EAAK6gB,MAAO9gB,EAAUpc,EAAEsL,OAE9C,aAAZ8Q,GACF,EAAKgxC,OAAOqzG,oBAAoB,EAAK/jK,MAGzCsoD,YAAa,SAAChlD,GACPA,EAAE6d,UAA4B,mBAInC7d,EAAE6d,UAA4B,0BACvB7d,EAAE6d,UAA4B,oBA0K3C,OArKE,sBAAI,2BAAY,C,IAAhB,WAGE,OAAO5gB,KAAKye,UAFa,CAAC,YAAa,YAAa,cAAe,eAG7ClH,QAAQvX,KAAKwrE,aAAe,G,gCAGpD,YAAA/qE,KAAA,SAAKmpC,GAAL,WAUE,GATA5pC,KAAKic,MAAQ,CACX2tB,eAAgB5pC,KAChB6pC,gBAAiB,MAEnB7pC,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9Cjc,KAAKmwD,OAASvmB,EAAeumB,OAE7BnwD,KAAKye,SAAWze,KAAKmwD,OAAO8xG,UAAUv5I,UAAUV,MAAK,SAAA4mB,GAAK,OAAAA,EAAEnvC,IAAM,EAAKA,OAClEO,KAAKye,SACR,MAAM,IAAIpd,MAAM,sBAAsBgd,OAAOre,KAAKP,KAGpDO,KAAKigC,MAAQjgC,KAAKmwD,OAAO9vC,UAAU5B,SAASze,KAAKP,IAC5CO,KAAKigC,QACRjgC,KAAKigC,MAAQ,GACbjgC,KAAKmwD,OAAO9vC,UAAU5B,SAASze,KAAKP,IAAMO,KAAKigC,OAGjD,IAAM+kI,EAAYhlK,KAAKye,SAASumJ,UAahC,OAZwB,GAApBA,EAAU9/J,QACZ8/J,EAAU7jK,KAAK,KAGjBnB,KAAKskK,gBAAgBhiK,WAAatC,KAAKqkK,gBACpC7mJ,kBACA5G,QAAO,SAAAknD,GAAK,OAAAknG,EAAUztJ,QAAQumD,EAAEhjD,MAAQ,KAEtC9a,KAAKigC,MAAMjiB,WACdhe,KAAKigC,MAAMjiB,SAAWgnJ,EAAU,IAG1BhlK,KAAKye,SAASC,MACpB,IAAK,OAGH,GAFA1e,KAAKwrE,WAAaxrE,KAAKye,SAAS5N,QAAU,YAEnB,aAAnB7Q,KAAKwrE,WACgDxrE,KAAKwmC,cAC7CwB,iBAAkB,EAGnC,MAEF,IAAK,OAGH,GAFAhoC,KAAKwrE,WAAaxrE,KAAKye,SAAS5N,QAAU,YAEnB,aAAnB7Q,KAAKwrE,WAA2B,CAClC,IAAMy5F,EAAiDjlK,KAAKwmC,cAC5Dy+H,EAAej9H,iBAAkB,EACjCi9H,EAAep+H,cAAgB7mC,KAAK4D,qBAAqBkjC,mBAAmB9mC,KAAKye,SAASzZ,QAAU,KAGtG,MAEF,IAAK,SAGH,GAFAhF,KAAKwrE,WAAaxrE,KAAKye,SAAS5N,QAAU,cAEnB,eAAnB7Q,KAAKwrE,WAA6B,CACpC,IAAMs0B,EAAqD9/F,KAAKwmC,cAChEs5D,EAAiB93D,iBAAkB,EACnC83D,EAAiB96F,OAAShF,KAAK4D,qBAAqBqlC,gBAAgBjpC,KAAKye,SAASzZ,QAAU,MAG9F,MAEF,IAAK,OAGH,GAFAhF,KAAKwrE,WAAaxrE,KAAKye,SAAS5N,QAAU,WAEnB,YAAnB7Q,KAAKwrE,WAA0B,CACjC,IAAM05F,EAA+CllK,KAAKwmC,cAC1D0+H,EAAcC,eAAiB,KAC/BD,EAAcE,gBAAkB,OAGV,MAApBplK,KAAKigC,MAAM5xB,QACbrO,KAAKigC,MAAM5xB,OAAQ,GAErB,MAEF,IAAK,SACHrO,KAAKwrE,WAAa,cAElB,IAAM22B,EAAqDniG,KAAKwmC,cAChE27D,EAAiBz3D,eAAgB,EACjCy3D,EAAiBn6D,iBAAkB,EACnCm6D,EAAiBj2D,UAAYlsC,KAAKye,SAAS4mJ,gBAC3CljE,EAAiB/1D,YAAcpsC,KAAKye,SAASM,kBAE7C,IAAMva,EAAaxE,KAAKud,YAAYqB,MAAM5e,KAAKye,SAASI,kBAAoB,MAC5EsjF,EAAiB7/F,WAAatC,KAAKqqH,kBAAkB79E,iBACnDxsC,KAAKsb,eAAgB,CACnBpU,aAAclH,KAAKye,SAASE,aAC5BgI,YAAa3mB,KAAKye,SAAS4mJ,gBAC3BnvG,cAAe1xD,EAAWT,QAAUS,EAAWT,QAAU,KACzDoyD,aAAc3xD,EAAW6yC,OAAS7yC,EAAW6yC,OAAS,KACtD+e,cAAe5xD,EAAWP,QAAUO,EAAWP,QAAU,KACzDoyD,YAAa7xD,EAAWR,MAAQQ,EAAWR,MAAQ,OAIvD,MAEF,QACE,MAAM,IAAI3C,MAAM,6BAA6Bgd,OAAOre,KAAKye,SAASC,OAItE,GAAI1e,KAAKye,SAAS+nB,cAAe,CAC/B,IACMzkC,EADO,IAAIyuD,SAASxwD,KAAKye,SAAS+nB,cACxBu8H,GAEhB/iK,KAAKwmC,cAAgBjmB,OAAOC,OAAOze,EAAS/B,KAAKwmC,iBAGrD,YAAA9kC,OAAA,WACE1B,KAAKsb,eAAeqzD,aACpB3uE,KAAKsb,eAAiB,MAGxB,YAAAwpJ,cAAA,SAAclkJ,GACZ,OAAOA,EAAUlI,UAAUK,cAAc2yB,aAAa,gBAExD,YAAAm5H,gBAAA,SAAgBjkJ,EAAiC9Z,QAAA,IAAAA,MAAA,MAC/C,IAAMqY,EAAWnf,KAAK8kK,cAAclkJ,GACpC,GAAgB,aAAZzB,EAEG,GAAgB,aAAZA,EAAyB,CAClC,IAAM9Q,EAAQvH,GAASA,EAAM8iC,eACzB9iC,EAAM8iC,eAAev7B,MACrB,KACJuS,EAAUC,OAAO,QAASxS,OACrB,CACCA,EAAQrO,KAAKqkK,gBAAgBnlJ,iBAAiBlf,KAAKigC,MAAO9gB,GAChEyB,EAAUC,OAAO,QAASxS,KAGxB,YAAAo2J,gBAAN,SAAsB7jJ,G,iIACd0kJ,EAAY,IAEdnvJ,MAAMC,QAAQpW,KAAKigC,MAAM5xB,OAAzB,Y,IACgB,EAAArO,KAAKigC,MAAM5xB,M,wBAAX,YAATA,EAAK,KACQ,GAAMrO,KAAKqkK,gBAAgB7lJ,uBAAuBxe,KAAKye,SAAUpQ,KADrD,M,OAC1Bk3J,EAAc,SACpBD,EAAUnkK,KAAKokK,G,wBAFC,I,oBAMpB3kJ,EAAUC,OAAO,QAASykJ,EAAUlgK,KAAK,Q,YAE3C,YAAAw/J,qBAAA,sBACO5kK,KAAKwkK,uBAIVxkK,KAAKsxB,UAAU7P,WAAU,WACvB,EAAK+iJ,sBAAsB5nD,cA9SrB,cAAT,EAAAhmB,S,6DA4ID,cADC,EAAA/2D,aAAa,Y,2GApJH2lI,EAAQ,cADpB,EAAApmK,W,kCAGiC,EAAAuG,qBACL,EAAA0Z,gBACE,EAAA+K,kBACN,EAAA9K,YACF,EAAAqC,aANV6jJ,GAAb,GAAa,EAAAA,Y,gGCJblqG,EAAOC,QAFI,ivC,qECCXA,EADkC,EAAQ,OAChCw6B,EAA4B,IAE9B50F,KAAK,CAACm6D,EAAOx/C,EAAI,yfAA0f,KAEnhBw/C,EAAOC,QAAUA,G,4JCJjB,qBAA0Bu5E,M,gYCgB1B,iBAIE,WACS1iH,EACA/mB,EACC7C,EACAgD,EACAjD,EACAgD,EACA+mB,EACAC,EACAE,EACAC,EACAF,EACAy9D,EACAjvE,EACA4R,EACAC,EACAnI,EACAjiB,EACAE,EACAL,GAnBV,WACS,KAAA8pB,gBACA,KAAA/mB,iBACC,KAAA7C,gBACA,KAAAgD,6BACA,KAAAjD,mBACA,KAAAgD,oBACA,KAAA+mB,kBACA,KAAAC,gBACA,KAAAE,4BACA,KAAAC,gBACA,KAAAF,kCACA,KAAAy9D,kBACA,KAAAjvE,mBACA,KAAA4R,oBACA,KAAAC,iBACA,KAAAnI,mBACA,KAAAjiB,uBACA,KAAAE,uBACA,KAAAL,sBAtBF,KAAAM,eAAyB,IA4BjC,KAAApJ,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,eACZC,UAAW,IACXiJ,oBAAqB,mLACrBhJ,MAAO,mBACPC,QAAS,0D,oDACDL,EAAKO,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5ChI,KAAKsI,oBAAoB9H,OAAO,EAAAsI,eAAe28J,QAAS,CAAChmK,I,YAG7D,KAAAimK,wBAAwC,CACtCjmK,GAAI,mBACJE,WAAY,UACZD,KAAM,cACNG,MAAO,4BACPD,UAAW,IACX0T,oBAAqB,kEACrBxT,QAAS,SAAOiD,GAAM,+C,8EAKD,OAJbuS,EAAiBvS,GAClBA,EAAEmR,OACFnR,EAAEmR,MAAMqB,QAEM,GAAMvV,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIS,GAAM/H,KAAK2I,qBAAqBoB,wBACvD/J,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAW3wC,SACjC7zB,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GACjC,sBANA,I,OASF,OANyB,UAUnBjI,EAA6BC,KAAKC,KAA6B,uBAC/D20B,EAAyB70B,EAAKI,SAASE,qBAEvCsN,EAAW,IAAI,EAAAg4J,iCAAiC,CACpD3tJ,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5CsxB,yBAAiD,GAAvB1E,EAAa1vB,OACvC0gK,iBAAkBhxI,IAGgC,GAAM50B,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAZhG,I,OAaF,OADM+H,EAA8C,WAC5BA,EAAeuC,WAIjCtC,EAAgB,uBAAuBD,EAAeuC,UAExD3C,GACFtV,KAAK0qB,iBAAiB7U,WAAWF,GACjC3V,KAAKC,KAAK0G,OAAOuB,aAEjBlI,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAKqR,EACLI,YAAY,I,KAXd,aAgBN,KAAAye,sBAAsC,CACpC/0B,GAAI,kBACJE,WAAY,UACZE,MAAO,gCACPH,KAAM,QACN4T,oBAAqB,kEACrB1T,UAAW,GACXE,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV89J,EAAqC,IAAI,EAAAC,mCAAmC,CAChF9tJ,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAiB,WAAEgF,KAGK,GAAMhI,KAAKuI,iBAAiBzI,QAChF+lK,GACA,KATA,I,OAWF,OAJsD,SAI/C,CAAP,EAAO7lK,KAAKC,KAAK0G,OAAOuB,sBAG5B,KAAAysB,qBAAqC,CACnCl1B,GAAI,uBACJE,WAAY,cACZD,KAAM,UACNG,MAAO,4BACPD,UAAW,EACX0T,oBAAqB,kEACrBxT,QAAS,0D,wEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAA6B,uBAC/D20B,EAAyB70B,EAAKI,SAASE,qBAEvCgmB,EAAmC,CACvCrO,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5C6sB,eAAwC,IAAxBD,EAAa1vB,OAC7B0gK,iBAAkBhxI,GAGpB,GAAM50B,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAimK,gCAAgC1/I,IAAO,KAZ7E,I,OAaF,OADA,SACO,CAAP,EAAOrmB,KAAKC,KAAK0G,OAAOuB,sBAG5B,KAAAitB,2BAA2C,CACzC11B,GAAI,sBACJE,WAAY,aACZD,KAAM,iBACNG,MAAO,2BACPD,UAAW,GACX0T,oBAAqB,kEACrBxT,QAAS,SAAOiD,GAAC,+C,6EACI,SAAM/C,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVkT,EAAO,SAAOma,GAAG,+C,oEAErB,OADMr1B,EAA6BC,KAAKC,KAA6B,uBACrE,GAAMD,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAkmK,kCAAkC,CACxEhuJ,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5C4B,IAAKwrB,KACH,I,cAHJ,SAKAr1B,EAAKI,SAAS8V,U,aAGVqf,EAAc,IAAI,EAAAxhB,aACZC,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,gCAC9CrJ,QAAS,WACPmb,EAAK,KAEN,CACDjH,KAAMhU,KAAKyI,qBAAqBU,cAAc,yCAC9CrJ,QAAS,WACPmb,EAAK,MAITqa,EAAYxvB,KAAK/C,EAAEmR,MAAMC,Q,KA1BvB,aA6BN,KAAA8xJ,6BAA6C,CAC3CxmK,GAAI,wBACJE,WAAY,QACZD,KAAM,cACNG,MAAO,4BACPD,UAAW,EACX0T,oBAAqB,kEACrBxT,QAAS,0D,0EACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAA6B,uBAC/D20B,EAAyB70B,EAAKI,SAASE,qBAEvCsN,EAAW,IAAI,EAAAu4J,mDAAmD,CACtEluJ,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5C49J,iBAAkBhxI,IAGkD,GAAM50B,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAXlH,I,OAYF,OADM+H,EAAgE,WAC9CA,EAAesC,WAIvChY,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAK,uBAAuBoR,EAAeywJ,eAC3CpwJ,YAAY,IAGd/V,KAAKC,KAAK0G,OAAOuB,Y,KARf,aAWN,KAAA0tB,iBAAiC,CAC/Bn2B,GAAI,mBACJC,KAAM,QACNE,UAAW,IACXC,MAAO,0CACPyT,oBAAqB,iCACrBxT,QAAS,0D,gFACY,SAAME,KAAKC,KAAK6H,e,OACnC,IADmB,SACHC,QACd,UAMF,GAHMhI,EAA6BC,KAAKC,KAA6B,uBAGjC,IAF9BmmK,EAAwBrmK,EAAKI,SAAS8I,uBAElB/D,OAKxB,OAJAmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,gCACxC,QACAnJ,KAAK4I,gBACP,I,IAG8B,EAAAw9J,E,wBAAA,YAArBC,EAAiB,KACD,GAAMrmK,KAAK2I,qBAAqBoB,wBACvDs8J,EAAkBxyI,SAClBwyI,EAAkBr+J,GAClB,cAJiD,M,OAOnD,IANyB,SAOvB,U,wBAR4B,I,iBAYA,EAAAo+J,E,wBAAA,YAArBC,EAAiB,KACmB,GAAMrmK,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAi2B,uBAAuB,CAC1GC,cAAeqwI,EAAkBr+J,GACjCiuB,WAAY,CAAE,qBAAuB,MAErC,KALiD,M,OACN,S,wBADf,I,oBAQhCj2B,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAAguB,mBAAmC,CACjCz2B,GAAI,UACJC,KAAM,QACNG,MAAO,cACPs2B,QAAS,sBACTv2B,UAAW,KACX0T,oBAAqB,mCACrBxT,QAAS,0D,kFACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAA6B,uBAC/DmmK,EAAwBrmK,EAAKI,SAAS8I,sBAC5ClJ,EAAKI,SAASI,iBAEsB,GAAhC6lK,EAAsBlhK,QACxBmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,gCACxC,QACAnJ,KAAK4I,gBACP,MAGI/I,EAAQG,KAAKyI,qBAAqBU,cAAc,iBAChDC,EAAWpJ,KAAKyI,qBAAqBU,cAAc,6BAErC,GAAMnJ,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAAQJ,EAAUvJ,OAlBnG,I,OAmBF,IADoB,SAElB,UAGF,GAAIumK,EAAsB38J,MAAK,SAACC,GAAM,OAAe,GAAfA,EAAE0sB,aAKtC,OAJA/sB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,2BACxC,QACAnJ,KAAK4I,gBACP,I,IAG6B,EAAAw9J,E,wBAAA,YAApBE,EAAgB,KACA,GAAMtmK,KAAK2I,qBAAqBoB,wBACvDu8J,EAAiBzyI,SACjByyI,EAAiBt+J,GACjB,cAJgD,M,OAOlD,IANyB,SAOvB,U,wBAR2B,I,aAc/B,OAFMquB,EAAS+vI,EAAsBn8J,KAAI,SAACP,GAAM,OAAAA,EAAE1B,MAElD,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAymK,oCAAoC,CAC1ElzI,uBAAwBgD,KACtB,I,cAFJ,SAIAr2B,KAAKC,KAAK0G,OAAOuB,Y,aAiPvB,OA7OE,YAAAzH,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKw2B,sCAAwCx2B,KAAKghB,iBAAiBtM,UAAU,gDAAgD,SAAC3R,GACxH,EAAK6vB,kBAAkB6D,eAGtB,EAAKx2B,KAAKy2B,eAIf,EAAKC,wBAAwB5zB,MAG/B9C,EAAK22B,wBAA0B,WAC7B,IAAMC,EAA0B52B,EAAKyY,QAAQC,cAAc,qEACtDke,GAILA,EAAMld,SAGR3Z,KAAKoyB,cAAcvrB,SAAS7G,KAAKC,KAAM,CACrC8L,YAAa,aACb8rB,kBAAmB,gBACnB7rB,2BAA4B,YAG9BhM,KAAKwL,2BAA2Bc,gBAAgB,CAC9CrM,KAAMA,EACNiM,UAAW,aACXC,eAAgB,gBAChBI,WAAY,CAAC,4BAA6B,6BAG5CtM,EAAKsM,WAAWC,kBAAkB3F,UAAS,SAACpC,GAC1C,OAAIA,EAAEgI,kBAIgB,6BAAlBhI,EAAEiI,UAAUjN,GACdQ,EAA2B,qBAAEE,SAAS8V,UACX,2BAAlBxR,EAAEiI,UAAUjN,IACrBQ,EAA6B,uBAAEE,SAAS8V,WANjC1Q,QAAQC,aAYnBvF,EAAK0G,OAAOC,SAASC,UAAS,SAAOpC,GAAC,+C,oEACpC,OAAS,MAALA,GAA6B,cAAdA,EAAEqC,MAAMrH,GACzB,KAGF,EAAAO,KAAiC,GAAMA,KAAKsI,oBAAoB+B,0BAA0B,EAAAvB,eAAe28J,W,OACzG,OADA,EAAKp7J,0BAA4B,SAC1B,CAAP,EAAO9E,QAAQC,qBAGjBvF,EAAKuN,QAAQ3G,UAAS,SAACpC,GAMrB,OALA,EAAKxE,KAAK0G,OAAOsf,eAAehU,KAAK,CACnCnL,MAAO,EAAK7G,KAAK0G,OAAOghB,QAAQ,0BAChCiQ,iBAAiB,IAGZryB,QAAQC,aAGjBvF,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,sFACX,eAA7BA,EAAKjkB,QAAQ8P,YAAb,MACGmU,EAAKhY,MAIkB,YAAxBgY,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAAiB,aAEzC,EAAA8D,EAAwB,GAAM9G,KAAKsyB,gBAAgBwF,wBAAwBzR,EAAKhY,SAD9E,MALJ,I,OAME,EAAM0pB,gBAAkB,SAExB93B,EAAK+R,qBAAqBC,KAAK,CAC7B7P,QAAS,CACP8P,YAAa,aACb7P,OAAQ,mBAEVgM,MAAOvH,EAAMixB,kB,uBAKS,oBAAxB1R,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAAiB,aAEzC,EAAA8D,EAAsB,GAAM9G,KAAK0yB,cAAcsF,sBAAsB3R,EAAKhY,SADxE,M,OAGiB,OAFnB,EAAM4pB,cAAgB,SAEH,GAAMj4B,KAAKsyB,gBAAgB4F,uBAAuB7R,EAAKhY,Q,cACxD,OADZ8pB,EAAa,UACf,OACFrxB,EAAMsxB,WAAaD,E,cAEA,OAAnB,EAAArxB,EAAmB,GAAM9G,KAAKuyB,cAAc8F,qBAAqBr4B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAW3gD,U,OAAlG,EAAMuU,WAAa,S,uBAKG,kBAAxB/R,EAAKjkB,QAAQC,OAAb,OACIW,EAAOhD,KAAKC,KAAK0G,OAAO3D,KAAKwhE,aAKnC,EAAAxhE,EAAkB,GAAMhD,KAAKiwF,gBAAgBu2E,cAC3CxjK,EAAKyjK,cACLzjK,EAAKg4D,cALL,I,OAGF,EAAKA,WAAa,S,sCAO1B,YAAAt5D,OAAA,WACM1B,KAAKw2B,wCACPx2B,KAAKw2B,sCAAsCl1B,UAC3CtB,KAAKw2B,sCAAwC,OAI3C,YAAAG,wBAAN,SAA8BxzB,G,sHACH,SAAMnD,KAAKC,KAAK6H,e,OACzC,OADyB,SACHC,SAIlBse,EAAO,IAAI,EAAAqgJ,sCAAsC,CACnD1uJ,UAAWhY,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAC5C0xB,uBAAwBv2B,EAAKw2B,yBAGxB,GAAM35B,KAAKuI,iBAAiBzI,QAAQumB,GAAM,KAR/C,I,cAQFA,EAAO,SACPljB,EAAKy2B,WAAY,EAEjB55B,KAAKC,KAAK0G,OAAOuB,Y,YAGb,YAAAkyB,eAAN,SAAqBr3B,G,+HACnB,SAAM/C,KAAKoyB,cAAcnkB,qB,OAGsC,OAH/D,SAEMosB,EAAgC,IAAI,EAAAC,8BAA8B,CAAErqB,QAASlN,EAAEqL,OAAOC,QAC7B,GAAMrO,KAAKuI,iBAAiBzI,QAAQu6B,I,cAA7FE,EAAyD,SAE/Dv6B,KAAKC,KAAkB,YAAEu6B,wBAAwBD,EAA6BE,aAC9Ez6B,KAAKC,KAAqB,eAAEu6B,wBAAwBD,EAA6BpqB,gBAE7EoqB,EAA6BG,yBAC/B16B,KAAKwyB,gCAAgC1sB,MAAK,SAACrB,GACzC,EAAKxE,KAAkB,YAAEu6B,wBAAwB/1B,MAChD,cAAW,CACZk2B,QAAS,uBACTC,QAAS,CAAC,CACRC,gBAAiB,kBACjBC,kBAAmB/3B,EAAEqL,OAAOC,UAKlCrO,KAAK+6B,kE,YAEP,YAAAC,6BAAA,SAA6Bj4B,GAC3B,IAAMk4B,EAAWl4B,EAAEqL,OAAOC,MAC1B,GAAK4sB,EAAL,CAIA,IAAMC,EAAUl7B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWv0D,QAC7CirB,GAAWl7B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAW/pC,cAC1Cz6B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWrpC,2BAA6Bp4B,EAAEqL,OAAOqC,gBACzEzQ,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWrpC,0BAA4BF,GAG/Dj7B,KAAKo7B,iCAAiC,CACpChtB,OAAQ,CACNC,MAAO4sB,MAKTC,GAAWl7B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWr0D,gBAC1CnQ,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWnpC,8BAAgCt4B,EAAEqL,OAAOqC,gBAC5EzQ,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWnpC,6BAA+BJ,KAIhE,YAAAG,iCAAN,SAAuCr4B,G,wHAErC,OADMk4B,EAAWl4B,EAAEqL,OAAOC,QAK1B,EAAArO,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAA8B,GAAMxkE,KAAK6yB,eAAeyI,iBAAiBL,KAH7F,I,cAGF,EAAiCM,iBAAmB,S,YAEtD,YAAAC,sBAAA,SAAsBz4B,GACpB,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAkB,YAAGw7B,6BAA6B33B,GACvD9D,KAAKC,KAAqB,eAAGw7B,6BAA6B33B,IAEhF,YAAA43B,0BAAA,SAA0B34B,GACxB,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAc,QAAGw7B,6BAA6B33B,GACnD9D,KAAKC,KAAqB,eAAGw7B,6BAA6B33B,IAEhF,YAAA63B,6BAAA,SAA6B54B,GAC3B,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAc,QAAGw7B,6BAA6B33B,GACnD9D,KAAKC,KAAkB,YAAGw7B,6BAA6B33B,IAG/D,YAAAi3B,gEAAd,W,wHACE,OAAI/6B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAW78D,SAAW3H,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWx8D,GAAK,EACpF,IAGwB,GAAMhI,KAAKyyB,0BAA0B0J,yBAAyBn8B,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAWv0D,U,OAC3G,OADRmsB,EAAoB,SACZ,GAAMp8B,KAAKuL,kBAAkB8wB,uDAAuDD,EAAkB3tB,6B,cAErG,OAFXgV,EAAU,UAEV,MACQ,GAAMzjB,KAAKuyB,cAAc+J,yB,OAAnC7Y,EAAU,S,wBAGZzjB,KAAKC,KAAK0G,OAAO3D,KAAKwhE,WAAW3gD,QAAUJ,EAE3CzjB,KAAKC,KAAK+R,qBAAqBC,KAAK,CAClC7P,QAAS,CACP8P,YAAa,aACb7P,OAAQ,WAEVgM,MAAOoV,I,YAjjBAghI,EAAgB,cAF5B,EAAArlJ,WACA,EAAAuB,Y,kCAMyB,EAAA0R,qBACC,EAAAnH,eACA,EAAAtK,aACa,EAAA2R,0BACV,EAAAvH,gBACC,EAAA5C,iBACF,EAAAq0B,eACF,EAAAC,aACY,EAAAE,yBACZ,EAAAC,aACkB,EAAAF,+BAChB,EAAAyzD,eACC,EAAAh3E,gBACC,EAAA2jB,iBACH,EAAAC,cACE,EAAA3jB,gBACI,EAAApO,oBACA,EAAAE,oBACD,EAAAJ,sBAvBpB05I,GAAb,GAAa,EAAAA,oB,yTCfb,iBACE,WACU3tD,EACApsE,GADA,KAAAosE,WACA,KAAApsE,mBA0BZ,OAvBE,YAAA5U,KAAA,SAAKm9D,GAIH,IAHA,IAAI0zF,EAAK,KACL74E,EAAK9tF,KAAK82F,SAEPhJ,GAAI,CACT,IAAMwsE,EAAKxsE,EAAO,GAClB,GAAIwsE,GAAMA,EAAGxvG,YAAcwvG,EAAGxvG,WAAWzqC,UAAW,CAClD,IAAMumJ,EAAYtM,EAAGxvG,WAAWzqC,UAChC,GAAIumJ,GAAaA,aAAqB,EAAA/hJ,SAAU,CAC9C8hJ,EAAKC,EACL,OAIJ94E,EAAKA,EAAG/0E,cAGV/Y,KAAK0qB,iBAAiB5U,KAAK,CACzBu9B,iBAAkBszH,EAClB5wJ,YAAY,EACZzR,IAAK2uE,KAGX,EA7BA,G,wOCMA,iBACE,WAAoBwM,GAAA,KAAAA,gBAuEtB,OApEE,YAAAhkE,QAAA,SAAQtH,EAAajF,GACnB,IAAM23J,EAAe,IAAIC,EAIzB,OAFA9mK,KAAK+mK,UAAUF,EAAc1yJ,EAAQjF,GAE9B,WACL23J,EAAavlK,YAIT,YAAAylK,UAAR,SAAkBF,EAA4B1yJ,EAAajF,GAC3C,MAAViF,IAEOA,aAAkBxP,OAElBwR,MAAMC,QAAQjC,GACvBnU,KAAKgnK,eAAeH,EAAc1yJ,EAAQjF,GACf,iBAAXiF,GAChBnU,KAAKinK,gBAAgBJ,EAAc1yJ,EAAQjF,MAGvC,YAAA83J,eAAR,SAAuBH,EAA4B1yJ,EAAajF,GAsB9D,IAtBF,WACQg4J,EAAkBL,EAAaM,wBAAwBhzJ,GAqB1C,GAnBFnU,KAAKy/E,cAAc2nF,mBAClCjzJ,GACAO,WAAU,SAAC3R,GACX,IAAqB,UAAAA,EAAA,eAAG,CAAnB,IAAMskK,EAAM,KACf,GAAIA,EAAOC,WAAa,EACtB,IAAK,IAAIxrJ,EAAIurJ,EAAOjwJ,MAAO0E,EAAIurJ,EAAOC,WAAYxrJ,IAChD,EAAKirJ,UAAUG,EAAiB/yJ,EAAO2H,GAAI5M,GAG/C,GAAIm4J,EAAOE,QAAQriK,OAAS,EAC1B,IAAmB,UAAAmiK,EAAOE,QAAP,eAAgB,CAA9B,IAAMpkK,EAAI,KACb+jK,EAAgB5lC,OAAOn+H,IAK7B+L,OAGiB,KAAAiF,EAAA,eAAQ,CAAtB,IAAMhR,EAAI,KACbnD,KAAK+mK,UAAUG,EAAiB/jK,EAAM+L,KAGlC,YAAA+3J,gBAAR,SAAwBJ,EAA4B1yJ,EAAajF,GAAjE,WACQg4J,EAAkBL,EAAaM,wBAAwBhzJ,GAE7D,IAAK,IAAMijD,KAAYjjD,EACrB,GAAIA,EAAOqzJ,eAAepwG,GAAW,CACnC,IAAMH,EAAWj3D,KAAKy/E,cAAcgoF,iBAClCtzJ,EACAijD,GACA1iD,WAAU,SAACiH,EAAUkO,GACrBq9I,EAAgB5lC,OAAOz3G,GACvB,EAAKk9I,UAAUG,EAAiBvrJ,EAAUzM,GAE1CA,OAGFg4J,EAAgBQ,YAAYzwG,GAE5Bj3D,KAAK+mK,UAAUG,EAAiB/yJ,EAAOijD,GAAWloD,KApE7C8iJ,EAAmB,cAD/B,EAAA5yJ,W,kCAEoC,EAAA8gF,iBADxB8xE,GAAb,GAAa,EAAAA,sBA0Eb,iBACE,aAGA,KAAA9iH,UAA0B,GAC1B,KAAAvD,SAAW,IAAIg8H,IA+BjB,OA7BE,YAAAR,wBAAA,SAAwBxc,GACtB,IAAMuc,EAAkB,IAAIJ,EAG5B,OAFA9mK,KAAK2rC,SAAS0wH,IAAI1R,EAAOuc,GAElBA,GAET,YAAAQ,YAAA,SAAYzwG,GACVj3D,KAAKkvC,UAAU/tC,KAAK81D,IAEtB,YAAAqqE,OAAA,SAAOqpB,GACL,IAAMkc,EAAe7mK,KAAK2rC,SAAStnC,IAAIsmJ,GAElCkc,IAILA,EAAavlK,UACbtB,KAAK2rC,SAASliB,OAAOkhI,KAEvB,YAAArpJ,QAAA,WACEtB,KAAKkvC,UAAUztC,SAAQ,SAAA0B,GACrBA,EAAK7B,aAEPtB,KAAK2rC,SAASlqC,SAAQ,SAAA0B,GACpBA,EAAK7B,aAGPtB,KAAKkvC,UAAY,IAErB,EApCA,I,wKCnFA,SAAYxgC,GACV,kDACA,oEACA,oCAHF,CAAY,EAAAA,kBAAA,EAAAA,gBAAe,M,qUCa3B,iBAIE,WACS0jB,EACA/mB,EACC7C,EACAF,EACAiD,EACAgnB,EACAE,EACAhqB,EACAE,EACAJ,GAVV,WACS,KAAA6pB,gBACA,KAAA/mB,iBACC,KAAA7C,gBACA,KAAAF,sBACA,KAAAiD,oBACA,KAAAgnB,gBACA,KAAAE,4BACA,KAAAhqB,uBACA,KAAAE,uBACA,KAAAJ,mBAbF,KAAAK,eAAyB,IACzB,KAAAg/J,oCAAqC,EAiB7C,KAAAC,IAAc,EAEd,KAAAroK,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,eACZC,UAAW,GACXiJ,oBAAqB,iQACrBhJ,MAAO,mBACPC,QAAS,0D,oDACDL,EAAKO,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GACrDhI,KAAKsI,oBAAoB9H,OAAO,EAAAsI,eAAeoyC,iBAAkB,CAACz7C,I,YAGtE,KAAAqoK,gDAAgE,CAC9DroK,GAAI,0CACJC,KAAM,OACNC,WAAY,mBACZE,MAAO,kDACPD,UAAW,GACX0T,oBAAqB,6FACrBxT,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIhB/H,KAAK4nK,sCAAqC5nK,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBkoJ,0BAC/E/nK,KAAKC,KAAK0G,OAAO3D,KAAKglK,iCAAiCC,WAItDC,EAAoDloK,KAAKC,KAAoC,gCAChEioK,EAA4B/nK,SAC7D,GAAMH,KAAKwI,cAActI,iBAAiBgoK,EAA4B/nK,SAAS+yB,gBAD7E,OATF,I,OAUA,SACAg1I,EAA4B/nK,SAAS8V,U,wBAGvCjW,KAAKC,KAAyC,mCAAEE,SAAS2F,O,aAG7D,KAAAqiK,sCAAsD,CACpD1oK,GAAI,iCACJI,MAAO,wCACPC,QAAS,0D,sEAQqE,OAPtEC,EAA6BC,KAAKC,KAAoC,8BAEtE0N,EAAW,IAAI,EAAAy6J,yDAAyD,CAC5ExoJ,mBAAoB5f,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GAC9Dk3D,8BAA+Bn/D,EAAKI,SAASE,uBAG6B,GAAML,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,I,cAA9C,SAC5E3N,KAAKC,KAAyC,mCAAEE,SAASiV,OACzDpV,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAAmgK,yCAAyD,CACvD5oK,GAAI,oCACJI,MAAO,sCACPC,QAAS,0D,sEAOP,OANMC,EAA6BC,KAAKC,KAAoC,8BAEtE0N,EAAW,IAAI,EAAA26J,sCAAsC,CACzDppG,8BAA+Bn/D,EAAKI,SAASE,uBAG/C,GAAML,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,I,cAA9C,SACA5N,EAAKI,SAAS8V,U,aAGlB,KAAAsyJ,wBAAwC,CACtC9oK,GAAI,mBACJE,WAAY,mBACZD,KAAM,OACNG,MAAO,mCACPD,UAAW,IACXiJ,oBAAqB,mDACrB/I,QAAS,SAAOiD,GAAC,+C,6DACTylK,EAAe,SAAOpzI,GAAG,+C,oEAM7B,OALMznB,EAAW,IAAI,EAAA86J,sCAAsC,CACzD7oJ,mBAAoB5f,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GAC9D4B,IAAKwrB,IAGP,GAAMp1B,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,I,cAA9C,SACA3N,KAAKC,KAAK0G,OAAOuB,Y,aAGbotB,EAAc,IAAI,EAAAxhB,aACZC,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,kCAC9CrJ,QAAS,WACP0oK,EAAa,MAGjBlzI,EAAYvhB,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,oCAC9CrJ,QAAS,WACP0oK,EAAa,MAI2C,GAAxDxoK,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBrV,YAAmBxK,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBlW,QAAkE,GAAxD3J,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBlW,OAAOC,KACpK0rB,EAAYvhB,MAAM5S,KAAK,CACrBisD,YAAY,EACZp5C,KAAMhU,KAAKyI,qBAAqBU,cAAc,6CAC9CrJ,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIhB/H,KAAKC,KAAKsM,WAAWzG,KAAK,2BAA4B,M,KAHpD,cAQRwvB,EAAYxvB,KAAK/C,EAAEmR,OAASnR,EAAEmR,MAAMC,OAASpR,EAAEmR,MAAMC,OAAS,M,YAIlE,KAAAu0J,iCAAiD,CAC/CjpK,GAAI,mCACJC,KAAM,OACNC,WAAY,mBACZE,MAAO,0CACPD,UAAW,GACX0T,oBAAqB,6FACrBxT,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV4gK,EAA2C3oK,KAAKC,KAA2B,uBACvD0oK,EAAmBxoK,SAC3C,GAAMH,KAAKwI,cAActI,iBAAiByoK,EAAmBxoK,SAAS+yB,gBADpE,MAJF,I,OAKA,SACAy1I,EAAmBxoK,SAAS8V,U,wBAG9BjW,KAAKC,KAAgC,0BAAEE,SAAS2F,O,aAGpD,KAAA8iK,wBAAwC,CACtCnpK,GAAI,0BACJI,MAAO,wCACPC,QAAS,0D,sEAQ0D,OAP3DC,EAA6BC,KAAKC,KAA2B,qBAE7D0N,EAAW,IAAI,EAAAk7J,8CAA8C,CACjEjpJ,mBAAoB5f,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GAC9D8gK,qBAAsB/oK,EAAKI,SAASE,uBAG2B,GAAML,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,I,cAA9C,SACjE3N,KAAKC,KAAgC,0BAAEE,SAASiV,OAChDpV,KAAKC,KAAK0G,OAAOuB,Y,aAIrB,KAAAc,sBAAsC,CACpCvJ,GAAI,iBACJE,WAAY,mBACZE,MAAO,gCACPH,KAAM,QACNE,UAAW,IACX0T,oBAAqB,0CACrBxT,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIS,GAAM/H,KAAK2I,qBAAqBoB,wBACvD/J,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBgU,SAC1C7zB,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GAC1C,iBANA,I,OASF,OANyB,SAUzB,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAipK,oCAAoC,CAC1EnpJ,mBAAoB5f,KAAKC,KAAK0G,OAAO3D,KAA0B,oBAAEgF,MAC/D,IALF,I,OAOF,OAJA,SAIO,CAAP,EAAOhI,KAAKC,KAAK0G,OAAOuB,sBAI5B,KAAA0tB,iBAAiC,CAC/Bn2B,GAAI,mBACJC,KAAM,QACNE,UAAW,IACXC,MAAO,0CACPyT,oBAAqB,6FACrBxT,QAAS,0D,gFACY,SAAME,KAAKC,KAAK6H,e,OACnC,IADmB,SACHC,QACd,UAMF,GAHMhI,EAA6BC,KAAKC,KAAsC,gCAGjC,IAFvC+oK,EAAiCjpK,EAAKI,SAAS8I,uBAElB/D,OAKjC,OAJAmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,yCACxC,QACAnJ,KAAK4I,gBACP,I,IAGsC,EAAAogK,E,wBAAA,YAA7BC,EAAyB,KACT,GAAMjpK,KAAK2I,qBAAqBoB,wBACvDk/J,EAA0Bp1I,SAC1Bo1I,EAA0BjhK,GAC1B,cAJkE,M,OAOpE,IANyB,SAOvB,U,wBARoC,I,iBAYA,EAAAghK,E,wBAAA,YAA7BC,EAAyB,KACW,GAAMjpK,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAi2B,uBAAuB,CAC1GC,cAAeizI,EAA0BjhK,GACzCiuB,WAAY,QAEZ,KALkE,M,OACvB,S,wBADP,I,oBAQxCj2B,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAAguB,mBAAmC,CACjCz2B,GAAI,UACJC,KAAM,QACNG,MAAO,cACPs2B,QAAS,sBACTv2B,UAAW,KACX0T,oBAAqB,+FACrBxT,QAAS,0D,kFACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAAsC,gCACxE+oK,EAAiCjpK,EAAKI,SAAS8I,sBACrDlJ,EAAKI,SAASI,iBAE+B,GAAzCyoK,EAA+B9jK,QACjCmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,yCACxC,QACAnJ,KAAK4I,gBACP,MAGI/I,EAAQG,KAAKyI,qBAAqBU,cAAc,iBAChDC,EAAWpJ,KAAKyI,qBAAqBU,cAAc,6BAErC,GAAMnJ,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAAQJ,EAAUvJ,OAlBnG,I,OAmBF,IADoB,SAElB,UAGF,GAAImpK,EAA+Bv/J,MAAK,SAACC,GAAM,OAAe,GAAfA,EAAE0sB,aAK/C,OAJA/sB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,oCACxC,QACAnJ,KAAK4I,gBACP,I,IAGsC,EAAAogK,E,wBAAA,YAA7BC,EAAyB,KACT,GAAMjpK,KAAK2I,qBAAqBoB,wBACvDk/J,EAA0Bp1I,SAC1Bo1I,EAA0BjhK,GAC1B,cAJkE,M,OAOpE,IANyB,SAOvB,U,wBARoC,I,aAcxC,OAFMquB,EAAS2yI,EAA+B/+J,KAAI,SAACP,GAAM,OAAAA,EAAE1B,MAE3D,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAopK,6CAA6C,CACnFC,gCAAiC9yI,KAC/B,I,cAFJ,SAIAr2B,KAAKC,KAAK0G,OAAOuB,Y,aA+IvB,OA3IE,YAAAzH,KAAA,SAAKR,GAAL,WACED,KAAKC,KAAOA,EAEZD,KAAKC,KAAK0G,OAAO3D,KAAKglK,iCAAmC,CACvDC,UAAU,GAGZhoK,EAAK22B,wBAA0B,WAC7B,IAAMuoC,EAA8Bl/D,EAAKyY,QAAQC,cAAc,yEAC1DwmD,GAILA,EAAUxlD,SAGZ3Z,KAAKoyB,cAAcvrB,SAAS7G,KAAKC,KAAM,CACrC8L,YAAa,sBACbC,2BAA4B,gBAG9B/L,EAAKsM,WAAWC,kBAAkB3F,UAAS,SAACpC,GAC1C,OAAIA,EAAEgI,iBAIgB,4BAAlBhI,EAAEiI,UAAUjN,IACd,EAAKQ,KAAK0G,OAAOuB,YAJV3C,QAAQC,aAUnBvF,EAAK0G,OAAOC,SAASC,UAAS,SAAOpC,GAAC,+C,oEACpC,OAAS,MAALA,GAA6B,uBAAdA,EAAEqC,MAAMrH,GACzB,KAGF,EAAAO,KAAiC,GAAMA,KAAKsI,oBAAoB+B,0BAA0B,EAAAvB,eAAeoyC,oB,OACzG,OADA,EAAK7wC,0BAA4B,SAC1B,CAAP,EAAO9E,QAAQC,qBAGjBvF,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,4EACX,wBAA7BA,EAAKjkB,QAAQ8P,YAAb,MACGmU,EAAKhY,MAIkB,YAAxBgY,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAA0B,sBAElD,EAAA8D,EAAmB,GAAM9G,KAAKuyB,cAAc8F,qBAAqBhS,EAAKhY,SADpE,MALJ,I,OAME,EAAM+pB,WAAa,S,qCAM3Bp4B,KAAKopK,oCAGD,YAAAhqG,mBAAN,SAAyBr8D,G,gHACvB,SAAM/C,KAAKoyB,cAAcnkB,qB,OACzB,OADA,SACA,GAAMjO,KAAKqpK,gB,cAAX,SAEArpK,KAAK+6B,kE,YAEP,YAAAuuI,wBAAA,SAAwBvmK,GACtB,IAAM84B,EAA0B94B,EAAE2V,QAAQC,cAAc,+BAClD49B,EAAmB,MAAXxzC,EAAEsL,MACZ+3F,KAAKC,IAAItjG,EAAEsL,OAAS,IAClB,UACA,eACFwzB,EAEA0U,IACF1a,EAAMlxB,MAAME,gBAAkB0rC,EAC9B1a,EAAMlxB,MAAMC,MAAQ,UAIV,YAAAy+J,aAAd,W,0HAEE,OADMrmK,EAAOhD,KAAKC,KAAK0G,OAAO3D,KAAK6c,qBACzBgE,SAAY7gB,EAAK8c,aAIrBnS,EAAW,IAAI,EAAA47J,qBAAqB,CACxC1lJ,QAAS7gB,EAAK6gB,QACdk3B,oBAAqB/3C,EAAK8c,cAGY,GAAM9f,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KARpF,I,OASF,OADM+H,EAAkC,UACpB8zJ,WAIpBxmK,EAAKwmK,UAAY9zJ,EAAe8zJ,U,KAH9B,YAKI,YAAAJ,iCAAR,sBACEppK,KAAKC,KAAKwG,YAAW,WACnB,IAAMulD,EAA+C,EAAK/rD,KAA2C,qCAC/FmyC,EAAiB4Z,EAAY5Z,eAEnC4Z,EAAY5Z,eAAiB,SAACrvC,GACxBqvC,GACFA,EAAervC,GAGZ,EAAK6kK,qCAIV,EAAKA,oCAAqC,EACf7kK,EAAE6d,UAAWxgB,kBAIhC,YAAA26B,gEAAd,W,wHACE,OAAI/6B,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBlY,SAAW3H,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoB7X,GAAK,EACtG,IAGwB,GAAMhI,KAAKyyB,0BAA0B0J,yBAAyBn8B,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBC,c,OACpH,OADRsc,EAAoB,SACZ,GAAMp8B,KAAKuL,kBAAkB8wB,uDAAuDD,EAAkB3tB,6B,cAErG,OAFXgV,EAAU,UAEV,MACQ,GAAMzjB,KAAKuyB,cAAc+J,yB,OAAnC7Y,EAAU,S,wBAGZzjB,KAAKC,KAAK0G,OAAO3D,KAAK6c,oBAAoBgE,QAAUJ,EAEpDzjB,KAAKC,KAAK+R,qBAAqBC,KAAK,CAClC7P,QAAS,CACP8P,YAAa,sBACb7P,OAAQ,WAEVgM,MAAOoV,I,YAxcA23H,EAAyB,cAFrC,EAAAh8I,WACA,EAAAuB,Y,kCAMyB,EAAA0R,qBACC,EAAAnH,eACA,EAAAtK,aACM,EAAAmK,mBACF,EAAA3C,iBACJ,EAAAs0B,aACY,EAAAE,yBACL,EAAA3xB,oBACA,EAAAE,oBACJ,EAAAH,mBAdjBowI,GAAb,GAAa,EAAAA,6B,kPCJb,iBACE,WACU97I,EACAC,GAFV,WACU,KAAAD,eACA,KAAAC,cAIV,KAAAC,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,UACZC,UAAW,GACXC,MAAO,aACPC,QAAS,0D,sEAEP,OADMC,EAA6BC,KAAKC,KAAsB,gBAC9D,GAAMD,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASC,c,OAC1C,OADb,SACa,GAAMJ,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASE,uB,cAA9DC,EAAO,SAEbP,EAAKI,SAASI,iBAEdP,KAAKT,YAAYiB,OAAO,gBAAiBF,G,aAO/C,OAHE,YAAAG,KAAA,SAAKR,GACHD,KAAKC,KAAOA,GAzBHo8I,EAAkB,cAF9B,EAAAj9I,WACA,EAAAuB,Y,kCAGyB,EAAAC,aACD,EAAAC,eAHZw7I,GAAb,GAAa,EAAAA,sB,mQCJb,iBACE,WACUppI,EACAw2J,GADA,KAAAx2J,kBACA,KAAAw2J,mBAERzpK,KAAK0pK,2BAwBT,OArBE,YAAAC,oBAAA,SAAoB1tJ,EAAcw/B,GAChC,IAAMG,EAAW57C,KAAKypK,iBAAiBjuH,YAAYv/B,EAAOw/B,GAC1D,OAAKG,EAIEA,EAASv0B,SAHP,MAMH,YAAAqiJ,yBAAR,sBACE1pK,KAAKiT,gBAAgByB,UAAU,gCAAgC,SAAC3R,GACzDA,GAGAA,EAAEkZ,QAIPlZ,EAAEskB,SAAW,EAAKsiJ,oBAAoB5mK,EAAEkZ,MAAOlZ,EAAE04C,+BA1B1C8kC,EAAe,cAD3B,EAAAnhF,W,kCAG4B,EAAAga,gBACC,EAAAyiC,oBAHjB0kC,GAAb,GAAa,EAAAA,mB,4NCMb,iBACE,cAOF,OAHE,YAAAz6E,KAAA,SAAKof,EAAwCC,EAA8BpjB,GACzE/B,KAAK82G,oBAAoBzxF,UAAUH,EAAiBC,EAAgBpjB,IAN3Dg2G,EAAoB,cADhC,EAAA34G,W,sCACY24G,GAAb,GAAa,EAAAA,wB,oPCPb,iBACE,WACU9kG,GAAA,KAAAA,kBAERjT,KAAKiT,gBAAgByB,UAAU,UAAU,SAAC3R,GACxCsG,WAAWC,GAAGO,OAAO9G,EAAE6uB,QAAS7uB,EAAE2b,MAAQ,UAAW3b,EAAE6mK,aAAe,QAExE5pK,KAAKiT,gBAAgByB,UAAU,SAAS,SAAC3R,GACvCsG,WAAWC,GAAGC,OAAOsgK,MAAM9mK,EAAE6uB,QAAS7uB,EAAElD,OAAS,kBAGvD,OAXaiqK,EAAY,cADxB,EAAA1qK,W,kCAG4B,EAAAga,mBAFhB0wJ,GAAb,GAAa,EAAAA,gB,6RCOb,iBACE,WACSz+J,EACC7C,EACAF,GAHV,WACS,KAAA+C,iBACC,KAAA7C,gBACA,KAAAF,sBAMV,KAAA9I,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,UACZC,UAAW,GACXiJ,oBAAqB,oKACrBhJ,MAAO,mBACPC,QAAS,0D,sEAEP,OADMC,EAA6BC,KAAKC,KAA6B,uBACrE,GAAMD,KAAKwI,cAActI,iBAAiBH,EAAKI,SAASC,c,OAC3C,OADb,SACa,GAAMJ,KAAKwI,cAActI,iBAAiBH,EAAKI,SAASE,uB,cAA/DC,EAAO,SAEbP,EAAKI,SAASI,iBAEdP,KAAKsI,oBAAoB9H,OAAO,EAAAsI,eAAeoyC,iBAAkB56C,G,aAsCvE,OAlCE,YAAAG,KAAA,SAAKR,GAAL,WACED,KAAKC,KAAOA,EAEZD,KAAKC,KAAKmK,WAAWvD,UAAS,SAAOpC,GAAC,+C,oEACH,OAAjC,EAAAzE,KAAiC,GAAMA,KAAKsI,oBAAoB+B,0BAA0B,EAAAvB,eAAeoyC,mB,OACzG,OADA,EAAK7wC,0BAA4B,SAC1B,CAAP,EAAO9E,QAAQC,sBAInB,YAAA8E,6BAAA,SAA6BvH,GAC3B,GAAiB,QAAbA,EAAEwH,SAA0C,MAArBxH,EAAEC,KAAKwH,YAGT,GAArBzH,EAAEC,KAAKwH,WAAX,CAGA,IAAM63C,EAAYt/C,EAAEsL,MACpB,GAAW,MAAPg0C,EAAJ,CAIA,IAAM0nH,EAAOl3J,EAAOwvC,GACjB0nH,KAAK,IAAIplK,KAAQ,QAEd8F,EAA6B1H,EAAE2H,YACrCD,EAAKE,MAAMC,MAAQ,QACfy3C,EAAIz9C,YAAa,IAAID,MAAOC,UAC9B6F,EAAKE,MAAME,gBAAkB,UAE7BJ,EAAKE,MAAME,gBADFk/J,GAAQ,EACY,UAEA,aA3DtBxuB,EAAyB,cAFrC,EAAAn8I,WACA,EAAAuB,Y,kCAG0B,EAAAuK,eACA,EAAAtK,aACM,EAAAmK,sBAJpBwwI,GAAb,GAAa,EAAAA,6B,qNCXb,oBACA,oBACA,oBACA,qB,0aCUA,iBACE,WACUhiI,EACAywJ,GAFV,WACU,KAAAzwJ,kBACA,KAAAywJ,sBAMV,KAAAC,0BAA0C,CACxCxqK,GAAI,qBACJE,WAAY,YACZD,KAAM,aACNG,MAAO,gCACPC,QAAS,0D,oDACDgjB,EAAmC9iB,KAAKC,KAAuB,oBAEhD6iB,EAAU3iB,SAAS2R,gBAC3BC,SAEX+Q,EAAUC,UAAU,CAClB1U,MAAO,QAIsBrO,KAAKC,KAAmC,6BACnEE,SAAS2F,OAEsB9F,KAAKC,KAAoB,cACtD8iB,UAAU,CAChB1U,MAAOwE,IAASoQ,SAAS,EAAG,SAASG,MAAM,SAASD,W,YAK1D,KAAA+mJ,4BAA4C,CAC1CzqK,GAAI,uBACJC,KAAM,WACNG,MAAO,YACPC,QAAS,0D,4EAUP,OATM4Z,EAA2B1Z,KAAKC,KAAmC,6BACnEigD,EAA+BlgD,KAAKC,KAAoB,cACxD6iB,EAAmC9iB,KAAKC,KAAuB,kBAE/DkqK,EAAqC,CACzCtmJ,QAASf,EAAU3iB,SAAS0gB,OAAO,SACnCupJ,IAAKlqH,EAAQ//C,SAAS0gB,OAAO,WAGbgD,QAIbsmJ,EAAaC,KAKZz8J,EAAW,IAAI,EAAA08J,0BAA0BF,GAEF,GAAMnqK,KAAKuZ,gBAAgBzZ,QAAQ6N,GAAU,MANxFtE,WAAWC,GAAGO,OAAO7J,KAAKgqK,oBAAoB7gK,cAAc,4BAA6B,QAAS,KAClG,MALAE,WAAWC,GAAGO,OAAO7J,KAAKgqK,oBAAoB7gK,cAAc,8BAA+B,QAAS,KACpG,K,cAS2C,SAE7CnJ,KAAKC,KAAK0G,OAAOuB,YAEjBmB,WAAWC,GAAGO,OAAO7J,KAAKgqK,oBAAoB7gK,cAAc,0CAA2C,UAAW,KAClHuQ,EAAMvZ,SAASiV,O,aAOrB,OAHE,YAAA3U,KAAA,SAAKR,EAAgBgB,GACnBjB,KAAKC,KAAOA,GAtEHioJ,EAAkB,cAF9B,EAAAvnJ,YACA,EAAAvB,W,kCAG4B,EAAA4L,gBACI,EAAAC,uBAHpBi9I,GAAb,GAAa,EAAAA,sB,gOCLb,iBACE,WACUvkJ,GAAA,KAAAA,OAoBZ,OAjBQ,YAAAq0B,sBAAN,SAA4B4rF,G,wHAMhB,OALJp/G,EAAa,CACjBT,QAAS,CAAC,MACVC,MAAO,CAAC,CAAC,iBAAiB,GAAO,CAAC,YAAa4/G,KAGvC,GAAM5jH,KAAK2D,KAAKU,IAAI,CAC5BC,IAAKtE,KAAK2D,KAAKY,aAAa,wBAC5BC,WAAU,K,OAGZ,OALMC,EAAI,WAKDA,EAAES,OAAS,EACX,CAAP,EAAOT,EAAE,GAAGuD,IAEL,CAAP,EAAO,cAnBA60B,EAAY,cADxB,EAAAz9B,W,kCAGiB,EAAAsG,eAFLm3B,GAAb,GAAa,EAAAA,gB,iXCRL,gFAAA1gB,kBACA,wFAAAkzB,0BACA,iFAAAje,mBACA,sFAAAjyB,wBACA,kFAAA49B,oBACA,kFAAA2F,oBACA,mFAAArY,qBACA,gFAAAnO,kBACA,mFAAAkoB,qBACA,mFAAAkL,qBACA,gFAAAyC,kBACA,+EAAAiZ,iBACA,sFAAA+7B,wBACA,mFAAAv0E,qBACA,gFAAA+8B,kBACA,kFAAAsM,oBACA,+EAAAU,iBACA,sFAAArqB,yB,wNCbR,iBAEE,WACUnO,GAAA,KAAAA,eAWZ,OATE,YAAAsjH,sCAAA,SAAsCijC,EAAwB3lI,GAC5D,OAAO3kC,KAAK+jB,aAAa0B,KAAK,CAC5BnhB,IAAKtE,KAAK+jB,aAAaxf,aAAa,uCACpCvB,KAAM,CACJgF,GAAIsiK,EACJ1lI,gBAAiBD,MAVZqjG,EAAiB,cAD7B,EAAA5oI,W,kCAIyB,EAAAsG,eAHbsiI,GAAb,GAAa,EAAAA,qB,+ICFb,iBACE,WACUppF,GAAA,KAAAA,sBASZ,OANE,YAAAc,eAAA,SAAe39C,GACb/B,KAAK4+C,oBAAoBc,eAAe39C,IAE1C,YAAAq/E,gBAAA,SAAgBr/E,GACd/B,KAAK4+C,oBAAoBwiC,gBAAgBr/E,IAE7C,EAXA,G,iVCuBA,iBACE,WACUF,EACAkkC,EACA9rB,EACAk6B,EACAlhC,GAJA,KAAApR,oBACA,KAAAkkC,gBACA,KAAA9rB,eACA,KAAAk6B,WACA,KAAAlhC,kBA0PZ,OAvPE,YAAA4c,YAAA,SAAY5vB,EAAgB8B,GAA5B,WACQkqD,EAAmDjsD,KAAK6B,kBAAkBI,oBAAoBhC,EAAM8B,GAEtGwoK,GAAyB,EAC7B,GAAIxoK,EAAQgC,QAAS,CACnB,IAAM,EAAa,GAEnBkoD,EAAgBloD,QAAUhC,EAAQgC,QAAQkG,KAAI,SAAAugK,GAC5C,IAAMrxH,EAAyC,GAmE/C,OAjEIqxH,EAAI7vI,UACNwe,EAAOxe,QAAU,EAAK1gB,aAAa9Q,cAAcqhK,EAAI7vI,QAAS16B,EAAKqb,iBAEjEkvJ,EAAInoK,SACN82C,EAAOvgB,UAAY4xI,EAAInoK,QAErBmoK,EAAIriG,WACNhvB,EAAOgvB,SAAgBqiG,EAAIriG,UAER,MAAjBqiG,EAAI5qK,WAA0C,MAAjB4qK,EAAIrmK,YACnCg1C,EAAOv5C,UAAY4qK,EAAI5qK,UACvBu5C,EAAOh1C,UAAYqmK,EAAIrmK,WAErBqmK,EAAIvjI,QACNkS,EAAOlS,MAAQujI,EAAIvjI,OAEjBujI,EAAIpyH,WACNe,EAAOf,SAAWoyH,EAAIpyH,UAEpBoyH,EAAIxlK,SACNm0C,EAAOn0C,OAAS,EAAK+gC,cAAce,mBAAmB0jI,EAAIxlK,SAExDwlK,EAAIC,eACNtxH,EAAOgvB,SAAW,SAClBhvB,EAAOovB,cAAgB,SAACmiG,GACtB,OAAsB,MAAlBA,EAASr8J,MACJ,GAGF,EAAK8lC,SAASljB,eAAeu5I,EAAIC,aAAcC,EAASr8J,MAAMkQ,cAGrEisJ,EAAIG,kBACNxxH,EAAOovB,cAAgB,SAACxlE,GACtB,OAAO9C,EAAKmC,QAAQtC,QAAQG,EAAKgc,MAAOuuJ,EAAIG,gBAAiB5nK,KAG7DynK,EAAII,8BACNzxH,EAAOL,0BAA4B,SAACzqC,EAAY2P,EAAe7J,GAC7D,OAAOlU,EAAKmC,QAAQtC,QAAQG,EAAKgc,MAAOuuJ,EAAII,4BAA6B,CACvEv8J,MAAOA,EACP2P,SAAUA,EACV7J,OAAQA,MAKVq2J,EAAIK,iBACN,EAAW1pK,KAAK,CACdg4C,OAAQqxH,EAAInoK,OACZ+sI,YAAa,MACb7mE,cAAe,SAACxlE,GACd,OAAe,MAAXA,EAAEsL,MACG,KAGF,EAAK03B,cAAc/gC,OAAOjC,EAAEsL,MAAOm8J,EAAIxlK,WAKhDwlK,EAAIn6F,iBACNk6F,GAAyB,GAGpBpxH,KAGL,EAAWj0C,OAAS,IACtB+mD,EAAgB+J,QAAU,CACxBm5E,WAAY,IAKlB,GAAIptI,EAAQI,YAAcJ,EAAQK,QAAQC,OAAQ,CAChD,IAAM0kD,EAAwD,GAE9D/mD,KAAKiT,gBAAgBuF,QAAQ,kCAAmC,CAC9DvY,KAAMA,EACN8B,QAASA,EACTkqD,gBAAiBA,EACjBlF,qBAAsBA,IAGxB,IAAM,EAAa/mD,KAAK6B,kBAAkBU,qBAAqBtC,EAAM8B,EAASkqD,EAAiBlF,GAC/FkF,EAAgB3pD,WAAa,EAE7B2pD,EAAgBS,qBAAsB,EACtCT,EAAgB++C,mBAAqB,SAErC/+C,EAAgBsqD,iBAAmB,CACjCC,WAAW,EACXthE,QAAQ,EACRqvD,SAAS,EACTvuC,SAAS,GAGPj0D,EAAQ6jD,YACV3lD,EAAKggF,cAAcp5E,UAAS,SAAA9D,GAE1B,OADA,EAAWgP,SACJxM,QAAQC,kBAIZzD,EAAQK,QAAQC,SACvB4pD,EAAgBzpD,eAA2B,WAAIT,EAAQK,QAAQK,WAK7DV,EAAQ+oK,eAA2C,MAAzB/oK,EAAQ+oK,eAA4B/oK,EAAQ6jD,cACxEqG,EAAgBi9C,UAAY,CAC1Bl+D,SAAS,GAEXihB,EAAgBjT,aAAe,CAC7BhO,SAAS,EACT+/H,aAAa,IAIjB/qK,KAAK6B,kBAAkBa,oBAAoBzC,EAAM8B,GACjD,IAAMY,EAAgB3C,KAAK6B,kBAAkBe,iBAAiB3C,EAAM8B,GAC9DipK,GAAyBjpK,EAAQ+yC,eAAiB,EAAAW,kBAAkBw1H,OAAS,EAAAx1H,kBAAkBE,OAC/Fu1H,EAAqC,GAEvCvoK,EAAcE,gBAAkB,IAClCopD,EAAgBpX,mBAAoB,EAEpCoX,EAAgByiD,WAAa,SAAC3rG,GAC5BJ,EAAcO,aAAazB,SAAQ,SAAA0B,GACjCA,EAAKJ,EAAGkpD,EAAgB3pD,eAGrB0oK,GACHroK,EAAcS,iBAAiB3B,SAAQ,SAAA0B,GACrCA,EAAKJ,EAAGkpD,EAAgB3pD,iBAM5BP,EAAQ+yC,gBACVmX,EAAgB++B,UAAY,CAC1Bx9C,KAAWxtC,KAAKo1C,iBAAiBrzC,EAAQ+yC,gBAGvC/yC,EAAQ+yC,eAAiB,EAAAW,kBAAkBC,WAC7CuW,EAAgB++B,UAAUkvB,mBAAqB,WAI/Cn4G,EAAQszC,gBACV4W,EAAgBk/G,MAAQ,CACtBngI,SAAS,EACTogI,UAAU,IAIVrpK,EAAQuV,WACV20C,EAAgB/W,OAAS,CACvB59B,SAAUvV,EAAQuV,SAClB5P,SAAS,IAIbukD,EAAgBs4C,QAAU,CACxB/2D,KAAM,YAGJzrC,EAAQiX,SACVizC,EAAgBjzC,OAASjX,EAAQiX,QAG/BjX,EAAQkkD,iBACVilH,EAAoB/pK,MAAK,SAAA4B,GACvB,IAAM+D,EAAQ7G,EAAK0G,OAAOghB,QAAQ5lB,EAAQkkD,iBAE1C,GAAKhmD,EAAK0G,OAAO3D,KAAK8D,EAAMrH,KAGvBQ,EAAK0G,OAAO3D,KAAK8D,EAAMrH,IAAIqH,EAAM6f,aAAtC,CAIA,IAAM7L,EAAM7a,EAAK0G,OAAO3D,KAAK8D,EAAMrH,IAAIqH,EAAM6f,aAEN5jB,EAAE6d,UACjB9O,gBAGrBiC,QACAtK,MAAK,SAAAC,GAAK,OAAAA,EAAE5C,EAAM6f,cAAgB7L,OAMrC7a,EAAK0G,OAAO3D,KAAK8D,EAAMrH,IAAM,UAI7B8qK,IACFt+G,EAAgBokB,eAAiB,SAACttE,GAChC,IAAMynK,EAAMzoK,EAAQgC,QAAQikB,MAAK,SAACte,GAChC,OAAOA,EAAErH,QAAUU,EAAEo2C,OAAOvgB,aACrBlvB,EAAE2mE,kBAGNm6F,GAILvqK,EAAKmC,QAAQtC,QAAQG,EAAKgc,MAAOuuJ,EAAIn6F,eAAgBttE,KAIrDmoK,EAAoBhmK,OAAS,IAC/B+mD,EAAgB7Z,eAAiB,SAACrvC,GAChCmoK,EAAoBzpK,SAAQ,SAAAiI,GAAK,OAAAA,EAAE3G,QAIvC/C,KAAK6B,kBAAkBwB,iBAAiBpD,EAAM8B,EAASipK,EAAuB,EAAA1nK,SAASuiD,UACvF7lD,KAAK6B,kBAAkB2B,sBAAsBvD,EAAM8B,IAG7C,YAAAqzC,iBAAR,SAAyBN,GACvB,OAAQA,GACN,KAAK,EAAAW,kBAAkBC,SACrB,MAAO,WACT,KAAK,EAAAD,kBAAkBE,OACrB,MAAO,SACT,QACE,MAAO,SA7PF5kB,EAA4B,cADxC,EAAA3xB,W,kCAG8B,EAAAsE,yBACJ,EAAAiC,qBACD,EAAAsF,oBACJ,EAAAmmB,gBACO,EAAAhY,mBANhB2X,GAAb,GAAa,EAAAA,gC,uNCtBb,iBAKE,aAJQ,KAAAs6I,YAAc,oBACd,KAAAC,YAAc,oBACd,KAAAC,WAAa,2BAcvB,OAVE,YAAAxpH,QAAA,SAAQ/tC,GACN,OAAKA,EAIEA,EACJ+tC,QAAQ/hD,KAAKqrK,YAAa,aAC1BtpH,QAAQ/hD,KAAKsrK,YAAa,aAC1BvpH,QAAQ/hD,KAAKurK,WAAY,uCANnBv3J,GATAo4I,EAAe,cAD3B,EAAAhtJ,W,sCACYgtJ,GAAb,GAAa,EAAAA,mB,wYCCb,iBACE,WACUn5I,GAAA,KAAAA,kBAgCZ,OA9BE,YAAAu4J,UAAA,SAAUvnH,GACR,IAAIryB,EAAUqyB,GAEVA,aAAiB5iD,OAAS4iD,EAAMryB,WAClCA,EAAUqyB,EAAMryB,SAGH,mBAAXA,GAIJ5xB,KAAKiT,gBAAgBuF,QAAQ,QAAS,CACpCoZ,QAASA,EACT/xB,MAAO,YAGX,YAAA4rK,SAAA,SAASxnH,KAGT,YAAAC,gBAAA,SAAgBD,GACTA,IAGmB,IAApBA,EAAMrqB,YAIV55B,KAAKyrK,SAASxnH,GACdjkD,KAAKwrK,UAAUvnH,KAhCNk8B,EAAY,cADxB,EAAA/gF,W,kCAG4B,EAAAga,mBAFhB+mE,GAAb,GAAa,EAAAA,gB,iaCJJ,sFAAAruC,wBACA,gFAAA11B,kBACA,mFAAAgO,qBACA,qFAAA4nI,uBACA,8EAAA7xE,gBACA,sFAAAx6E,wBACA,qFAAAsF,uBACA,iFAAAoO,mBACA,6EAAAiG,eACA,qFAAAyvE,uBACAxuE,OAAA,4EAAA25B,qBACA,mFAAA3vB,qBACA,6EAAA7kB,eACA,iFAAAgc,mBACA,8EAAAkB,gBACA,iFAAA5X,mBACA,+EAAA4W,iBACA,6EAAAzI,eACAoH,OAAA,wEAAA+J,iBACA,iFAAA8hI,mBACA,gFAAAj6H,kBACA,qFAAAohB,wB,yQCZT,iBACE,WACUhrC,EACA4U,EACAxU,GAHV,WACU,KAAAJ,mBACA,KAAA4U,eACA,KAAAxU,uBAKV,KAAAnJ,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,UACZC,UAAW,GACXiJ,oBAAqB,iCACrBhJ,MAAO,aACPC,QAAS,0D,oDACDL,EAAKO,KAAKC,KAAK0G,OAAO3D,KAAK0oK,YAAY1jK,GAC7ChI,KAAKmd,aAAa3c,OAAO,eAAgB,CAACf,I,YAG9C,KAAAksK,sBAAsC,CACpClsK,GAAI,wBACJE,WAAY,WACZE,MAAO,gCACPH,KAAM,OACNE,UAAW,GACX0T,oBAAqB,mFACrBxT,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV4F,EAAW,IAAI,EAAAi+J,mCAAmC,CACtDC,WAAY7rK,KAAKC,KAAK0G,OAAO3D,KAAkB,YAAEgF,KAGnD,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAP5C,I,cAOF,SACA3N,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAA4jK,oBAAoC,CAClCrsK,GAAI,sBACJE,WAAY,WACZE,MAAO,8BACPH,KAAM,WACNE,UAAW,GACX0T,oBAAqB,oEACrBxT,QAAS,0D,sEAGkB,OAFnBkD,EAAYhD,KAAKC,KAAK0G,OAAO3D,KAAK0oK,YAEf,GAAM1rK,KAAK2I,qBAAqBoB,wBACvD/J,KAAKC,KAAK0G,OAAO3D,KAAK0oK,YAAY73I,SAClC7zB,KAAKC,KAAK0G,OAAO3D,KAAK0oK,YAAY1jK,GAClC,uB,OAGF,OANyB,UAUnB2F,EAAW,IAAI,EAAAo+J,yBAAyB,CAC5CF,WAAY7oK,EAAKgF,KAGnB,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAP5C,I,cAOF,SACA3N,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAA8jK,sBAAsC,CACpCvsK,GAAI,wBACJE,WAAY,yBACZD,KAAM,cACNG,MAAO,kCACPD,UAAW,EACX0T,oBAAqB,kFACrBxT,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV4F,EAAW,IAAI,EAAAs+J,mCAAmC,CACtDJ,WAAY7rK,KAAKC,KAAK0G,OAAO3D,KAAkB,YAAEgF,KAGnD,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAP5C,I,cAOF,SACA3N,KAAKC,KAAK0G,OAAOuB,Y,aAOvB,OAHE,YAAAzH,KAAA,SAAKR,EAAgBgB,GACnBjB,KAAKC,KAAOA,GA7FHk9I,EAAiB,cAF7B,EAAA/9I,WACA,EAAAuB,Y,kCAG6B,EAAAqK,gBACJ,EAAAnK,YACQ,EAAAsK,uBAJrBgyI,GAAb,GAAa,EAAAA,qB,mYCJb,iBAEE,WACU1sG,EACA1sB,GADA,KAAA0sB,wBACA,KAAA1sB,eA8CZ,OA5CQ,YAAAmoJ,KAAN,W,+HAEgB,OADRC,EAASnsK,KAAKosK,0BACN,GAAMpsK,KAAKqsK,eAAeF,I,cAApCvvJ,EAAU,SAEd5c,KAAK+jB,aAAauoJ,WAAW1vJ,GAE7B5c,KAAKywC,sBAAsB2mC,cAAgB,SAAOp0E,GAAI,+C,2EAC9CupK,EAAgBvpK,EAAKiuC,SAASjyB,MAAM,MAExB9Z,OAAS,EACf,GAAMlF,KAAKqsK,eAAeE,EAAc,KADhD,M,cACF3vJ,EAAU,S,aAEA,SAAM5c,KAAKqsK,eAAe,iB,OAApCzvJ,EAAU,S,wBAGZ5c,KAAK+jB,aAAauoJ,WAAW1vJ,G,YAG/B5c,KAAKywC,sBAAsB8mC,sBAAwB,SAAOv0E,GAAI,+C,oDACtDupK,EAAgBvpK,EAAKiuC,SAASjyB,MAAM,MACxB9Z,OAAS,GACzB8xE,aAAaQ,QAAQ,cAAe+0F,EAAc,I,uBAKhD,YAAAH,wBAAR,WACE,OAAOp1F,aAAaD,QAAQ,gBAGhB,YAAAs1F,eAAd,SAA6BF,G,6HACrB7nK,EAAM0M,SAASknE,OACrBl4E,KAAK+jB,aAAauoJ,WAAWhoK,GAEJ,iBAArB0M,SAASw7J,UAA+Bx7J,SAASw7J,SAAS7yF,SAAS,cACrD,GAAM35E,KAAK+jB,aAAa1f,IAAI,CAAEC,IAAK0M,SAASknE,OAAS,0BAA4Bi0F,KAD/F,M,OAEF,MAAO,CAAP,EADgB,SACDvvJ,S,OAEZ,OAAI5L,SAASw7J,SAAS7yF,SAAS,YAC3B,CAAP,EAAO,oCAEA,CAAP,EAAO,yB,yBA/CA8yF,EAAe,cAD3B,EAAArtK,W,kCAIkC,EAAA0yC,qBACT,EAAApsC,eAJb+mK,GAAb,GAAa,EAAAA,mB,yhBCLb,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,qB,ifC9BA,SAAYjtE,GACV,yBACA,qCAFF,CAAY,EAAAA,0BAAA,EAAAA,wBAAuB,M,kSCyCnC,iBACE,WACSptE,EACC5pB,EACA+C,EACA+mB,EACAC,EACAC,EACAC,EACAjnB,EACAknB,EACAhI,EACAmI,EACAlqB,EACAJ,GAbV,WACS,KAAA6pB,gBACC,KAAA5pB,gBACA,KAAA+C,oBACA,KAAA+mB,kBACA,KAAAC,gBACA,KAAAC,kCACA,KAAAC,4BACA,KAAAjnB,6BACA,KAAAknB,gBACA,KAAAhI,mBACA,KAAAmI,iBACA,KAAAlqB,uBACA,KAAAJ,mBAIV,KAAAmkK,oCAAoD,CAClDjtK,GAAI,+BACJI,MAAO,4DACPC,QAAS,0D,sEAQP,OAPMC,EAA6BC,KAAKC,KAAmC,6BAErE0sK,EAAoC,IAAI,EAAAC,uDAAuD,CACnG10J,oBAAqBlY,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,GAChEs1E,2BAA4Bv9E,EAAKI,SAASE,uBAG5C,GAAML,KAAKuI,iBAAiBzI,QAAQ6sK,GAAmC,I,cAAvE,SAEA3sK,KAAKC,KAAwC,kCAAEE,SAASiV,OACxDpV,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAA4kK,6CAA6D,CAC3DrtK,GAAI,mCACJC,KAAM,OACNC,WAAY,oBACZE,MAAO,uDACPD,UAAW,EACX0T,oBAAqB,2CACrBxT,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVglK,EAAmD/sK,KAAKC,KAAmC,+BAC/D8sK,EAA2B5sK,SAC3D,GAAMH,KAAKwI,cAActI,iBAAiB6sK,EAA2B5sK,SAAS+yB,gBAD5E,MAJF,I,OAKA,SACA65I,EAA2B5sK,SAAS8V,U,wBAGtCjW,KAAKC,KAAwC,kCAAEE,SAAS2F,O,aAG5D,KAAAknK,+BAA+C,CAC7CvtK,GAAI,0BACJE,WAAY,oBACZD,KAAM,iBACNG,MAAO,6CACPD,UAAW,EACX0T,oBAAqB,uGAErBxT,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIS,GAAM/H,KAAK2I,qBAAqBoB,wBACvD/J,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBh5I,SAC3C7zB,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,GAC3C,iBANA,I,OASF,OANyB,SAUzB,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAmtK,qCAAqC,CAC3E/0J,oBAAqBlY,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,MAC9D,IALF,I,OAOF,OAJA,SAIO,CAAP,EAAOhI,KAAKC,KAAK0G,OAAOuB,sBAG5B,KAAAglK,gCAAgD,CAC9CztK,GAAI,kCACJE,WAAY,oBACZD,KAAM,cACNG,MAAO,8CACPD,UAAW,EACX0T,oBAAqB,6KAGrBxT,QAAS,SAACiD,GACR,IAAMuS,EAAiBvS,GAClBA,EAAEmR,OACFnR,EAAEmR,MAAMqB,QAEb,EAAK43J,yBAAyB73J,KAGlC,KAAA83J,mCAAmD,CACjD3tK,GAAI,qCACJE,WAAY,oBACZD,KAAM,cACNG,MAAO,4CACPD,UAAW,EACX0T,oBAAqB,2CACrBxT,QAAS,SAACiD,GACR,IAAMuS,EAAiBvS,GAClBA,EAAEmR,OACFnR,EAAEmR,MAAMqB,QAEb,EAAK83J,uBAAuB/3J,KAiOlC,OA7NE,YAAA7U,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAK22B,wBAA0B,WAC7B,IAAMC,EAA0B52B,EAAKyY,QAAQC,cAAc,qEACtDke,GAILA,EAAMld,SAGR3Z,KAAKoyB,cAAcvrB,SAAS7G,KAAKC,KAAM,CACrC8L,YAAa,uBACbC,2BAA4B,YAG9BhM,KAAKwL,2BAA2Bc,gBAAgB,CAC9CrM,KAAMA,EACNiM,UAAW,uBACXC,eAAgB,gBAChBI,WAAY,CAAC,yCAGftM,EAAKuN,QAAQ3G,UAAS,SAACpC,GAMrB,OALA,EAAKxE,KAAK0G,OAAOsf,eAAehU,KAAK,CACnCnL,MAAO,EAAK7G,KAAK0G,OAAOghB,QAAQ,oCAChCiQ,iBAAiB,IAGZryB,QAAQC,aAGjBvF,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,kFACX,yBAA7BA,EAAKjkB,QAAQ8P,YAAb,MACGmU,EAAKhY,MAIkB,YAAxBgY,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAA2B,uBAEnD,EAAA8D,EAAwB,GAAM9G,KAAKsyB,gBAAgBwF,wBAAwBzR,EAAKhY,SAD9E,MALJ,I,OAME,EAAM0pB,gBAAkB,SAExB93B,EAAK+R,qBAAqBC,KAAK,CAC7B7P,QAAS,CACP8P,YAAa,uBACb7P,OAAQ,mBAEVgM,MAAOvH,EAAMixB,kB,uBAKS,oBAAxB1R,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAA2B,uBAEnD,EAAA8D,EAAsB,GAAM9G,KAAK0yB,cAAcsF,sBAAsB3R,EAAKhY,SADxE,M,OAGiB,OAFnB,EAAM4pB,cAAgB,SAEH,GAAMj4B,KAAKsyB,gBAAgB4F,uBAAuB7R,EAAKhY,Q,cACxD,OADZ8pB,EAAa,UACf,OACFrxB,EAAMsxB,WAAaD,E,cAEA,OAAnB,EAAArxB,EAAmB,GAAM9G,KAAKuyB,cAAc8F,qBAAqBr4B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBhpJ,U,OAA5G,EAAMuU,WAAa,S,sCAQzB,YAAAgC,eAAN,SAAqBr3B,G,+HACnB,SAAM/C,KAAKoyB,cAAcnkB,qB,OAGsC,OAH/D,SAEMosB,EAAgC,IAAI,EAAAC,8BAA8B,CAAErqB,QAASlN,EAAEqL,OAAOC,QAC7B,GAAMrO,KAAKuI,iBAAiBzI,QAAQu6B,I,cAA7FE,EAAyD,SAE/Dv6B,KAAKC,KAAkB,YAAEu6B,wBAAwBD,EAA6BE,aAC9Ez6B,KAAKC,KAAqB,eAAEu6B,wBAAwBD,EAA6BpqB,gBAE7EoqB,EAA6BG,yBAC/B16B,KAAKwyB,gCAAgC1sB,MAAK,SAAArB,GACxC,EAAKxE,KAAkB,YAAEu6B,wBAAwB/1B,MAChD,cAAW,CACZk2B,QAAS,uBACTC,QAAS,CAAC,CACRC,gBAAiB,kBACjBC,kBAAmB/3B,EAAEqL,OAAOC,UAKlCrO,KAAK+6B,kE,YAEP,YAAAC,6BAAA,SAA6Bj4B,GAC3B,IAAMk4B,EAAWl4B,EAAEqL,OAAOC,MAC1B,GAAK4sB,EAAL,CAIA,IAAMC,EAAUl7B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB58J,QACvDirB,GAAWl7B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBpyI,cACpDz6B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB1xI,2BAA6Bp4B,EAAEqL,OAAOqC,gBACnFzQ,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB1xI,0BAA4BF,GAGzEj7B,KAAKo7B,iCAAiC,CACpChtB,OAAQ,CACNC,MAAO4sB,MAKTC,GAAWl7B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB18J,gBACpDnQ,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBxxI,8BAAgCt4B,EAAEqL,OAAOqC,gBACtFzQ,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBxxI,6BAA+BJ,KAI1E,YAAAG,iCAAN,SAAuCr4B,G,wHAErC,OADMk4B,EAAWl4B,EAAEqL,OAAOC,QAK1B,EAAArO,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAwC,GAAM7sK,KAAK6yB,eAAeyI,iBAAiBL,KAHvG,I,cAGF,EAA2CM,iBAAmB,S,YAEhE,YAAAC,sBAAA,SAAsBz4B,GACpB,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAkB,YAAGw7B,6BAA6B33B,GACvD9D,KAAKC,KAAqB,eAAGw7B,6BAA6B33B,IAEhF,YAAA43B,0BAAA,SAA0B34B,GACxB,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAc,QAAGw7B,6BAA6B33B,GACnD9D,KAAKC,KAAqB,eAAGw7B,6BAA6B33B,IAEhF,YAAA63B,6BAAA,SAA6B54B,GAC3B,IAAMe,EAAsBf,EAAEqL,OAAOC,MAEjBrO,KAAKC,KAAc,QAAGw7B,6BAA6B33B,GACnD9D,KAAKC,KAAkB,YAAGw7B,6BAA6B33B,IAG/D,YAAAqpK,yBAAd,SAAuCn0I,G,0HAClB,SAAMh5B,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVse,EAAoD,CACxDnO,oBAAqBlY,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,IAEE,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAwtK,iDAAiDjnJ,IAAO,KANlK,I,OAOF,OADM3Q,EAA8D,WAC5CA,EAAe+oD,mBAIjC9oD,EAAgB,+BAA+BD,EAAe+oD,kBAEhEzlC,GACFh5B,KAAK0qB,iBAAiB7U,WAAWF,GACjC3V,KAAKC,KAAK0G,OAAOuB,aAEjBlI,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAKqR,EACLI,YAAY,I,KAXd,YAeU,YAAAs3J,uBAAd,SAAqCr0I,G,0HAChB,SAAMh5B,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVse,EAAkD,CACtDnO,oBAAqBlY,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,IAEA,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAytK,+CAA+ClnJ,IAAO,KAN9J,I,OAOF,OADM3Q,EAA4D,WAC1CA,EAAeuC,WAIjCtC,EAAgB,uBAAuBD,EAAeuC,UAExD+gB,GACFh5B,KAAK0qB,iBAAiB7U,WAAWF,GACjC3V,KAAKC,KAAK0G,OAAOuB,aAEjBlI,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAKqR,EACLI,YAAY,I,KAXd,YAgBU,YAAAglB,gEAAd,W,wHACE,OAAI/6B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBllK,SAAW3H,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB7kK,GAAK,EACxG,IAGwB,GAAMhI,KAAKyyB,0BAA0B0J,yBAAyBn8B,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqB58J,U,OACrH,OADRmsB,EAAoB,SACZ,GAAMp8B,KAAKuL,kBAAkB8wB,uDAAuDD,EAAkB3tB,6B,cAErG,OAFXgV,EAAU,UAEV,MACQ,GAAMzjB,KAAKuyB,cAAc+J,yB,OAAnC7Y,EAAU,S,wBAGZzjB,KAAKC,KAAK0G,OAAO3D,KAAK6pK,qBAAqBhpJ,QAAUJ,EAErDzjB,KAAKC,KAAK+R,qBAAqBC,KAAK,CAClC7P,QAAS,CACP8P,YAAa,uBACb7P,OAAQ,WAEVgM,MAAOoV,I,YAnVAkjI,EAA0B,cAFtC,EAAAvnJ,WACA,EAAAuB,Y,kCAGyB,EAAA0R,qBACC,EAAAzR,aACI,EAAAwH,iBACF,EAAAq0B,eACF,EAAAC,aACkB,EAAAC,+BACN,EAAAC,yBACC,EAAArqB,0BACb,EAAAsqB,aACG,EAAAxjB,gBACF,EAAA2jB,cACM,EAAA7xB,oBACJ,EAAAH,mBAdjB27I,GAAb,GAAa,EAAAA,8B,kTCZb,iBACE,WACSv7I,EACAC,EACCG,EACAC,EACAlD,GALV,WACS,KAAA6C,uBACA,KAAAC,iBACC,KAAAG,6BACA,KAAAC,qBACA,KAAAlD,mBAOV,KAAAsD,2CAA2D,CACzDpM,GAAI,yCACJE,WAAY,kBACZD,KAAM,QACNG,MAAO,gCACPgJ,oBAAqB,wTACrBjJ,UAAW,IACXE,QAAS,0D,8CACPE,KAAK8L,6C,YAgJX,OA5IE,YAAArL,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKoL,qBAAqBvE,SAAS7G,KAAKC,KAAM,CAC5C8L,YAAa,6BACbC,2BAA4B,cAG9BhM,KAAKiM,eAAiB,CACpBhM,KAAMA,EACNiM,UAAW,6BACXC,eAAgB,gBAChBC,oBAAqB,YACrBC,wBAAyB,kBAG3BpM,EAAKsM,WAAWC,kBAAkB3F,UAAS,SAACpC,GAC1C,OAAIA,EAAEgI,iBAIgB,oCAAlBhI,EAAEiI,UAAUjN,IACd,EAAKQ,KAAK0G,OAAOuB,YAJV3C,QAAQC,aAUnBvF,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,uCAC5C,GAAiC,+BAA7BA,EAAKjkB,QAAQ8P,YAA8C,CAC7D,IAAKmU,EAAKhY,MACR,UAG0B,mBAAxBgY,EAAKjkB,QAAQC,QAA+BrC,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2B//J,eAC/FzN,KAAKowC,qCAAsC,G,mBAKjDpwC,KAAKC,KAAK0G,OAAOC,SAASC,UAAS,SAAO9D,GAAC,+C,uCACzC,OAAS,MAALA,GAA6B,8BAAdA,EAAE+D,MAAMrH,KAI3BO,KAAK2M,mCAAkC3M,KAAKC,KAAK0G,OAAO3D,KAAKwqK,4BACI,MAA5DxtK,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2B3gK,SACoB,GAArE7M,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2B3gK,QAAQC,WAL5D,aAUJ9M,KAAKC,KAAK0G,OAAO6G,QAAQ3G,UAAS,SAAO9D,GAAC,+C,8CACpC/C,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2B//J,cAC/CzN,KAAKowC,sCACPpwC,KAAKowC,qCAAsC,EAC3CpwC,KAAKC,KAAK0G,OAAOuB,a,aAKvBlI,KAAKwL,2BAA2Bc,gBAAgBtM,KAAKiM,iBAGjD,YAAA8B,iBAAN,SAAuBhL,G,uHACrB/C,KAAKwL,2BAA2BwC,mBAAmBhO,KAAKiM,gBAEnDjM,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2BxlK,GAAlD,MACF,GAAMhI,KAAKoL,qBAAqB6C,qB,OAAhC,SACAjO,KAAKyL,mBAAmByC,SAASlO,KAAKC,KAAK0G,OAAO3D,KAAKwqK,4B,wBAGzDxtK,KAAK0f,0BAA0B3c,EAAEqL,OAAOC,O,YAG1C,YAAAo/J,4BAAA,SAA4B78J,GAC1BA,EAAU,CAAE,qBAAuB,KAGvB,YAAA8O,0BAAd,SAAwC3P,G,wHACtC,OAAKA,GAICpC,EAAW,IAAI,EAAAgS,+BAA+B,CAClD5Q,UAAWgB,EACX+P,YAAa9f,KAAKC,KAAK0G,OAAO3D,KAAKu7D,mBAAmBz+C,cAGd,GAAM9f,KAAKuI,iBAAiBzI,QAAQ6N,KAR5E,I,OASF,OAAc,OADRpG,EAAoC,YAK1CvH,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2Bp9J,UAAY7I,EAAO8I,iBACpErQ,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2BztJ,mBAAqBxY,EAAOwY,mBAC7E/f,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2BxtJ,4BAA8BzY,EAAOyY,6BALpF,YAQJ,YAAAxP,uCAAA,SAAuCzN,GAChC/C,KAAKC,KAAK0G,OAAO3D,KAAKwqK,4BAIvBxtK,KAAKC,KAAK0G,OAAO3D,KAAKwqK,2BAA2B//J,cAAmC,MAAnB1K,EAAE0N,gBACrEzQ,KAAKowC,qCAAsC,IAIjC,YAAAtkC,2CAAd,W,2GACgF9L,KAAKC,KAA+C,yCAE7F6F,KAAK,CACxCoJ,SAAU,SAAO3H,GAA8C,+C,2EACzDA,EAAOgI,iBACH5B,EAAW,IAAI,EAAA+/J,iEAAiE,CACpFC,oCAAqC3tK,KAAKC,KAAK0G,OAAO3D,KAAK25C,uBAAuB30C,KAGpF,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,KALlC,M,cAKF,S,oBACSpG,EAAOmI,yBACV/B,EAAW,IAAI,EAAAigK,yEAAyE,CAC5FD,oCAAqC3tK,KAAKC,KAAK0G,OAAO3D,KAAK25C,uBAAuB30C,KAGpF,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,KAL3B,M,cAKT,S,aAQA,OANMA,EAAW,IAAI,EAAAkgK,8DAA8D,CACjFF,oCAAqC3tK,KAAKC,KAAK0G,OAAO3D,KAAK25C,uBAAuB30C,GAClF4B,IAAKrC,EAAOsI,oBACZC,KAAMvI,EAAOuI,OAGf,GAAM9P,KAAKuI,iBAAiBzI,QAAQ6N,I,OAApC,S,wBAGF3N,KAAKC,KAAK0G,OAAOuB,Y,yBAjKZ8zI,EAAgC,cAF5C,EAAA58I,WACA,EAAAuB,Y,kCAGgC,EAAA0R,qBACN,EAAAnH,eACa,EAAAqH,0BACR,EAAAC,kBACF,EAAAxH,mBANjBgxI,GAAb,GAAa,EAAAA,oC,wQClBb,iBACE,WACS3wI,EACC7C,EACAF,GAHV,WACS,KAAA+C,iBACC,KAAA7C,gBACA,KAAAF,sBAMV,KAAA9I,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,UACZC,UAAW,GACXiJ,oBAAqB,kJACrBhJ,MAAO,mBACPC,QAAS,0D,sEAEP,OADMC,EAA6BC,KAAKC,KAAoB,cAC5D,GAAMD,KAAKwI,cAActI,iBAAiBH,EAAKI,SAASC,c,OAC3C,OADb,SACa,GAAMJ,KAAKwI,cAActI,iBAAiBH,EAAKI,SAASE,uB,cAA/DC,EAAO,SAEbP,EAAKI,SAASI,iBAEdP,KAAKsI,oBAAoB9H,OAAO,EAAAsI,eAAe28J,QAASnlK,G,aAY9D,OARE,YAAAG,KAAA,SAAKR,GAAL,WACED,KAAKC,KAAOA,EAEZD,KAAKC,KAAKmK,WAAWvD,UAAS,SAAOpC,GAAC,+C,oEACH,OAAjC,EAAAzE,KAAiC,GAAMA,KAAKsI,oBAAoB+B,0BAA0B,EAAAvB,eAAe28J,U,OACzG,OADA,EAAKp7J,0BAA4B,SAC1B,CAAP,EAAO9E,QAAQC,sBAjCRo/I,EAAgB,cAF5B,EAAAxlJ,WACA,EAAAuB,Y,kCAG0B,EAAAuK,eACA,EAAAtK,aACM,EAAAmK,sBAJpB65I,GAAb,GAAa,EAAAA,oB,kUCDb,qBAAgCxuE,G,gHAkB9B,OAjBAA,EAAQ03F,IACLC,qBACAC,OAAO,0BACPC,QAAQ,wBACRA,QAAQ,sBACRA,QAAQ,yBACRA,QAAQ,8BACRA,QAAQ,4BACRA,QAAQ,aAEP,UAAYz8E,OACdpb,EAAQ03F,IAAII,qBAGO,IAAI,EAAAzxH,aAGzB,GADyC25B,EAAQ5sC,UAAUnlC,IAAI,EAAAooK,iBACzCP,Q,OAEtB,OAFA,SAEA,GAAM91F,EAAQ+yD,S,cAAd,SAEmC/yD,EAAQ5sC,UAAUnlC,IAAI,EAAAylK,cACb1zF,EAAQ5sC,UAAUnlC,IAAI,EAAAytC,sBAEpDmlC,U,+OCtBhB,iBAGE,WACU70E,GAAA,KAAAA,UAHF,KAAA+rK,oBAAqB,EAwD/B,OAlDE,YAAA7nK,UAAA,SAAU0T,GACR,OAAyB6nB,MAArB7nB,EAAQ1T,UACH0T,EAAQ1T,WACN0T,EAAQnR,qBACV7I,KAAKoC,QAAQokB,SAASxM,EAAQgC,gBAAiBhC,EAAQnR,sBAKlE,YAAAxC,UAAA,SAAU2T,GACR,OAAyB6nB,MAArB7nB,EAAQ3T,UACH2T,EAAQ3T,WACN2T,EAAQ1G,qBACVtT,KAAKoC,QAAQokB,SAASxM,EAAQgC,gBAAiBhC,EAAQ1G,sBAKlE,YAAA86J,oBAAA,SAAoBp0J,GAClB,OAAOha,KAAKsG,UAAU0T,IACjBha,KAAKqG,UAAU2T,IAGtB,YAAAla,QAAA,SAAQmc,EAAcjC,EAAuBjY,GAA7C,WACE,IAAI/B,KAAKmuK,mBAAT,CAIA,IAAKnuK,KAAKouK,oBAAoBp0J,GAC5B,OAAO,EAET,IAAKA,EAAQla,QACX,OAAO,EAGTE,KAAKmuK,oBAAqB,EAC1B,IAAM5mK,EAASyS,EAAQla,QAAQW,KAAKwb,EAAM2tB,eAA3B5vB,CAA2CjY,GAY1D,OAVIwF,GAAUA,EAAOyd,MAAQzd,EAAO0d,MAClC1d,EACG0d,OAAM,eAEND,MAAK,WACJ,EAAKmpJ,oBAAqB,KAG9BnuK,KAAKmuK,oBAAqB,GAErB,IAvDEhyJ,EAAc,cAD1B,EAAA/c,W,kCAKoB,EAAAgd,kBAJRD,GAAb,GAAa,EAAAA,kB,8DCbb,OAAe,cAA0B,wC,yXCAzC,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,qB,8DCnBA,OAAe,cAA0B,wC,6WCKzC,iBACE,WACUlJ,GAAA,KAAAA,kBAERjT,KAAKquK,iBA0BT,OAvBE,YAAA7sJ,mBAAA,WACE,GAAKS,SAASqsJ,cAAd,CAIA,IAAMA,EAAsBrsJ,SAASqsJ,cAChCA,EAAcC,MAInBD,EAAcC,SAGR,YAAAF,eAAR,sBACE73J,OAAOszC,iBAAiB,UAAU,WAChC,EAAK72C,gBAAgBuF,QAAQ,gBAAiB,OAEhDhC,OAAOszC,iBAAiB,oBAAoB,WACrC7nC,SAASy2D,QACZ,EAAKzlE,gBAAgBuF,QAAQ,mBAAoB,QA1B5CoJ,EAAa,cADzB,EAAAxiB,W,kCAG4B,EAAAga,mBAFhBwI,GAAb,GAAa,EAAAA,iB,+ICCb,iBACE,WACU4sJ,EACAzM,EACAH,EACAC,EACAC,GAJA,KAAA0M,aACA,KAAAzM,iBACA,KAAAH,mBACA,KAAAC,gBACA,KAAAC,gBAsCZ,OAnCE,YAAA/vI,OAAA,SAAOhwB,GACL,OAAOwe,OAAOC,OAAO,CACnBxM,KAAM,WACLjS,IAEL,YAAA0sK,SAAA,SAASnuJ,EAAsBsY,EAAmB72B,GAChD,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAA2sK,SAAA,SAASpuJ,EAAsBsY,EAAmB72B,GAChD,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAAm+C,QAAA,SAAQ5/B,EAAsBsY,EAAmB72B,GAC/C,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAA4sK,UAAA,SAAUruJ,EAAsBsY,EAAmB72B,GACjD,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAA6sK,QAAA,SAAQtuJ,EAAsBsY,EAAmB72B,GAC/C,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAA8sK,SAAA,SAASvuJ,EAAsBsY,EAAmB72B,GAChD,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAA+sK,OAAA,SAAOxuJ,EAAsBsY,EAAmB72B,GAC9C,OAAO/B,KAAK+hK,eAAe3hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcsY,EAAW72B,IAErF,YAAAhC,KAAA,SAAKugB,EAAsBve,GACzB,OAAO/B,KAAK4hK,iBAAiBxhJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcve,IAE5E,YAAAgtK,MAAA,SAAMzuJ,EAAsBve,GAC1B,OAAO/B,KAAK8hK,cAAc1hJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcve,IAEzE,YAAAmiG,MAAA,SAAM5jF,EAAsBve,GAC1B,OAAO/B,KAAK6hK,cAAczhJ,cAAcpgB,KAAKwuK,WAAYluJ,EAAcve,IAE3E,EA5CA,G,gYCJA,IAAIsH,EAAa,EAAQ,QAEzB,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QAER,IAAM9B,EAAc,GAwIpB,SAASynK,EAAWt2J,GAClB,GAAIA,EAAQu2J,OAAQ,CAClB,GAAuB,IAAnBv2J,EAAQxT,OACV,OAAO,KAGTwT,EAAUA,EAAQrU,IAAI,GAGxB,OAAOqU,EA/ITnR,EAAOvE,KAAOqG,EAAWrG,KAAO,EAAQ,QACxCuE,EAAO+B,GAAKD,EAAWC,GAAK,EAAQ,QACpC/B,EAAO2nK,OAAS,EAAQ,QACxB3nK,EAAO4nK,kBAAoB,EAAQ,QACnC5nK,EAAOgC,OAAS,EAAQ,QACxBhC,EAAOsC,OAAS,EAAQ,QAExBR,EAAWC,GAAGC,OAAShC,EAAOgC,OAC9BF,EAAWC,GAAGO,OAAStC,EAAOsC,OAE9BR,EAAW+lK,YAAc,CACvBC,KAAM,EAAQ,SAKhB9nK,EAAO+nK,eAAiB,EAAQ,QAChC/nK,EAAOgoK,SAAW,EAAQ,QAC1BhoK,EAAOioK,WAAa,EAAQ,QAC5BjoK,EAAOkoK,WAAa,EAAQ,QAC5BloK,EAAOmoK,WAAa,EAAQ,QAC5BnoK,EAAOooK,UAAY,EAAQ,QAC3BpoK,EAAOqoK,iBAAmB,EAAQ,QAClCroK,EAAOsoK,eAAiB,EAAQ,QAChCtoK,EAAOuoK,eAAiB,EAAQ,QAChCvoK,EAAOwoK,gBAAkB,EAAQ,QACjCxoK,EAAOyoK,OAAS,EAAQ,QACxBzoK,EAAO0oK,aAAe,EAAQ,QAC9B1oK,EAAO2oK,OAAS,EAAQ,QACxB3oK,EAAO4oK,gBAAkB,EAAQ,QACjC5oK,EAAO6oK,YAAc,EAAQ,QAC7B7oK,EAAO8oK,SAAW,EAAQ,QAC1B9oK,EAAO+oK,MAAQ,EAAQ,QACvB/oK,EAAOgpK,SAAW,EAAQ,QAC1BhpK,EAAOipK,YAAc,EAAQ,QAC7BjpK,EAAOkpK,UAAY,EAAQ,QAC3BlpK,EAAOmpK,UAAY,EAAQ,QAC3BnpK,EAAOopK,QAAU,EAAQ,QACzBppK,EAAOqpK,cAAgB,EAAQ,QAC/BrpK,EAAOspK,aAAe,EAAQ,QAC9BtpK,EAAOupK,cAAgB,EAAQ,QAC/BvpK,EAAOwpK,YAAc,EAAQ,QAC7BxpK,EAAOypK,aAAe,EAAQ,QAC9BzpK,EAAO0pK,YAAc,EAAQ,QAC7B1pK,EAAO2pK,SAAW,EAAQ,QAC1B3pK,EAAO4pK,SAAW,EAAQ,QAC1B5pK,EAAO6pK,WAAa,EAAQ,QAC5B7pK,EAAO8pK,OAAS,EAAQ,QACxB9pK,EAAO+pK,SAAW,EAAQ,QAC1B/pK,EAAOgqK,WAAa,EAAQ,QAC5BhqK,EAAOiqK,UAAY,EAAQ,QAC3BjqK,EAAOkqK,cAAgB,EAAQ,QAC/BlqK,EAAOmqK,QAAU,EAAQ,QACzBnqK,EAAOoqK,UAAY,EAAQ,QAC3BpqK,EAAOqqK,UAAY,EAAQ,QAC3BrqK,EAAOsqK,WAAa,EAAQ,QAG5BxoK,EAAW0kC,iBAAmB,EAAQ,QACtCxmC,EAAOuqK,oBAAsB,EAAQ,QACrCvqK,EAAOwqK,kBAAoB,EAAQ,QACnCxqK,EAAOyqK,YAAc,EAAQ,QAG7BzqK,EAAO0qK,YAAc,EAAQ,QAC7B1qK,EAAO2qK,cAAgB,EAAQ,QAC/B3qK,EAAO4qK,WAAa,EAAQ,QAC5B5qK,EAAO6qK,OAAS,EAAQ,QACxB7qK,EAAO8qK,YAAc,EAAQ,QAC7B9qK,EAAO+qK,wBAA0B,EAAQ,QACzC/qK,EAAOgrK,oBAAsB,EAAQ,QACrChrK,EAAOirK,UAAY,EAAQ,QAC3BjrK,EAAOkrK,YAAc,EAAQ,QAC7BlrK,EAAOmrK,WAAa,EAAQ,QAC5BnrK,EAAOorK,WAAa,EAAQ,QAC5BprK,EAAOqrK,YAAc,EAAQ,QAG7BrrK,EAAOsrK,IAAMxpK,EAAWwpK,IAAM,EAAQ,QACtCtrK,EAAOurK,aAAe,EAAQ,QAAyBA,aACvDvrK,EAAOwrK,cAAgB,EAAQ,QAAyBA,cACxDxrK,EAAOyrK,iBAAmB,EAAQ,QAAyBA,iBAC3DzrK,EAAO0rK,eAAiB,EAAQ,QAA0BA,eAC1D1rK,EAAO2rK,WAAa,EAAQ,QAA0BA,WACtD3rK,EAAO4rK,gBAAkB,EAAQ,QAA0BA,gBAG3D5rK,EAAO6rK,QAAU,EAAQ,QACzB7rK,EAAO8rK,WAAa,EAAQ,QAC5B9rK,EAAO+rK,aAAe,EAAQ,QAC9B/rK,EAAOgsK,cAAgB,EAAQ,QAC/BhsK,EAAOisK,gBAAkB,EAAQ,QACjCjsK,EAAOksK,SAAW,EAAQ,QAC1BlsK,EAAOmsK,WAAa,EAAQ,QAG5BnsK,EAAOosK,gBAAkB,EAAQ,QAGjCpsK,EAAOqsK,YAAc,EAAQ,QAC7BrsK,EAAO0C,IAAM,GACb1C,EAAO0C,IAAI0lE,QAAU,GACrBpoE,EAAO0C,IAAI4pK,WAAa,EAAQ,QAAwCA,WAGxEtsK,EAAOusK,YAAc,EAAQ,QAC7BvsK,EAAOwsK,SAAW,EAAQ,QAE1B,0BAGA,0BAA+BjmI,EAAQp1B,EAAS3W,GAE9C,KADA2W,EAAUs2J,EAAWt2J,IAEnB,MAAM,IAAIrX,MAAM,wBAGlB,OAAO,IAAIkG,EAAOumC,GAAQp1B,EAAS3W,IAErC,kBAAuB+rC,GACrB,QAASvmC,EAAOumC,IAElB,uBAA4BA,EAAQp1B,GAElC,OAAe,OADfA,EAAUs2J,EAAWt2J,IAEZ,KAGFnR,EAAOumC,GAAQ/B,YAAYrzB,IAEpC,yBAA8Bo1B,GAC5B,OAAOvmC,EAAOumC,K,0NChJhB,iBACE,cAgBF,OAdE,YAAAqM,2BAAA,SAA2Bp3C,GACzB,GAAiB,QAAbA,EAAEwH,SAIDxH,EAAEC,MAASD,EAAEC,KAAKo3C,aAAvB,CAIA,IAAM3vC,EAAiC1H,EAAE2H,YAEzCD,EAAKE,MAAME,gBAAkB,UAC7BJ,EAAKE,MAAMC,MAAQ,UAfV+1I,EAAc,cAD1B,EAAAvhJ,W,sCACYuhJ,GAAb,GAAa,EAAAA,kB,sNCCb,iBACE,aACE3gJ,KAAKG,SAAW,CACdsmC,qBAAqB,GAK3B,OARa8I,EAAc,cAD1B,EAAAnwC,W,sCACYmwC,GAAb,GAAa,EAAAA,kB,iNCOb,iBAIE,aACEvvC,KAAKgD,KAAO,GACZhD,KAAKmH,KAAO,GA6ChB,OAxCE,YAAAuf,QAAA,SAAQjI,GACNze,KAAKmH,KAAKsX,EAAShf,IAAMgf,EACzBze,KAAKg0K,uBAAuBv1J,IAE9B,YAAAkJ,QAAA,SAAQloB,GACN,OAAOO,KAAKmH,KAAK1H,IAEnB,YAAA2B,aAAA,SAAanB,GACX,GAAID,KAAKC,KACP,MAAM,IAAIoB,MAAM,+BAGlBrB,KAAKC,KAAOA,GAEd,YAAAw0E,MAAA,WACE,IAAK,IAAI35D,KAAO9a,KAAKgD,KACnBhD,KAAKgD,KAAK8X,GAAO,MAIrB,YAAAxZ,QAAA,aAGQ,YAAA0yK,uBAAR,SAA+Bv1J,GAC7B,GAAKze,KAAKC,KAAK07C,aAAf,CAIA,IAAMl8C,EAAKO,KAAKC,KAAKyY,QAAQgzB,aAAa,kBAC1C,GAAKjsC,EAAL,CAIA,IAAM0H,EAAOnH,KAAKC,KAAKmiC,OAAO9Y,YAAY3B,QAAQloB,GAC7C0H,IAILsX,EAAS6pC,SAAWnhD,EAAKklB,SAAS5iB,MAAK,SAAA8lF,GAAW,OAAAA,EAAQG,KAAOjxE,EAAShf,UAjDjE4gF,EAAS,cAFrB,EAAAjhF,WACA,EAAAwC,WAAU,G,sCACEy+E,GAAb,GAAa,EAAAA,a,2PCJb,iBACE,WACSh1E,EACCE,GADD,KAAAF,iBACC,KAAAE,oBAgCZ,OA5BE,YAAA9K,KAAA,SAAKR,GAAL,WACED,KAAKC,KAAOA,EAEZA,EAAK0G,OAAOC,SAASC,UAAS,SAAOpC,GAAC,+C,oEACpC,OAAS,MAALA,GAA6B,cAAdA,EAAEqC,MAAMrH,GACzB,IAGGO,KAAKqL,eAAe4B,YAAYC,OAAOC,uBAIJ,MAApCnN,KAAKC,KAAK0G,OAAO3D,KAAKk6B,WAAtB,MAC+C,GAA7Cl9B,KAAKC,KAAK0G,OAAO3D,KAAKk6B,WAAWpwB,SACnC,IAGqB,GAAM9M,KAAKuL,kBAC/BiD,8BAA8BxO,KAAKC,KAAK0G,OAAO3D,KAAKk6B,WAAWzuB,2BAA4B,EAAAC,gBAAgBC,sBAT9G,I,OAWsB,OAHhBC,EAAiB,WAGuC,GAAhCA,EAAe,GAAGC,aAC9C7O,KAAKC,KAAK0G,OAAO3D,KAAKixK,sBAAsB/gC,mCAAoC,G,iBAIpF,MAAO,CAAP,EAAO3tI,QAAQC,sBAhCR66I,EAA2B,cAFvC,EAAAjhJ,WACA,EAAAuB,Y,kCAG0B,EAAAuK,eACI,EAAA9C,oBAHlBi4I,GAAb,GAAa,EAAAA,+B,iQCGb,iBACE,WACU11I,EACAsI,GADA,KAAAtI,QACA,KAAAsI,kBAGE,KAAAi7I,oBAAqB,EACjC,KAAAznE,WAAa,UAgBf,OAdE,YAAAC,cAAA,WACE1mF,KAAK2K,MAAMkX,UAAU,mBAAoB,CAAC,CACxC5Q,KAAM,qCACNyR,WAAY,CAAC,CACXC,aAAc,mBACdtU,MAAOrO,KAAKymF,iBAIlB,YAAAytF,0BAAA,sBACEn6H,YAAW,WACT,EAAK9mC,gBAAgBuF,QAAQ,iBAAiB,iBAC7C,MAfO,cAAX,EAAAogE,W,6EANUr8B,EAAa,cADzB,EAAAn9C,W,kCAGkB,EAAAwjB,aACU,EAAAxJ,mBAHhBmjC,GAAb,GAAa,EAAAA,iB,gQCWb,iBACE,WACU5uC,EACAqF,EACAs/B,GAHV,WACU,KAAA3kC,WACA,KAAAqF,OACA,KAAAs/B,SAkBV,KAAAmgD,mBAAmC,CACjChzF,GAAI,cACJE,WAAY,SACZE,MAAO,uCACPH,KAAM,QACN2G,WAAW,EACXvG,QAAS,WACP,IAAMkD,EAAY,EAAK/C,KAAK0G,OAAO3D,KAAKmxK,eACpCnxK,GAAQA,EAAK2E,SACf,EAAK1H,KAAKqP,OACP0V,MAAK,SAACvgB,GACL,GAAKA,EAAEsD,QAIP,OAAO,EAAK4F,SACT7N,QAAQ,IAAI,EAAAs0K,4BAA4B,CACvCC,cAAe,EAAKp0K,KAAK0G,OAAO3D,KAAKmxK,eAAensK,MAClD,GACHgd,MAAK,WACJ,OAAO,EAAK/kB,KAAK0G,OAAOuB,oBAMxC,OAvCE,YAAAzH,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAKmC,QAAQqZ,QAAQ,CACnBH,eAAgBrb,EAAKqb,eACrBI,WAAY,qCACZxM,SAAU,WACR,IAAMlM,EAAY,EAAK/C,KAAK0G,OAAO3D,KAAKmxK,eACxC,EAAK1hF,mBAAmBpsF,UAAYrD,GAAQA,EAAK2E,YAjB5CgwI,EAAoB,cAFhC,EAAAv4I,WACA,EAAAuB,Y,kCAGqB,EAAAqK,gBACJ,EAAAmO,YACE,EAAA85B,iBAJP0kG,GAAb,GAAa,EAAAA,wB,uTCNb,IA+SY28B,EA/SZ,aACE,WACU/2J,EACAg3J,EACAthK,GAFA,KAAAsK,cACA,KAAAg3J,eACA,KAAAthK,kBAGV,KAAAuhK,aAAe,EAgQjB,OA1PE,sBAAI,wBAAS,C,IAAb,WACE,OAAOx0K,KAAKw0K,aAAe,G,gCAG7B,YAAA/qJ,OAAA,SAAO1nB,GACL,IAAKA,EAAQtC,GACX,MAAM,IAAI4B,MAAM,iBAGlB,OAAOrB,KAAKF,QACV,SACGiC,EAAQuC,IAAG,IAAIvC,EAAQtC,GAC1BO,KAAKy0K,cAAc1yK,GACnBA,EAAQwmB,qBACR+rJ,EAAkBvzH,MAClB,EACAh/C,EAAQgtB,gBAEZ,YAAA1qB,IAAA,SAAItC,GACF,OAAO/B,KAAKF,QACV,MACAiC,EAAQuC,IACRtE,KAAKy0K,cAAc1yK,GACnBA,EAAQwmB,qBACRxmB,EAAQ2yK,YAAcJ,EAAkBvzH,OACtCh/C,EAAQ4yK,uBACV5yK,EAAQgtB,gBAEZ,YAAAtJ,KAAA,SAAK1jB,GACH,OAAO/B,KAAKF,QACV,OACAiC,EAAQuC,IACRtE,KAAKy0K,cAAc1yK,GACnBA,EAAQwmB,qBACRxmB,EAAQ2yK,YAAcJ,EAAkBvzH,OACtCh/C,EAAQ4yK,uBACV5yK,EAAQgtB,cACRhtB,EAAQiB,OAEZ,YAAA4xK,IAAA,SAAI7yK,GACF,OAAO/B,KAAKF,QACV,MACAiC,EAAQuC,IACRtE,KAAKy0K,cAAc1yK,GACnBA,EAAQwmB,qBACRxmB,EAAQ2yK,YAAcJ,EAAkBvzH,OACtCh/C,EAAQ4yK,uBACV5yK,EAAQgtB,cACRhtB,EAAQiB,OAGZ,YAAAu7B,OAAA,SAAO4tI,GACL,OAAUnsK,KAAK4c,QAAO,IAAIuvJ,GAE5B,YAAAzmJ,UAAA,SAAUymJ,GACR,OAAUnsK,KAAKu+B,OAAO,UAAO1hB,QAAO,IAAIsvJ,GAE1C,YAAA5nK,aAAA,SAAa4nK,GACX,OAAUnsK,KAAKu+B,OAAO,UAAOzhB,WAAU,IAAIqvJ,GAE7C,YAAA19E,gBAAA,SAAgB09E,GACd,IAAI0I,EAAY,GACZ70K,KAAK22E,0BACPk+F,EAAY70K,KAAK22E,wBACjBk+F,EAAYp0F,mBAAmBo0F,IAGjC,IAAIvwK,EAAMtE,KAAKu+B,OAAO,UAAOxhB,cAEvBxF,EAAUjT,EAAIiT,QAAQ,OACtBuR,EAASxkB,EAAI0kB,WAAW,SAAW,MAAQ,KAGjD,OAFA1kB,EAAMwkB,EAASxkB,EAAIo9B,UAAUnqB,IAEhB,IAAI40J,EAAM,eAAe0I,GAExC,YAAAh7D,WAAA,SAAWsyD,GACT,IAAI7nK,EAAS0M,SAAS8jK,SAAQ,KAAK9jK,SAAS2iJ,KAAO3iJ,SAASmnE,SAS5D,OAPI7zE,EAAIqyJ,SAAS,OACfryJ,EAAMA,EAAI4kD,OAAO,EAAG5kD,EAAIY,OAAS,IAE/BinK,IACF7nK,GAAO,IAAM6nK,GAGR7nK,GAET,YAAAgoK,WAAA,SAAWhoK,GACTtE,KAAK4c,QAAUtY,GAGT,YAAAmwK,cAAR,SAAsB1yK,GACpB,IAAMs2E,EAAe,GAiBrB,OAfIt2E,GAAWA,EAAoB,aACjCs2E,EAAQ,iBAAmBr4E,KAAKud,YAAY0jC,UAAUl/C,EAAoB,aAGxEA,GAAWA,EAAQslB,WACrBgxD,EAAQ,eAAiBt2E,EAAQslB,UAGnCgxD,EAAQ,gBAAkB,mBAC1BA,EAAgB,OAAI,mBAEhBr4E,KAAKy2E,wBACPl2D,OAAOC,OAAO63D,EAASr4E,KAAKy2E,0BAGvB4B,GAEK,YAAAv4E,QAAd,SACEspB,EACA9kB,EACA+zE,EACA08F,EACAL,EACAC,EACA5lJ,EACA0C,G,8HACMujJ,EAAS,IAAI,EAAAC,WAEfxjJ,IACkB,iBAATA,GAAuBA,aAAgBsvD,WAChDtvD,EAAOzxB,KAAKud,YAAY0jC,UAAUxvB,IAGhCA,aAAgBsvD,kBACX1I,EAAgB,cAChBA,EAAQ,kBAIf08F,GACF/0K,KAAKw0K,e,iBAKL,O,0BAAA,GAAMx0K,KAAKk1K,gBAAgB78F,I,OAEP,OAFpB,SAEoB,GAAM28F,EAAOG,MAAM7wK,EAAK,CAC1C8kB,OAAQA,EACRivD,QAASA,EACT5mD,KAAMA,K,WAHF2jJ,EAAc,UAMHC,GAAb,YACF,GAAItmJ,GAAiBA,EAAcqmJ,GACjC,MAAO,CAAP,EAAO,MAGT,GAA0B,KAAtBA,EAAY9iI,OAKd,MAJAtyC,KAAKiT,gBAAgBuF,QAAQ,oBAAqB,CAChDlU,IAAKA,IAGD,CACJs1B,WAAW,EACXhI,QAAS,O,GAIa,KAAtBwjJ,EAAY9iI,OAAZ,YACF,KAAM,CACJ1Y,WAAW,EACXhI,QAAS,O,cAEoB,KAAtBwjJ,EAAY9iI,OAAZ,MACI,GAAM8iI,EAAYphK,Q,OAO/B,MAPMA,EAAO,SAEbhU,KAAKiT,gBAAgBuF,QAAQ,SAAU,CACrCoZ,QAAS5xB,KAAKs1K,cAActhK,GAC5B0K,KAAM,UAGF,CACJkb,WAAW,EACXhI,QAAS,O,OAGE,SAAMwjJ,EAAYphK,Q,OAC/B,MADMA,EAAO,SACP,IAAI3S,MAAM2S,GAAQohK,EAAYG,Y,cAIhCb,G,KACDJ,EAAkBkB,KAAlB,Y,oBACM,SAAMJ,EAAYI,Q,QAC3B,OADAjuK,EAAS,SACT,O,QAGS,SAAM6tK,EAAYphK,Q,QAE3B,OAFAzM,EAAS,SACTA,EAASvH,KAAKud,YAAYqB,MAAMrX,GAChC,O,eAIAotK,IACFptK,EAAS,CACP8wE,QAAS+8F,EAAY/8F,QACrBr1E,KAAMuE,I,eAKV,M,WADAvH,KAAKu0K,aAAarwH,gBAAgB,GAC5B,E,eAEF6wH,GACF/0K,KAAKw0K,e,YAIT,MAAO,CAAP,EAAOjtK,WAEK,YAAA2tK,gBAAd,SAA8B78F,G,8HAC5B,OAAKA,EAAQ,kBAIP7zE,EAAa6zE,EAAQ,kBACZnzE,OAAS,MAASlF,KAAKy1K,YAAYjxK,GAChD,KAGIwwK,EAAS,IAAI,EAAAC,kBACZ58F,EAAQ,iBAEA,GAAM28F,EAClBG,MAAMn1K,KAAK0lB,UAAU,gBAAiB,CACrC0D,OAAQ,OACRivD,QAASA,EACT5mD,KAAMjtB,MAfR,I,OAkByB,OAPrB+C,EAAS,SAOf,EAAA8wE,EAAQ,kBAAmB,GAAM9wE,EAAOyM,Q,cAAxC,KAA2B,S,YAErB,YAAAyhK,YAAR,SAAoBzhK,GAClB,OAAQ,qBAAqBmwB,KAAKnwB,IAE5B,YAAAshK,cAAR,SAAsBthK,GACpB,GAAyB,KAArBA,EAAKk1C,OAAO,EAAG,IAAgD,KAAnCl1C,EAAKk1C,OAAOl1C,EAAK9O,OAAS,EAAG,GAAW,CACtE,IAAM67C,EAAOC,KAAKpiC,MAAM5K,GACxB,GAAI+sC,EAAK20H,QACP,OAAO30H,EAAK20H,QAIhB,OAAO1hK,GAxPT,cADC,EAAA6rB,aAAa,gB,wGAZHn6B,EAAW,cADvB,EAAAtG,W,kCAGwB,EAAAkgB,YACC,EAAA6gE,aACG,EAAA/mE,mBAJhB1T,GAAb,GAAa,EAAAA,cA+Sb,SAAY4uK,GACV,mBACA,mBAFF,CAAYA,EAAA,EAAAA,oBAAA,EAAAA,kBAAiB,M,gRC9S7B,iBAGE,WACUrhK,EACAtP,GADA,KAAAsP,kBACA,KAAAtP,OAER3D,KAAK87C,wBAiDT,OA9CE,YAAA/pC,OAAA,sBACE,OAAO/R,KAAK2D,KAAKU,IAAI,CACnBC,IAAKtE,KAAK2D,KAAKY,aAAa,oCAC3BygB,MAAK,SAACvgB,GACP,EAAKkxK,eAAiB,GAEb,MAALlxK,GAA2B,GAAZA,EAAES,QAIrBT,EAAEhD,SAAQ,SAAAqa,GACR,EAAK65J,eAAe75J,EAAE9T,IAAM8T,SAKlC,YAAAo9C,qBAAA,SAAqB08G,GACnB,OAA0B,MAAnBA,EACH,KACA51K,KAAK21K,eAAeC,IAG1B,YAAAC,yBAAA,SAAyBp8C,GACvB,OAAOz5H,KAAK2D,KAAKU,IAAI,CACnBC,IAAKtE,KAAK2D,KAAKY,aAAa,oCAC5BC,WAAY,CACVR,MAAO,CAAC,yBAA0By1H,OAIxC,YAAAq8C,0BAAA,SAA0Br8C,GACxB,OAAOz5H,KAAK2D,KAAKU,IAAI,CACnBC,IAAKtE,KAAK2D,KAAKY,aAAa,qCAC5BC,WAAY,CACVR,MAAO,CAAC,yBAA0By1H,OAKhC,YAAA39E,sBAAR,WACE97C,KAAKiT,gBACFyB,UACC,EAAA2Z,gBAAgB0nJ,sBAChB/1K,KAAK+R,OAAOtR,KAAKT,QArDZq7D,EAAgB,cAD5B,EAAAj8D,W,kCAK4B,EAAAga,gBACX,EAAA1T,eALL21D,GAAb,GAAa,EAAAA,oB,+QCOb,iBACE,WACU9yD,EACA+pB,EACAI,EACAzR,GAJV,WACU,KAAA1Y,mBACA,KAAA+pB,kBACA,KAAAI,gBACA,KAAAzR,aAKV,KAAA+0J,UAA0B,CACxBv2K,GAAI,YACJE,WAAY,iBACZE,MAAO,0BACPH,KAAM,WACNmJ,oBAAqB,yFACrB/I,QAAS,0D,yEAGQ,OAFfE,KAAKC,KAAK0G,OAAO3D,KAAKizK,kBAAkBC,2BAA4B,EAErD,GAAMl2K,KAAKC,KAAK6H,e,OAC/B,OADe,SACHC,QAIZ,GAAM/H,KAAKuI,iBACRzI,QAAQ,IAAI,EAAAq2K,8BAA8B,CACzC56D,iBAAkBv7G,KAAKC,KAAK0G,OAAO3D,KAAKizK,kBAAkBjuK,MACxD,GACHgd,MAAK,WACJ,EAAK/kB,KAAK0G,OAAOuB,gBARnB,I,cAGF,SAQAlI,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAAkuK,YAA4B,CAC1B32K,GAAI,cACJE,WAAY,iBACZE,MAAO,2BACPH,KAAM,UACNmJ,oBAAqB,wFACrB/I,QAAS,0D,2EACQ,SAAME,KAAKC,KAAK6H,e,OAC/B,OADe,SACHC,SAIN/E,EAAYhD,KAAKC,KAAK0G,OAAO3D,KAAKizK,kBAExC,GAAMj2K,KAAKuI,iBACRzI,QAAQ,IAAI,EAAAu2K,+BAA+B,CAC1C96D,iBAAkBv4G,EAAKgF,MACrB,GACHgd,MAAK,WACJ,EAAK/kB,KAAK0G,OAAOuB,iBAVnB,I,cAKF,SAQAlI,KAAKC,KAAK0G,OAAOuB,Y,aAwDvB,OApDE,YAAAzH,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAK22B,wBAA0B,WAC7B,IAAMC,EAA0B52B,EAAKyY,QAAQC,cAAc,qEACtDke,GAILA,EAAMld,SAGR1Z,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,oFACX,sBAA7BA,EAAKjkB,QAAQ8P,YAAb,MACGmU,EAAKhY,MAIkB,YAAxBgY,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAAwB,oBAEhD,EAAA8D,EAAkB,GAAM9G,KAAKsyB,gBAAgBwF,wBAAwBzR,EAAKhY,SADxE,MALJ,I,OAME,EAAMyjH,UAAY,SAElB7xH,EAAK+R,qBAAqBC,KAAK,CAC7B7P,QAAS,CACP8P,YAAa,oBACb7P,OAAQ,aAEVgM,MAAOvH,EAAMgrH,Y,0CAGgB,cAAxBzrG,EAAKjkB,QAAQC,OAAb,OACHyE,EAAQ7G,EAAK0G,OAAO3D,KAAwB,oBAEhD,EAAA8D,EAAgB,GAAM9G,KAAK0yB,cAAcsF,sBAAsB3R,EAAKhY,SADlE,M,OACF,EAAM4tG,QAAU,S,oCAEc,qBAAvB51F,EAAKjkB,QAAQC,QAClBgkB,EAAKhY,QACD,EAAIwE,EAAOwT,EAAKhY,OAChBioK,EAAQ,EAAEA,QACVC,EAAU,EAAEA,UAEL,GAATD,GAAyB,GAAXC,GAChBv2K,KAAKihB,WAAWQ,WAAU,WACxBxhB,EAAK0G,OAAO3D,KAAKizK,kBAAkBO,kBAAoB,EAAEz1K,IAAI,GAAI,KAAKA,IAAI,GAAI,WAAWoiB,a,sCAzG5F45H,EAAuB,cAFnC,EAAA39I,WACA,EAAAuB,Y,kCAG6B,EAAAqK,gBACD,EAAAyxB,eACF,EAAAI,aACH,EAAAlb,aALXo7H,GAAb,GAAa,EAAAA,2B,qRCRb,iBAEE,WACU9iI,EACAtW,EACA8yK,EACAvjK,GAJV,WACU,KAAA+G,eACA,KAAAtW,OACA,KAAA8yK,iBACA,KAAAvjK,kBAKV,KAAAwjK,sBAAsC,CACpCj3K,GAAI,wBACJI,MAAO,2CACPH,KAAM,QACNI,QAAS,0D,0EAEP,GAAmB,IADbQ,EAAON,KAAK22K,oBAAoBx2K,SAASE,sBACtC6E,OAMP,OALAmE,WAAWC,GAAGO,OACZ7J,KAAKia,aAAa9Q,cAAc,6DAChC,QACA,KAEF,I,uCAIAnJ,KAAKy2K,eAAeG,e,IAEJ,EAAAt2K,E,wBAAA,YAAPwa,EAAG,KACV,GAAM9a,KAAK2D,KAAK8lB,OAAO,CACrBnlB,IAAKtE,KAAK2D,KAAKY,aAAa,8CAC5B9E,GAAIqb,MAHY,M,OAClB,S,wBADc,I,oBAOhB9a,KAAK62K,oB,oBAEL72K,KAAKy2K,eAAeK,a,8BAgC5B,OA3BE,YAAAr2K,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAKggF,cAAcp5E,UAAS,SAAA9D,GAE1B,OADA,EAAK8zK,oBACEtxK,QAAQC,cAInB,YAAAuxK,cAAA,SAAc7iK,GACZ,IAAM+mB,EAAW/mB,EAAMlR,KAAK+R,SACvBkmB,GAILj7B,KAAKkT,gBAAgB4C,KAAK,CACxBxR,IAAK,yBAAyB22B,EAC9BoY,iBAAkBrzC,KAAKC,QAInB,YAAA02K,kBAAR,WACE,OAAO32K,KAAKC,KAAoB,eAE1B,YAAA42K,kBAAR,WACE72K,KAAK22K,oBAAoBx2K,SAAS8V,WApEzBktI,EAA6B,cAFzC,EAAA/jJ,WACA,EAAAuB,Y,kCAIyB,EAAAsK,oBACR,EAAAvF,YACU,EAAA82C,eACC,EAAAnjC,mBANhB8pI,GAAb,GAAa,EAAAA,iC,qurECVb,iBACE,WACUp/H,GAAA,KAAAA,eA0CZ,OAvCQ,YAAAgQ,gBAAN,SAAsBgI,G,wHAWV,OAVJl2B,EAAe,CACnB,CAAC,uBAAwBk2B,EAAQ9rB,SACjC,CAAC,wBAAyB8rB,EAAQi7I,UAClC,CAAC,0BAA2B,KAG1Bj7I,EAAQE,qBAAuBF,EAAQ5E,cACzCtxB,EAAa1E,KAAK,CAAC,6BAA8B46B,EAAQ/zB,KAGjD,GAAMhI,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,oCACpCC,WAAY,CACVR,MAAO6B,M,OAIX,OAPMpB,EAAI,WAODA,EAAES,OAAS,EACX,CAAP,EAAOK,QAAQC,SAAQ,IAEhB,CAAP,EAAOD,QAAQC,SAAQ,YAIrB,YAAAuuC,yCAAN,SAA+CkjI,G,sHACnC,SAAMj3K,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,oCACpCC,WAAY,CACVR,MAAO,CAAC,uBAAwBizK,O,OAIpC,OAPMxyK,EAAI,WAODA,EAAES,OAAS,EACX,CAAP,EAAOK,QAAQC,SAAQ,IAEhB,CAAP,EAAOD,QAAQC,SAAQ,YAzChBs3B,EAAmB,cAD/B,EAAA19B,W,kCAGyB,EAAAsG,eAFbo3B,GAAb,GAAa,EAAAA,uB,2SCab,iBACE,WACUvjB,EACA8wG,EACAl3G,EACAsjK,EACAn3K,EACAC,GANV,WACU,KAAAga,kBACA,KAAA8wG,oBACA,KAAAl3G,sBACA,KAAAsjK,iBACA,KAAAn3K,eACA,KAAAC,cAKV,KAAAC,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,UACZC,UAAW,GACXC,MAAO,aACPC,QAAS,0D,sEAEP,OADMC,EAA6BC,KAAKC,KAAmB,aAC3D,GAAMD,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASC,c,OAC1C,OADb,SACa,GAAMJ,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASE,uB,cAA9DC,EAAO,SAEbP,EAAKI,SAASI,iBAEdP,KAAKT,YAAYiB,OAAO,aAAcF,G,aAI1C,KAAA42K,+BAA+C,CAC7Cz3K,GAAI,0BACJI,MAAO,mCACPD,UAAW,IACXD,WAAY,UACZD,KAAM,SACNI,QAAS,0D,oEACP,SAAME,KAAKV,aAAaY,iBAAiBF,KAAKm3K,yBAAyBh3K,SAAS2F,S,cAAhF,UAEMsxK,EAAqBp3K,KAAKq3K,uCACbt0J,UAAU,CAC3B,MAAS,KAEXq0J,EAAmBj3K,SAASwZ,Q,aAGhC,KAAA29J,iCAAiD,CAC/C73K,GAAI,4BACJI,MAAO,YACPH,KAAM,WACNI,QAAS,0D,0EAGP,IAFUE,KAAKu3K,mCAAmCp3K,SAAS+jC,WAEpDn8B,QACL,U,iBAOA,O,sBAHA/H,KAAKy2K,eAAeG,eAEd72K,EAAOC,KAAKw3K,gBAClB,GAAMx3K,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASC,c,OAC1C,OADb,SACa,GAAMJ,KAAKV,aAAaY,iBAAiBH,EAAKI,SAASE,uB,OAWpE,OAXMC,EAAO,SAEbP,EAAKI,SAASI,iBAER21C,EAAcl2C,KAAKq3K,sCAAsCl3K,SAAS0gB,OAAO,SAEzEwF,EAAO,IAAI,EAAAoxJ,kCAAkC,CACjD59J,YAAaq8B,EACbwhI,aAAcp3K,IAGhB,GAAMN,KAAKuZ,gBAAgBzZ,QAAQumB,GAAM,I,cAAzC,SAEArmB,KAAKm3K,yBAAyBh3K,SAASiV,OAEvC/L,WAAWC,GAAGO,OACZ7J,KAAKmT,oBAAoBhK,cAAc,mCACvC,UACA,K,oBAEFnJ,KAAKy2K,eAAeK,a,8BAqB5B,OAhBE,YAAAr2K,KAAA,SAAKR,EAAgBgB,GACnBjB,KAAKC,KAAOA,GAGN,YAAAk3K,uBAAR,WACE,OAAOn3K,KAAKC,KAAuB,kBAE7B,YAAAo3K,oCAAR,WACE,OAAOr3K,KAAKC,KAAkC,6BAExC,YAAAs3K,iCAAR,WACE,OAAOv3K,KAAKC,KAAsC,iCAE5C,YAAAu3K,cAAR,WACE,OAAOx3K,KAAKC,KAAmB,cApGtB8jJ,EAAe,cAF3B,EAAA3kJ,WACA,EAAAuB,Y,kCAG4B,EAAAqK,gBACE,EAAAof,kBACE,EAAAnf,oBACL,EAAAuxC,eACF,EAAA57C,aACD,EAAAC,eAPZkjJ,GAAb,GAAa,EAAAA,mB,oOCKb,iBACE,WACS4zB,EACAh3I,EACAsnB,EACA79C,EACAwK,EACAgjK,EACAx2I,EACAyM,EACA7gC,EACAQ,EACA+O,EACA4J,EACAqnI,GAZA,KAAAmqB,YACA,KAAAh3I,SACA,KAAAsnB,WACA,KAAA79C,aACA,KAAAwK,UACA,KAAAgjK,iBACA,KAAAx2I,aACA,KAAAyM,eACA,KAAA7gC,WACA,KAAAQ,UACA,KAAA+O,aACA,KAAA4J,YACA,KAAAqnI,mBAEX,OAhBa9qH,EAAgB,cAD5B,EAAAtjC,W,kCAGqB,EAAAC,YACH,EAAAA,YACE,EAAAA,YACE,EAAAA,YACH,EAAAA,YACO,EAAAA,YACJ,EAAAA,YACE,EAAAA,YACJ,EAAAA,YACD,EAAAA,YACG,EAAAA,YACD,EAAAA,YACO,EAAAA,eAdhBqjC,GAAb,GAAa,EAAAA,oB,wOCoDb,iBAOE,WACShqB,EACCu+H,GADD,KAAAv+H,UACC,KAAAu+H,iBAERj3I,KAAK63K,YAAc,GACnB73K,KAAK83K,sBAAwB,GAE7B93K,KAAK07C,YAAwD,SAA1ChjC,EAAQgzB,aAAa,iBACxC1rC,KAAK27C,aAA0D,SAA3CjjC,EAAQgzB,aAAa,kBAEzC1rC,KAAK2D,KAAOszI,EAAetzI,KAC3B3D,KAAK0/E,cAAgBu3D,EAAev3D,cACpC1/E,KAAKga,QAAUi9H,EAAej9H,QAC9Bha,KAAKqgC,QAAU42G,EAAe52G,QAC9BrgC,KAAK2G,OAASswI,EAAetwI,OAC7B3G,KAAK0oB,UAAYuuH,EAAevuH,UAChC1oB,KAAKspB,YAAc2tH,EAAe3tH,YAClCtpB,KAAKuM,WAAa0qI,EAAe1qI,WACjCvM,KAAK4/E,UAAYq3D,EAAer3D,UAChC5/E,KAAKub,SAAW07H,EAAe17H,SAC/Bvb,KAAKoC,QAAU60I,EAAe70I,QAC9BpC,KAAK+lC,cAAgBkxG,EAAelxG,cACpC/lC,KAAKia,aAAeg9H,EAAeh9H,aACnCja,KAAK+mC,kBAAoBkwG,EAAelwG,kBACxC/mC,KAAKikD,MAAQgzF,EAAehzF,MAE5BjkD,KAAKoK,WAAa6sI,EAAe7sI,WACjCpK,KAAKohC,WAAa61G,EAAe71G,WACjCphC,KAAK2gC,OAASs2G,EAAet2G,OAC7B3gC,KAAKioD,SAAWgvF,EAAehvF,SAC/BjoD,KAAKolE,WAAa6xE,EAAe7xE,WACjCplE,KAAK4U,QAAUqiI,EAAeriI,QAC9B5U,KAAKigF,cAAgBg3D,EAAeh3D,cACpCjgF,KAAK6tC,aAAeopG,EAAeppG,aACnC7tC,KAAKgS,qBAAuBilI,EAAejlI,qBAC3ChS,KAAKgN,SAAWiqI,EAAejqI,SAC/BhN,KAAKwN,QAAUypI,EAAezpI,QAC9BxN,KAAKuc,WAAa06H,EAAe16H,WACjCvc,KAAKmmB,UAAY8wH,EAAe9wH,UAEhCnmB,KAAK2G,OAAOvF,aAAapB,MACzBA,KAAK0oB,UAAUtnB,aAAapB,MAC5BA,KAAK4/E,UAAUx+E,aAAapB,MAC5BA,KAAKub,SAASna,aAAapB,MAC3BA,KAAKspB,YAAYloB,aAAapB,MAC9BA,KAAKuM,WAAWnL,aAAapB,MAE7BA,KAAK42B,wBAA0B52B,KAAK+3K,0BACpC/3K,KAAKg4K,WAAah4K,KAAK07C,cACjB17C,KAAK27C,cACN37C,KAAKi3I,eAAevuF,OAAOmC,UAAU3lD,OAAS,EAEnDlF,KAAK02B,eAAiB12B,KAAK07C,cACrB17C,KAAK27C,aA83Bf,OAr0BE,YAAAl1C,WAAA,SAAWyI,GACLlP,KAAK63K,YACP73K,KAAK63K,YAAY12K,KAAK+N,GAEtBA,KAGJ,YAAAijF,qBAAA,SAAqBjjF,GACflP,KAAK83K,sBACP93K,KAAK83K,sBAAsB32K,KAAK+N,GAEhCA,KAIE,YAAAw0E,SAAN,SAAe55D,G,+FAgBb,OAfA9pB,KAAK8pB,aAAeA,EAEpB9pB,KAAK8W,eAAiBgT,GAAgBA,EAAahT,eAC/CgT,EAAahT,eACb,KAEAgtB,EAAa,KACbha,GAAgBA,EAAaC,WAAaD,EAAaC,UAAU+Z,aACnEA,EAAaha,EAAaC,UAAU+Z,YAErBrkC,KACbO,KAAK0oB,UAAU1lB,KAAK2lB,IAAMmB,EAAaC,UAAU+Z,WAAWrkC,IAIzD,CAAP,EAAOO,KAAKi4K,mBAAmBn0I,WAEjC,YAAA2nH,QAAA,SAAQC,EAAiBC,GACvB3rJ,KAAK0rJ,WAAaA,EAEdC,GACCA,EAAO30C,WACP20C,EAAO30C,UAAU3qD,UACpBrsD,KAAKqsD,QAAUs/F,EAAO30C,UAAU3qD,QAChCrsD,KAAKqnB,SAAWrnB,KAAKqsD,QACjBrsD,KAAKqsD,QAAQnD,OAAO,EAAGlpD,KAAKqsD,QAAQ1qB,YAAY,MAChD,OAGF,YAAAlhC,KAAN,SAAWmpC,EAAqBC,G,sHAmB9B,IAlBA7pC,KAAKsmB,SAAU,EACftmB,KAAKoiC,OAASpiC,KAAK0rJ,WAAW9hH,eAE9B5pC,KAAKic,MAAQ,CACX2tB,eAAgB5pC,KAChB6pC,gBAAiB,EAAA8d,sBAAsB3nD,OAEzCA,KAAKsb,eAAiB,IAAI,EAAA82C,eAAepyD,KAAKic,OAE9Cjc,KAAKk4K,yBACLl4K,KAAKm4K,gCACLn4K,KAAKw3D,6BACLx3D,KAAKo4K,uCAELp4K,KAAKi3I,eAAehkI,gBAAgBuF,QAAQ,YAAa,CACvDvY,KAAMD,OAGC8b,EAAI,EAAGA,EAAI9b,KAAK63K,YAAY3yK,OAAQ4W,IAC3C9b,KAAK63K,YAAY/7J,KAMnB,OAJA9b,KAAK63K,YAAc,KAEnB73K,KAAKq4K,yBAEL,GAAMr4K,KAAKs4K,kB,OAIX,IAJA,SAEAt4K,KAAKu4K,eAEIz8J,EAAI,EAAGA,EAAI9b,KAAK83K,sBAAsB5yK,OAAQ4W,IACrD9b,KAAK83K,sBAAsBh8J,KAM7B,OAJA9b,KAAK83K,sBAAwB,KAE7B93K,KAAKoyF,eAAiBpyF,KAAKqgC,QAAQjlB,yBAAyBpb,MAErD,CAAP,EAAOA,KAAK2G,OAAO8hB,8BAEf,YAAAu7D,SAAN,W,2HACE,SAAMhkF,KAAKw4K,sB,cAAX,SAEKx4K,KAAK07C,YAAN,MACF,GAAM17C,KAAKuyF,mB,OAAX,S,wBAGFvyF,KAAKi3I,eAAe3lH,UAAU7P,WAAU,WACtC,EAAKw1H,eAAehkI,gBAAgBuF,QAAQ,qBAAsB,CAChEvY,KAAM,O,YAIN,YAAAgqC,SAAN,W,gHACE,SAAMjqC,KAAKy4K,sB,cAAX,S,YAEI,YAAA/2K,OAAN,W,gHAoBE,OAnBA1B,KAAKsmB,SAAU,EAEXtmB,KAAK04K,2CACP14K,KAAK04K,yCAAyCp3K,UAC9CtB,KAAK04K,yCAA2C,MAE9C14K,KAAK24K,qCACP34K,KAAK24K,mCAAmCr3K,UACxCtB,KAAK24K,mCAAqC,MAExC34K,KAAK44K,4CACP54K,KAAK44K,0CAA0Ct3K,UAC/CtB,KAAK44K,0CAA4C,MAGtC,CACX34K,KAAMD,MAGR,GAAMA,KAAK64K,oB,cAAX,SACA74K,KAAKsB,U,YAEP,YAAA6uC,kBAAA,sBACE,OAAInwC,KAAK2G,OAAOuhB,iBACP,IAAI3iB,SAAQ,SAACC,EAAS+H,GAC3B,EAAK0pI,eAAel3D,cAAcj6E,KAAK,CACrC8rB,QAAS,EAAK3X,aAAa9Q,cAAc,gCACzCtJ,MAAO,EAAKoa,aAAa9Q,cAAc,iBACvC2H,QAAS,CAAC,CACRrR,GAAI,MACJuU,KAAM,EAAKiG,aAAa9Q,cAAc,YACtCkI,QAAS,WACF,EAAKiW,WAEE,EAAK08B,aAGf,EAAK10C,OAAO0V,MAAK,SAAAvgB,GACfe,EAAQf,EAAEsD,YALZvC,GAAQ,KASX,CACD/F,GAAI,KACJuU,KAAM,EAAKiG,aAAa9Q,cAAc,WACtCkI,QAAS,WACP7L,GAAQ,KAET,CACD/F,GAAI,SACJuU,KAAM,EAAKiG,aAAa9Q,cAAc,eACtCkI,QAAS,WACP7L,GAAQ,WAMTD,QAAQC,SAAQ,IAGrB,YAAAmvE,WAAN,W,gHACE,SAAM30E,KAAK+xD,+B,OAMX,OANA,SAEA/xD,KAAKi3I,eAAehkI,gBAAgBuF,QAAQ,qBAAsB,CAChEvY,KAAMD,OAGR,GAAMA,KAAK84K,yB,cAAX,S,YAGF,YAAAC,mBAAA,SAAmBj+J,GACjB,IAAMxW,EAAMtE,KAAKoC,QAAQokB,SAASxmB,KAAKic,MAAOnB,GAC9C,OAAKxW,EAIEtE,KAAKi3I,eAAejkI,KAAKsD,eAAehS,GAHtC,IAKX,YAAA00K,gBAAA,WACE,OAAO,EAAP,gBAAQh5K,MAASA,KAAKspB,YAAYC,mBAGpC,YAAA+kB,eAAA,SAAe7uC,EAAYsC,GAA3B,WAKE,GAJAA,EAAUA,GAAW,CACnBmS,MAAO,MAGE,aAAPzU,EAAmB,CACrB,IAAM8b,EAAWvb,KAAKub,SACnBC,cACA5E,QAAO,SAAAlN,GACN,SAAKutI,eAAej9H,QAAQo0J,oBAAoB1kK,MAEpD1J,KAAKi3I,eAAe72G,UAAUotH,iBAAiBv7I,KAAK,CAClDhS,KAAMD,KACNub,SAAUA,EACVmyI,qBAAsB1tJ,KAAK07C,kBAExB,CACL,IAAM1hC,EAAUha,KAAKub,SAClBC,cACAwM,MAAK,SAAAlM,GAAK,OAAAA,EAAErc,IAAMA,KAErB,IAAKua,EACH,OAGFha,KAAKga,QAAQla,QAAQE,KAAKic,MAAOjC,EAASjY,KAI9C,YAAAk3K,uBAAA,WACE,MAAO,CACLlxK,SAAS,EACTmmC,SAAU,KAGR,YAAAhK,SAAN,SAAe+J,EAAqCirI,G,YAAA,IAAAA,OAAA,G,+GAMlD,OALM7yJ,EAAiC,CACrCpmB,KAAMD,KACNiuC,iBAAkBA,GAGpB,GAAMjuC,KAAKm5K,qBAAqB9yJ,I,OAWhC,OAXA,SAEI6yJ,GAAkD,GAA5BjrI,EAAiBlmC,SACzCsB,WAAWC,GAAGO,OACZokC,EAAiBC,SAAShpC,OAAS,EAC/B+oC,EAAiBC,SAAS,GAC1BluC,KAAKwkD,UAAU,yBACnB,QACA,KAGG,CAAP,EAAOvW,WAGT,YAAA6V,OAAA,WACE,IAAM78C,EAAYjH,KAAK2G,OAAOI,eAC9B,QAAKE,MAIAjH,KAAKi3I,eAAet3D,WAAWv4D,aAAangB,EAAUC,aAAclH,KAAKqnB,aAIzErnB,KAAK2G,OAAOmgB,SAAS9mB,KAAKsb,eAAgBrU,KAM3C,YAAAlG,IAAN,W,2HACE,OAAKf,KAAK8jD,SAIS,GAAM9jD,KAAKmwC,qBAH5B,I,OAIF,OADmB,UAKnBnwC,KAAKmmD,SAAS,KAEdnmD,KAAKi3I,eAAe3lH,UAAU7P,WAAU,WACtC,EAAK23J,oC,KANL,YAUJ,YAAA9xJ,QAAA,sBACE,OAAOtnB,KACJg5K,kBACAvvK,MAAK,SAAAqS,GAAK,OAAAA,EAAEnV,OAAOkhB,YAAYpe,MAAK,SAAAwe,GACnC,QAAKA,EAAEE,cAGF,EAAKxhB,OAAO2gB,QAAQW,UAO/B,YAAA+7B,WAAA,sBACE,OAAOhkD,KACJg5K,kBACAvvK,MAAK,SAAAqS,GAAK,OAAAA,EAAEnV,OAAOkhB,YAAYpe,MAAK,SAAAwe,GACnC,QAAKA,EAAEE,gBAGF,EAAKxhB,OAAO3D,KAAKilB,EAAExoB,UAAiDoiC,IAA1C,EAAKl7B,OAAO3D,KAAKilB,EAAExoB,IAAIwoB,EAAEtB,iBAGnD,EAAKhgB,OAAOogB,UAAU,EAAKzL,eAAgB2M,WAOhD,YAAA8pC,4BAAN,W,wHAEE,OADM9pC,EAAIjoB,KAAK2G,OAAOI,iBAEhBkhB,EAAEoxJ,0BACFr5K,KAAK2G,OAAO3D,KAAKilB,EAAExoB,KACnBO,KAAK2G,OAAO3D,KAAKilB,EAAExoB,IAAIwoB,EAAEtB,cACO,MAAjC3mB,KAAK2G,OAAO3D,KAAKilB,EAAExoB,IAAS,IAIvB,GAAMO,KAAK2D,KAAKU,IAAI,CAC5BC,IAAQtE,KAAK2D,KAAKY,aAAa0jB,EAAE/gB,cAAa,IAAIlH,KAAK2G,OAAO3D,KAAKilB,EAAExoB,IAAIwoB,EAAEtB,aAC3EniB,WAAY,CACVT,QAAS,CAAC,QAEZsjB,SAAUrnB,KAAKqnB,YARR,CAAP,GAAO,G,OAWT,OARM5iB,EAAI,UAYEA,EAAO,KACRzE,KAAK2G,OAAO3D,KAAKilB,EAAExoB,IAAS,IAC9B,CAAP,GAAO,GAGT,GAAMO,KAAK2G,OAAOuB,aART,CAAP,GAAO,G,OAST,OADA,SACO,CAAP,GAAO,WAEH,YAAAJ,YAAN,W,+HACE9H,KAAKi3I,eAAen3D,cAAct+D,qBAE9BxhB,KAAK27C,cAAgB37C,KAAKoiC,kBAAkBvd,EACpC,GAAM7kB,KAAKoiC,OAAOt6B,eAD1B,M,OAEF,KADMrD,EAAI,UACHsD,QACL,MAAO,CAAP,EAAOtD,G,wBAINzE,KAAK2G,OAAOuhB,iBAAb,OACI+lB,EAAmBjuC,KAAKi5K,yBAE1Bj5K,KAAKsnB,WAAatnB,KAAKgkD,aACzB,GAAMhkD,KAAKkkC,SAAS+J,GAAkB,IADpC,O,OACF,S,iBAGF,MAAO,CAAP,EAAOA,G,OAGT,MAAO,CAAP,EAAOjuC,KAAKsP,gBAER,YAAAA,KAAN,W,sHACE,OAA2B,GAAvBtP,KAAK2D,KAAKk5J,UACL,CAAP,EAAO,CACL90J,SAAS,EACTmmC,SAAU,MAIdluC,KAAKi3I,eAAen3D,cAAct+D,qBAC5BysB,EAAmBjuC,KAAKi5K,yBAEzBj5K,KAAKsnB,WAActnB,KAAKgkD,aAK7B,GAAMhkD,KAAKkkC,SAAS+J,GAAkB,KAJpCA,EAAiBlmC,SAAU,EACpB,CAAP,EAAOxC,QAAQC,QAAQyoC,M,UAGzB,UAEIA,EAAiBlmC,QAAjB,Y,iBAEA,O,sBAAA,GAAM/H,KAAKs5K,oB,OACX,OADA,SACA,GAAMt5K,KAAK2G,OAAO2I,Q,cAAlB,SAEAjG,WAAWC,GAAGO,OACZ7J,KAAKwkD,UAAU,qBACf,UACA,KAEFxkD,KAAKu5K,gBACLv5K,KAAKw5K,kB,aAGL,O,SADAvrI,EAAiBlmC,SAAU,EACpB,CAAP,EAAOkmC,G,OAIX,MAAO,CAAP,EAAOA,WAGT,YAAAsW,aAAA,sBACE,OAAOvkD,KACJg5K,kBACAvvK,MAAK,SAAAqS,GAAK,OAAAA,EAAEnV,OAAOkhB,YAAYpe,MAAK,SAAAwe,GACnC,QAAKA,EAAEE,gBAGF,EAAKxhB,OAAO3D,KAAKilB,EAAExoB,MAAQ,EAAKkH,OAAO3D,KAAKilB,EAAExoB,IAAIwoB,EAAEtB,kBAGpD,EAAKhgB,OAAOsgB,YAAY,EAAK3L,eAAgB2M,MAG7C,EAAKthB,OAAO6gB,UAAUS,YAO3B,YAAAwB,OAAN,W,gHACE,OAAKzpB,KAAKsnB,WAActnB,KAAKukD,eAIN,GAAMvkD,KAAKy5K,sBAHzB,CAAP,GAAO,G,OAIT,OADuB,SAKvB,GAAMz5K,KAAK2G,OAAO8iB,UAHT,CAAP,GAAO,G,OAIT,OADA,SACA,GAAMzpB,KAAK05K,qB,OAEX,OAFA,SAEO,CAAP,GAAO,WAGT,YAAAl1H,UAAA,SAAU1pC,GACR,OAAO9a,KAAKia,aAAa9Q,cAAc2R,EAAK9a,KAAKsb,iBAGnD,YAAA6qC,SAAA,SAAS1mD,GACPO,KAAKu5K,cAAc95K,GAEfO,KAAK0oB,UAAU1lB,KAAK2lB,KAAOlpB,EAC7BO,KAAK2G,OACF8hB,qBAGHzoB,KAAK0oB,UAAU1lB,KAAK2lB,IAAMlpB,GAIxB,YAAAk6K,kBAAN,W,sGACQtzJ,EAAO,CACXpmB,KAAMD,MAGRA,KAAKi3I,eAAe72G,UAAUu3I,UAAU1lK,KAAKoU,G,WAEzC,YAAA4xJ,mBAAN,SAAyBn0I,G,gHACvB,SAAM9jC,KAAKolE,WAAWnzD,KAAK,CACzBhS,KAAMD,KACN8jC,WAAYA,K,cAFd,S,YAKI,YAAAw0I,eAAN,W,sHAKE,OAJMjyJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAK2gC,OAAO1uB,KAAKoU,I,OACvB,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUO,OAAO1uB,KAAKoU,I,cAAhD,S,YAEI,YAAAmyJ,mBAAN,W,sHAKE,OAJMnyJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKoK,WAAW6H,KAAKoU,I,OAC3B,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUh2B,WAAW6H,KAAKoU,I,cAApD,S,YAEI,YAAAksE,gBAAN,W,6GACQlsE,EAAO,CACXpmB,KAAMD,MAGRA,KAAKi3I,eAAe3lH,UAAU8Z,gBAAe,0D,8DAC3C,SAAMprC,KAAK4U,QAAQ3C,KAAKoU,I,OACxB,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUxrB,QAAQ3C,KAAKoU,I,cAAjD,SAEKrmB,KAAK27C,cACR37C,KAAKo5K,iC,yBAIL,YAAAN,sBAAN,W,sHAKE,OAJMzyJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKigF,cAAchuE,KAAKoU,I,OAC9B,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUw3I,eAAe3lK,KAAKoU,I,cAAxD,S,YAEI,YAAA8yJ,qBAAN,SAA2B9yJ,G,0HACzB,SAAMrmB,KAAK6tC,aAAa57B,KAAKoU,I,OAC7B,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUyN,aAAa57B,KAAKoU,I,OAAtD,SAEMkb,EAAQvhC,KAAKspB,YAAYC,iB,IAEd,EAAAgY,E,wBAAA,WACf,GADW,KACA2C,SAAS7d,EAAK4nB,kBAAkB,IADvB,M,OACpB,S,wBADe,I,+BAIb,YAAAqrI,iBAAN,W,sHAKE,OAJMjzJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKgN,SAASiF,KAAKoU,I,OACzB,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUpzB,SAASiF,KAAKoU,I,cAAlD,S,YAEI,YAAAmzJ,gBAAN,W,sHAKE,OAJMnzJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKwN,QAAQyE,KAAKoU,I,OACxB,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAU5yB,QAAQyE,KAAKoU,I,cAAjD,S,YAEI,YAAAozJ,mBAAN,W,sHAME,OALMpzJ,EAAO,CACXpmB,KAAMD,KACN4jC,QAAQ,GAGV,GAAM5jC,KAAKuc,WAAWtK,KAAKoU,I,OAE3B,OAFA,SAEIA,EAAKud,OACA,CAAP,GAAO,GAGT,GAAM5jC,KAAKi3I,eAAe72G,UAAU7jB,WAAWtK,KAAKoU,I,OAEpD,OAFA,SAEIA,EAAKud,OACA,CAAP,GAAO,GAGF,CAAP,GAAO,WAEH,YAAA81I,kBAAN,W,sHAKE,OAJMrzJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKmmB,UAAUlU,KAAKoU,I,OAC1B,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUja,UAAUlU,KAAKoU,I,cAAnD,S,YAEI,YAAAoyJ,mBAAN,W,sHAKE,OAJMpyJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKohC,WAAWnvB,KAAKoU,I,OAC3B,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAUgB,WAAWnvB,KAAKoU,I,cAApD,S,YAEI,YAAAwyJ,iBAAN,W,sHAKE,OAJMxyJ,EAAO,CACXpmB,KAAMD,MAGR,GAAMA,KAAKioD,SAASh2C,KAAKoU,I,OACzB,OADA,SACA,GAAMrmB,KAAKi3I,eAAe72G,UAAU6nB,SAASh2C,KAAKoU,I,cAAlD,S,YAGF,YAAA+yJ,+BAAA,WACMp5K,KAAKi3I,eAAep3D,QAAQ+5F,SAI3B55K,KAAK42B,yBAIV52B,KAAK42B,2BAGG,YAAAsgH,SAAV,SAAmBpwI,GAAnB,WACE9G,KAAKyG,YAAW,WACd,EAAKE,OAAO+f,QAAQ5f,OAGd,YAAAkxI,YAAV,SAAsBv5H,GAAtB,WACEze,KAAKyG,YAAW,WACd,EAAKiiB,UAAUhC,QAAQjI,OAGjB,YAAAo7J,qBAAV,SAA+Bp6K,EAAYsnC,GAA3C,WACE/mC,KAAKyG,YAAW,WACd,EAAKsgC,kBAAkBhmC,IAAItB,EAAIsnC,OAGzB,YAAApX,WAAV,SAAqB3V,GAArB,WACEha,KAAKyG,YAAW,WACd,EAAK8U,SAASmL,QAAQ1M,OAGhB,YAAAy9H,YAAV,SAAsBh4I,EAAYuB,EAAuBC,EAAmB64K,GAA5E,WACM94K,EAAiBI,cACnBJ,EAAiBI,aAAapB,MAGhCA,KAAKyG,YAAW,WACd,EAAKm5E,UAAU7+E,IAAItB,EAAIuB,EAAkBC,EAAW64K,OAG9C,YAAAp6B,cAAV,SAAwBjgJ,EAAY4sB,GAApC,WACErsB,KAAKyG,YAAW,WACd,EAAK6iB,YAAY5C,QAAQjnB,EAAI4sB,OAGvB,YAAAgsH,aAAV,SAAuB3rI,GAAvB,WACE1M,KAAKyG,YAAW,WACd,EAAK8F,WAAWma,QAAQha,OAGlB,YAAAqtK,WAAV,SAAqBxqF,KAEX,YAAAyqF,WAAV,SAAqBC,EAA2Bl4K,GAC9C,IAAMiY,EAAmCha,KAAKoC,QAAQokB,SAASxmB,KAAKic,MAAOg+J,GACtEjgK,GAAYA,EAAQla,SAIzBE,KAAKga,QAAQla,QAAQE,KAAKic,MAAOjC,EAASjY,IAElC,YAAAo1I,uBAAV,WACEn3I,KAAK25K,qBAGC,YAAApB,aAAR,WACOv4K,KAAK27C,eACR37C,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB6e,qBAAqB7kD,OAE9EA,KAAK07C,aACP17C,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB6d,kBAAkB7jD,OAC/EA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB+d,mBAAmB/jD,OAChFA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgBqe,gCAAgCrkD,OAC7FA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgBme,8BAA8BnkD,OAC3FA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB4e,0BAA0B5kD,OAEvFA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB8f,cAAc9lD,OAC3EA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgBggB,YAAYhmD,SAEzEA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB6d,kBAAkB7jD,OAC/EA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB+d,mBAAmB/jD,OAChFA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgBse,qBAAqBtkD,OAE9EA,KAAK8W,iBACP9W,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgB8f,cAAc9lD,OAC3EA,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgBggB,YAAYhmD,UAK3EA,KAAK07C,aACP17C,KAAKub,SAASoU,WAAW3vB,KAAKi3I,eAAejxG,gBAAgByE,yBAGzD,YAAA8uI,cAAR,SAAsB95K,GACpB,QADoB,IAAAA,MAAA,OAChBO,KAAK07C,cAAe17C,KAAK27C,aAA7B,CAIA,GAAU,MAANl8C,EAAgB,CAClB,IAAMwH,EAAYjH,KAAK2G,OAAOI,eAC9B,IAAKE,EACH,OAGF,IAAMjE,EAAOhD,KAAK2G,OAAO3D,KAAKiE,EAAUxH,IACxC,IAAKuD,EACH,OAGF,IAAM8X,EAAM9X,EAAKiE,EAAU0f,aAC3B,GAAW,MAAP7L,EACF,OAGFrb,EAAKqb,EAGP,IAAMo/J,EAAal6K,KAAKi3I,eAAevyF,QAAQnmB,SACzC47I,EAAen6K,KAAKi3I,eAAevuF,OAAO4qB,SAAS4mG,GAEzD,GAAKC,EAAL,CAIA,IAAMC,EAASp6K,KAAKi3I,eAAevuF,OAAOsqB,aAAamnG,EAAalnG,MAAO,CACzExzE,GAAIA,IAGNO,KAAKi3I,eAAevyF,QAAQ4E,wBAAwB8wH,GAAQ,MAEtD,YAAArC,0BAAR,WAGE,IAFA,IAEoB,MAFH5hK,MAAMy1B,KAAK5rC,KAAK0Y,QAAQmzB,iBAAiB,mBAEtC,eAAU,CAG5B,IAHG,IAAInzB,EAAO,KACV2hK,GAAgB,EAChB,EAAS3hK,EAAQK,cACd,GAAU,GAAU/Y,KAAK0Y,SAAS,CACvC,GAAI,EAAOG,UAAUC,SAAS,YAAa,CACzCuhK,GAAgB,EAChB,MAEF,EAAS,EAAOthK,cAGlB,IAAIshK,EAAJ,CAIA,IAAM,EAAO3hK,EAAQK,cAAc2yB,aAAa,QAChD,GAAK,EAAL,CAIA,IAAMvrC,EAAWuxB,EAASqa,YAAY,EAAMrzB,GAC5C,GAAKvY,GAAaA,EAASwZ,MAA3B,CAIA,IAAMvI,EAAWjR,EAAS0gB,OAAO,YAC3BonB,EAAa9nC,EAAS0gB,OAAO,YAEnC,KAAKzP,GAAYA,EAAW,GAAM62B,GAKlC,YADA9nC,EAASwZ,aAKL,YAAAu+J,uBAAR,sBACEl4K,KAAK04K,yCAA2C14K,KAAKi3I,eAAehkI,gBAAgByB,UAAU,uBAAuB,SAAA3R,GACnHA,EAAEmlB,eAAiBnlB,EAAEmlB,gBAAkB,EAAKvhB,OAAOuhB,qBAG/C,YAAAiwJ,8BAAR,sBACEn4K,KAAK24K,mCAAqC34K,KAAKi3I,eAAehkI,gBAAgByB,UAC5E,eACA,SAAC1R,GACC,GAAKA,EAAL,CAIA,IAAMvD,EAAKuD,EAAKgF,GACV4vC,EAAS50C,EAAKs3K,OAEpB,GAAK76K,GAAOm4C,EAAZ,CAIA,IAAM7wC,EAAiB,EAAKJ,OAAOI,eAGnC,GAAIA,EAAgB,CAClB,IAAKA,GAAkBA,EAAeG,cAAgB0wC,EACpD,OAGF,IAAM7xC,EAAY,EAAKY,OAAO3D,KAAK+D,EAAetH,IAClD,GAAiB,MAAbsG,GAAqBA,EAAUgB,EAAe4f,cAAgBlnB,EAChE,OAGF,EAAKkH,OAAOuB,iBAEZ,EAAKvB,OACFkhB,YACAjR,QAAO,SAAA9P,GAAS,OAACA,EAAMgU,KAAOhU,EAAMI,cAAgB0wC,KACpDn2C,SAAQ,SAAAqF,GAAS,SAAKH,OAAOsf,eAAehU,KAAK,CAChDnL,MAAOA,aAMX,YAAA0wD,2BAAR,sBACEx3D,KAAKgS,qBAAqBnL,UAAS,SAAC9D,GAClC,IAAKA,EAAEX,UAAYW,EAAEX,QAAQ8P,YAC3B,OAAO3M,QAAQC,UAGjB,IAAMsB,EAAQ,EAAKH,OAAOghB,QAAQ5kB,EAAEX,QAAQ8P,aAAa,GAKzD,OAJIpL,GACF,EAAKH,OAAOuiB,eAAepiB,GAGtBvB,QAAQC,cAGX,YAAA4yK,qCAAR,sBACMp4K,KAAK07C,aAAe17C,KAAK27C,eAI7B37C,KAAK44K,0CAA4C54K,KAAKi3I,eAAehkI,gBAAgByB,UAAU,oCAAoC,SAAA3R,GACjI,EAAKi1K,UAAYj1K,EAAEgmD,gBAAgBjiD,OAAS,EAAKgjB,cAC5C,EAAKmtH,eAAevuF,OAAOmC,UAAU3lD,OAAS,EAEnD,EAAKwxB,cAAgB3zB,EAAEgmD,gBAAgBjiD,OAAS,EAAKgjB,kBAGjD,YAAAuuJ,uBAAR,WACE,GAAKr4K,KAAK8W,iBAGN9W,KAAK8W,eAAe0vC,oBAGpBxmD,KAAK8W,eAAeovC,WAAxB,CAIA,IAAMp/C,EAAQ9G,KAAK2G,OAAOI,eACRD,GACbA,EAAMI,cACNlH,KAAK2D,KAAKY,aAAauC,EAAMI,eAAiBlH,KAAK8W,eAAeI,aAAa5S,MAGlFtE,KAAK8W,eAAiB,QAIlB,YAAAxV,QAAR,WACEtB,KAAKsb,eAAeqzD,aACpB3uE,KAAKic,MAAQ,KAEbjc,KAAKi3I,eAAe31I,WAExB,EA17BA,GAAa,EAAAujB,Y,sQC5Db,iBACE,WACUd,EACAxb,EACAwmE,GAFA,KAAAhrD,eACA,KAAAxb,mBACA,KAAAwmE,iBA8FZ,OA5FQ,YAAAz2C,eAAN,SAAqBiiJ,EAAuBzrI,G,wHAC1C,OAAKyrI,EAIe,GAAMv6K,KAAK+jB,aAAa1f,IAAI,CAC9CC,IAAKtE,KAAK+jB,aAAaxf,aAAa,8BAA8Bg2K,GAClE/1K,WAAY,CACVT,QAAS,CAAC,qCANL,CAAP,EAAO+qC,G,OAUT,OAPM0rI,EAAc,WAOCA,EAA2C,8BAI/B,GAAMx6K,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAA26K,sBAAsB,CAC7F18E,MAAOlrF,IAASqQ,QAAQ,OAAOC,SAC/Bu3J,QAASF,EAA2C,kCAL7C,CAAP,EAAO1rI,G,OAQT,OALMvnC,EAA2B,UAS1B,CAAP,EAAOA,EAAOozK,UAHL,CAAP,EAAO7rI,WAMX,YAAAwgC,0BAAA,SAA0BvsE,GACxB,GAAiB,QAAbA,EAAEwH,SAIDxH,EAAEC,MAASD,EAAEC,KAAKw1B,aAAgBz1B,EAAEC,KAAKusE,mBAI1CxsE,EAAEC,KAAK+vC,UACJ/yC,KAAK+uE,eAAeS,QAAQzsE,EAAEC,KAAK+vC,WAD1C,CAMA,IAAMtoC,EAAiC1H,EAAE2H,YAEzCD,EAAKE,MAAME,gBAAkB7K,KAAKyvE,uBAAuB1sE,EAAEC,KAAKusE,iBAChE9kE,EAAKE,MAAMC,MAAQ,UAGb,YAAA6kE,uBAAR,SAA+Br6C,GAC7B,OAAQA,GACN,KAAK,EACH,MAAO,UAET,KAAK,EACH,MAAO,UAET,QACE,MAAO,KAKP,YAAAkpB,6CAAN,SAAmDs8H,G,sHACvC,SAAM56K,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,gCACpCC,WAAY,CACVR,MAAO,CAAC,0BAA2B42K,O,OAIvC,OAPMn2K,EAAI,WAOa,IAAbA,EAAES,OAIL,CAAP,EAAOT,EAAE,IAHA,CAAP,EAAO,cAML,YAAAo+B,qCAAN,SAA2Cg4I,G,sHAC/B,SAAM76K,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,gCACpCC,WAAY,CACVR,MAAO,CAAC,mBAAoB62K,O,OAIhC,OAPMp2K,EAAI,WAODA,EAAES,OAAS,EACX,CAAP,EAAOK,QAAQC,SAAQ,IAEhB,CAAP,EAAOD,QAAQC,SAAQ,YA/FhBg3B,EAAc,cAD1B,EAAAp9B,W,kCAGyB,EAAAsG,YACI,EAAAsF,gBACF,EAAAioC,iBAJfzW,GAAb,GAAa,EAAAA,kB,0PCDb,iBACE,WACU74B,EACAgK,GADA,KAAAhK,OACA,KAAAgK,WA6CZ,OA1CQ,YAAA64J,cAAN,SAAoBsU,EAAuBhsI,G,wHACzC,OAAKgsI,EAIe,GAAM96K,KAAK2D,KAAKU,IAAI,CACtCC,IAAKtE,KAAK2D,KAAKY,aAAa,8BAA8Bu2K,GAC1Dt2K,WAAY,CACVT,QAAS,CAAC,oCANL,CAAP,EAAO+qC,G,OAUT,OAPMisI,EAAc,WAOCA,EAA0C,6BAI9B,GAAM/6K,KAAK2N,SAAS7N,QAAQ,IAAI,EAAA26K,sBAAsB,CACrF18E,MAAOlrF,IAASqQ,QAAQ,OAAOC,SAC/Bu3J,QAASK,EAA0C,iCAL5C,CAAP,EAAOjsI,G,OAQT,OALMvnC,EAA2B,UAS1B,CAAP,EAAOA,EAAOozK,UAHL,CAAP,EAAO7rI,WAML,YAAAohD,qCAAN,SAA2C8qF,G,sHAC/B,SAAMh7K,KAAK2D,KAAKU,IAAI,CAC5BC,IAAKtE,KAAK2D,KAAKY,aAAa,gCAC5BC,WAAY,CACVR,MAAO,CAAC,mBAAoBg3K,O,OAIhC,OAPMv2K,EAAI,WAODA,EAAES,OAAS,EACX,CAAP,EAAOK,QAAQC,SAAQ,IAEhB,CAAP,EAAOD,QAAQC,SAAQ,YA7ChB4qF,EAAc,cAD1B,EAAAhxF,W,kCAGiB,EAAAsG,YACI,EAAAsF,mBAHTolF,GAAb,GAAa,EAAAA,kB,8DCdb,OAAe,cAA0B,wC,wMCQzC,iBACE,WACUrsE,GAAA,KAAAA,eA6BZ,OA3BQ,YAAA+T,wBAAN,SAA8BrU,G,sHAClB,SAAMzjB,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,0BACpCC,WAAY,CACVT,QAAS,CAAC,MACVC,MAAO,CAAC,CAAC,UAAWyf,GAAU,CAAC,iBAAiB,Q,OAIpD,OARMhf,EAAI,WAQDA,EAAES,OAAS,EACX,CAAP,EAAOT,EAAE,GAAGuD,IAEL,CAAP,EAAO,cAIL,YAAAkwB,uBAAN,SAA6B0rF,G,sHACjB,SAAM5jH,KAAK+jB,aAAa1f,IAAI,CACpCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,0BAA0Bq/G,M,OAGhE,OAJMn/G,EAAI,UAKD,CAAP,EAAOA,EAAE2zB,YAEF,CAAP,EAAO,cA5BAqE,EAAc,cAD1B,EAAAr9B,W,kCAGyB,EAAAsG,eAFb+2B,GAAb,GAAa,EAAAA,kB,qQCDb,iBAGE,WACUnf,EACArK,GADA,KAAAqK,cACA,KAAArK,kBAJF,KAAAgoK,gBAAuB,GAO/B,KAAAl3F,oBAA8B,EAiDhC,OA/CQ,YAAAm3F,gBAAN,W,8HACiB,SAAMl7K,KAAKsd,YAAYjZ,IAAI,CACxCC,IAAKtE,KAAKsd,YAAYoI,UAAU,sB,OAIlC,IALMne,EAAS,SAIT4zK,EAAiB,GAClB,EAAL,EAAiB,EAAA5zK,EAAA,eAARpE,EAAI,KACXg4K,EAAeh4K,EAAKi4K,cAAgBj4K,E,OAGtCnD,KAAKi7K,gBAAkBE,E,YAGzB,YAAA/zJ,aAAA,SAAalgB,EAAsBmgB,GACjC,OAAOrnB,KAAKq7K,UAAUn0K,EAAc,SAAUmgB,IAEhD,YAAAE,gBAAA,SAAgBrgB,EAAsBmgB,GACpC,OAAOrnB,KAAKq7K,UAAUn0K,EAAc,YAAamgB,IAEnD,YAAAI,gBAAA,SAAgBvgB,EAAsBmgB,GACpC,OAAOrnB,KAAKq7K,UAAUn0K,EAAc,YAAamgB,IAG3C,YAAAg0J,UAAR,SAAkBn0K,EAAsBkwD,EAAkB/vC,GACxD,GAAIrnB,KAAK+jF,mBACP,OAAO,EAGT,IAAM19D,EAAO,CACXnf,aAAY,EACZkwD,SAAQ,EACR/vC,SAAQ,EACRi0J,UAAW,MAKb,OAFAt7K,KAAKiT,gBAAgBuF,QAAQ,wBAAyB6N,GAEhC,MAAlBA,EAAKi1J,UACAj1J,EAAKi1J,YAGTt7K,KAAKi7K,gBAAgB/zK,IAInBlH,KAAKi7K,gBAAgB/zK,GAAckwD,IAvDjC7sC,EAAiB,cAD7B,EAAAnrB,W,kCAKwB,EAAAsG,YACI,EAAA0T,mBALhBmR,GAAb,GAAa,EAAAA,qB,yZCeb,iBACE,WACUpkB,EACAggC,EACA2Z,EACAnyC,GAHA,KAAAxH,eACA,KAAAggC,YACA,KAAA2Z,sBACA,KAAAnyC,WAsBV,KAAAoyC,2BAA2C,CACzCtgD,GAAI,sBACJE,WAAY,mBACZE,MAAO,qDACPH,KAAM,OACNE,UAAW,GACX0G,WAAW,EACXxG,QAASE,KAAKggD,oCAAoCv/C,KAAKT,OAGzD,KAAAu7K,0BAA0C,CACxC97K,GAAI,4BACJE,WAAY,mBACZE,MAAO,wCACPH,KAAM,QACN4G,WAAW,EACXxG,QAASE,KAAKw7K,UAAU/6K,KAAKT,OAuBjC,OAxDE,YAAAS,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAK0G,OAAOC,SAASC,UAAS,SAAApC,GAC5B,GAAS,MAALA,GAA6B,uBAAdA,EAAEqC,MAAMrH,IAAyC,MAAVgF,EAAEzB,KAS5D,OALA,EAAK+8C,2BAA2Bz5C,UAA+E,MAAnE,EAAKrG,KAAK0G,OAAO3D,KAAKy4K,oBAAoBp7H,sBAEtF,EAAKk7H,0BAA0Bj1K,UAA4D,MAAhD,EAAKrG,KAAK0G,OAAO3D,KAAKy4K,oBAAoBzzK,KAC/E,EAAK/H,KAAK0G,OAAO3D,KAAKy4K,oBAAoBC,UAEzCn2K,QAAQC,cAuBb,YAAAw6C,oCAAN,SAA0Cj9C,G,sHAExC,OADMu9C,EAAwBtgD,KAAKC,KAAK0G,OAAO3D,KAAKy4K,oBAAoBp7H,uBAKxE,GAAMrgD,KAAKmmC,UAAU3H,kBAHnB,I,cAGF,SAEAx+B,KAAK8/C,oBACFhqC,KAAKwqC,GAAuB,G,YAGnB,YAAAk7H,UAAd,W,gHAEE,OADAx7K,KAAKC,KAAK0G,OAAO3D,KAAKy4K,oBAAoBC,WAAY,EACtD,GAAM17K,KAAKC,KAAKqP,Q,cAAhB,SAEItP,KAAKC,KAAKy7C,aACZ17C,KAAKmmC,UAAU+J,oB,YA/DR4wG,EAAyB,cAFrC,EAAA1hJ,WACA,EAAAuB,Y,kCAGyB,EAAA0H,oBACH,EAAA00B,iBACU,EAAA4jB,2BACX,EAAA31C,mBALT81I,GAAb,GAAa,EAAAA,6B,6dCtBb,oBACA,oBACA,oBACA,oBACA,qB,2KCJA,SAAYh2H,GAEV,sCAFF,CAAY,EAAAA,qBAAA,EAAAA,mBAAkB,M,0QCQ9B,iBAOE,aANQ,KAAA6wJ,WAAa,wBACb,KAAAC,YAAc,sCAEd,KAAAC,WAAa,GACb,KAAAC,QAAU,GAGhB97K,KAAK+7K,YAAY,IAAIC,GA0MzB,OAvME,YAAAD,YAAA,SAAYE,GACVj8K,KAAK8uC,QAAUmtI,EACfj8K,KAAK67K,WAAa,GAClB77K,KAAK87K,QAAU,GAEf,IAAMI,EAAal8K,KAAKm8K,gBACpBD,GACFA,EAAW9M,YAAYC,KAAK+M,OAAO,CACjCC,cAAe,SAACr3K,GACd,MAAc,eAAVA,EACKi3K,EAASK,YAETL,EAAStqE,QAGpB4qE,YAAa,SAACv3K,GACZ,MAAc,eAAVA,EACKi3K,EAASO,UAETP,EAASQ,SAO1B,YAAAz3K,OAAA,SAAOqJ,EAAYrJ,GACjB,OAAOhF,KAAK8lI,aAAa9gI,EAAlBhF,CAA0BqO,IAEnC,YAAAy3H,aAAA,SAAa9gI,GAAb,WACM03K,EAAY18K,KAAK67K,WAAW72K,GA2ChC,OAzCiB,MAAb03K,IACFA,EAAY,SAACruK,GACX,GAAa,MAATA,EACF,OAAO,KAGT,GAAsB,IAAlBrJ,EAAOE,QAAgBF,EAAOgkB,WAAW,OAAQ,CACnD,IAAM2zJ,EAAe33K,EAAOgkB,WAAW,OACnChkB,EAAOkkD,OAAO,GACd,EAAKpa,QAAQ9pC,GAEjB,OAAO6N,EAAOxE,GAAO4jJ,OAAO,EAAKnjH,QAAQ8tI,SAAS53K,OAAO23K,GAEzD,IAAMjkI,EAAQivB,SAAS3iE,EAAOkkD,OAAO,KAAO,EACtC2zH,EAAc73K,EAAOkkD,OAAO,EAAG,GAEjB,MAAhB2zH,IACFxuK,GAAgB,KAGlB,IAAMya,EAASza,EAAQ,EACnB,IACA,GAEEyuK,EAAWn1G,SAASt5D,EAAQ+3F,KAAKC,IAAI+yD,OAAO/qJ,IAAU,GAAG0uK,QAAQrkI,IACjEskI,EAAmBC,OAAOH,GAE5BI,OAAS,EAGb,OAAOp0J,IAFPo0J,GAAaA,EAAYF,EAAiB93K,QAAU,EAAIg4K,EAAY,EAAI,GAGvDF,EAAiB9zH,OAAO,EAAGg0H,GAAa,EAAKpuI,QAAQquI,eAAiB,IACnFH,EAAiB9zH,OAAOg0H,GAAWn7H,QAAQ,iBAAkB,KAAO,EAAKjT,QAAQquI,iBAChFzkI,EAAQ,EAAK5J,QAAQsuI,eAAiBh3E,KAAKC,IAAIh4F,EAAQyuK,GAAUC,QAAQrkI,GAAOuB,MAAM,GAAK,KAC3E,MAAhB4iI,EAAsB,KAAO,KAItC78K,KAAK67K,WAAW72K,GAAU03K,GAGrBA,GAET,YAAAW,UAAA,SAAUr4K,GAAV,WACMs4K,EAASt9K,KAAK87K,QAAQ92K,GA4E1B,OA1Ec,MAAVs4K,IACFA,EAAS,SAACjvK,GACR,GAAa,MAATA,EACF,OAAO,KAGT,GAAsB,IAAlBrJ,EAAOE,QAAgBF,EAAOgkB,WAAW,OAAQ,CACnD,IAAM2zJ,EAAe33K,EAAOgkB,WAAW,OACnChkB,EAAOkkD,OAAO,GACd,EAAKpa,QAAQ9pC,GAEbuC,EAAwB,KAE5B,GAAc,MAAV8G,EACF9G,EAASsL,IAASqQ,QAAQ,YACrB,GAAI7U,EAAM2a,WAAW,MAAQ3a,EAAM2a,WAAW,KAAM,CACzD,IAAMu0J,EAAclvK,EAAM66C,OAAO,GAC3Bs0H,EAAO71G,SAAS41G,GACtB,GAAIE,MAAMD,GACR,OAAO,KAKPj2K,EAFkB8G,EAAM2a,WAAW,KAE1BnW,IAASqQ,QAAQ,OAAOD,SAASu6J,EAAM,QAEvC3qK,IAASqQ,QAAQ,OAAOniB,IAAIy8K,EAAM,aAG7Cj2K,EAASsL,EAAOxE,EAAOsuK,GAGzB,OAAIp1K,EAAOQ,UACFR,EAAO4b,SAEP,KAGT,IAAMu6J,EAAc,EAAK5uI,QAAQquI,eAAep7H,QAAQ,EAAK65H,YAAa,QAMpErkK,GALNlJ,EAAQA,EACL0zC,QAAQ,IAAIC,OAAO07H,EAAa,KAAM,IACtC37H,QAAQ,IAAIC,OAAO,IAAK,KAAM,IAC9BD,QAAQ,IAAIC,OAAO,IAAK,KAAM,KAEXzqC,QAAQ,EAAKu3B,QAAQsuI,gBAEvCjiK,EAAI9M,EACJ6M,EAAI,GACJ3D,GAAW,IACb4D,EAAI9M,EAAM66C,OAAO,EAAG3xC,GACpB2D,EAAI7M,EAAM66C,OAAO3xC,EAAU,IAGfowD,SAAS3iE,EAAOkkD,OAAO,IAGrC,OAFoBlkD,EAAOkkD,OAAO,EAAG,IAGnC,IAAK,IACL,IAAK,IACH,OAAOye,SAASxsD,GAAK,EAAKwiK,UAAUziK,GAEtC,IAAK,IACH,OAAQysD,SAASxsD,GAAK,EAAKwiK,UAAUziK,IAAM,IAE7C,QACE,MAAM,IAAI7Z,MAAM,0BAA0B2D,KAMlDhF,KAAK87K,QAAQ92K,GAAUs4K,GAGlBA,GAET,YAAAx2I,mBAAA,SAAmB9hC,GACjB,MAAO,CACL03K,UAAW18K,KAAK8lI,aAAa9gI,GAC7Bs4K,OAAQt9K,KAAKq9K,UAAUr4K,KAG3B,YAAAikC,gBAAA,SAAgBjkC,GACd,GAAIA,EAAOE,OAAS,EAClB,MAAM,IAAI7D,MAAM,yBAAyB2D,GAG3C,IAAMwkB,EAAIxkB,EAAOkkD,OAAO,EAAG,GACrBjgC,EAAI0+C,SAAS3iE,EAAOkkD,OAAO,IAE7B00H,EAAK,GAKT,OAJI30J,EAAI,IACN20J,EAAK,IAAM,IAAIziH,OAAOlyC,IAGhBO,GACN,IAAK,IACL,IAAK,IACH,MAAO,KAAKo0J,EAEd,IAAK,IACL,IAAK,IACH,MAAO,QAAQA,EAEjB,IAAK,IACL,IAAK,IACH,MAAO,QAAQA,EAAE,KAEnB,QACE,MAAM,IAAIv8K,MAAM,yBAAyB2D,KAKvC,YAAAm3K,cAAR,WAEE,OADe3lK,OACNnN,YAEH,YAAAs0K,UAAR,SAAkBtvK,GAChB,OAAOs5D,SAASt5D,GAAS+3F,KAAKy3E,IAAI,GAAIxvK,EAAMnJ,SAhNnCS,EAAoB,cADhC,EAAAvG,W,sCACYuG,GAAb,GAAa,EAAAA,uBA2Ob,iBACE,KAAAi3K,QAAU,KAEV,KAAAzvI,EAAI,aACJ,KAAA2wI,EAAI,qBACJ,KAAA/6K,EAAI,kBACJ,KAAAg7K,EAAI,wBACJ,KAAAv0J,EAAI,4BACJ,KAAAw0J,EAAI,+BACJ,KAAAC,EAAI,mBACJ,KAAAC,EAAI,sBACJ,KAAAjlI,EAAI,QACJ,KAAAklI,EAAI,WAEJ,KAAAf,eAAiB,IACjB,KAAAD,eAAiB,IAEjB,KAAAxrE,OAAS,CAAC,SAAU,UAAW,OAAQ,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACrH,KAAA2qE,YAAc,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACtG,KAAAG,KAAO,CAAC,UAAW,SAAU,WAAY,WAAY,aAAc,UAAW,WAC9E,KAAAD,UAAY,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OApBtC,EAAAR,+B,6KCnPb,SAAYxmC,GACV,qBACA,qCAFF,CAAY,EAAAA,uBAAA,EAAAA,qBAAoB,M,4YCuBhC,iBACE,WACU7nI,EACAwF,GAFV,WACU,KAAAxF,WACA,KAAAwF,sBASV,KAAA0P,+BAA+C,CAC7CpjB,GAAI,0BACJE,WAAY,gBACZE,MAAO,mCACPD,UAAW,GACXF,KAAM,UACNI,QAAS,0D,6EAC0BE,KAAKC,KAA4B,sBAC5DE,SAAS2F,QAETgd,EAAmC9iB,KAAKC,KAAsB,iBAGlE,IADMqC,EAAawgB,EAAU3iB,SAAS2R,iBACrBC,UAFf,M,OAEF,SAEiC,GAA7BzP,EAAWyR,QAAQ7O,QACrB4d,EAAUC,UAAU,CAClB1U,MAAO/L,EAAWyR,QAAQ,GAAG/L,K,oCAMvC,KAAAo2K,qCAAqD,CACnD3+K,GAAI,yBACJI,MAAO,yCACPF,WAAY,gBACZC,UAAW,GACXF,KAAM,QACNI,QAAS,0D,6EAC0BE,KAAKC,KAAkC,4BAClEE,SAAS2F,QAETgd,EAAmC9iB,KAAKC,KAAqB,gBAGjE,IADMqC,EAAawgB,EAAU3iB,SAAS2R,iBACrBC,UAFf,M,OAEF,SAEiC,GAA7BzP,EAAWyR,QAAQ7O,QACrB4d,EAAUC,UAAU,CAClB1U,MAAO/L,EAAWyR,QAAQ,GAAG/L,K,oCAMvC,KAAAq2K,mCAAmD,CACjD5+K,GAAI,8BACJI,MAAO,6BACPF,WAAY,gBACZC,UAAW,GACXF,KAAM,SACNI,QAAS,0D,+EACDw+K,EAA0Ct+K,KAAKC,KAAmB,gBAEtEq+K,EAAap0J,SAAS,MACtBo0J,EAAa39F,YAAc,MAGI3gF,KAAKC,KAAsB,gBACtDE,SAAS2F,QAETgd,EAAmC9iB,KAAKC,KAAmB,cAG/D,IADMqC,EAAawgB,EAAU3iB,SAAS2R,iBACrBC,UAFf,M,OAEF,SAEiC,GAA7BzP,EAAWyR,QAAQ7O,QACrB4d,EAAUC,UAAU,CAClB1U,MAAO/L,EAAWyR,QAAQ,GAAG/L,K,oCAOvC,KAAAqb,yBAAyC,CACvC5jB,GAAI,oBACJI,MAAO,mCACPH,KAAM,UACNI,QAAS,0D,4EAMP,OALM4Z,EAA2B1Z,KAAKC,KAA4B,sBAC5DigD,EAA+BlgD,KAAKC,KAAiB,WACrDujB,EAAwCxjB,KAAKC,KAAsB,iBAEnEwjB,EAAUD,EAAerjB,SAAS0gB,OAAO,WAMzClT,EAAW,IAAI,EAAA4wK,0BAA0B,CAC7C36J,SAAUs8B,EAAQ//C,SAAS0gB,OAAO,SAClCgD,QAASJ,IAGkC,GAAMzjB,KAAK2N,SAAS7N,QAAQ6N,GAAU,MATjFtE,WAAWC,GAAGO,OAAO7J,KAAKmT,oBAAoBhK,cAAc,kCAAmC,QAAS,KACxG,K,cAQ2C,SAC7CnJ,KAAKC,KAAK0G,OAAOuB,YACjBwR,EAAMvZ,SAASiV,O,aAGnB,KAAAopK,4BAA4C,CAC1C/+K,GAAI,uBACJI,MAAO,6BACPH,KAAM,SACNI,QAAS,0D,8EAMP,OALM4Z,EAA2B1Z,KAAKC,KAAsB,gBACtDujB,EAAwCxjB,KAAKC,KAAmB,aAChEq+K,EAA0Ct+K,KAAKC,KAAmB,cAElEwjB,EAAUD,EAAerjB,SAAS0gB,OAAO,WAMzCkuC,EAAUuvH,EAAaxpB,eAMvBnnJ,EAAW,IAAI,EAAA8wK,yBAAyB,CAC5C56J,QAASJ,EACTlN,QAASw4C,IAGX,GAAM/uD,KAAK2N,SAAS7N,QAAQ6N,GAAU,MATpCtE,WAAWC,GAAGO,OAAO7J,KAAKmT,oBAAoBhK,cAAc,oCAAqC,QAAS,KAC1G,MAPAE,WAAWC,GAAGO,OAAO7J,KAAKmT,oBAAoBhK,cAAc,kCAAmC,QAAS,KACxG,K,cAcF,SAEAnJ,KAAKC,KAAK0G,OAAOuB,YACjBwR,EAAMvZ,SAASiV,O,aAGnB,KAAAspK,8BAA8C,CAC5Cj/K,GAAI,gCACJI,MAAO,yCACPH,KAAM,QACNI,QAAS,0D,4EAMP,OALM4Z,EAA2B1Z,KAAKC,KAAkC,4BAClEujB,EAAwCxjB,KAAKC,KAAqB,eAClE0+K,EAAuD3+K,KAAKC,KAAoC,+BAEhGwjB,EAAUD,EAAerjB,SAAS0gB,OAAO,WAMzClT,EAAW,IAAI,EAAAixK,gCAAgC,CACnD/6J,QAASJ,EACTo7J,uBAAwBF,EAA8Bx+K,SAAS0gB,OAAO,WAGxE,GAAM7gB,KAAK2N,SAAS7N,QAAQ6N,GAAU,MATpCtE,WAAWC,GAAGO,OAAO7J,KAAKmT,oBAAoBhK,cAAc,kCAAmC,QAAS,KACxG,K,cAQF,SACAnJ,KAAKC,KAAK0G,OAAOuB,YACjBwR,EAAMvZ,SAASiV,O,aAGrB,OAlKE,YAAA3U,KAAA,SAAKR,GACHD,KAAKC,KAAOA,GATHi5I,EAAoB,cAFhC,EAAA95I,WACA,EAAAuB,Y,kCAGqB,EAAAqK,gBACW,EAAAC,uBAHpBiuI,GAAb,GAAa,EAAAA,wB,ghUCvBb,MACE,SAAmBl2I,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iDAHD,EAAA3rD,uBAKb,MACE,SAAmBnwH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAAC,gCAKb,MACE,SAAmB/7K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAp3F,6BAKb,MACE,SAAmB1kF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAh3F,qCAKb,MACE,SAAmB9kF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAj3F,kCAKb,MACE,SAAmB7kF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6CAHD,EAAA9uH,qBAKb,MACE,SAAmBhtD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+CAHD,EAAAzvH,uBAKb,MACE,SAAmBrsD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6EAHD,EAAA13G,wCAKb,MACE,SAAmBpkE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8EAHD,EAAA54G,yCAKb,MACE,SAAmBljE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iFAHD,EAAAz4G,4CAKb,MACE,SAAmBrjE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wEAHD,EAAA30D,mCAKb,MACE,SAAmBnnH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAA3qF,8BAKb,MACE,SAAmBnxF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAAzqJ,yCAKb,MACE,SAAmBrxB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAlqF,qCAKb,MACE,SAAmB5xF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAA1vG,kCAKb,MACE,SAAmBpsE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sEAHD,EAAAzvG,0CAKb,MACE,SAAmBrsE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAjqF,uCAKb,MACE,SAAmB7xF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sFAHD,EAAApqF,0DAKb,MACE,SAAmB1xF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mGAHD,EAAAphI,uEAKb,MACE,SAAmB16C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wFAHD,EAAAnhI,4DAKb,MACE,SAAmB36C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2FAHD,EAAAthI,+DAKb,MACE,SAAmBx6C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0EAHD,EAAA5qJ,8CAKb,MACE,SAAmBlxB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAt5I,4BAKb,MACE,SAAmBxiC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yDAHD,EAAAj5I,6BAKb,MACE,SAAmB7iC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+CAHD,EAAAnhJ,mBAKb,MACE,SAAmB36B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAA76D,0BAKb,MACE,SAAmBjhH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAA9pF,yCAKb,MACE,SAAmBhyF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2EAHD,EAAA5V,+CAKb,MACE,SAAmBlmK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAA7/G,6CAKb,MACE,SAAmBj8D,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAA/V,sCAKb,MACE,SAAmB/lK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAArW,wCAKb,MACE,SAAmBzlK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAA1hJ,4BAKb,MACE,SAAmBp6B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0EAHD,EAAAvqF,8CAKb,MACE,SAAmBvxF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAn/J,iCAKb,MACE,SAAmB3c,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kFAHD,EAAAjgH,sDAKb,MACE,SAAmB77D,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4EAHD,EAAAjW,gDAKb,MACE,SAAmB7lK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uFAHD,EAAA1W,2DAKb,MACE,SAAmBplK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAtgH,qCAKb,MACE,SAAmBx7D,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAAxW,wCAKb,MACE,SAAmBtlK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uGAHD,EAAAlR,2EAKb,MACE,SAAmB5qK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4FAHD,EAAAjR,gEAKb,MACE,SAAmB7qK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+FAHD,EAAApR,mEAKb,MACE,SAAmB1qK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAF,kCAKb,MACE,SAAmB57K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAAP,4BAKb,MACE,SAAmBv7K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oDAHD,EAAAL,2BAKb,MACE,SAAmBz7K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAA31B,4BAKb,MACE,SAAmBnmJ,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gDAHD,EAAAE,qBAKb,MACE,SAAmBh8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yDAHD,EAAA1K,8BAKb,MACE,SAAmBpxK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+CAHD,EAAAvsH,oBAKb,MACE,SAAmBvvD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAjsF,6BAKb,MACE,SAAmB7vF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oDAHD,EAAApsF,yBAKb,MACE,SAAmB1vF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAp7J,gCAKb,OACE,SAAmB1gB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAx7H,+BAKb,OACE,SAAmBtgD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAA1iD,wBAKb,OACE,SAAmBp5H,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAxkD,iCAKb,OACE,SAAmBt3H,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAplD,iCAKb,OACE,SAAmB12H,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yDAHD,EAAAG,+BAKb,OACE,SAAmBj8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAI,kCAKb,OACE,SAAmBl8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAAK,gCAKb,OACE,SAAmBn8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oDAHD,EAAAM,0BAKb,OACE,SAAmBp8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAO,mCAKb,OACE,SAAmBr8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAA3I,iCAKb,OACE,SAAmBnzK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAzI,kCAKb,OACE,SAAmBrzK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAA9iE,mCAKb,OACE,SAAmBh5G,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+DAHD,EAAA7S,sCAKb,OACE,SAAmBjpK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAA/S,4BAKb,OACE,SAAmB/oK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+DAHD,EAAAlT,sCAKb,OACE,SAAmB5oK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAAxsD,8BAKb,OACE,SAAmBtvH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAArsI,kCAKb,OACE,SAAmBzvC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAQ,6BAKb,OACE,SAAmBt8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAxhJ,8BAKb,OACE,SAAmBt6B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAS,gCAKb,OACE,SAAmBv8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gFAHD,EAAAU,kDAKb,OACE,SAAmBx8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAW,8BAKb,OACE,SAAmBz8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uFAHD,EAAAp0C,wDAKb,OACE,SAAmB1nI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qFAHD,EAAAY,sDAKb,OACE,SAAmB18K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+FAHD,EAAA30C,gEAKb,OACE,SAAmBnnI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mFAHD,EAAAa,oDAKb,OACE,SAAmB38K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4EAHD,EAAAc,6CAKb,OACE,SAAmB58K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAAzU,6BAKb,OACE,SAAmBrnK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAe,mCAKb,OACE,SAAmB78K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAgB,mCAKb,OACE,SAAmB98K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAAl6C,0BAKb,OACE,SAAmB5hI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAzwC,6BAKb,OACE,SAAmBrrI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAAl/I,4BAKb,OACE,SAAmB58B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAnhE,+BAKb,OACE,SAAmB36G,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAA7mF,kCAKb,OACE,SAAmBj1F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sEAHD,EAAAt9D,wCAKb,OACE,SAAmBx+G,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAx9D,kCAKb,OACE,SAAmBt+G,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAv8D,6BAKb,OACE,SAAmBv/G,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAAiB,yBAKb,OACE,SAAmB/8K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAA7wF,yBAKb,OACE,SAAmBjrF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAArH,qCAKb,OACE,SAAmBz0K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+EAHD,EAAAkB,iDAKb,OACE,SAAmBh9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAt8H,gCAKb,OACE,SAAmBx/C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAnnK,2CAKb,OACE,SAAmB3U,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAjnK,2CAKb,OACE,SAAmB7U,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4EAHD,EAAA/mK,8CAKb,OACE,SAAmB/U,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yDAHD,EAAAnvH,2BAKb,OACE,SAAmB3sD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mFAHD,EAAAhnK,qDAKb,OACE,SAAmB9U,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAAvV,wBAKb,OACE,SAAmBvmK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAA3tD,wBAKb,OACE,SAAmBnuH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAA/xD,4BAKb,OACE,SAAmB/pH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mFAHD,EAAAmB,qDAKb,OACE,SAAmBj9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAAoB,sCAKb,OACE,SAAmBl9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAjuD,gCAKb,OACE,SAAmB7tH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAAjtD,+BAKb,OACE,SAAmB7uH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAAvvD,sCAKb,OACE,SAAmBvsH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAA/oJ,0BAKb,OACE,SAAmB/yB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAp2E,0BAKb,OACE,SAAmB1lG,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAAn/C,sCAKb,OACE,SAAmB38H,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAnrH,0BAKb,OACE,SAAmB3wD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAqB,2CAKb,OACE,SAAmBn9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAsB,2CAKb,OACE,SAAmBp9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAhlK,qCAKb,OACE,SAAmB9W,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAv/H,kCAKb,OACE,SAAmBv8C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAA7/H,8BAKb,OACE,SAAmBj8C,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAA96C,6BAKb,OACE,SAAmBhhI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAAtwJ,oCAKb,OACE,SAAmBxrB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAA/yJ,kCAKb,OACE,SAAmB/oB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAuB,qCAKb,OACE,SAAmBr9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAArE,yBAKb,OACE,SAAmBz3K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAA3vF,wBAKb,OACE,SAAmBnsF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAAwB,wBAKb,OACE,SAAmBt9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+DAHD,EAAAt3C,iCAKb,OACE,SAAmBxkI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAjpD,kCAKb,OACE,SAAmB7yH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAhvH,8BAKb,OACE,SAAmB9sD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAAyB,yBAKb,OACE,SAAmBv9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAA0B,yBAKb,OACE,SAAmBx9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAAzuC,wBAKb,OACE,SAAmBrtI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAA1uC,gCAKb,OACE,SAAmBptI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kDAHD,EAAA2B,oBAKb,OACE,SAAmBz9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAA4B,4BAKb,OACE,SAAmB19K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAA30G,wBAKb,OACE,SAAmBnnE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAzmK,gCAKb,OACE,SAAmBrV,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAA6B,sCAKb,OACE,SAAmB39K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAA8B,sCAKb,OACE,SAAmB59K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAA+B,sCAKb,OACE,SAAmB79K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAgC,sCAKb,OACE,SAAmB99K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wEAHD,EAAAiC,2CAKb,OACE,SAAmB/9K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wEAHD,EAAAkC,2CAKb,OACE,SAAmBh+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAmC,+BAKb,OACE,SAAmBj+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kFAHD,EAAAoC,qDAKb,OACE,SAAmBl+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kFAHD,EAAAqC,qDAKb,OACE,SAAmBn+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAA/vC,wCAKb,OACE,SAAmB/rI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAsC,sCAKb,OACE,SAAmBp+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAuC,sCAKb,OACE,SAAmBr+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAwC,+BAKb,OACE,SAAmBt+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mFAHD,EAAAyC,sDAKb,OACE,SAAmBv+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mFAHD,EAAA0C,sDAKb,OACE,SAAmBx+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAA2C,qCAKb,OACE,SAAmBz+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAA4C,qCAKb,OACE,SAAmB1+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAArgF,sCAKb,OACE,SAAmBz7F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAA6C,oCAKb,OACE,SAAmB3+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uEAHD,EAAA8C,0CAKb,OACE,SAAmB5+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAA+C,oCAKb,OACE,SAAmB7+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAArkF,8BAKb,OACE,SAAmBz3F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAgD,oCAKb,OACE,SAAmB9+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAiD,oCAKb,OACE,SAAmB/+K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wEAHD,EAAAkD,2CAKb,OACE,SAAmBh/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wEAHD,EAAAmD,2CAKb,OACE,SAAmBj/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2EAHD,EAAAoD,8CAKb,OACE,SAAmBl/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2EAHD,EAAAqD,8CAKb,OACE,SAAmBn/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uEAHD,EAAAsD,0CAKb,OACE,SAAmBp/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uEAHD,EAAAuD,0CAKb,OACE,SAAmBr/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAwD,4CAKb,OACE,SAAmBt/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yEAHD,EAAAyD,4CAKb,OACE,SAAmBv/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAA0D,2BAKb,OACE,SAAmBx/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAApvC,wCAKb,OACE,SAAmB1sI,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2EAHD,EAAA2D,8CAKb,OACE,SAAmBz/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2EAHD,EAAA4D,8CAKb,OACE,SAAmB1/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kDAHD,EAAAz+E,qBAKb,OACE,SAAmBr9F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gDAHD,EAAAl+E,mBAKb,OACE,SAAmB59F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAAl9E,wBAKb,OACE,SAAmB5+F,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kDAHD,EAAAr7E,qBAKb,OACE,SAAmBzgG,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mDAHD,EAAAx5E,sBAKb,OACE,SAAmBtiG,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAA6D,8BAKb,OACE,SAAmB3/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4CAHD,EAAA3oI,oBAKb,OACE,SAAmBnzC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4CAHD,EAAAtoI,oBAKb,OACE,SAAmBxzC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAA8D,mCAKb,OACE,SAAmB5/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAA+D,kCAKb,OACE,SAAmB7/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kDAHD,EAAAgE,uBAKb,OACE,SAAmB9/K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAA3wJ,2BAKb,OACE,SAAmBnrB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,0DAHD,EAAAiE,+BAKb,OACE,SAAmB//K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAApY,yCAKb,OACE,SAAmB1jK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAhZ,sCAKb,OACE,SAAmB9iK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAA/Y,mCAKb,OACE,SAAmB/iK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAA9Y,qCAKb,OACE,SAAmBhjK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAAj7G,0CAKb,OACE,SAAmB7gE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iFAHD,EAAA5Y,sDAKb,OACE,SAAmBljK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gGAHD,EAAAx6G,qEAKb,OACE,SAAmBthE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qFAHD,EAAAv6G,0DAKb,OACE,SAAmBvhE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wFAHD,EAAA16G,6DAKb,OACE,SAAmBphE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gFAHD,EAAA36G,qDAKb,OACE,SAAmBnhE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8FAHD,EAAA76G,mEAKb,OACE,SAAmBjhE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAArlJ,yCAKb,OACE,SAAmBz2B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAAtrJ,4BAKb,OACE,SAAmBxwB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAApqJ,sCAKb,OACE,SAAmB1xB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAAzqF,uCAKb,OACE,SAAmBrxF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAA/pJ,mCAKb,OACE,SAAmB/xB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAAzzH,gCAKb,OACE,SAAmBroD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAApzH,wCAKb,OACE,SAAmB1oD,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gEAHD,EAAAzpJ,qCAKb,OACE,SAAmBryB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAnpJ,mCAKb,OACE,SAAmB3yB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAArpD,kCAKb,OACE,SAAmBzyH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAhmJ,6BAKb,OACE,SAAmB91B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qEAHD,EAAAkE,0CAKb,OACE,SAAmBhgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iFAHD,EAAA7pJ,sDAKb,OACE,SAAmBjyB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uEAHD,EAAAmE,4CAKb,OACE,SAAmBjgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gGAHD,EAAAoE,qEAKb,OACE,SAAmBlgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qFAHD,EAAAqE,0DAKb,OACE,SAAmBngL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wFAHD,EAAAsE,6DAKb,OACE,SAAmBpgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,gFAHD,EAAAuE,qDAKb,OACE,SAAmBrgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8FAHD,EAAAwE,mEAKb,OACE,SAAmBtgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAtpJ,6BAKb,OACE,SAAmBxyB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAAvY,uCAKb,OACE,SAAmBvjK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAAxoJ,uCAKb,OACE,SAAmBtzB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAAyE,sCAKb,OACE,SAAmBvgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sEAHD,EAAAzhG,2CAKb,OACE,SAAmBr6E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAA0E,0BAKb,OACE,SAAmBxgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qDAHD,EAAA2E,0BAKb,OACE,SAAmBzgL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+DAHD,EAAAnZ,oCAKb,OACE,SAAmB3iK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAA4E,gCAKb,OACE,SAAmB1gL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAAzlJ,yCAKb,OACE,SAAmBr2B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4DAHD,EAAAxkJ,iCAKb,OACE,SAAmBt3B,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAA9uK,kCAKb,OACE,SAAmBhN,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yDAHD,EAAA6E,8BAKb,OACE,SAAmB3gL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,2DAHD,EAAA8E,gCAKb,OACE,SAAmB5gL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6DAHD,EAAA50K,kCAKb,OACE,SAAmBlH,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mDAHD,EAAA+E,wBAKb,OACE,SAAmB7gL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+FAHD,EAAAnvK,oEAKb,OACE,SAAmB3M,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oFAHD,EAAAlvK,yDAKb,OACE,SAAmB5M,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uFAHD,EAAAtvK,4DAKb,OACE,SAAmBxM,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+EAHD,EAAAhwK,oDAKb,OACE,SAAmB9L,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6FAHD,EAAAlxK,kEAKb,OACE,SAAmB5K,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uEAHD,EAAA1rJ,4CAKb,OACE,SAAmBpwB,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,iEAHD,EAAA5hG,sCAKb,OACE,SAAmBl6E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAAhgG,wCAKb,OACE,SAAmB97E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,qFAHD,EAAAlS,0DAKb,OACE,SAAmB5pK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,mEAHD,EAAA7R,wCAKb,OACE,SAAmBjqK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,6EAHD,EAAAvR,kDAKb,OACE,SAAmBvqK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,+EAHD,EAAAxR,oDAKb,OACE,SAAmBtqK,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oEAHD,EAAA1/F,yCAKb,OACE,SAAmBp8E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8DAHD,EAAAliG,mCAKb,OACE,SAAmB55E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sEAHD,EAAArhG,2CAKb,OACE,SAAmBz6E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sEAHD,EAAAhiG,2CAKb,OACE,SAAmB95E,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,kEAHD,EAAAgF,uCAKb,OACE,SAAmB9gL,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,oGAHD,EAAAj5G,yEAKb,OACE,SAAmB7iE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,yFAHD,EAAAh5G,8DAKb,OACE,SAAmB9iE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,4FAHD,EAAAn5G,iEAKb,OACE,SAAmB3iE,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,8CAHD,EAAArrI,mBAKb,OACE,SAAmBzwC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,wDAHD,EAAAnrI,6BAKb,OACE,SAAmB3wC,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,sDAHD,EAAAjvF,2BAKb,OACE,SAAmB7sF,GAAA,KAAAA,OAEnB,KAAA87K,UAAY,uDAHD,EAAAt7I,sBAmsCb,SAAYugJ,GACV,6BACA,+CAFF,CAAY,EAAAA,uBAAA,EAAAA,qBAAoB,KAIhC,SAAYC,GACV,uBACA,uCAFF,CAAY,EAAAA,wCAAA,EAAAA,sCAAqC,KAIjD,SAAYC,GACV,qBACA,yBAFF,CAAY,EAAAA,6BAAA,EAAAA,2BAA0B,KAItC,SAAYn7K,GACV,2CACA,2DACA,+BACA,2BACA,yBACA,yBACA,+BACA,yBACA,yEACA,yBAVF,CAAY,EAAAA,iBAAA,EAAAA,eAAc,KAY1B,SAAYo7K,GACV,uBACA,uBAFF,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,KAoG5B,SAAYv3F,GACV,yBACA,qBAFF,CAAY,EAAAA,oBAAA,EAAAA,kBAAiB,KAI7B,SAAY68E,GACV,qCACA,yCACA,mEACA,qDACA,qDACA,mDACA,+BACA,iEACA,qBATF,CAAY,EAAAA,YAAA,EAAAA,UAAS,KAmCrB,SAAY2a,GACV,uCACA,+BACA,6BACA,+BAJF,CAAY,EAAAA,4BAAA,EAAAA,0BAAyB,KAMrC,SAAYC,GACV,yBACA,yBACA,mCACA,yBACA,+BALF,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,KAO5B,SAAYC,GACV,+BACA,iCACA,qCAHF,CAAY,EAAAA,gCAAA,EAAAA,8BAA6B,KAoBzC,SAAYC,GACV,mBACA,6BACA,+BAHF,CAAY,EAAAA,qBAAA,EAAAA,mBAAkB,KA2D9B,SAAYC,GACV,mBACA,qBACA,mBAHF,CAAY,EAAAA,2BAAA,EAAAA,yBAAwB,KAcpC,SAAYjpG,GACV,mBACA,iBACA,yBAHF,CAAY,EAAAA,8BAAA,EAAAA,4BAA2B,KAUvC,SAAYse,GACV,+CACA,uDACA,2DACA,uCACA,yCACA,iDACA,uCACA,mCACA,6DACA,+CACA,gCACA,8BACA,wCACA,wDACA,wDAfF,CAAY,EAAAA,yBAAA,EAAAA,uBAAsB,KA4BlC,SAAYwE,GACV,6BACA,yBACA,2BAHF,CAAY,EAAAA,gCAAA,EAAAA,8BAA6B,KAezC,SAAYomF,GACV,qBACA,6BAFF,CAAY,EAAAA,cAAA,EAAAA,YAAW,KAYvB,SAAYtpG,GACV,qBACA,yBACA,eACA,yCACA,2CALF,CAAY,EAAAA,0BAAA,EAAAA,wBAAuB,KAiCnC,SAAYupG,GACV,qBACA,yBACA,yBACA,qCAJF,CAAY,EAAAA,oBAAA,EAAAA,kBAAiB,KAM7B,SAAYC,GACV,qBACA,yCACA,qDACA,2CAJF,CAAY,EAAAA,4BAAA,EAAAA,0BAAyB,KAUrC,SAAYC,GACV,uCACA,6CACA,yCACA,iDAJF,CAAY,EAAAA,wBAAA,EAAAA,sBAAqB,KAMjC,SAAYC,GACV,iBADF,CAAY,EAAAA,8BAAA,EAAAA,4BAA2B,KAGvC,SAAYjiI,GACV,uCACA,yCAFF,CAAY,EAAAA,qBAAA,EAAAA,mBAAkB,KAI9B,SAAYzG,GACV,2BACA,yBACA,qBAHF,CAAY,EAAAA,yBAAA,EAAAA,uBAAsB,KAKlC,SAAY2oI,GACV,yBACA,2BACA,+BAHF,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,KAK5B,SAAYC,GACV,mBACA,qBACA,uBACA,mCACA,2CACA,2BACA,2CAPF,CAAY,EAAAA,qBAAA,EAAAA,mBAAkB,KAS9B,SAAYnnF,GACV,iBACA,qBACA,mBACA,iBACA,mBALF,CAAY,EAAAA,iBAAA,EAAAA,eAAc,KAO1B,SAAYonF,GACV,2BACA,yBAFF,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,M,sOCj1F5B,iBACE,WACUphL,GAAA,KAAAA,OAGV,KAAA6wK,aAAuB,EAkBzB,OAfE,sBAAI,wBAAS,C,IAAb,WACE,OAAOx0K,KAAKw0K,aAAe,GACtBx0K,KAAK2D,KAAKk5J,W,gCAGjB,YAAA+Z,aAAA,WACE52K,KAAKw0K,gBAEP,YAAAsC,WAAA,WAC4B,IAAtB92K,KAAKw0K,cAITx0K,KAAKw0K,gBAbP,cADC,EAAA30I,aAAa,eAAgB,kB,uGAPnB2c,EAAc,cAD1B,EAAAp9C,W,kCAGiB,EAAAsG,eAFL82C,GAAb,GAAa,EAAAA,kB,8DCTb,OAAe,cAA0B,wC,yMCWzC,iBAGE,WACUnW,GAAA,KAAAA,mBAHF,KAAA0pH,UAAY,GAqGtB,OA/FE,YAAAi1B,iBAAA,SAAiBlqK,EAAayqG,GAC5BvlH,KAAK+vJ,UAAUj1I,GAAOyqG,GAGxB,YAAAgsC,aAAA,SAAat1I,EAAc+6F,GAA3B,WACQzvG,EAAS,G,WAEN09K,GACP19K,EAAO09K,GAAe,CACpBzhF,OAAQ,SAAC4tD,GACP,OAAO,EAAK5tD,OACV,EAAKusD,UAAUk1B,GACf7zB,EAAW5nH,UACXwtE,EACA/6F,EACAm1I,EAAWtqJ,MACXm+K,GACAvsK,WAVR,IAAK,IAAIusK,KAAejlL,KAAK+vJ,U,EAApBk1B,GAeT,OAAO19K,GAGT,YAAAi8F,OAAA,SAAO+hB,EAA4B/7E,EAAoBwtE,EAAgB/6F,EAAcnV,EAAam+K,GAChG,IAAIC,EAWAC,EACAlqB,EAVoB,iBAAb11C,GACT2/D,EAAajjK,SAASC,cAAc,QACzBmd,UAAYkmF,EAEvB2/D,EAAsB3/D,EAASi4C,WAAU,GAG3Ch0H,EAAUrnB,YAAY+iK,GAMtB,IAAME,GAAmBH,GAAe,IAAItuB,SAAS,mBAEjD7vJ,GAASs+K,GACXD,EAAqB,CACnBniL,KAAM8D,GAGRm0J,EAAsB,EAAAtzG,sBAAsB1rC,EAAM2tB,eAAgB3tB,EAAM4tB,mBAExEs7I,EAAqBlpK,EAAM2tB,eAC3BqxH,EAAsBh/I,EAAM4tB,iBAG9B,IAAMH,EAAO1pC,KAAKqmC,iBAAiBsD,QAAQ,CACzCjxB,QAASwsK,EACTt7I,eAAgBu7I,EAChBt7I,gBAAiBoxH,EACjBjkD,UAAWA,IAab,OAVIouE,GACFplL,KAAKqlL,oBAAoBH,IAI3Bp7I,EADuBzgC,WAAW0gC,OAAOC,IAC1Bk7I,EAAY,YAAY,WACrCx7I,EAAKhoC,SACLgoC,EAAKO,cAGA,CACLvxB,QAASwsK,EACTx7I,KAAMA,IAGF,YAAA27I,oBAAR,SAA4B3sK,GAC1B,IAAM4sK,EAAU5sK,EAAQC,cAAc,eACtC,GAAK2sK,EAAL,CAIA,IAAInlL,EAAWuxB,EAASqa,YAAY,YAAau5I,GAEjDnlL,EAAS6pC,GAAG,WAAW,WACrBtxB,EAAQG,UAAU9X,IAAI,uCAExBZ,EAAS6pC,GAAG,YAAY,WACtBtxB,EAAQG,UAAUyoH,OAAO,uCAE3BnhI,EAAS6pC,GAAG,aAAa,WACvBtxB,EAAU,KACVvY,EAAW,UAnGJkc,EAAiB,cAD7B,EAAAjd,W,kCAK6B,EAAAowC,oBAJjBnzB,GAAb,GAAa,EAAAA,qB,+QCCb,iBACE,WACUnC,GAAA,KAAAA,aAgBZ,OAbE,YAAArT,SAAA,WACE7G,KAAKka,WAAW8qK,iBACd,4BACQO,GAEVvlL,KAAKka,WAAW8qK,iBACd,2CACQQ,GAEVxlL,KAAKka,WAAW8qK,iBACd,yCACQS,IAhBDz+F,EAAuB,cADnC,EAAA5nF,W,kCAGuB,EAAAid,qBAFX2qE,GAAb,GAAa,EAAAA,2B,0QCJb,iBACE,WACUlzB,EACA/vC,EACAxb,GAFA,KAAAurD,eACA,KAAA/vC,eACA,KAAAxb,mBA+BZ,OA5BQ,YAAA/H,OAAN,SAAa40B,EAAqB90B,G,sHACF,SAAMN,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAk/K,mBAAmB,CACvFl2K,eAAgBssB,EAChBq9B,OAAQnyD,KACN,I,OAEJ,OALMiH,EAAwB,UAKlBgP,SAIZvW,KAAK8zD,aAAapB,SAASnrD,EAAOgP,S,KAHhC,YAME,YAAAlM,0BAAN,SAAgC+qB,G,gHACf,SAAMp1B,KAAK+jB,aAAa1f,IAAI,CACzCC,IAAKtE,KAAK+jB,aAAaxf,aAAa,0CACpCC,WAAY,CACVR,MAAO,CAAC,MAAOoxB,GACfrxB,QAAS,CAAC,W,OAId,OAAqB,GARN,SAQJmB,OACF,CAAP,GAAO,GAEA,CAAP,GAAO,WAhCA6F,EAAkB,cAD9B,EAAA3L,W,kCAGyB,EAAA+Z,YACA,EAAAzT,YACI,EAAAsF,mBAJjBD,GAAb,GAAa,EAAAA,sB,uQCMb,iBACE,WACUwO,EACAq3D,EACAx9D,EACAD,GAJV,WACU,KAAAoG,kBACA,KAAAq3D,qBACA,KAAAx9D,eACA,KAAAD,sBAOV,KAAAuyK,yBAAyC,CACvCjmL,GAAI,oBACJI,MAAO,4BACPD,UAAW,IACXD,WAAY,UACZkJ,oBAAqB,wCACrB/I,QAAS,0D,8CACPE,KAAK2lL,oBAAoB,G,YAG7B,KAAAC,2BAA2C,CACzCnmL,GAAI,sBACJI,MAAO,8BACPD,UAAW,IACXD,WAAY,UACZkJ,oBAAqB,uCACrB/I,QAAS,0D,8CACPE,KAAK2lL,oBAAoB,G,YAG7B,KAAAE,4BAA4C,CAC1CpmL,GAAI,uBACJI,MAAO,gCACPD,UAAW,IACXD,WAAY,UACZkJ,oBAAqB,uCACrB/I,QAAS,0D,8CACPE,KAAK2lL,oBAAoB,G,YA8E/B,OA1EE,YAAAllL,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKC,KAAKwG,YAAW,WACnB,EAAKmqE,mBAAmB9H,WAAW,EAAK7oE,KAAuB,kBAC/D,EAAK2wE,mBAAmB9H,WAAW,EAAK7oE,KAA4B,uBACpE,EAAK2wE,mBAAmBtH,SAAS,EAAKrpE,KAAqB,gBAAG,0D,8DAC5D,OAAKD,KAAKC,KAAK0G,OAAO3D,KAAK8iL,UAAUtmI,MAUlB,GAAMx/C,KAAKC,KAAK6H,gBATjCuB,WAAWC,GAAGO,OACZ7J,KAAKmT,oBAAoBhK,cAAc,sBACvC,QACA,KAGF,K,OAIF,OADmB,SACHpB,SAIhB/H,KAAKoT,aAAayD,mBAAmB7W,KAAKC,KAAK0G,OAAO3D,KAAK8iL,UAAU99K,I,KAHnE,iBAONhI,KAAKC,KAAK22B,wBAA0B,WAClC,IAAMmvJ,EAAS9lL,EAAe,SAC1B8lL,GAAUA,EAAO5lL,UACnB4lL,EAAO5lL,SAASwZ,SAIpB3Z,KAAKC,KAAK0G,OAAOC,SAASC,UAAS,SAAApC,GAKjC,MAJkB,aAAdA,EAAEqC,MAAMrH,IACV,EAAKumL,iCAGAzgL,QAAQC,cAIL,YAAAwgL,+BAAd,W,0HAIE,OAHAhmL,KAAKimL,iBAAmB,MAElBjjL,EAAOhD,KAAKC,KAAK0G,OAAO3D,KAAK8iL,YACrB9iL,EAAKw8C,OAIbn5B,EAAO,IAAI,EAAA+5J,wCAAwC,CACvD5gI,MAAOx8C,EAAKw8C,QAGqC,GAAMx/C,KAAKuZ,gBAAgBzZ,QAAQumB,KAPpF,I,OAQF,OADM9e,EAA6C,WAKnDvH,KAAKimL,iBAAmB1+K,EAAOoC,O,KAH7B,YAKU,YAAAg8K,oBAAd,SAAkCrzI,G,gHACb,SAAMtyC,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIhB,GAAM/H,KAAKuZ,gBAAgBzZ,QAAQ,IAAI,EAAAwgL,qBAAqB,CAC1DvrK,SAAU/U,KAAKC,KAAK0G,OAAO3D,KAAK8iL,UAAU99K,GAC1Ck+K,iBAAkB5zI,KAChB,IANF,I,OAQF,OALA,SAKA,GAAMtyC,KAAKC,KAAK8xD,+B,cAAhB,S,YAnHS6xF,EAAe,cAF3B,EAAAxkJ,WACA,EAAAuB,Y,kCAG4B,EAAAqK,gBACG,EAAAyH,mBACN,EAAA6G,aACO,EAAArO,uBALpB24I,GAAb,GAAa,EAAAA,mB,+CCXbtoF,EAAOC,QAFI,yZ,8UCYX,iBACE,WACU4qH,EACAllK,EACAmlK,GAFA,KAAAD,iBACA,KAAAllK,aACA,KAAAmlK,WAgFZ,OA7EE,YAAA5lK,OAAA,SAAOvE,EAAcP,EAAoBrN,GACvCrO,KAAKmmL,eACF5wB,gBAAgB75I,GAChB8E,OAAOvE,EAAO5N,EAAO,OAE1B,YAAAmY,SAAA,SAASvK,EAAcP,GAAvB,WACE,OAAKO,EAAM2tB,eAIJ5pC,KAAKmmL,eACT5wB,gBAAgB75I,GAChB8K,SAASvK,EAAO,CACfoqK,iBAAkB,SAACp1K,GAAS,SAAKm1K,SAASpvE,UAAUsvE,mBAAmBr1K,IACvEs1K,gBAAiB,SAACt1K,GAAS,SAAKm1K,SAASpvE,UAAUwvE,kBAAkBv1K,MAPhE,MAUX,YAAAnR,QAAA,SAAQmc,EAAcP,G,UAAoB,oDACxC,IAAI85I,EAAUx1J,KAAKq1J,kBAAkBp5I,EAAOP,GACxCylC,EAAWnhD,KAAKmmL,eAAe5wB,gBAAgB75I,GAQnD,OANIylC,EAAIslI,SACNjxB,EAAUr0G,EAAIslI,OAAOjgK,SAAS,CAC5BojB,eAAgB4rH,MAIb,EAAAr0G,EAAI36B,SAASvK,IAAOyqK,KAAI,0BAAClxB,GAAY1xH,KAE9C,YAAAroB,QAAA,SAAQ4K,GAEN,IAAMsgK,EAAmB3mL,KAAKmmL,eAAe5wB,gBAAgBlvI,EAAK3K,YAElE,GAAI2K,EAAKspE,oBAAsBg3F,aAA4B,EAAAC,iBAMzD,OAJA5mL,KAAKihB,WAAWQ,WAAU,WACxB4E,EAAKnX,SAASy3K,EAAiBt4K,MAAO,SAGjC,CACL/M,QAAS,cAIb,IAAMotE,EAAa1uE,KAAKmmL,eACrB1wB,mBACCz1J,KAAKq1J,kBAAkBhvI,EAAKwgK,aAAexgK,EAAK/K,eAAeW,MAAOoK,EAAK3K,YAC3E2K,EAAK3K,YACLhH,UAAU2R,EAAKnX,UAGjB,OADAmX,EAAK/K,eAAemzD,cAAcC,GAC3BA,GAEX,YAAA2mF,kBAAA,SAAkBp5I,EAAcP,GAI9B,IAHA,IAAIylC,EAAWnhD,KAAKmmL,eACjB5wB,gBAAgB75I,GAEZylC,EAAIslI,QACTtlI,EAAMA,EAAIslI,OAGZ,GAAItlI,EAAIlwC,QAAQgL,EAAM2tB,eACpB,OAAO3tB,EAAM2tB,eAIb,IAFA,IAAIk9I,EAAK7qK,EAAM4tB,gBAERi9I,GAAI,CACT,GAAI3lI,EAAIlwC,QAAQ61K,EAAGl9I,eACjB,OAAOk9I,EAAGl9I,eAGZk9I,EAAKA,EAAGC,sBAIZ,OAAO9qK,EAAM2tB,gBAAkB3tB,EAAM4tB,iBAlF5BztB,EAAc,cAD1B,EAAAhd,W,kCAG2B,EAAA8gF,cACJ,EAAAv+D,UACF,EAAAk3D,WAJTz8D,GAAb,GAAa,EAAAA,kB,wPCKb,iBACE,WACU+4E,EACAxnF,GADA,KAAAwnF,kBACA,KAAAxnF,WAgCZ,OA7BQ,YAAAkJ,mBAAN,SAAyBypC,EAAsC3pC,EAA4BqwK,G,YAAlE,IAAA1mI,MAAA,WAAsC,IAAA3pC,MAAA,SAA4B,IAAAqwK,OAAA,G,+GACzE,SAAMhnL,KAAKinL,YAAY3mI,EAAuB3pC,EAAaqwK,I,OAC3E,OAAe,OADTE,EAAU,WAKhBlnL,KAAKiiH,UAAUilE,GAHb,YAKJ,YAAAjlE,UAAA,SAAUxiH,EAAYqX,GACpB9W,KAAKm1F,gBAAgBovB,eAAez+G,KAAK,CACvCumB,SAAU,CAAE,IAAO5sB,GACnBqX,eAAc,KAIJ,YAAAmwK,YAAd,SAA0B3mI,EAAsC3pC,EAA4BqwK,G,YAAlE,IAAA1mI,MAAA,WAAsC,IAAA3pC,MAAA,SAA4B,IAAAqwK,OAAA,G,iHAMzD,OAL3Br5K,EAAW,IAAI,EAAAoyK,sBAAsB,CACzCoH,gBAAiBH,EACjBzyH,YAAa59C,EACb0pC,sBAAuBC,IAEQ,GAAMtgD,KAAK2N,SAAS7N,QAAQ6N,GAAU,I,OAEvE,OAAc,OAFRpG,EAA2B,WAES,MAAlBA,EAAO2mF,QACtB,CAAP,OAAOrsD,GAGF,CAAP,EAAOt6B,EAAO2mF,iBAjCL50E,EAAY,cADxB,EAAAla,W,kCAG4B,EAAAmgB,uBACP,EAAAvU,mBAHTsO,GAAb,GAAa,EAAAA,gB,6RCAb,iBAEE,WACUY,EACAoD,EACArK,EACAo3G,GAHA,KAAAnwG,aACA,KAAAoD,cACA,KAAArK,kBACA,KAAAo3G,oBA2FZ,OAxFE,YAAAr0E,cAAA,SAAcv2C,EAAYuD,GACxBokL,EAAY3nL,GAAMuD,GAEpB,YAAAulC,cAAA,SAAc9oC,GACZ,IAAK2nL,EACH,MAAM,IAAI/lL,MAAM,2BAElB,IAAK+lL,EAAY3nL,GACf,MAAM,IAAI4B,MAAM,eAAe5B,EAAE,mBAGnC,OAAO2nL,EAAY3nL,IAGrB,YAAAsvC,uBAAA,SACEzzB,EACA4qB,EACAtvB,EACAgkB,EACAoU,EACAq4I,GANF,WAOE,GAAInhJ,EAAWohJ,qBACb,OAAO,IAAIj+K,WAAWrG,KAAKqxC,WAAgB,IAAIhrC,WAAWrG,KAAKsxC,YAAY,CACzEC,cAAc,EACdC,SAAU,MACVC,KAAM,0D,sEACW,SAAMz0C,KAAKsd,YAAYjZ,IAAI,CACxCC,IAAKtE,KAAKsd,YAAYoI,UAAU,6BAA6BwgB,EAAWzmC,O,OAS1E,OAVM8H,EAAS,SAIT8e,EAAO,CACXkhK,aAAcrhJ,EAAWzmC,GACzBuD,KAAMuE,GAGRvH,KAAKiT,gBAAgBuF,QAAQ,+BAAgC6N,GACtD,CAAP,EAAOA,EAAKrjB,iBAGX,GAAIkjC,EAAWnyB,OAASmyB,EAAWnyB,MAAM7O,OAAS,EACvD,OAAO,IAAImE,WAAWrG,KAAKqxC,WAAgB,IAAIhrC,WAAWrG,KAAK6rE,WAAW,CACxE7rE,KAAMkjC,EAAWnyB,SAEd,GAAImyB,EAAW0R,OAAQ,CAC5B,IAAM5zC,EAAQ,GACV4S,GACF5S,EAAM7C,KAAKyV,GAETsvB,EAAWliC,OACbA,EAAM7C,KAAK+kC,EAAWliC,OAGxB,IAAM,EAA+C,GACjDkiC,EAAW8I,SACb,EAAkB7tC,KAAI,MAAtB,EAA0B+kC,EAAW8I,SAEnCA,GACFA,EAAQvtC,SAAQ,SAAAuwB,GACd,EAAkB7wB,KAAK,CACrB05B,gBAAiB7I,EAAOlX,IACxBggB,kBAAmB9I,EAAO3jB,WAI5BusB,GACF,EAAkBz5B,KAAI,MAAtB,EAA0By5B,GAG5B,IAAMqU,EAAoB,CACxBtoB,YAAauf,EAAWiG,YACxBjlC,aAAcg/B,EAAW0R,OACzBse,cAAehwB,EAAWniC,QAC1BoyD,aAAcjwB,EAAWmR,OACzB+e,cAAelwB,EAAWjiC,QAC1BoyD,YAAaryD,EACbwxD,wBAAyBtvB,EAAWshJ,kBACpC5sJ,QAAS,GAGLt4B,EAAatC,KAAKqqH,kBAAkB79E,iBAAiBlxB,EAAgB2zB,GAM3E,OAJIo4I,GACFA,EAAiBp4I,GAGZ3sC,IA9FAgtC,EAAiB,cAD7B,EAAAlwC,W,kCAIuB,EAAAid,kBACC,EAAA3W,YACI,EAAA0T,gBACE,EAAAgR,qBANlBklB,GAAb,GAAa,EAAAA,qB,ujBCRb,iBAGE,WACU/mC,EACAC,EACAC,EACAE,GAJV,WACU,KAAAJ,mBACA,KAAAC,gBACA,KAAAC,uBACA,KAAAE,uBANF,KAAAC,eAAyB,IAWjC,KAAAI,sBAAsC,CACpCvJ,GAAI,iBACJE,WAAY,eACZE,MAAO,4BACPH,KAAM,QACNE,UAAW,IACXE,QAAS,0D,mFAEP,OADMC,EAA6BC,KAAKC,KAAyB,mBACjE,GAAMD,KAAKwI,cAActI,iBAAiBH,EAAKI,SAASC,c,OACxB,OADhC,SACgC,GAAMJ,KAAKwI,cAActI,iBAAiBH,EAAKI,SAAS8I,wB,OAExF,OAAsC,IAFhCw+K,EAA0B,UAEJviL,OAC1B,KAGFnF,EAAKI,SAASI,iBAERV,EAAQG,KAAKyI,qBAAqBU,cAAc,iBAChDC,EAAWpJ,KAAKyI,qBAAqBU,cAAc,kCAErC,GAAMnJ,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAAQJ,EAAUvJ,M,OACrG,OADoB,SAKc4nL,EAC/Bh+K,MAAK,SAACC,GAAM,OAAgB,GAAhBA,EAAEC,OAAOC,QAGtBP,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,2CACxC,QACAnJ,KAAK4I,gBACP,MAGF6+K,EAAwBhmL,SAAQ,SAAOimL,GAAY,+C,8DACxB,SAAM1nL,KAAK2I,qBAAqBoB,wBACvD,mDACA29K,EAAa1/K,GACb,iB,OAGF,OANyB,S,cAWrB2/K,EAAqBF,EAAwBx9K,KAAI,SAACP,GAAM,OAAAA,EAAE1B,MAEhE,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAgkL,oCAAoC,CAC1E7kG,mBAAoB0oG,KAClB,KA9BF,I,OAgCF,OAJA,SAIO,CAAP,EAAO3nL,KAAKC,KAAK0G,OAAOuB,sBAY9B,OARE,YAAAzH,KAAA,SAAKR,EAAgBgB,GACnBjB,KAAKC,KAAOA,EAEZD,KAAKsb,eAAiB,IAAI,EAAA82C,eAAe,CACvCxoB,eAAgB5pC,KAChB6pC,gBAAiB,QA3EVy9G,EAAqB,cAFjC,EAAAloJ,WACA,EAAAuB,Y,kCAK6B,EAAAqK,gBACH,EAAApK,aACO,EAAAqK,oBACA,EAAAE,uBAPrBm8I,GAAb,GAAa,EAAAA,yB,6UCOb,iBAGE,WACSj8I,EACAD,EACCinB,EACA7pB,EACA8T,EACA9Q,EACAC,EACAH,EACAC,EACAhD,EACAqqB,EACAnqB,EACAiD,GAbV,WACS,KAAAL,iBACA,KAAAD,uBACC,KAAAinB,kBACA,KAAA7pB,gBACA,KAAA8T,qBACA,KAAA9Q,6BACA,KAAAC,qBACA,KAAAH,kBACA,KAAAC,oBACA,KAAAhD,mBACA,KAAAqqB,oBACA,KAAAnqB,uBACA,KAAAiD,sBAfF,KAAA9C,eAAyB,IA0BjC,KAAA66D,2BAA2C,CACzChkE,GAAI,yBACJE,WAAY,mBACZD,KAAM,WACNG,MAAO,2BACPyT,oBAAqB,6YAOrB1T,UAAW,IACXE,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIhB/H,KAAK0jE,kBAAoB,KAEzB,GAAM1jE,KAAKC,KAA6B,uBAAEE,SAAS2F,SALjD,I,cAKF,SAEgB9F,KAAKC,KAA+B,yBAC5C0jE,cAAcxjE,SAASwZ,Q,aAGnC,KAAAiuK,yBAAyC,CACvCnoL,GAAI,2BACJI,MAAO,2BACPH,KAAM,WACNI,QAAS,0D,oEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV4F,EAAW,IAAI,EAAAq1K,uCAAuC,CAC1D6E,mBAAoB7nL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GAC9D+G,UAAW/O,KAAK0jE,oBAGb1jE,KAAK0jE,kBAKgD,GAAM1jE,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAJtGtE,WAAWC,GAAGO,OAAO7J,KAAKyI,qBAAqBU,cAAc,oCAAqC,QAAS,KAC3G,MAVA,I,cAawD,SAC1DE,WAAWC,GAAGO,OAAO7J,KAAKyI,qBAAqBU,cAAc,uCAAwC,UAAW,KAChHnJ,KAAK4yB,kBAAkB4L,iB,aAG3B,KAAAupJ,uBAAuC,CACrCtoL,GAAI,yBACJC,KAAM,WACNC,WAAY,2BACZE,MAAO,2BACPD,UAAW,IACX0T,oBAAqB,2FACrBhN,UAAWtG,KAAKqL,eAAe4B,YAAYuf,QAAQkJ,6BACnD51B,QAAS,SAAOiD,GAAC,+C,8CAC4B/C,KAAKC,KAAyB,mBACxD6F,KACf9F,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB/4K,UAC1C/O,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB7vJ,eAAiBj4B,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWmF,cAC5Fj4B,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBrjK,YAC1CzkB,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB13K,W,YAGhD,KAAAqlB,yBAAyC,CACvCh2B,GAAI,2BACJC,KAAM,aACNC,WAAY,2BACZE,MAAO,6BACPD,UAAW,IACX0T,oBAAqB,oFACrBhN,UAAWtG,KAAKqL,eAAe4B,YAAYuf,QAAQkJ,6BACnD51B,QAAS,SAAOiD,GAAC,+C,8DACI,SAAM/C,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIhB,GAAM/H,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAmjL,yCAAyC,CAC/E4E,mBAAoB7nL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,MAC5D,IALF,I,cAGF,SAIAhI,KAAKC,KAAK0G,OAAOuB,YAEjBmB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,qCACxC,UACA,K,aAIN,KAAAwC,iDAAiE,CAC/DlM,GAAI,+CACJE,WAAY,mBACZD,KAAM,OACNG,MAAO,iCACPgJ,oBAAqB,qRACrBjJ,UAAW,IACXE,QAAS,0D,8CACPE,KAAK4L,wD,YAGT,KAAAC,2CAA2D,CACzDpM,GAAI,yCACJE,WAAY,mBACZD,KAAM,QACNG,MAAO,wBACPgJ,oBAAqB,qRACrBjJ,UAAW,IACXE,QAAS,0D,8CACPE,KAAK8L,6C,YAmbX,OA/aE,YAAA+tB,8BAAA,SAA8B92B,GAC5B,GAAiB,QAAbA,EAAEwH,SAAsF,GAAjEvK,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBE,qBAAsD,IAAtBjlL,EAAEC,KAAK2G,OAAOC,IAAnH,CAIA,IAAM+I,EAAU5P,EAAEC,KACZyH,EAA6B1H,EAAE2H,YAErCD,EAAKE,MAAMC,MAAQ,QACnBH,EAAKE,MAAME,gBAAkB8H,EAAQmnB,sBAAwBnnB,EAAQonB,iBACjE,UACCpnB,EAAQqnB,iBAAmB,UAAY,YAG9C,YAAAv5B,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKoL,qBAAqBvE,SAAS7G,KAAKC,KAAM,CAC5C8L,YAAa,sBACbC,2BAA4B,cAG9BhM,KAAKiM,eAAiB,CACpBhM,KAAMA,EACNiM,UAAW,sBACXC,eAAgB,gBAChBC,oBAAqB,YACrBC,wBAAyB,eAG3BrM,KAAKwL,2BAA2Bc,gBAAgBtM,KAAKiM,gBAErDhM,EAAKsM,WAAWC,kBAAkB3F,UAAS,SAACpC,GAC1C,OAAIA,EAAEgI,iBAIgB,6BAAlBhI,EAAEiI,UAAUjN,IACd,EAAKQ,KAAK0G,OAAOuB,YAJV3C,QAAQC,aAUnBxF,KAAKC,KAAK0G,OAAOC,SAASC,UAAS,SAAO9D,GAAC,+C,uCACzC,OAAS,MAALA,IAGmB,cAAdA,EAAE+D,MAAMrH,GACXO,KAAKC,KAAK0G,OAAO3D,KAAK8kL,qBAAuB9nL,KAAKC,KAAK0G,OAAO3D,KAAK8vB,aACrE9yB,KAAK48C,YAAc58C,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBrjK,YAE7DzkB,KAAKioL,2CACLjoL,KAAKkoL,+BAGc,uBAAdnlL,EAAE+D,MAAMrH,KACfO,KAAK2M,mCAAkC3M,KAAKC,KAAK0G,OAAO3D,KAAK8kL,qBACH,MAArD9nL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBj7K,SACoB,GAA9D7M,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBj7K,QAAQC,UAIvD9M,KAAKkoL,gCAjBL,aAqBJloL,KAAKC,KAAK+M,SAASnG,UAAS,SAAOpC,GAAC,+C,qEAC9BA,EAAExE,KAAK0G,OAAOuhB,iBACH,GAAMloB,KAAK68C,+BADtB,M,OAGF,IAFa,SAGX,MAAM,IAAIx7C,MAGH,SAAMrB,KAAK+8C,wB,OAEpB,IAFS,SAGP,MAAM,IAAI17C,M,iBAId,OAAKrB,KAAKqL,eAAe4B,YAAYC,OAAOC,wBAIvCnN,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB16K,sBAI3C3I,EAAExE,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GAAK,GAIM,MAAlDhI,KAAKsN,0CAHP,KAOFtN,KAAK4L,wDAEE,CAAP,EAAOrG,QAAQgI,WAjBb,cAoBJvN,KAAKC,KAAKuN,QAAQ3G,UAAS,SAAOpC,GAAC,+C,oEACjC,OAAKzE,KAAKqL,eAAe4B,YAAYC,OAAOC,uBAIU,MAAlDnN,KAAKsN,2CAAqDtN,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBr6K,cAClGzN,KAAK0N,sCACP1N,KAAK0N,qCAAsC,EAC3C1N,KAAKC,KAAK0G,OAAOuB,aAEnB,KAGEzD,EAAExE,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GAAK,IAAMhI,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB16K,sBAC9F,KAGIO,EAAW,IAAI,EAAA21K,gEAAgE,CACnFuE,mBAAoBpjL,EAAExE,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GAC3D8F,iCAAkC9N,KAAKsN,4CAGkC,GAAMtN,KAAKuI,iBAAiBzI,QAAQ6N,KApB7G,I,cAoByE,SAE3E3N,KAAKC,KAAK0G,OAAOuB,YACjBlI,KAAKsN,0CAA4C,K,eAI/C,YAAAS,iBAAN,SAAuBhL,G,+HACrB/C,KAAKwL,2BAA2BwC,mBAAmBhO,KAAKiM,gBAEnDjM,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GAA3C,MACF,GAAMhI,KAAKoL,qBAAqB6C,qB,OAAhC,SACAjO,KAAKyL,mBAAmByC,SAASlO,KAAKC,KAAK0G,OAAO3D,KAAK8kL,qB,iBAKzD,OAFA9nL,KAAKmO,0BAA0BpL,EAAEqL,OAAOC,OAEnCrO,KAAKqL,eAAe4B,YAAYC,OAAOC,uBAItB,MAAlBpK,EAAEqL,OAAOC,MAAT,MACc,GAAMrO,KAAKsL,gBAAgBgD,eAAevL,EAAEqL,OAAOC,QAJnE,I,OAUA,OANME,EAAU,SAEhBvO,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB16K,uBAAwB,EAClEpN,KAAK2M,iCAAkC,EACvC3M,KAAKsN,0CAA4C,KAEzB,GAApBiB,EAAQzB,SACV,IAGqB,GAAM9M,KAAKuL,kBAAkBiD,8BAA8BD,EAAQE,2BAA4B,EAAAC,gBAAgBC,sB,OAAhIC,EAAiB,SACvB5O,KAAK2M,iCAAkC,EAEjB,MAAlBiC,GAA0D,GAAhCA,EAAe,GAAGC,aAC9C7O,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB16K,uBAAwB,G,mCAKxE,YAAA+6K,qBAAA,SAAqBv3K,GACnBA,EAAU,CAAE,qBAAuB,KAGvB,YAAAzC,0BAAd,SAAwC4B,G,wHACtC,OAAKA,GAICpC,EAAW,IAAI,EAAAqC,+BAA+B,CAClDjB,UAAWgB,EACXE,QAASjQ,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAW7iB,UAGF,GAAMjQ,KAAKuI,iBAAiBzI,QAAQ6N,KAR5E,I,OASF,OAAc,OADRpG,EAAoC,YAK1CvH,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB13K,UAAY7I,EAAO8I,iBAC7DrQ,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBx3K,eAAiB/I,EAAO+I,eAClEtQ,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBv3K,wBAA0BhJ,EAAOgJ,yBALzE,YAQJ,YAAAC,uCAAA,SAAuCzN,GAChC/C,KAAKC,KAAK0G,OAAO3D,KAAK8kL,qBAIvB9nL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBr6K,cAAmC,MAAnB1K,EAAE0N,gBAC9DzQ,KAAK0N,qCAAsC,IAK/C,YAAA06K,wBAAA,WACEpoL,KAAKkoL,+BAGC,YAAAA,4BAAR,sBACQllL,EAAOhD,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAC7BO,EAAcroL,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAE1C,GAAK9vB,GAASqlL,EAAd,CAGA,IAAMx3K,EAAS7Q,KAAKC,KAAuB,iBAAEE,SACvC2Q,EAA8C,GAE/C9N,EAAKslL,mBAAoBtlL,EAAK2E,SAAY0gL,EAAYlxJ,aACzDrmB,EAAQ3P,KAAK,CACX6P,SAAU,QACVC,KAAM,KACNlP,QAAS,CACPmP,UAAU,EACVxR,KAAM,aACNyR,YAAa,OACbC,UAAW,EACXC,QAAS,0D,yDACPrR,KAAKC,KAAK0G,OAAO3D,KAAKulL,sBAAwB,CAC5CvgL,GAAI,GAGNhI,KAAKC,KAAKsM,WAAWgF,OAAO,CAC1BC,YAAa,0BACbC,YAAa,SAACxR,EAAMyR,GACbzR,EAAK0G,OAAO3D,KAAK8/B,oBAGtB7iC,EAAK0G,OAAO3D,KAAK8/B,kBAAkB7qB,UAAY,EAAKhY,KAAK0G,OAAO3D,KAAK8kL,oBAAoB7vK,YAE3FpG,cAAe,SAAO5R,GAAI,+C,sDACxBD,KAAKC,KAAuB,iBAAEE,SAAS2R,gBAAgBC,SAEjDjL,EAAQ7G,EAAK0G,OAAOI,eACpB/D,EAAO/C,EAAK0G,OAAO3D,KAAK8D,EAAMrH,IACpCO,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBQ,iBAAmBtlL,EAAKgF,GAElEhI,KAAKC,KAAK+R,qBAAqBC,KAAK,CAClC7P,QAAS,CACP8P,YAAa,sBACb7P,OAAQ,oBAEVgM,MAAOrL,EAAKgF,K,2BAS1B8I,EAAQ3P,KAAK,CACX6P,SAAU,QACVC,KAAM,SACL,CACDD,SAAU,QACVC,KAAM,aAGRjR,KAAK0L,oBAAoByG,oBAAoBtB,EAAQC,KAGzC,YAAAm3K,yCAAd,W,6HACMjoL,KAAKqL,eAAe4B,YAAYC,OAAOgqB,iBAAmBl3B,KAAKC,KAAK0G,OAAO3D,KAAK8vB,YAAc9yB,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWsrB,eAC1G,GAAMp+C,KAAKsc,mBAAmB4H,6BAA6BlkB,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAW9qB,KADjH,M,cACIk0B,EAAiB,SAEvBl8B,KAAKwoL,0BAA4BtsJ,EAAeh3B,OAAS,E,aAIzDlF,KAAKwoL,2BAA4B,E,mCAIvB,YAAA3rI,4BAAd,W,yFACE,OAAK78C,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB16K,sBAG3CpN,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWsrB,gBACnC/0C,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,oDACxC,QACAnJ,KAAK4I,gBACA,CAAP,GAAO,IACE5I,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWmJ,qBAC1C5yB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,yDACxC,QACAnJ,KAAK4I,gBAEA,CAAP,GAAO,IAEF,CAAP,GAAO,GAhBE,CAAP,GAAO,UAmBG,YAAAm0C,qBAAd,W,sHAME,OAL0B/8C,KAAKqL,eAAe4B,YAAYC,OAAOgqB,iBAC5Dl3B,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWsrB,gBACjCp+C,KAAKwoL,0BAONxoL,KAAK48C,YAAc58C,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoBrjK,YACpC,GAAMzkB,KAAKyoL,yBADpC,MAHK,CAAP,GAAO,G,cAMmB,OAFpBlqI,EAAqB,UAEvB,MACc,GAAMv+C,KAAKw+C,iCAAiCD,I,cAA5C,SAGF,GAAMv+C,KAAKy+C,+BAA+BF,IADpD,M,OAGF,OAFY,SAKL,CAAP,GAAO,GAFE,CAAP,GAAO,G,OAOf,MAAO,CAAP,GAAO,WAGK,YAAAC,iCAAd,SAA+CD,G,uHACzCA,EAAmBG,wBAA0B,EAC7B,GAAM1+C,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAC/ExJ,KAAKyI,qBAAqBU,cAAc,mDACxCnJ,KAAKyI,qBAAqBU,cAAc,oBAHxC,M,OAKF,OAJkB,SAOX,CAAP,GAAO,GAFE,CAAP,GAAO,G,OAIX,MAAO,CAAP,GAAO,WAGK,YAAAs1C,+BAAd,SAA6CF,G,gHACD,SAAMv+C,KAAKsc,mBAAmBgI,mCAAmCi6B,EAAmBv2C,K,cAApF,SAEF,EACpB,GAAMhI,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAC/ExJ,KAAKyI,qBAAqBU,cAAc,iDACxCnJ,KAAKyI,qBAAqBU,cAAc,oBAHxC,M,OAKF,OAJkB,SAOX,CAAP,GAAO,GAFE,CAAP,GAAO,G,OAIX,MAAO,CAAP,GAAO,WAGK,YAAAs/K,sBAAd,W,sHACgC,SAAMzoL,KAAKsc,mBAAmB8H,6CAA6CpkB,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,K,OAEnJ,OAA6B,OAFvB4yK,EAAwB,UAGrB,CAAP,EAAO,MAGF,GAAM56K,KAAKqyB,gBAAgBisB,6CAA6Cs8H,I,OAA/E,MAAO,CAAP,EAAO,kBAGK,YAAAhvK,sDAAd,W,+HAM+D,OALvD+B,EAAW,IAAI,EAAA01K,kDAAkD,CACrEt0K,UAAW/O,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB/4K,UACrD84K,mBAAoB7nL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,KAGH,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,I,OAEjG,OAAc,OAFRpG,EAAuD,YAML,GAApDA,EAAOyH,mCAAmC9J,QAIiClF,KAAKC,KAAqD,+CAEzG6F,KAAK,CACnCmJ,gBAAiB1H,EAAOyH,mCACxBE,SAAU,SAAOC,GAAO,+C,8CACtBC,QAAQC,IAAIF,GACZnP,KAAKsN,0CAA4C6B,EACjDnP,KAAKC,KAAKqP,O,cAdZ,YAmBU,YAAAxD,2CAAd,W,2GACgF9L,KAAKC,KAA+C,yCAE7F6F,KAAK,CACxCoJ,SAAU,SAAO3H,GAA8C,+C,2EACzDA,EAAOgI,iBACH5B,EAAW,IAAI,EAAAy1K,0DAA0D,CAC7EsF,6BAA8B1oL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,KAG1E,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,KALlC,M,cAKF,S,oBACSpG,EAAOmI,yBACV/B,EAAW,IAAI,EAAAu1K,kEAAkE,CACrFwF,6BAA8B1oL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,KAG1E,GAAMhI,KAAKuI,iBAAiBzI,QAAQ6N,KAL3B,M,cAKT,S,aAQA,OANMA,EAAW,IAAI,EAAAw1K,uDAAuD,CAC1EuF,6BAA8B1oL,KAAKC,KAAK0G,OAAO3D,KAAK8kL,oBAAoB9/K,GACxE4B,IAAKrC,EAAOsI,oBACZC,KAAMvI,EAAOuI,OAGf,GAAM9P,KAAKuI,iBAAiBzI,QAAQ6N,I,OAApC,S,wBAGF3N,KAAKC,KAAK0G,OAAOuB,Y,yBA7jBZ09I,EAAyB,cAFrC,EAAAxmJ,WACA,EAAAuB,Y,kCAK0B,EAAAuK,eACM,EAAAmH,qBACJ,EAAAmqB,eACF,EAAA57B,aACK,EAAA+b,kBACQ,EAAApK,0BACR,EAAAC,kBACH,EAAAF,eACE,EAAAlK,iBACD,EAAA4C,gBACC,EAAA+xB,iBACG,EAAA9xB,oBACD,EAAAwH,sBAhBpBmzI,GAAb,GAAa,EAAAA,6B,6KCVb,iBACE,cAsDF,OApDE,YAAA9gE,aAAA,SAAa6jG,EAAkBC,EAAiB7zG,GAC9C,IAAMpC,EAAmB,GACnBk2G,EAAiB,GAEvBF,EAAUlnL,SAAQ,SAAAy4J,GAChB,IAAMjnF,EAAgB,CACpBt4C,QAASu/H,EAAEv/H,QACXm6C,WAAY,CACVp1E,KAAMw6J,EAAEx6J,MAEVisC,SAAU,IAGZgnC,EAAOxxE,KAAK8xE,GACZ41G,EAAU3uB,EAAEz6J,IAAMwzE,K,eAGX61G,GACP,IAAMC,EAAYH,EAAWE,GAEvB71G,EAAgB,CACpBt4C,QAASouJ,EAAUpuJ,QACnBs4C,MAAO81G,EAAU91G,MACjB5rD,SAAU0hK,EAAU1hK,UAGlB0hK,EAAU1iL,YACZ4sE,EAAM6B,WAAa,GAEfi0G,EAAUnuK,WACZq4D,EAAM6B,WAAWl6D,SAAWmuK,EAAUnuK,UAEpCmuK,EAAUrpL,OACZuzE,EAAM6B,WAAWp1E,KAAOqpL,EAAUrpL,OAIlCq1E,IACF9B,EAAM8B,YAAc,WAClB,OAAOA,EAAY9B,KAInB81G,EAAUC,SACZH,EAAUE,EAAUC,UAAUr9I,SAASxqC,KAAK8xE,GAE5CN,EAAOxxE,KAAK8xE,IA7BhB,IAAK,IAAI61G,KAAgBF,E,EAAhBE,GAiCT,OAAOn2G,GAEX,EAvDA,GAAa,EAAAoU,wB,4KCPb,SAAY7oD,GACV,uDACA,uCACA,uCACA,+BAJF,CAAY,EAAAA,kBAAA,EAAAA,gBAAe,M,sWCe3B,iBAGE,WACS9yB,EACAC,EACC9C,EACAE,EACAmqB,EACAlI,EACAhf,EACAi2G,EACA3gG,GATV,WACS,KAAA5V,uBACA,KAAAC,iBACC,KAAA9C,mBACA,KAAAE,uBACA,KAAAmqB,oBACA,KAAAlI,mBACA,KAAAhf,sBACA,KAAAi2G,gBACA,KAAA3gG,mBAXF,KAAApY,eAAyB,IAmBjC,KAAA40B,cAA8B,CAC5B/9B,GAAI,gBACJC,KAAM,QACNG,MAAO,iEACPyT,oBAAqB,8DACrBxT,QAAS,MAEX,KAAAmpL,qCAAqD,CACnDxpL,GAAI,gCACJC,KAAM,WACNG,MAAO,YACPC,QAAS,0D,8CACPE,KAAKkpL,gC,YAGT,KAAAC,uCAAuD,CACrD1pL,GAAI,kCACJE,WAAY,wBACZD,KAAM,kBACNG,MAAO,4DACPD,UAAW,IACX0T,oBAAqB,0CACrBxT,QAASE,KAAKopL,yCAAyC3oL,KAAKT,OAE9D,KAAAqpL,0BAA0C,CACxC5pL,GAAI,qBACJE,WAAY,oBACZD,KAAM,cACNG,MAAO,iDACPD,UAAW,IACX0T,oBAAqB,sFACrBzK,oBAAqB,8CACrB/I,QAAS,SAAOiD,GAAC,+C,8CACf/C,KAAKiU,sBAAsB,UAAWlR,G,YAG1C,KAAAumL,0BAA0C,CACxC7pL,GAAI,qBACJE,WAAY,oBACZD,KAAM,cACNG,MAAO,iDACPD,UAAW,IACX0T,oBAAqB,sFACrBzK,oBAAqB,8CACrB/I,QAAS,SAAOiD,GAAC,+C,8CACf/C,KAAKiU,sBAAsB,UAAWlR,G,YApDxC,IAAMwmL,EAAUvpL,KAAKqL,eAAe4B,YAAYC,OAAO01D,WACvD5iE,KAAKqhE,WAAakoH,EAyQtB,OAlNE,YAAA9oL,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKoL,qBAAqBvE,SAAS7G,KAAKC,KAAM,CAC5C8L,YAAa,uBACb8rB,kBAAmB,2BAGrB73B,KAAKC,KAAKwG,YAAW,WACnB,EAAKiF,oBAAoBo9D,WAAW,EAAK7oE,KAAuB,kBAChE,EAAKyL,oBAAoBw9D,YAAY,EAAKjpE,KAAwB,mBAClE,EAAKyL,oBAAoB89D,OAAO,EAAKvpE,KAAyB,oBAC9D,EAAKyL,oBAAoB49D,SAAS,EAAKrpE,KAAqB,gBAAG,0D,8DAC7D,OAAKD,KAAKC,KAAK0G,OAAO3D,KAAKwmL,qBAAqBhqI,MAU7B,GAAMx/C,KAAKC,KAAK6H,gBATjCuB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,4CACxC,QACAnJ,KAAK4I,gBAGP,K,OAIF,OADmB,SACHb,SAIhB/H,KAAK2hH,cAAc9qG,mBAAmB7W,KAAKC,KAAK0G,OAAO3D,KAAKwmL,qBAAqBxhL,I,KAH/E,iBAONhI,KAAKghB,iBAAiBtM,UAAU,cAAc,SAAC3R,GAC7C,GAAI,EAAK9C,KAAK0G,OAAO3D,KAAKwmL,qBAAqBp/G,WAAarnE,EAAEqnE,UAAW,CACvE,IAAMq/G,EAAsC,EAAKxpL,KAAkB,YACnE,EAAKyL,oBAAoBg+D,UAAU+/G,EAAetpL,cAItDH,KAAKC,KAAK+M,SAASnG,UAAS,SAAOpC,GAAC,+C,uCAClC,OAAIA,EAAExE,KAAK0G,OAAOuhB,kBACyC,MAArDzjB,EAAExE,KAAK0G,OAAO3D,KAAKwmL,qBAAqBp/G,YAC1C3lE,EAAExE,KAAK0G,OAAO3D,KAAKwmL,qBAAqBp/G,UAAY3lE,EAAExE,KAAK0G,OAAO3D,KAAKwmL,qBAAqBp/G,UAAUroB,QAAQ,IAAIC,OAAO,IAAK,KAAM,KAG/H,CAAP,EAAOz8C,QAAQC,Y,aAInBxF,KAAKC,KAAK0G,OAAOC,SAASC,UAAS,SAAOpC,GAAC,+C,iDACzC,GAAkB,oCAAdA,EAAEqC,MAAMrH,IACNgF,EAAEzB,MAAQyB,EAAEzB,KAAKA,MAAQmT,MAAMC,QAAQ3R,EAAEzB,KAAKA,MAChD,IAAK,EAAL,EAAmB,EAAAyB,EAAEzB,KAAKA,KAAP,gBAARG,EAAI,MACH6mI,WAAc7mI,EAAK6mI,UAAUj3F,WAIvC5vC,EAAe,SAAIA,EAAK6mI,UAAUj3F,UAIxC,MAAO,CAAP,EAAOxtC,QAAQC,qBAInB,YAAAkkL,sBAAA,SAAsB94K,GAAtB,WACQ+tB,EAA+B3+B,KAAKC,KAAkB,YAE5DD,KAAKC,KAAK0G,OAAO3D,KAAK2mL,yBAA2B,CAC/C9K,uBAAwB7+K,KAAKC,KAAK0G,OAAO3D,KAAKwmL,qBAAqB3K,uBACnE//I,mBAAmB,EACnBC,uBAAuB,GAGzBJ,EAAUx+B,SACP2F,OACAkf,MAAK,WACJ,EAAK/kB,KAAoC,8BAAEE,SAASwZ,WAGxD3Z,KAAKw9B,cAAc19B,QAAU,WAC3B8Q,EAAU,EAAK3Q,KAAK0G,OAAO3D,KAAK2mL,0BAC7B3kK,MAAK,SAACvgB,GACLk6B,EAAUx+B,SAASiV,YAK3B,YAAAu2C,gCAAA,SAAgC5oD,GAC9B,GAAiB,QAAbA,EAAEwH,SAA4C,GAAvBxH,EAAEC,KAAKuwB,cAA+C,IAAtBxwB,EAAEC,KAAK2G,OAAOC,IAAzE,CAIA,IAAMa,EAA6B1H,EAAE2H,YAErCD,EAAKE,MAAMC,MAAQ,QACnBH,EAAKE,MAAME,gBAAkB9H,EAAEC,KAAK4oD,kBAAoB,EACpD,UACC7oD,EAAEC,KAAK6oD,kCAAoC,UAAY,YAE9D,YAAAvhD,6BAAA,SAA6BvH,GAC3B,GAAiB,QAAbA,EAAEwH,SAA0C,MAArBxH,EAAEC,KAAKwH,YAA2BzH,EAAEC,KAAK8B,oBAAuB/B,EAAEC,KAAK2G,QAA+B,GAArB5G,EAAEC,KAAK2G,OAAOC,MAGjG,GAArB7G,EAAEC,KAAKwH,YAAwC,GAArBzH,EAAEC,KAAKwH,YAArC,CAIA,IAAMC,EAA6B1H,EAAE2H,YAErCD,EAAKE,MAAMC,MAAQ,QACnBH,EAAKE,MAAME,gBAAkB9H,EAAEC,KAAK8B,mBAAmBF,YAAa,IAAID,MAAOC,UAC3E,UACA,YAGA,YAAAwkL,yCAAN,W,sHACqB,SAAMppL,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,UAIV+a,EAAmC9iB,KAAKC,KAAiC,8BAE1D6iB,EAAU3iB,SAAS2R,gBAC3BC,SAEX+Q,EAAUC,UAAU,CAAE1U,MAAO,QAGErO,KAAKC,KAAkC,4BAClEE,SAAS2F,O,KAZb,YAcE,YAAAojL,8BAAN,W,wHAOE,OANMxvK,EAA2B1Z,KAAKC,KAAkC,4BAClE2pL,EAAqC,IAAI,EAAA1J,mCAAmC,CAChFnlI,oBAAqB/6C,KAAKC,KAAK0G,OAAO3D,KAAKwmL,qBAAqBxhL,GAChE62K,uBAAwB7+K,KAAKC,KAAiC,2BAAEE,SAAS0gB,OAAO,WAG7E7gB,KAAKC,KAAiC,2BAAEE,SAAS0gB,OAAO,SAKf,GAAM7gB,KAAKuI,iBAAiBzI,QAAQ8pL,GAAoC,KAJpHvgL,WAAWC,GAAGO,OAAO7J,KAAKyI,qBAAqBU,cAAc,uEAAwE,QAASnJ,KAAK4I,gBACnJ,K,cAG4C,SAE9C5I,KAAKC,KAAK0G,OAAOuB,YAEjBmB,WAAWC,GAAGO,OAAO7J,KAAKyI,qBAAqBU,cAAc,+DAAgE,UAAWnJ,KAAK4I,gBAC7I8Q,EAAMvZ,SAASiV,O,YAGH,YAAAnB,sBAAd,SAAoCoB,EAAsBnB,G,4HACrC,SAAMlU,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVjE,EAAsB9D,KAAKC,KAAK0G,OAAO3D,KAAKwmL,qBAAqBxhL,GACjE2F,EAAW3N,KAAKyV,YAAYJ,EAAcvR,GAEzB,GAAM9D,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KANnE,I,OAOF,OADM+H,EAAiB,YAKjBC,EAAgB3V,KAAK4V,mCAAmCP,EAAcK,KAK5E1V,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAKqR,EACLI,YAAY,IAGd/V,KAAK4yB,kBAAkB4L,iB,KAbrB,YAeI,YAAA/oB,YAAR,SAAoBJ,EAAsBvR,GACxC,OAAQuR,GACN,IAAK,UACH,OAAO,IAAI,EAAAmuK,uBAAuB,CAAEzoI,oBAAqBj3C,IAC3D,IAAK,UACH,OAAO,IAAI,EAAA2/K,uBAAuB,CAAE1oI,oBAAqBj3C,IAC3D,QACE,OAAO,OAGL,YAAA8R,mCAAR,SAA2CP,EAAsBK,GAC/D,IAAKA,EACH,OAAO,KAGT,IAAInO,EAAS,KACb,OAAQ8N,GACN,IAAK,UACH9N,EAASmO,EAAesC,UACpB,eAAe3C,EAAY,IAAIK,EAAesC,UAC9C,KACJ,MACF,IAAK,UACHzQ,EAASmO,EAAeuC,UACpB,eAAe5C,EAAY,IAAIK,EAAeuC,UAC9C,KAIR,OAAO1Q,GArRE26I,EAA0B,cAFtC,EAAA9iJ,WACA,EAAAuB,Y,kCAKgC,EAAA0R,qBACN,EAAAnH,eACG,EAAAF,gBACI,EAAAC,oBACH,EAAA8xB,iBACD,EAAA1jB,gBACG,EAAA5G,mBACN,EAAA6G,aACG,EAAAF,mBAZjB8oI,GAAb,GAAa,EAAAA,8B,6LCfb,oBACA,qB,uhBCKA,iBACE,WACU2nC,EACAjrI,GADA,KAAAirI,kBACA,KAAAjrI,sBAgFZ,OA7EE,YAAAx+B,cAAA,SAAcC,EAAuBC,EAAsBve,GAA3D,WACQwF,EAASgZ,OAAOC,OAAO,GAC1Bze,EAA0C,CACzCO,WAAY,GACZwnL,mBAAmB,EACnBnhH,QAAS,MACTvgC,UAAU,EACV8kB,uBAAwB,SAACnqD,GACvBA,EAAEgR,MAAQhR,EAAEgR,OAAS,GAErBhR,EAAEgR,MAAM5S,KAAK,CACXisD,WAAYrqD,EAAEgR,MAAM7O,OAAS,EAC7B8O,KAAM,kBACN3C,QAAS,WACPgP,EAAU8vC,OAAOuoC,eAAep4E,MAIpCvd,EAAEgR,MAAM5S,KAAK,CACXisD,YAAY,EACZp5C,KAAM,SACN3C,QAAS,WACP,EAAKutC,oBAAoBc,eAAe,CACtC9+B,UAAW7d,EAAE6d,UACb++B,kBAAkB,EAClBkiC,UAAW9/E,EAAwB,eACnCgoL,cAAehoL,EAA4B,mBAC3C+/E,OAAQ//E,EAAqB,kBAKrC+vB,gBAAiB,SAAC/uB,GAChB,GAAc,iBAAVA,EAAEkO,KACJ,GAAIlO,EAAEsL,MAAO,CACX,IAAMlL,EAAOkd,EAAU/d,WAAWge,GAAc0H,MAAK,SAAAte,GAAK,OAAAA,EAAEsgL,KAAOjnL,EAAEsL,SACrEgS,EAAUkjJ,+BAA+BjjJ,EAAcnd,EAAO,CAACA,GAAO,SAEtEkd,EAAUkjJ,+BAA+BjjJ,EAAc,OAqCjE,OA/BAtgB,KAAK6pL,gBAAgBppK,oBAAoBlZ,GACzCvH,KAAK6pL,gBAAgBnpK,iBAAiBnZ,GAAQ,SAACxE,GAC7Csd,EAAUM,0BAA0BL,GAAc,SAACA,EAActd,GAC/DD,EAAE6d,UAAUC,OAAO,CACjBopK,mBAAepoJ,EACfqoJ,iBAAkB,EAClB5nL,WAAYU,IAGd,EAAK6mL,gBAAgB53I,kBAAkBlvC,EAAE6d,WAAW,WAClD,GAAI5d,EAAKkC,OAAS,EAAG,CACnB,IAAM4V,EAAM/X,EAAE6d,UAAUupK,iBAAiB,GACzCpnL,EAAE6d,UAAUC,OAAO,gBAAiB/F,UAGvC,GAEH,IAAM9X,EAAOqd,EAAU/d,WAAWge,IAAiB,GACnDvd,EAAE6d,UAAUC,OAAO,CACjBopK,mBAAepoJ,EACfv/B,WAAYU,IAGd,EAAK6mL,gBAAgB53I,kBAAkBlvC,EAAE6d,WAAW,WAClD,GAAI5d,EAAKkC,OAAS,EAAG,CACnB,IAAM4V,EAAM/X,EAAE6d,UAAUupK,iBAAiB,GACzCpnL,EAAE6d,UAAUC,OAAO,gBAAiB/F,UAKnCvT,GAjFE68J,EAAe,cAD3B,EAAAhlK,W,kCAG4B,EAAA2hB,eACI,EAAA8+B,sBAHpBukH,GAAb,GAAa,EAAAA,mB,sNCHb,iBACE,aACEpkK,KAAKoqL,KAAO7xG,UAAU8xG,UAAU9yK,QAAQ,aAAe,EACvDvX,KAAKsqL,OAAS/xG,UAAU8xG,UAAU9yK,QAAQ,UAAY,EACtDvX,KAAKuqL,UAAYhyG,UAAU8xG,UAAU9yK,QAAQ,aAAe,EAE5DvX,KAAKwxB,SAAWhb,OAAOg0K,OAAOxxK,OAAS,KAClCxC,OAAOg0K,OAAOvjJ,MAAQ,IAE3BjnC,KAAKyqL,KAAOj0K,OAAOg0K,OAAOvjJ,OAAS,KACnCjnC,KAAK0qL,MAAQ1qL,KAAKyqL,MAAQj0K,OAAOg0K,OAAOvjJ,OAAS,KACjDjnC,KAAK2qL,MAAQ3qL,KAAKyqL,OAASzqL,KAAK0qL,MAAQl0K,OAAOg0K,OAAOvjJ,OAAS,IAC/DjnC,KAAK4qL,MAAQ5qL,KAAKyqL,OAASzqL,KAAK0qL,OAAS1qL,KAAK2qL,MAAQn0K,OAAOg0K,OAAOvjJ,OAAS,IAC7EjnC,KAAK6qL,KAAOr0K,OAAOg0K,OAAOvjJ,MAAQ,IAElCjnC,KAAK45K,QAAU,iEACZz1I,KAAKo0C,UAAU8xG,WAElB,IAAMS,IAAQvyG,UAAU8xG,UAAUhhH,MAAM,YAAckP,UAAU8xG,UAAUhhH,MAAM,WAC1E0hH,IAAWxyG,UAAU8xG,UAAUhhH,MAAM,WAC3CrpE,KAAKgrL,YAAcF,GAAOC,IAAWxyG,UAAU8xG,UAAUhhH,MAAM,UAC/DrpE,KAAKirL,MAAQH,GAAOC,EAEpB,IAAMt5J,EAAOxP,SAASipK,qBAAqB,QAAQ,GAE/ClrL,KAAKwxB,UACPC,EAAK5Y,UAAU9X,IAAI,gBAEjBf,KAAK45K,SACPnoJ,EAAK5Y,UAAU9X,IAAI,eAEjBf,KAAKoqL,MACP34J,EAAK5Y,UAAU9X,IAAI,YAEjBf,KAAKsqL,QACP74J,EAAK5Y,UAAU9X,IAAI,cAEjBf,KAAKuqL,WACP94J,EAAK5Y,UAAU9X,IAAI,iBAEjBf,KAAKyqL,MACPh5J,EAAK5Y,UAAU9X,IAAI,YAEjBf,KAAK0qL,MACPj5J,EAAK5Y,UAAU9X,IAAI,YAEjBf,KAAK2qL,MACPl5J,EAAK5Y,UAAU9X,IAAI,YAEjBf,KAAK4qL,MACPn5J,EAAK5Y,UAAU9X,IAAI,YAEjBf,KAAK6qL,MACPp5J,EAAK5Y,UAAU9X,IAAI,YAkBzB,OAvEaoxB,EAAc,cAD1B,EAAA/yB,W,sCACY+yB,GAAb,GAAa,EAAAA,kB,8UCEb,iBACE,WACUpwB,GAAA,KAAAA,UAEV,KAAAgS,MAA4B,GA8C9B,OA5CE,YAAAjO,KAAA,SAAKqO,GAAL,WACE,GAA0B,IAAtBnU,KAAK+T,MAAM7O,OAAf,CAIA,IAAMnD,EAA8C,CAClDoS,OAAQA,EACRokC,SAAU,CACR4yI,SAAUlpK,SAASwP,KACnB25J,eAAgB,CACd/6H,EAAG,EACHC,EAAG,GAEL04D,GAAI,MACJC,GAAI,UAENl1G,MAAO/T,KAAK+T,MACZjR,YAAa,SAACC,GACZA,EAAEE,SAASnD,QAAQiD,GAEf,EAAKhB,SAAW,EAAKA,QAAQe,aAC/B,EAAKf,QAAQe,YAAYC,EAAEE,WAG/ByzG,SAAU,SAAC3zG,GACT2V,EAAQ4oH,SAEJnhI,GACFA,EAASmB,UAGP,EAAKS,SAAW,EAAKA,QAAQ20G,UAC/B,EAAK30G,QAAQ20G,aAKbh+F,EAAWuJ,SAASC,cAAc,OAExCD,SAASwP,KAAKtP,YAAYzJ,GAE1B,IAAMvY,EAAwCuxB,EAASC,eAAe,gBAAiBjZ,EAAS3W,GAChG5B,EAAS2F,SAEb,EAlDA,GAAa,EAAAgO,e,imBCLJ,gFAAAsvC,kBACA,gFAAA5mB,kBACA,gFAAA4zD,kBACA,gFAAA99E,kBACA,qFAAAjK,uBACA,0FAAAu0B,4BACA,gFAAA1xB,kBACA,kFAAA9C,oBACA,gGAAAu0B,kCACA,sFAAAo7E,wBACA,2FAAAvtC,6BACA,gFAAA3b,kBACA,sFAAA/a,wBACA,kFAAA1O,oBACA,sFAAApW,wBACA,+EAAAikB,iBACA,kFAAAooB,oBACA,iFAAA/e,mBACA,gFAAA8T,kBACA,qFAAAtzB,uBACA,+EAAAE,iBACA,oFAAAyF,sBACA,wFAAAljB,0BACA,yFAAAynE,2BACA,2FAAAz0E,6BACA,gFAAAkqB,kBACA,8EAAAC,gBACA,8EAAAG,gBACA,4FAAA52B,8BACA,8EAAAqT,gBACA,+EAAAo5D,iBACA,qFAAAvgB,uBACA,qFAAAhnD,uBACA,sFAAAkH,wBACA,oFAAA6lD,sBACA,0FAAA5yC,4BACA,4FAAAq7B,8BACA,gFAAAl7C,mB,4VCpBT,iBAGE,WACS2sB,EACA/mB,EACC7C,EACAF,EACAiD,EACAgnB,EACAE,EACAjnB,EACA/C,EACAiiB,EACA/hB,EACAJ,GAZV,WACS,KAAA6pB,gBACA,KAAA/mB,iBACC,KAAA7C,gBACA,KAAAF,sBACA,KAAAiD,oBACA,KAAAgnB,gBACA,KAAAE,4BACA,KAAAjnB,6BACA,KAAA/C,uBACA,KAAAiiB,mBACA,KAAA/hB,uBACA,KAAAJ,mBAdF,KAAAK,eAAyB,IAkBjC,KAAAi/J,IAAc,EAGd,KAAAroK,SAAyB,CACvBC,GAAI,WACJC,KAAM,WACNC,WAAY,eACZC,UAAW,IACXiJ,oBAAqB,+PACrBhJ,MAAO,mBACPC,QAAS,0D,oDACDL,EAAKO,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,GAC5ChI,KAAKsI,oBAAoB9H,OAAO,EAAAsI,eAAeC,QAAS,CAACtJ,I,YAI7D,KAAAuJ,sBAAsC,CACpCvJ,GAAI,iBACJE,WAAY,UACZE,MAAO,uBACPH,KAAM,QACN4T,oBAAqB,2EACrB1T,UAAW,IACXE,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,QAIS,GAAM/H,KAAK2I,qBAAqBoB,wBACvD/J,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAW2jB,SACjC7zB,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,GACjC,iBANA,I,OASF,OANyB,SAUzB,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAA6jL,2BAA2B,CACjE/xK,UAAW5R,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,MAC1C,IALF,I,OAOF,OAJA,SAIO,CAAP,EAAOhI,KAAKC,KAAK0G,OAAOuB,sBAG5B,KAAAmjL,oBAAoC,CAClC5rL,GAAI,eACJE,WAAY,UACZD,KAAM,eACNG,MAAO,qBACPD,UAAW,IACXiJ,oBAAqB,0CACrB/I,QAAS,0D,0EACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAA4B,sBAC9D20B,EAAyB70B,EAAKI,SAASE,qBAEvCsN,EAAW,IAAI,EAAA+1K,6BAA6B,CAChD9xK,UAAW5R,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,GAC5C6sB,eAAwC,IAAxBD,EAAa1vB,OAC7BomL,iBAAkB12J,IAG4B,GAAM50B,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,KAZ5F,I,OAaF,OADM+H,EAA0C,WACxBA,EAAe61K,UAIvCvrL,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAK,uBAAuBoR,EAAe61K,SAC3Cx1K,YAAY,I,KALZ,aASN,KAAAwyJ,wBAAwC,CACtC9oK,GAAI,mBACJE,WAAY,UACZD,KAAM,OACNG,MAAO,0BACPD,UAAW,IACXiJ,oBAAqB,0CACrB/I,QAAS,SAAOiD,GAAC,+C,6DACTylK,EAAe,SAAOpzI,GAAG,+C,oEAM7B,OALMznB,EAAW,IAAI,EAAAi2K,6BAA6B,CAChDhyK,UAAW5R,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,GAC5C4B,IAAKwrB,IAGP,GAAMp1B,KAAKuI,iBAAiBzI,QAAQ6N,GAAU,I,cAA9C,SACA3N,KAAKC,KAAK0G,OAAOuB,Y,aAGbotB,EAAc,IAAI,EAAAxhB,aACZC,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,yBAC9CrJ,QAAS,WACP0oK,EAAa,MAGjBlzI,EAAYvhB,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,2BAC9CrJ,QAAS,WACP0oK,EAAa,MAGjBlzI,EAAYvhB,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,2BAC9CrJ,QAAS,WACP0oK,EAAa,MAGjBlzI,EAAYvhB,MAAM5S,KAAK,CACrB6S,KAAMhU,KAAKyI,qBAAqBU,cAAc,iCAC9CrJ,QAAS,WACP0oK,EAAa,MAIkC,GAA/CxoK,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAW1F,YAAmBxK,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWvG,QAAyD,GAA/C3J,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWvG,OAAOC,KACzI0rB,EAAYvhB,MAAM5S,KAAK,CACrBisD,YAAY,EACZp5C,KAAMhU,KAAKyI,qBAAqBU,cAAc,oCAC9CrJ,QAAS,0D,8DACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIhB/H,KAAKC,KAAKsM,WAAWzG,KAAK,2BAA4B,M,KAHpD,cAQRwvB,EAAYxvB,KAAK/C,EAAEmR,OAASnR,EAAEmR,MAAMC,OAASpR,EAAEmR,MAAMC,OAAS,M,YAGlE,KAAAq3K,gBAAgC,CAC9B/rL,GAAI,WACJE,WAAY,UACZD,KAAM,OACNG,MAAO,iBACPD,UAAW,IACXiJ,oBAAqB,2MACrB/I,QAAS,0D,sEACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIV0jL,EAAuB,IAAI,EAAA5H,qBAAqB,CACpDjyK,UAAW5R,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,KAGd,GAAMhI,KAAKuI,iBAAiBzI,QAAQ2rL,GAAsB,KAPxF,I,cAOIlkL,EAA0B,UACrBuoF,WACT9vF,KAAK0qB,iBAAiB5U,KAAK,CACzBxR,IAAK,uBAAuB+Z,OAAO9W,EAAOuoF,UAAUvxE,YACpDxI,YAAY,I,aAKpB,KAAA6f,iBAAiC,CAC/Bn2B,GAAI,mBACJC,KAAM,QACNE,UAAW,IACXC,MAAO,0CACPyT,oBAAqB,iCACrBxT,QAAS,0D,gFACY,SAAME,KAAKC,KAAK6H,e,OACnC,IADmB,SACHC,QACd,UAMF,GAHMhI,EAA6BC,KAAKC,KAA4B,sBAGhC,IAF9ByrL,EAAwB3rL,EAAKI,SAAS8I,uBAElB/D,OAKxB,OAJAmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,gCACxC,QACAnJ,KAAK4I,gBACP,I,IAGoB,EAAA8iL,E,wBAAA,YAAX5hL,EAAO,KACS,GAAM9J,KAAK2I,qBAAqBoB,wBACvDD,EAAQ+pB,SACR/pB,EAAQ9B,GACR,cAJuC,M,OAOzC,IANyB,SAOvB,U,wBARkB,I,iBAYA,EAAA0jL,E,wBAAA,YAAX5hL,EAAO,KAC6B,GAAM9J,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAi2B,uBAAuB,CAC1GC,cAAelsB,EAAQ9B,GACvBiuB,WAAY,CAAE,qBAAuB,MAErC,KALuC,M,OACI,S,wBADzB,I,oBAQtBj2B,KAAKC,KAAK0G,OAAOuB,Y,aAGrB,KAAAguB,mBAAmC,CACjCz2B,GAAI,UACJC,KAAM,QACNG,MAAO,cACPs2B,QAAS,sBACTv2B,UAAW,KACX0T,oBAAqB,mCACrBxT,QAAS,0D,kFACY,SAAME,KAAKC,KAAK6H,e,OACnC,OADmB,SACHC,SAIVhI,EAA6BC,KAAKC,KAA4B,sBAC9DyrL,EAAwB3rL,EAAKI,SAAS8I,sBAC5ClJ,EAAKI,SAASI,iBAEsB,GAAhCmrL,EAAsBxmL,QACxBmE,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,gCACxC,QACAnJ,KAAK4I,gBACP,MAGI/I,EAAQG,KAAKyI,qBAAqBU,cAAc,iBAChDC,EAAWpJ,KAAKyI,qBAAqBU,cAAc,6BAErC,GAAMnJ,KAAKwI,cAActI,iBAAiBmJ,WAAWC,GAAGC,OAAOC,QAAQJ,EAAUvJ,OAlBnG,I,OAmBF,IADoB,SAElB,UAGF,GAAI6rL,EAAsBjiL,MAAK,SAACC,GAAM,OAAe,GAAfA,EAAE0sB,aAKtC,OAJA/sB,WAAWC,GAAGO,OACZ7J,KAAKyI,qBAAqBU,cAAc,2BACxC,QACAnJ,KAAK4I,gBACP,I,IAG4B,EAAA8iL,E,wBAAA,YAAnBC,EAAe,KACC,GAAM3rL,KAAK2I,qBAAqBoB,wBACvD4hL,EAAgB93J,SAChB83J,EAAgB3jL,GAChB,cAJ+C,M,OAOjD,IANyB,SAOvB,U,wBAR0B,I,aAc9B,OAFMquB,EAASq1J,EAAsBzhL,KAAI,SAACP,GAAM,OAAAA,EAAE1B,MAElD,GAAMhI,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAyjL,mCAAmC,CACzEqI,sBAAuBv1J,KACrB,I,cAFJ,SAIAr2B,KAAKC,KAAK0G,OAAOuB,Y,aA2GvB,OAvGE,YAAAzH,KAAA,SAAKR,GAAL,WACED,KAAKC,KAAOA,EAEZA,EAAK22B,wBAA0B,WAC7B,IAAMi1J,EAAiC5rL,EAAKyY,QAAQC,cAAc,4EAC7DkzK,GAILA,EAAalyK,SAGf3Z,KAAKoyB,cAAcvrB,SAAS7G,KAAKC,KAAM,CACrC8L,YAAa,aACbC,2BAA4B,mBAG9BhM,KAAKwL,2BAA2Bc,gBAAgB,CAC9CrM,KAAMA,EACNiM,UAAW,aACXC,eAAgB,gBAChBI,WAAY,CAAC,2BAA4B,4BAG3CtM,EAAK0G,OAAOC,SAASC,UAAS,SAAOpC,GAAC,+C,oEACpC,OAAS,MAALA,GAA6B,cAAdA,EAAEqC,MAAMrH,GACzB,KAGF,EAAAO,KAAiC,GAAMA,KAAKsI,oBAAoB+B,0BAA0B,EAAAvB,eAAeC,W,OAEzG,OAFA,EAAKsB,0BAA4B,SAE1B,CAAP,EAAO9E,QAAQC,qBAGjBvF,EAAKuN,QAAQ3G,UAAS,SAACpC,GAMrB,OALA,EAAKxE,KAAK0G,OAAOsf,eAAehU,KAAK,CACnCnL,MAAO,EAAK7G,KAAK0G,OAAOghB,QAAQ,yBAChCiQ,iBAAiB,IAGZryB,QAAQC,aAGjBvF,EAAKsM,WAAWC,kBAAkB3F,UAAS,SAACpC,GAC1C,OAAIA,EAAEgI,kBAIgB,4BAAlBhI,EAAEiI,UAAUjN,GACdQ,EAA0B,oBAAEE,SAAS8V,UACV,0BAAlBxR,EAAEiI,UAAUjN,GACrBQ,EAA4B,sBAAEE,SAAS8V,UACZ,4BAAlBxR,EAAEiI,UAAUjN,IACrB,EAAKQ,KAAK0G,OAAOuB,aARV3C,QAAQC,aAcnBvF,EAAK+R,qBAAqBnL,UAAS,SAAOwf,GAAI,+C,4EACX,eAA7BA,EAAKjkB,QAAQ8P,YAAb,MACGmU,EAAKhY,MAIkB,YAAxBgY,EAAKjkB,QAAQC,OAAb,OACIyE,EAAQ7G,EAAK0G,OAAO3D,KAAiB,aAEzC,EAAA8D,EAAmB,GAAM9G,KAAKuyB,cAAc8F,qBAAqBhS,EAAKhY,SADpE,MALJ,I,OAME,EAAM+pB,WAAa,S,sCAOvB,YAAA0zJ,sBAAN,W,gHACE,SAAM9rL,KAAKoyB,cAAcnkB,qB,cAAzB,SAEAjO,KAAK+6B,kE,YAGO,YAAAA,gEAAd,W,wHACE,OAAI/6B,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWvI,SAAW3H,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWlI,GAAK,EACpF,IAGwB,GAAMhI,KAAKyyB,0BAA0B0J,yBAAyBn8B,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAWC,iB,OAC3G,OADRisB,EAAoB,SACZ,GAAMp8B,KAAKuL,kBAAkB8wB,uDAAuDD,EAAkB3tB,6B,cAErG,OAFXgV,EAAU,UAEV,MACQ,GAAMzjB,KAAKuyB,cAAc+J,yB,OAAnC7Y,EAAU,S,wBAGZzjB,KAAKC,KAAK0G,OAAO3D,KAAKkN,WAAW2T,QAAUJ,EAE3CzjB,KAAKC,KAAK+R,qBAAqBC,KAAK,CAClC7P,QAAS,CACP8P,YAAa,aACb7P,OAAQ,WAEVgM,MAAOoV,I,YA3YAsiI,EAAgB,cAF5B,EAAA3mJ,WACA,EAAAuB,Y,kCAKyB,EAAA0R,qBACC,EAAAnH,eACA,EAAAtK,aACM,EAAAmK,mBACF,EAAA3C,iBACJ,EAAAs0B,aACY,EAAAE,yBACC,EAAArqB,0BACN,EAAAtH,oBACJ,EAAAoO,gBACI,EAAAlO,oBACJ,EAAAH,mBAfjB+6I,GAAb,GAAa,EAAAA,oB,8OCXb,iBAEE,WACUr9I,GAAA,KAAAA,kBAiCZ,OA7BE,YAAAqjL,0BAAA,SAA0BhpL,GACxB,GAAK/C,KAAKC,KAAK0G,OAAO3D,KAAK8vB,YAGZ,MAAX/vB,EAAEsL,MAAN,CAGA,IAAM67G,EAAOlqH,KAAKC,KAAK0G,OAAO3D,KAAK8vB,WAAWumG,UACxC2yD,EAAYz9E,YAAa2b,EAAO,IAAOnnH,EAAEsL,OAAO0uK,QAAQ,IAC9D/8K,KAAKC,KAAK0G,OAAO3D,KAAKipL,oBAAoB5yD,UAAY2yD,IAGxD,YAAAvrL,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAK0G,OAAOC,SAASC,UAAS,SAACpC,GAC7B,GAAS,MAALA,GAA6B,uBAAdA,EAAEqC,MAAMrH,GAA3B,CAIA,IAAMuD,EAAO,EAAK/C,KAAK0G,OAAO3D,KAAKipL,oBACnC,GAAKjpL,EAKL,OAFAA,EAAKkpL,gBAAkB,EAAKxjL,gBAAgBuE,YAAYuf,QAAQ2/J,sCAEzD5mL,QAAQC,eAjCR2/I,EAAwB,cAFpC,EAAA/lJ,WACA,EAAAuB,Y,kCAI4B,EAAAuK,kBAHhBi6I,GAAb,GAAa,EAAAA,4B,sNCDb,iBACE,cAOF,OAHE,YAAA1kJ,KAAA,SAAKR,EAAgBgB,GACnBjB,KAAKC,KAAOA,GANHk6I,EAAc,cAF1B,EAAA/6I,WACA,EAAAuB,Y,sCACYw5I,GAAb,GAAa,EAAAA,kB,uQCab,iBACE,WACUl9G,EACArK,EACAlI,GAFA,KAAAuS,uBACA,KAAArK,oBACA,KAAAlI,mBA0EZ,OArEE,YAAAjqB,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZD,KAAKC,KAAKmC,QAAQqZ,QAAQ,CACxBH,eAAgBtb,KAAKC,KAAKqb,eAC1BI,WAAY,+BACZxM,SAAU,SAAOyM,GAAQ,+C,kDACvB,OAAKA,GAIL3b,KAAKC,KAAK0G,OAAO3D,KAAKopL,iBAAmB,KACpCzwK,EAAS2iB,qBAIdt+B,KAAKi9B,qBACFsB,OAAO5iB,EAAS2iB,oBAAoBzK,SAAUlY,EAAS2iB,oBAAoBt2B,IAC3Egd,MAAK,SAAAvgB,GACJ,EAAKmuB,kBAAkB4L,iBAAiBxZ,MAAK,SAAAyZ,GACtCA,GAIL,EAAK/T,iBAAiB5U,KAAK,CACzBxR,IAAKG,U,KAZX,KALA,aAwBNzE,KAAKC,KAAKwG,YAAW,WACkCxG,EAAgC,0BACtC8D,QAC5C6S,QAAO,SAAAlN,GAAK,MAAe,yBAAfA,EAAEkvB,aACdn3B,SAAQ,SAAAiI,GACPA,EAAEyuC,sBAAuB,EACzBzuC,EAAE0uD,iBAAmB,CAAC,mBAK9B,YAAAC,4BAAA,SAA4Bt1D,GAC1B,GAAiB,QAAbA,EAAEwH,SAIDxH,EAAEC,MAASD,EAAEC,KAAKs7B,oBAAvB,CAIA,IAAM7zB,EAAiC1H,EAAE2H,YACrCu0B,EAAQl8B,EAAEC,KAAKs7B,oBAEbY,EAAO,wEACGD,EAAME,gBAAkB,GAAK,oBAAkB,gBACzDF,EAAME,gBAAkBF,EAAME,gBAAkB,IAAE,yCAGlDF,EAAMG,eAAiBH,EAAMG,eAAiB,IAAE,6BAIrD30B,EAAK40B,UAAYH,IAEpB,YAAAo5B,0BAAA,SAA0Bv1D,GACxB,MAAO,CAAC,qCAAsC,WAAYA,EAAEsL,QA5EnD0vI,EAA2B,cAFvC,EAAA3+I,WACA,EAAAuB,Y,kCAGiC,EAAA0H,oBACH,EAAA00B,iBACD,EAAA1jB,mBAJjB0kI,GAAb,GAAa,EAAAA,+B,8ZCVb,iBACE,WACUr1I,EACAH,GAFV,WACU,KAAAG,kBACA,KAAAH,mBAMV,KAAAo3D,WAAY,EAEZ,KAAA9zC,qBAAqC,CACnCpsB,GAAI,gBACJE,WAAY,WACZE,MAAO,4BACPH,KAAM,OACNE,UAAW,GACX0G,WAAW,EACXxG,QAAS,0D,oEAC8B,SAAME,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAAisB,+BAA+B,M,cAAtGtnB,EAA+B,SACrC+R,OAAOC,KAAKhS,EAAEunB,QAAS,U,aAfzBhsB,KAAK2/D,UAAY3/D,KAAK0I,gBAAgBuE,YAAYif,SAAS0zC,UAyC/D,OAtBE,YAAAn/D,KAAA,SAAKR,EAAgBgB,GAArB,WACEjB,KAAKC,KAAOA,EAEZA,EAAK0G,OAAOC,SAASC,UAAS,SAAO9D,GAAC,+C,0EAClB,eAAdA,EAAE+D,MAAMrH,IAAuBsD,EAAEC,KAC9BhD,KAAK0I,gBAAgBuE,YAAYif,SAASqC,uBAKR,GAAMvuB,KAAKuI,iBAAiBzI,QAAQ,IAAI,EAAA0uB,iCAAiC,CAC9GC,cAAc,OALdzuB,KAAK6rB,qBAAqBvlB,WAAY,EACtC,KAHA,M,OAMI7B,EAAiC,SAIvCzE,KAAK6rB,qBAAqBvlB,aAAY7B,GAAMA,EAAEgqB,c,iBAKhD,MAAO,CAAP,EAAOlpB,QAAQC,sBA3CR47I,EAA8B,cAF1C,EAAAhiJ,WACA,EAAAuB,Y,kCAG4B,EAAAuK,eACC,EAAAF,mBAHjBo2I,GAAb,GAAa,EAAAA,kC","file":"app.9c9c5957a194601c004e.chunk.js","sourcesContent":["import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  CustomEvent\n} from \"../../base/export\";\nimport {\n  IQueryGlobalCommandEventArgs\n} from \"../event-args/export\";\n\n@autoinject\nexport class GlobalCommandService {\n  constructor(\n    public onQueryGlobalCommand: CustomEvent<IQueryGlobalCommandEventArgs>\n  ) {}\n}","import { autoinject, transient } from 'aurelia-framework';\nimport { ICommandData } from '../../../../framework/forms/interfaces/command-data';\nimport { FormBase } from '../../../../framework/forms/classes/form-base';\nimport { IdxDataGridComponent } from '../../../interfaces/export';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\nimport { EximService } from '../../../services/exim-service';\n\n@autoinject\n@transient()\nexport class GeschaeftspartnerListUtils {\n  constructor(\n    private asyncService: AsyncService,\n    private eximService: EximService\n  ) {}\n  \n  form: FormBase;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    title: \"erp.export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_geschaeftspartnerGrid\"];\n      await this.asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this.asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this.eximService.export(\"GeschaeftspartnerExim\", keys);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject,\n  singleton\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\n\n@autoinject\n@singleton(true)\nexport class Functions {\n  private form: FormBase;\n  private _functionInstances: any[] = [];\n\n  constructor() {}\n\n  add(id: string, functionInstance: any, namespace: string, customParameters?: any) {\n    this[id] = functionInstance;\n    this._functionInstances.push(functionInstance);\n\n    if (functionInstance.bind) {\n      functionInstance.bind(this.form, namespace, customParameters);\n    }\n  }\n  \n  registerForm(form: FormBase) {\n    if (this.form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this.form = form;\n  }\n\n  dispose() {\n    this.unbindAll();\n    this._functionInstances.splice(0);\n  }\n  \n  private unbindAll() {\n    this._functionInstances.forEach(instance => {\n      if (!instance.unbind) {\n        return;\n      }\n\n      instance.unbind(this.form);\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  BaseWidgetCreatorService\n} from \"./base-widget-creator-service\";\nimport * as WidgetOptions from \"../widget-options/export\";\nimport { ListType } from '../enums/list-type-enum';\n\n@autoinject\nexport class ListWidgetCreatorService {\n  constructor(\n    private baseWidgetCreator: BaseWidgetCreatorService\n  ) { }\n\n  addList(form: FormBase, options: WidgetOptions.IListOptions) {\n    const listOptions: DevExpress.ui.dxListOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    listOptions.itemTemplate = \"itemTemplate\";\n\n    if (options.dataModel && !options.binding.bindTo) {\n      const dataSource = this.baseWidgetCreator.createListDataSource(form, options, listOptions);\n      listOptions.dataSource = dataSource;\n    }\n    else if (options.binding.bindTo) {\n      listOptions.bindingOptions[\"dataSource\"] = options.binding.bindToFQ;\n    }\n\n    this.baseWidgetCreator.setListClickActions(form, options);\n    const customOptions = this.baseWidgetCreator.getCustomOptions(form, options);\n\n    if (customOptions.hasClickActions > 0) {\n      listOptions.onItemClick = (e) => {\n        (<any>e).data = e.itemData;\n\n        customOptions.clickActions.forEach(item => {\n          item(e, listOptions.dataSource);\n        });\n        customOptions.openClickActions.forEach(item => {\n          item(e, listOptions.dataSource);\n        });\n      };\n    }\n\n    this.baseWidgetCreator.checkListToolbar(form, options, null, ListType.List);\n    this.baseWidgetCreator.checkListRelationEdit(form, options);\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { GlobalizationService } from \"../../framework/base/export\";\nimport { RestService } from \"../../framework/base/services/rest-service\";\n\n@autoinject\nexport class FakturaService {\n  constructor(\n    private rest: RestService,\n    private globalizationService: GlobalizationService\n  ) { }\n\n  getOffenePostenOptions(idGeschaeftspartner: number): any {\n    return {\n      columns: [\"Id\", \"Nummer\", \"Datum\", \"WertBrutto\", \"BetragOffen\", \"ZahlungFaelligkeit\", \"Mahnstufe\"],\n      where: [[\"IdRechnungsort\", idGeschaeftspartner], [\"Status.Typ\", 1], [[\"BezahltTyp\", 0], \"or\", [\"BezahltTyp\", 2]]],\n      orderBy: [{ columnName: \"Datum\", sortOrder: 0 }, { columnName: \"Nummer\", sortOrder: 1 }]\n    };\n  }\n  async getOffenePosten(idGeschaeftspartner: number): Promise<any[]> {\n    const r = await this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Verkauf/Faktura\"),\n      getOptions: this.getOffenePostenOptions(idGeschaeftspartner)\n    });\n\n    const now = new Date().getTime();\n    for (const item of r) {\n      const tooltipArr = [];\n\n      if (item.ZahlungFaelligkeit && item.ZahlungFaelligkeit.getTime() < now) {\n        item.IsFaellig = true;\n        tooltipArr.push(`Fälligkeit: ${this.globalizationService.format(item.ZahlungFaelligkeit, \"d\")}`);\n      }\n\n      if (item.Mahnstufe) {\n        tooltipArr.push(`Mahnstufe: ${this.globalizationService.format(item.Mahnstufe, \"n0\")}`);\n      }\n\n      if (tooltipArr.length > 0) {\n        item.Tooltip = tooltipArr.join(\"\\n\");\n      }\n    }\n\n    return r;\n  }\n\n  async hasFakturagruppePositionenZugeteilt(idFakturagruppe){\n    const r = await this.rest.get({\n      url: this.rest.getWebApiUrl(`ERP/Verkauf/Fakturaposition`),\n      getOptions: {\n        where: [\"IdFakturagruppe\", idFakturagruppe]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\nimport {\n  SpracheUebersetzung\n} from \"../elements/sprache-uebersetzung/sprache-uebersetzung\";\n\n@autoinject\nexport class SpracheUebersetzungService {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  spracheUebersetzung: SpracheUebersetzung\n\n  loadSprachen(whereOptions: any[] = []): Promise<any[]> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Stammdaten/Sprache\"),\n      getOptions: {\n        where: whereOptions\n      }\n    });\n  }\n\n  show(modelData: any){\n    this.spracheUebersetzung.show(modelData);\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase } from '../../framework/forms/form-export';\nimport { ICommandData } from '../../framework/forms/export';\nimport { DynFelderService } from '../services/dyn-felder-service';\nimport { EntitaetInfoService } from '../services/entitaet-info-service';\n\n@autoinject\n@transient()\nexport class UpdateManuelleTexteUtils {\n  constructor(\n    private dynFelder: DynFelderService,\n    private entitaetInfo: EntitaetInfoService\n  ) { }\n\n  form: FormBase;\n\n  updateKopftextCommand: ICommandData = {\n    id: \"updateKopftext\",\n    idCategory: \"text\",\n    title: \"update-manuelle-texte.update-kopftext\",\n    icon: \"\",\n    sortIndex: 10,\n    isEnabled: false,\n    isVisible: false,\n    execute: async () => {\n      this.updateTexte(true, false);\n    }\n  }\n  updateFusstextCommand: ICommandData = {\n    id: \"updateFusstext\",\n    idCategory: \"text\",\n    title: \"update-manuelle-texte.update-fusstext\",\n    icon: \"\",\n    sortIndex: 20,\n    isEnabled: false,\n    isVisible: false,\n    execute: async () => {\n      this.updateTexte(false, true);\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.callOnBind(() => {\n      this.checkUpdateText();\n    })\n    form.models.onLoaded.register(r => {\n      if (r.model == this.form.models.modelWithKeyId) {\n        this.checkEnabled(r.data);\n      }\n\n      return Promise.resolve();\n    })\n  }\n\n  private async checkUpdateText(): Promise<any> {\n    const mainModel = this.form.models.modelWithKeyId;\n    if (!mainModel) {\n      return;\n    }\n    if (!mainModel.webApiAction) {\n      return;\n    }\n\n    var info = this.entitaetInfo.getEntitaetInfoByWebApiAction(mainModel.webApiAction);\n    if (!info) {\n      return;\n    }\n    if (!info.FullName) {\n      return;\n    }\n\n    const result = await this.dynFelder.hasManuellerText(info.FullName);\n\n    this.updateKopftextCommand.isVisible = result.HasKopftext;\n    this.updateFusstextCommand.isVisible = result.HasFusstext;\n  }\n  private checkEnabled(data) {\n    const enabled = data && data.CanSave;\n\n    this.updateKopftextCommand.isEnabled = enabled;\n    this.updateFusstextCommand.isEnabled = enabled;\n  }\n  private async updateTexte(kopf: boolean, fuss: boolean) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const mainModel = this.form.models.modelWithKeyId;\n    const id = this.form.models.data[mainModel.id].Id;\n\n    if (!id) {\n      return;\n    }\n\n    await this.dynFelder.updateManuelleTexte(id, kopf, fuss);\n    return this.form.models.reloadAll();\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnFakturaListAbschliessenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from \"../../../interfaces/dx-components\";\nimport { ValidationExService } from \"../../../services/validation-ex-service\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { BelegExportService } from \"../../../services/beleg-export-service\";\nimport { StartupService } from \"../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class FakturaListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _belegExportService: BelegExportService,\n    private _webEventService: WebEventService,\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService,\n    private _startupService: StartupService,\n    private _validationExService: ValidationExService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_FakturaListUtils._startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_FakturaListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_fakturaGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Faktura, keys);\n    }\n  };\n\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"faktura\",\n    title: \"faktura.abschliessen\",\n    icon: \"check\",\n    sortIndex: 999,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_fakturaGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const fakturaGridRowData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (fakturaGridRowData.length == 0) {\n        return;\n      }\n\n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"faktura.sure_abschliessen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasErledigteFakturenInList = fakturaGridRowData\n        .some((c) => c.Status.Typ != 0);\n\n      if (hasErledigteFakturenInList) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"faktura.fehler_abschliessen_status\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      fakturaGridRowData.forEach(async (faktura) => {\n        const validationResult = await this._validationExService.executeServerValidation(\n          \"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\",\n          faktura.Id,\n          \"ABSCHLIESSEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      });\n\n      const idFakturaList = fakturaGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnFakturaListAbschliessenEvent({\n        IdFakturaList: idFakturaList\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Faktura);\n      return Promise.resolve();\n    });\n  }\n\n  onZahlungFaelligCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.BezahltTyp == void (0) || !e.data.ZahlungFaelligkeit || !e.data.Status || e.data.Status.Typ != 1) {\n      return;\n    }\n    if (e.data.BezahltTyp != 0 && e.data.BezahltTyp != 2) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.ZahlungFaelligkeit.getTime() >= new Date().getTime()\n      ? \"#2DCC70\"\n      : \"#C1392D\";\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnEvalVerkaufArtikeldaten, OnEvalVerkaufArtikeldatenEvent, OnFakturapositionVariableStuecklisteAuswahl, OnFakturapositionVariableStuecklisteAuswahlEvent, OnFakturapositionVariableStuecklistenkomponentenErstellen, OnFakturapositionVariableStuecklistenkomponentenErstellenEvent, OnFakturapositionVariablerSetartikelManuellerPreisEntfernenEvent, OnFakturapositionVariablerSetartikelPreisAendernEvent, OnFakturapositionVariablerSetartikelRabattEntfernenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData, ModelUtilsService } from \"../../../../framework/forms/export\";\nimport { VariablerSetartikelKomponentenAuswahl } from \"../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl\";\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from \"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\";\nimport { DynFeldLogikTyp } from \"../../../enumerations/dyn-feld-logik-typ\";\nimport { IKalkulationRefreshOptions } from \"../../../interfaces/kalkulation-refresh-options\";\nimport { ArtikelService } from \"../../../services/artikel-service\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\nimport { DynFelderService } from \"../../../services/dyn-felder-service\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { StartupService } from \"../../../services/startup-service\";\nimport { DxCustomizeService } from './../../../services/dx-customize-service';\n\n@autoinject\n@transient()\nexport class FakturapositionEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    public startupService: StartupService,\n    private _artikelService: ArtikelService,\n    private _dynFelderService: DynFelderService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _localizationService: LocalizationService,\n    private _modelUtilsService: ModelUtilsService,\n    private _webEventService: WebEventService,\n    private _dxCustomizeService: DxCustomizeService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  showVariablerSetartikelCheckbox: boolean;\n  variablerSetartikelKomponentenAuswahlList: any[];\n  onReloadStuecklistemkomponentenlist: boolean;\n\n  showVariablerSetartikelKomponentenAuswahlCommand: ICommandData = {\n    id: \"variablerSetartikelKomponentenAuswahlCommand\",\n    idCategory: \"fakturaposition\",\n    icon: \"list\",\n    title: \"faktura.stueckliste_auswaehlen\",\n    isVisibleExpression: \"functions.$f_FakturapositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Fakturaposition && models.data.$m_Fakturaposition.Id > 0 && models.data.$m_Fakturaposition.IsVariablerSetartikel && models.data.$m_Fakturaposition.Lieferscheinposition == null && models.data.$m_Fakturaposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n    }\n  }\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"fakturaposition\",\n    icon: \"money\",\n    title: \"faktura.preis_aendern\",\n    isVisibleExpression: \"functions.$f_FakturapositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Fakturaposition && models.data.$m_Fakturaposition.Id > 0 && models.data.$m_Fakturaposition.IsVariablerSetartikel && models.data.$m_Fakturaposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Fakturaposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Fakturaposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeIstVerpEH\"\n    }\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"fakturapositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0 || e.model.id != \"$m_Fakturaposition\" || !e.data) {\n        return;\n      }\n\n      this.showVariablerSetartikelCheckbox = this.form.models.data.$m_Fakturaposition\n        && this.form.models.data.$m_Fakturaposition.Artikel != null\n        && this.form.models.data.$m_Fakturaposition.Artikel.BezugTyp == 3\n        ? true\n        : false;\n\n      this.refreshFakturagruppeButton();\n    });\n\n    this.form.onSaving.register(async (r) => {\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n      if (!this.form.models.data.$m_Fakturaposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      if (r.form.models.data.$m_Fakturaposition.Id > 0) {\n        return;\n      }\n\n      if (!this.form.models.data.$m_Fakturaposition.MengeIstVerpEH) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"faktura.fehler_variabler_setartikel_menge\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return Promise.reject();\n      }\n\n      if (this.variablerSetartikelKomponentenAuswahlList != null) {\n        return;\n      }\n\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n\n      return Promise.reject();\n    });\n\n    this.form.onSaved.register(async (r) => {\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n      if (this.variablerSetartikelKomponentenAuswahlList == null && this.form.models.data.$m_Fakturaposition.IsSetartikel) {\n        if (this.onReloadStuecklistemkomponentenlist) {\n          this.onReloadStuecklistemkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n        return;\n      }\n\n      if (r.form.models.data.$m_Fakturaposition.Id > 0 && !this.form.models.data.$m_Fakturaposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      const webEvent = new OnFakturapositionVariableStuecklistenkomponentenErstellenEvent({\n        IdFakturaposition: r.form.models.data.$m_Fakturaposition.Id,\n        StuecklistenkomponentenMengeList: this.variablerSetartikelKomponentenAuswahlList\n      });\n\n      const result: OnFakturapositionVariableStuecklistenkomponentenErstellen = await this._webEventService.execute(webEvent);\n\n      this.form.models.reloadAll();\n      this.variablerSetartikelKomponentenAuswahlList = null;\n    });\n  }\n\n  async idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n\n    if (!this.form.models.data.$m_Fakturaposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Fakturaposition);\n    }\n\n    this.doEvalVerkaufArtikeldaten(e.detail.value);\n\n    if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n      return;\n    }\n    if (e.detail.value != null) {\n      const artikel = await this._artikelService.getArtikelById(e.detail.value);\n\n      this.form.models.data.$m_Fakturaposition.IsVariablerSetartikel = false;\n      this.showVariablerSetartikelCheckbox = false;\n      this.variablerSetartikelKomponentenAuswahlList = null;\n\n      if (artikel.BezugTyp != 3) {\n        return;\n      }\n\n      const dynFeldEintrag = await this._dynFelderService.loadDynFeldEintragByLogikttyp(artikel.IdDynamischesFeldContainer, DynFeldLogikTyp.VariablerSetartikel);\n      this.showVariablerSetartikelCheckbox = true;\n\n      if (dynFeldEintrag != null && dynFeldEintrag[0].WertNummer == 1) {\n        this.form.models.data.$m_Fakturaposition.IsVariablerSetartikel = true;\n      }\n    }\n  }\n\n  private async showVariablerSetartikelStuecklistenKomponentenAuswahl() {\n    const webEvent = new OnFakturapositionVariableStuecklisteAuswahlEvent({\n      IdArtikel: this.form.models.data.$m_Fakturaposition.IdArtikel,\n      IdFakturaposition: this.form.models.data.$m_Fakturaposition.Id\n    });\n\n    const result: OnFakturapositionVariableStuecklisteAuswahl = await this._webEventService.execute(webEvent);\n\n    if (result == void 0) {\n      return;\n    }\n\n    if (result.StuecklistenkomponentenAuswahlList.length == 0) {\n      return;\n    }\n\n    const variablerSetartikelAuswahlPopup: VariablerSetartikelKomponentenAuswahl = this.form[\"r_variablerSetartikelKomponentenAuswahlElement\"];\n\n    variablerSetartikelAuswahlPopup.show({\n      StuecklisteList: result.StuecklistenkomponentenAuswahlList,\n      callback: async (auswahl) => {\n        console.log(auswahl);\n        this.variablerSetartikelKomponentenAuswahlList = auswahl;\n        this.form.save();\n      }\n    });\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnFakturapositionVariablerSetartikelRabattEntfernenEvent({\n            IdFakturapositionSetartikel: this.form.models.data.$m_Fakturaposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnFakturapositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdFakturapositionSetartikel: this.form.models.data.$m_Fakturaposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnFakturapositionVariablerSetartikelPreisAendernEvent({\n            IdFakturapositionSetartikel: this.form.models.data.$m_Fakturaposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n\n\n  private async doEvalVerkaufArtikeldaten(idArtikel) {\n    if (!idArtikel) {\n      return;\n    }\n\n    const webEvent = new OnEvalVerkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdKunde: this.form.models.data.$m_Faktura.IdRechnungsort\n    });\n\n    const result: OnEvalVerkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    this.form.models.data.$m_Fakturaposition.IdEinheit = result.IdArtikelEinheit;\n    this.form.models.data.$m_Fakturaposition.KundeArtikelNr = result.KundeArtikelNr;\n    this.form.models.data.$m_Fakturaposition.KundeArtikelbezeichnung = result.KundeArtikelbezeichnung;\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Fakturaposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Fakturaposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistemkomponentenlist = true;\n    }\n  }\n\n  onFakturagruppeChanged() {\n    this.refreshFakturagruppeButton();\n  }\n\n  copyFakturaposition($delegate: { (customData: any): Promise<any> }) {\n    $delegate({ \"PosNrUeberschreiben\": true })\n  }\n\n  private refreshFakturagruppeButton() {\n    const data = this.form.models.data.$m_Fakturaposition;\n    if (!data) {\n      return;\n    }\n    const editor = this.form[\"r_fakturagruppe\"].instance;\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (!data.IdFakturagruppe && data.CanSave) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: async () => {\n            this.form.models.data.$m_FakturagruppeEdit = {\n              Id: 0\n            };\n\n            this.form.editPopups.showEx({\n              idEditPopup: \"fakturagruppeEditPopup\",\n              modelLoaded: (form, ev) => {\n                if (!form.models.data.$m_Fakturagruppe) {\n                  return;\n                }\n                form.models.data.$m_Fakturagruppe.IdFaktura = this.form.models.data.$m_Fakturaposition.IdFaktura;\n              },\n              closeCallback: async (form) => {\n                this.form[\"r_fakturagruppe\"].instance.getDataSource().reload();\n\n                const model = form.models.modelWithKeyId;\n                const data = form.models.data[model.id];\n                this.form.models.data.$m_Fakturaposition.IdFakturagruppe = data.Id;\n\n                this.form.onEditorValueChanged.fire({\n                  binding: {\n                    dataContext: \"$m_Fakturaposition\",\n                    bindTo: \"IdFakturagruppe\"\n                  },\n                  value: data.Id\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"clear\"\n    }, {\n      location: \"after\",\n      name: \"dropDown\"\n    });\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n}\n","import {\n  autoinject, transient\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport * as moment from \"moment\";\n\n@autoinject\n@transient()\nexport class AufgabeListUtils {\n  constructor() { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n\n  onFaelligAmCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    const rowData = e.data;\n    if (rowData.FaelligAm == null) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n    const isVorbei = moment().isSameOrAfter(rowData.FaelligAm);\n\n    if (isVorbei) {\n      cell.style.backgroundColor = \"#C1392D\";\n      cell.style.color = \"White\";\n    }\n  }\n}\n","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  OnErstelleAngebotAusMailImportItemEvent,\n  OnErstelleAuftragAusMailImportItemEvent, OnErstelleBestellungAusMailImportItemEvent, OnErstelleKundenreklamationAusMailImportItemEvent, OnVerknuepfenEntitaeten,\n  OnVerknuepfenEntitaetenEvent\n} from \"../../../../framework-data/events\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { ContextMenu, FormBase } from \"../../../../framework/forms/export\";\nimport { BriefService } from \"../../../services/export\";\nimport {\n  FileService, IViewScrollInfo, LocalizationService, WebEventService\n} from \"./../../../../framework/base/export\";\nimport {\n  ICommandData\n} from \"./../../../../framework/forms/interfaces/command-data\";\nimport {\n  IdxDataGridComponent\n} from \"./../../../interfaces/dx-components\";\n\n@autoinject\n@transient()\nexport class MailImportItemEditUtils {\n  private _windowResizeSubscription: Subscription;\n\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private file: FileService,\n    private webEvent: WebEventService,\n    private eventAggregator: EventAggregator,\n    private locationService: LocationService,\n    private localizationService: LocalizationService,\n    private briefService: BriefService\n  ) { }\n\n  currentDokument: any;\n  form: FormBase;\n\n  herunterladenCommand: ICommandData = {\n    id: \"herunterladen\",\n    title: \"mail-item.herunterladen-command-text\",\n    icon: \"download\",\n    isEnabledExpression: \"functions.$f_MailImportItemUtils.currentDokument.DMSLink\",\n    execute: this.downloadCurrentDokument.bind(this)\n  };\n  versendenCommand: ICommandData = {\n    id: \"versenden\",\n    title: \"mail-item.versenden-command-text\",\n    icon: \"share-alt\",\n    isEnabledExpression: \"functions.$f_MailImportItemUtils.currentDokument.DMSLink\",\n    execute: this.sendCurrentDokument.bind(this)\n  };\n  dokumentenartZuteilenCommand: ICommandData = {\n    id: \"zuteilen\",\n    title: \"mail-item.dokumentenart-zuteilen\",\n    icon: \"file-o\",\n    isEnabledExpression: \"functions.$f_MailImportItemUtils.currentDokument.DMSLink\",\n    execute: this.dokumentenartZuteilen.bind(this)\n  };\n  neuCommand: ICommandData = {\n    id: \"neuCommand\",\n    title: \"mail-item.neu-command-text\",\n    icon: \"plus-circle\",\n    idCategory: \"mail\",\n    sortIndex: 60,\n    isEnabledExpression: \"models.data.$m_MailImportItem.CanSave && models.data.$m_MailImportItem.IdGeschaeftspartner\",\n    execute: async (e) => {\n      const ctxMenu = new ContextMenu();\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.angebot\"),\n        execute: () => {\n          this.OnNeuErstellenClicked(\"Angebot\", e);\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.auftrag\"),\n        execute: () => {\n          this.OnNeuErstellenClicked(\"Auftrag\", e);\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.kundenreklamation\"),\n        execute: () => {\n          this.OnNeuErstellenClicked(\"Kundenreklamation\", e);\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.bestellung\"),\n        execute: () => {\n          this.OnNeuErstellenClicked(\"Bestellung\", e);\n        }\n      });\n\n      ctxMenu.show(e.event && e.event.target ? e.event.target : null);\n    }\n  };\n  verknuepfenCommand: ICommandData = {\n    id: \"mitVerknuepfen\",\n    title: \"mail-item.verknuepften-command-text\",\n    icon: \"link\",\n    idCategory: \"mail\",\n    sortIndex: 61,\n    isEnabledExpression: \"models.data.$m_MailImportItem.IdGeschaeftspartner\",\n    execute: async (e) => {\n      const ctxMenu = new ContextMenu();\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.angebot\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Angebot\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.auftrag\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Auftrag\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.lieferschein\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Lieferschein\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.faktura\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Faktura\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.kundenreklamation\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Kundenreklamation\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.bestellung\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Bestellung\");\n        }\n      });\n      ctxMenu.items.push({\n        text: this.localizationService.translateOnce(\"erp.eingangsrechnung\"),\n        execute: () => {\n          this.onVerknuepfenClicked(\"Eingangsrechnung\");\n        }\n      });\n\n\n      ctxMenu.show(e.event && e.event.target ? e.event.target : null);\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.models.onLoaded.register((e) => {\n      if (e.model.id != \"$m_MailImportItem\" || !e.data.MailImportItemAnhaenge.length) {\n        return;\n      }\n\n      this.setCurrentDokument(e.data.MailImportItemAnhaenge[0]);\n      this.selectCurrentDokument();\n\n      return Promise.resolve();\n    });\n\n    this._windowResizeSubscription = this.eventAggregator.subscribe(\"window:resize\", () => {\n      this.setViewerHeight();\n    });\n    this.form.onReady.register((r) => {\n      this.setViewerHeight();\n      return Promise.resolve();\n    });\n  }\n  unbind() {\n    this._windowResizeSubscription.dispose();\n  }\n\n  onGeschaeftspartnerChanged() {\n    this.form.models.data.$m_MailImportItem.IdPerson = null;\n  }\n  onAnhangClicked(e: any) {\n    this.setCurrentDokument(e.data);\n    this.selectCurrentDokument();\n  }\n  async onVerknuepfenItemClicked(idPopup: string, e: any) {\n    await this.doVerknuepfen(e.data.Id);\n    this.form[idPopup].instance.hide();\n  }\n\n  private async OnNeuErstellenClicked(entitaetName: string, event: any) {\n    const ctrlKeyPressed = event\n      && event.event\n      && event.event.ctrlKey;\n\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const idMailImportItem = this.form.models.data.$m_MailImportItem.Id;\n    const webEvent = this.getWebEvent(entitaetName, idMailImportItem);\n\n    const webEventResult = await this.webEvent.execute(webEvent, true);\n    if (!webEventResult) {\n      return;\n    }\n\n    const navigationUrl = this.getNavigationUrlFromWebEventResult(entitaetName, webEventResult);\n    if (!navigationUrl) {\n      return;\n    }\n\n    if (ctrlKeyPressed) {\n      this.locationService.openWindow(navigationUrl);\n      this.form.models.reloadAll();\n    } else {\n      this.locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  }\n  private async onVerknuepfenClicked(entitaetName: string) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    let idGrid: string;\n    let idPopup: string;\n\n    switch (entitaetName) {\n      case \"Angebot\": {\n        idGrid = \"r_angebotGrid\";\n        idPopup = \"r_angebotPopup\";\n        break;\n      }\n      case \"Auftrag\": {\n        idGrid = \"r_auftragGrid\";\n        idPopup = \"r_auftragPopup\";\n        break;\n      }\n      case \"Lieferschein\": {\n        idGrid = \"r_lieferscheinGrid\";\n        idPopup = \"r_lieferscheinPopup\";\n        break;\n      }\n      case \"Faktura\": {\n        idGrid = \"r_fakturaGrid\";\n        idPopup = \"r_fakturaPopup\";\n        break;\n      }\n      case \"Kundenreklamation\": {\n        idGrid = \"r_kundenreklamationGrid\";\n        idPopup = \"r_kundenreklamationPopup\";\n        break;\n      }\n      case \"Bestellung\": {\n        idGrid = \"r_bestellungGrid\";\n        idPopup = \"r_bestellungPopup\";\n        break;\n      }\n      case \"Eingangsrechnung\": {\n        idGrid = \"r_eingangsrechnungGrid\";\n        idPopup = \"r_eingangsrechnungPopup\";\n        break;\n      }\n      default: {\n        break;\n      }\n    }\n\n    if (!idGrid || !idPopup) {\n      return;\n    }\n\n    const grid: IdxDataGridComponent = this.form[idGrid];\n    if (grid && grid.instance) {\n      grid.instance.refresh();\n    }\n\n    this.form[idPopup].instance.show();\n  }\n\n  private downloadCurrentDokument() {\n    const grid: IdxDataGridComponent = this.form[\"r_mailImportItemAnhangGrid\"];\n\n    const selectedRows = grid.instance.getSelectedRowsData();\n\n    if (selectedRows && Array.isArray(selectedRows) && selectedRows.length > 0) {\n      for (const row of selectedRows) {\n        const url = this.file.getDownloadUrl(row.DMSLink);\n        window.open(url, \"_blank\");\n      }\n    } else {\n      const url = this.file.getDownloadUrl(this.currentDokument.DMSLink);\n      window.open(url, \"_blank\");\n    }\n  }\n  private async sendCurrentDokument() {\n    const grid: IdxDataGridComponent = this.form[\"r_mailImportItemAnhangGrid\"];\n\n    let selectedRows: any[] = grid.instance.getSelectedRowsData();\n\n    if (!selectedRows || !Array.isArray(selectedRows) || selectedRows.length == 0) {\n      if (!this.currentDokument) {\n        return;\n      }\n\n      selectedRows = [this.currentDokument];\n    }\n\n    const dmsLinkList = selectedRows\n      .map((c) => c.DMSLink)\n      .filter((c) => !!c);\n\n    if (dmsLinkList.length == 0) {\n      DevExpress.ui.notify(\n        this.localizationService.translateOnce(\"mail-item.keine-dok-zum-versenden\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n\n      return;\n    }\n\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    await this.briefService.createAndGoToBrief(\n      this.form.models.data.$m_MailImportItem.Id,\n      dmsLinkList,\n    );\n  }\n  private dokumentenartZuteilen() {\n    const grid: IdxDataGridComponent = this.form[\"r_mailImportItemAnhangGrid\"];\n\n    const selectedRows: any[] = grid.instance.getSelectedRowsData();\n\n    if (!selectedRows || !Array.isArray(selectedRows) || selectedRows.length == 0) {\n      DevExpress.ui.notify(\n        this.localizationService.translateOnce(\"mail-item.kein-dok-gewaehlt\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n        return;\n    } else if (selectedRows.length > 1) {\n      DevExpress.ui.notify(\n        this.localizationService.translateOnce(\"mail-item.ein-dok-waehlen\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n        return;\n    }\n\n    this.form.editPopups.showEx({\n      idEditPopup: \"mailImportItemAnhangEditPopup\",\n      viewScrollInfo: this.getViewScrollInfoMailImportItemAnhang(selectedRows[0]),\n      modelLoaded: (form, ev) => {\n        if (form.models.data.$m_MailImportItemAnhang) {\n          return;\n        }\n        form.models.data.$m_MailImportItemAnhang = selectedRows[0];\n      },\n      closeCallback: async (form) => {\n        this.form[\"r_mailImportItemAnhangGrid\"].instance.getDataSource().reload();\n      }\n    });\n  }\n\n  private getViewScrollInfoMailImportItemAnhang(mailImportItemAnhang): IViewScrollInfo {\n    const dataSource = this.form[\"r_mailImportItemAnhangGrid\"].instance.getDataSource();\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(mailImportItemAnhang);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n  private selectCurrentDokument() {\n    const anhangGrid: IdxDataGridComponent = this.form[\"r_mailImportItemAnhangGrid\"];\n    anhangGrid.instance.selectRows([this.currentDokument.Id], false);\n  }\n  private setCurrentDokument(dokument) {\n    this.currentDokument = dokument;\n  }\n  private getWebEvent(entitaetName: string, idMailImportItem: number) {\n    switch (entitaetName) {\n      case \"Angebot\":\n        return new OnErstelleAngebotAusMailImportItemEvent({ IdMailImportItem: idMailImportItem });\n      case \"Auftrag\":\n        return new OnErstelleAuftragAusMailImportItemEvent({ IdMailImportItem: idMailImportItem });\n      case \"Kundenreklamation\":\n        return new OnErstelleKundenreklamationAusMailImportItemEvent({ IdMailImportItem: idMailImportItem });\n      case \"Bestellung\":\n        return new OnErstelleBestellungAusMailImportItemEvent({ IdMailImportItem: idMailImportItem });\n      default:\n        return null;\n    }\n  }\n  private getNavigationUrlFromWebEventResult(entitaetName: string, webEventResult: any): string {\n    if (!webEventResult) {\n      return null;\n    }\n\n    let result = null;\n    switch (entitaetName) {\n      case \"Angebot\":\n        result = webEventResult.IdAngebot\n          ? `ERP/Verkauf/${entitaetName}/${webEventResult.IdAngebot}`\n          : null;\n        break;\n      case \"Auftrag\":\n        result = webEventResult.IdAuftrag\n          ? `ERP/Verkauf/${entitaetName}/${webEventResult.IdAuftrag}`\n          : null;\n        break;\n      case \"Kundenreklamation\":\n        result = webEventResult.IdKundenreklamation\n          ? `ERP/Verkauf/${entitaetName}/${webEventResult.IdKundenreklamation}`\n          : null;\n        break;\n      case \"Bestellung\":\n        result = webEventResult.IdBestellung\n          ? `ERP/Einkauf/${entitaetName}/${webEventResult.IdBestellung}`\n          : null;\n        break;\n    }\n\n    return result;\n  }\n  private async doVerknuepfen(id: number) {\n    const idMail = this.form.models.data.$m_MailImportItem.Id;\n\n    const webEventResult: OnVerknuepfenEntitaeten = await this.webEvent.execute(\n      new OnVerknuepfenEntitaetenEvent({\n        IdEntitaet1: idMail,\n        IdEntitaet2: id\n      }), true);\n\n    this.eventAggregator.publish(\"verknuepfte-entitaet:refresh\", {\n      id: idMail\n    });\n  }\n  private setViewerHeight() {\n    const viewer = <HTMLElement>this.form.element.querySelector(\".mail-item-viewer\");\n    if (!viewer) {\n      return;\n    }\n\n    let formContent = viewer;\n    while (formContent) {\n      if (formContent.classList.contains(\"t--form-content\")) {\n        break;\n      }\n\n      formContent = formContent.parentElement;\n    }\n\n    if (!formContent) {\n      return;\n    }\n\n    let height = formContent.clientHeight - 77 - 12;\n    if (height < 500) {\n      height = 500;\n    }\n\n    viewer.style.height = `${height}px`;\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, ICommandData, ICommand\n} from \"../../../../framework/forms/export\";\nimport { IdxPopupComponent, IdxTextBoxComponent, IdxDataGridComponent } from '../../../interfaces/export';\nimport { LocalizationService, WebEventService } from '../../../../framework/base/export';\nimport { OnNewsletterEmpfaengerImportEvent } from '../../../../framework-data/events';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\n\n@autoinject\n@transient()\nexport class NewsletterEmpfaengerListUtils {\n\n  constructor(\n    private localizationService: LocalizationService,\n    private webEventService: WebEventService,\n    private asyncService: AsyncService\n  ) {}\n\n  form: FormBase;\n\n  showImportCommand: ICommandData = {\n    id: \"showImport\",\n    icon: \"upload\",\n    idCategory: \"newsletter-empfaenger\",\n    title: \"newsletter-empfaenger.excel_import\",\n    execute: async () => {\n      this.form.models.data.$m_Import = {};\n\n      const popup: IdxPopupComponent = this.form[\"r_import\"];\n      await this.asyncService.convertToPromise(popup.instance.show());\n\n      const bez: IdxTextBoxComponent = this.form[\"r_impBezeichnung\"];\n      bez.instance.focus();\n    }\n  }\n  doImportCommand: ICommandData = {\n    id: \"doImport\",\n    icon: \"upload\",\n    idCategory: \"newsletter-empfaenger\",\n    title: \"newsletter-empfaenger.import_empfaenger\",\n    execute: async () => {\n      const data = this.form.models.data.$m_Import;\n\n      if (!data.Bezeichnung) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"newsletter-empfaenger.bezeichnung_erfassen\"), \"ERROR\", 3000);\n        return;\n      }\n      if (!data.DMSLink) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"newsletter-empfaenger.datei_erfassen\"), \"ERROR\", 3000);\n        return;\n      }\n\n      await this.webEventService.execute(new OnNewsletterEmpfaengerImportEvent({\n        Bezeichnung: data.Bezeichnung,\n        DMSLink: data.DMSLink\n      }), true);\n\n      const grid: IdxDataGridComponent = this.form[\"r_empfaenger\"];\n      grid.instance.refresh();\n\n      const popup: IdxPopupComponent = this.form[\"r_import\"];\n      await this.asyncService.convertToPromise(popup.instance.hide());\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","export * from \"./data-source-options\";\nexport * from \"./data-source-option-custom\";\nexport * from \"./data-source-option-filter\";\nexport * from \"./data-source-customization-options\";\nexport * from \"./data-source-last-load-info\";\nexport * from \"./error\";\nexport * from \"./style-class\";\nexport * from \"./style-property\";\nexport * from \"./view-scroll-info\";\nexport * from \"./localization-item\";\nexport * from \"./localization-translation-info\";\nexport * from \"./binding-observe-arguments\";\n","import {\n  autoinject,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  BindingService,\n  LocalizationService\n} from \"../../base/services/export\";\nimport {\n  ScopeContainer\n} from \"../../base/classes/export\";\nimport {\n  CommandService\n} from \"../services/command-service\";\nimport {\n  DxTemplateService\n} from \"../../dx/services/dx-template-service\";\nimport * as Toolbar from \"../elements/toolbar/export\";\nimport * as Interfaces from \"../interfaces/export\";\nimport * as toolbarButtonTemplate from \"html-loader!../templates/toolbar-button-template.xhtml\";\n\n@autoinject\nexport class ToolbarService {\n  private titleItemTemplate = \"TITEL_ITEM_TEMPLATE\";\n  private _pages = {};\n  private _categories = {};\n\n  constructor(\n    private command: CommandService,\n    private localization: LocalizationService,\n    private binding: BindingService,\n    private dxTemplate: DxTemplateService\n  ) {\n    this.addPage(\"$start\", \"toolbar.page_start\", 0);\n    this.addCategory(\"$datensatz\", \"$start\", \"toolbar.category_datensatz\", 10);\n    this.addCategory(\"$export\", \"$start\", \"toolbar.category_export\", 20);\n    this.addCategory(\"$nav\", \"$start\", \"toolbar.nav\", 0);\n    this.addPage(\"$after\", \"\", 9999);\n    this.addCategory(\"$close\", \"$after\", \"toolbar.close\", 9999);\n  }\n\n  toolbarModuleId: string = \"framework/forms/elements/ribbon-toolbar/ribbon-toolbar\";\n\n  addPage(id: string, title: string, sortIndex: number) {\n    this._pages[id] = {\n      id,\n      title,\n      sortIndex\n    };\n  }\n  addCategory(id: string, idPage: string, title: string, sortIndex: number) {\n    this._categories[id] = {\n      id,\n      idPage,\n      title,\n      sortIndex\n    }\n  }\n  createPageCategoryItemStructure(items: Toolbar.IItem[]): Toolbar.IPage[] {\n    if (!items || items.length === 0) {\n      return [];\n    }\n\n    const categories = {};\n\n    for (let item of items) {\n      let idCategory = item.idCategory || \"$datensatz\"\n      let category: Toolbar.ICategory = categories[idCategory];\n\n      if (!category) {\n        const c = this._categories[idCategory];\n\n        if (!c) {\n          throw new Error(`No category ${idCategory}`);\n        }\n\n        category = <any>{\n          id: c.id,\n          idPage: c.idPage,\n          title: this.localization.translateOnce(c.title),\n          sortIndex: c.sortIndex,\n          location: c.location,\n          items: []\n        };\n        categories[idCategory] = category;\n      }\n\n      category.items.push(item);\n    }\n\n    const result: Toolbar.IPage[] = [];\n    const pages = {};\n    for (let key in categories) {\n      const category = categories[key];\n\n      let page: Toolbar.IPage = pages[category.idPage];\n\n      if (!page) {\n        const p = this._pages[category.idPage];\n\n        if (!p) {\n          throw new Error(`No page ${category.idPage}`);\n        }\n\n        page = <any>{\n          id: p.id,\n          title: this.localization.translateOnce(p.title),\n          sortIndex: p.sortIndex,\n          categories: []\n        }\n        pages[category.idPage] = page;\n        result.push(page);\n      }\n\n      page.categories.push(category);\n    }\n\n    result.sort((a, b) => {\n      return (a.sortIndex || 0) - (b.sortIndex || 0);\n    })\n\n    for (let page of result) {\n      page.categories.sort((a, b) => {\n        return (a.sortIndex || 0) - (b.sortIndex || 0);\n      })\n\n      for (let category of page.categories) {\n        category.items.sort((a, b) => {\n          return (a.sortIndex || 0) - (b.sortIndex || 0);\n        })\n      }\n    }\n\n    return result;\n  }\n\n  createFormToolbarOptions(form: FormBase): Toolbar.IToolbarOptions {\n    const options = this.createToolbarOptions(\n      form.scopeContainer,\n      form.title,\n      form.commands.getCommands());\n\n    this.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"title\", \n      callback: (newValue) => {\n        options.title = newValue;\n      }\n    });\n\n    return options;\n  }\n  createToolbarOptions(scopeContainer: ScopeContainer, title: string, commands: Interfaces.ICommandData[], smallToolbar: boolean = false, icon: string = null): Toolbar.IToolbarOptions {\n    const options: Toolbar.IToolbarOptions = {\n      title: title,\n      icon: icon,\n      smallToolbar: smallToolbar,\n      items: [],\n      scopeContainer: scopeContainer\n    };\n\n    options.items = this.createToolbarItems(scopeContainer, commands);\n    return options;\n  }\n  createToolbarItems(scopeContainer: ScopeContainer, commands: Interfaces.ICommandData[]): Toolbar.IItem[] {\n    const items = commands\n      .map(i => this.createToolbarItem(scopeContainer, i));\n\n    return items;\n  }\n  createToolbarItem(scopeContainer: ScopeContainer, command: Interfaces.ICommandData): Toolbar.IItem {\n    command.expressionScope = scopeContainer.scope;\n\n    return command;\n  }\n}\n","export * from \"./classes/export\";\nexport * from \"./enums/export\";\nexport * from \"./event-args/export\";\nexport * from \"./interfaces/export\";\nexport * from \"./services/export\";\nexport * from \"./widget-options/export\";\nexport * from \"./widget-services/export\";\nexport * from \"./elements/export\";","import { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { BestellungService } from \"../../../services/bestellung-service\";\n\n@autoinject\n@transient()\nexport class BestellungsgruppeEditUtils {\n  constructor(\n    private _asyncService: AsyncService,\n    private _bestellungService: BestellungService,  \n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onDeleting.register(async (e) => {\n      if (await this._bestellungService.hasBestellungsgruppePositionenZugeteilt(this.form.models.data.$m_Bestellungsgruppe.Id)) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"base.sure_delete_question_gruppe\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return Promise.reject();\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n}\n","import {\n  PLATFORM\n} from \"aurelia-framework\";\n\nexport default {\n  baseUrl: \"http://localhost:5073\",\n  apiUrl: \"api\",\n  webApiUrl: \"api/data\",\n  webSocketUrl: \"api\",\n\n  loginApp: PLATFORM.moduleName(\"framework/login/login\"),\n  mainApp: PLATFORM.moduleName(\"app\"),\n\n  appId: \"Cloud.ERP\"\n}\n","export default __webpack_public_path__ + \"e5dfb4dbed5ad37d9f7d474f4b593b25.jpg\";","import { autoinject, transient } from 'aurelia-framework';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\nimport { FormBase } from '../../../../framework/forms/classes/form-base';\nimport { ICommandData } from '../../../../framework/forms/interfaces/command-data';\nimport { BelegImportTyp } from '../../../enumerations/beleg-import-typ';\nimport { IdxDataGridComponent } from '../../../interfaces/export';\nimport { EximService } from '../../../services/exim-service';\nimport { StartupService } from '../../../services/startup-service';\nimport { BelegExportService } from './../../../services/beleg-export-service';\n\n@autoinject\n@transient()\nexport class ArtikelListUtils {\n  constructor(\n    private _asyncService: AsyncService,\n    private _eximService: EximService,\n    private _belegExportService: BelegExportService,\n    private _startupService: StartupService) {}\n  \n  form: FormBase;\n  isBelegExportMandantAktiv: boolean = false;\n\n  doBelegExport: ICommandData = {\n    id: \"doBelegExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_ArtikelListUtils._startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_ArtikelListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"artikelGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Artikel, keys);\n    }\n  };\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    title: \"erp.export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"artikelGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._eximService.export(\"ArtikelExim\", keys);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Artikel);\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { IVariableOperator } from '../interfaces/variable-operator';\nimport { IVariableType } from '../interfaces/variable-type';\nimport { IStateVariable } from '../interfaces/state-variable';\nimport { IVariable } from '../interfaces/variable';\nimport { GlobalizationService, RestService, JsonService } from '../../base/export';\nimport { IVariableEditor } from '../interfaces/variable-editor';\n\n@autoinject\nexport class VariableService {\n  constructor(\n    private globalizationService: GlobalizationService,\n    private restService: RestService,\n    private jsonService: JsonService\n  ) { }\n\n  getAllOperators(): IVariableOperator[] {\n    return <IVariableOperator[]>[\n      { key: \"=\", text: \"gleich\" },\n      { key: \"contains\", text: \"enthält\" },\n      { key: \"!=\", text: \"ungleich\" },\n      { key: \">\", text: \"größer\" },\n      { key: \">=\", text: \"größer gleich\" },\n      { key: \"<\", text: \"kleiner\" },\n      { key: \"<=\", text: \"kleiner gleich\" },\n      { key: \"between\", text: \"zwischen\" },\n      { key: \"notbetween\", text: \"nicht zwischen\" },\n      { key: \"in\", text: \"einer aus\" },\n      { key: \"notin\", text: \"keiner aus\" },\n      { key: \"isnull\", text: \"leer\" },\n      { key: \"isnotnull\", text: \"nicht leer\" }\n    ]\n  }\n  getAllTypes(): IVariableType[] {\n    return <IVariableType[]>[\n      { key: \"text\", text: \"Text\" },\n      { key: \"number\", text: \"Nummer\" },\n      { key: \"date\", text: \"Datum\" },\n      { key: \"bool\", text: \"Ja/Nein\" },\n      { key: \"lookup\", text: \"Auswahl\" }\n    ]\n  }\n\n  getTextEditor(): IVariableEditor[] {\n    return [\n      { key: \"dxTextBox\", text: \"dxTextBox\" },\n      { key: \"dxRadioGroup\", text: \"dxRadioGroup\" }\n    ];\n  }\n  getDateEditor(): IVariableEditor[] {\n    return [\n      { key: \"dxDateBox\", text: \"dxDateBox\" },\n      { key: \"dxCalendar\", text: \"dxCalendar\" },\n    ];\n  }\n  getNumberEditor(): IVariableEditor[] {\n    return [\n      { key: \"dxNumberBox\", text: \"dxNumberBox\" },\n      { key: \"dxRadioGroup\", text: \"dxRadioGroup\" }\n    ];\n  }\n  getBoolEditor(): IVariableEditor[] {\n    return [\n      { key: \"dxSwitch\", text: \"dxSwitch\" },\n      { key: \"dxCheckBox\", text: \"dxCheckBox\" },\n    ];\n  }\n  \n  checkVariableValue(stateVariable: IStateVariable) {\n    if (!stateVariable) {\n      return;\n    }\n    if (!stateVariable.operator) {\n      stateVariable.value = null;\n      return;\n    }\n\n    switch (stateVariable.operator) {\n      case \"=\":\n      case \"contains\":\n      case \"!=\":\n      case \">\":\n      case \">=\":\n      case \"<\":\n      case \"<=\": {\n        if (this.hasBetweenValue(stateVariable) || this.hasInValue(stateVariable)) {\n          stateVariable.value = null;\n        }\n        return;\n      }\n      case \"between\":\n      case \"notbetween\": {\n        if (!this.hasBetweenValue(stateVariable)) {\n          stateVariable.value = {\n            value1: null,\n            value2: null\n          };\n        }\n        return;\n      }\n      case \"in\":\n      case \"notin\": {\n        if (!this.hasInValue(stateVariable)) {\n          stateVariable.value = [];\n        }\n        return;\n      }\n      case \"isnull\":\n      case \"isnotnull\": {\n        if (stateVariable.value != void (0)) {\n          stateVariable.value = null;\n        }\n        return;\n      }\n      default: {\n        throw new Error(stateVariable.operator.concat(\" nicht implementiert\"));\n      }\n    }\n  }\n  hasVariableValue(stateVariable: IStateVariable): boolean {\n    if (!stateVariable) {\n      return false;\n    }\n    if (!stateVariable.operator) {\n      return false;\n    }\n\n    switch (stateVariable.operator) {\n      case \"=\":\n      case \"contains\":\n      case \"!=\":\n      case \">\":\n      case \">=\":\n      case \"<\":\n      case \"<=\": {\n        return stateVariable.value != void (0)\n          && stateVariable.value.toString() != \"\";\n      }\n      case \"between\":\n      case \"notbetween\": {\n        return stateVariable.value\n          && typeof stateVariable.value == \"object\"\n          && stateVariable.value.value1 != void (0)\n          && stateVariable.value.value2 != void (0);\n      }\n      case \"in\":\n      case \"notin\": {\n        return stateVariable.value\n          && Array.isArray(stateVariable.value)\n          && stateVariable.value.length > 0;\n      }\n      case \"isnull\":\n      case \"isnotnull\": {\n        return true;\n      }\n      default: {\n        throw new Error(stateVariable.operator.concat(\" nicht implementiert\"));\n      }\n    }\n  }\n  async getVariableDisplayText(variable: IVariable, value: any): Promise<string> {\n    switch (variable.type) {\n      case \"text\": {\n        return value;\n      }\n      case \"bool\": {\n        return value\n          ? \"Ja\"\n          : \"Nein\";\n      }\n      case \"date\": {\n        return this.globalizationService.format(value, variable.format || \"d\");\n      }\n      case \"number\": {\n        return this.globalizationService.format(value, variable.format || \"n2\");\n      }\n      case \"lookup\": {\n        let r = await this.restService.get({\n          url: this.restService.getWebApiUrl(variable.lookupAction).concat(\"/\").concat(value),\n          getOptions: this.jsonService.parse(variable.lookupGetOptions || \"{}\")\n        });\n\n        const tokens = variable.lookupDisplayExpr.split(\".\");\n        for (let token of tokens) {\n          r = r[token];\n\n          if (!r) {\n            break;\n          }\n        }\n\n        return r;\n      }\n      default: {\n        throw new Error();\n      }\n    }\n  }\n  getVariableValue(stateVariable: IStateVariable, valueKey: string): any {\n    if (!stateVariable) {\n      return;\n    }\n    if (!stateVariable.operator) {\n      return;\n    }\n    if (stateVariable.value == void (0)) {\n      return;\n    }\n\n    switch (stateVariable.operator) {\n      case \"=\":\n      case \"contains\":\n      case \"!=\":\n      case \">\":\n      case \">=\":\n      case \"<\":\n      case \"<=\": {\n        return stateVariable.value;\n      }\n      case \"between\":\n      case \"notbetween\": {\n        switch (valueKey) {\n          case \"value\": {\n            return stateVariable.value.value1;\n          }\n          case \"value2\": {\n            return stateVariable.value.value2;\n          }\n          default: {\n            throw new Error();\n          }\n        }\n      }\n      case \"in\":\n      case \"notin\": {\n        return stateVariable.value;\n      }\n      case \"isnull\":\n      case \"isnotnull\": {\n        return null;\n      }\n      default: {\n        throw new Error(stateVariable.operator.concat(\" nicht implementiert\"));\n      }\n    }\n  }\n  setVariableValue(stateVariable: IStateVariable, valueKey: string, value: any) {\n    if (!stateVariable) {\n      return;\n    }\n    if (!stateVariable.operator) {\n      return;\n    }\n\n    switch (stateVariable.operator) {\n      case \"=\":\n      case \"contains\":\n      case \"!=\":\n      case \">\":\n      case \">=\":\n      case \"<\":\n      case \"<=\": {\n        stateVariable.value = value;\n        return;\n      }\n      case \"between\":\n      case \"notbetween\": {\n        switch (valueKey) {\n          case \"value\": {\n            stateVariable.value.value1 = value;\n            return;\n          }\n          case \"value2\": {\n            stateVariable.value.value2 = value;\n            return;\n          }\n          default: {\n            throw new Error();\n          }\n        }\n      }\n      case \"in\":\n      case \"notin\": {\n        if (stateVariable.value.indexOf(value) >= 0) {\n          return;\n        }\n\n        stateVariable.value.push(value);\n        return;\n      }\n      case \"isnull\":\n      case \"isnotnull\": {\n        return;\n      }\n      default: {\n        throw new Error(stateVariable.operator.concat(\" nicht implementiert\"));\n      }\n    }\n  }\n\n  private hasBetweenValue(stateVariable: IStateVariable) {\n    return stateVariable.value\n      && typeof stateVariable.value == \"object\"\n      && \"value1\" in stateVariable.value\n      && \"value2\" in stateVariable.value;\n  }\n  private hasInValue(stateVariable: IStateVariable) {\n    return stateVariable.value\n      && Array.isArray(stateVariable.value);\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\n\nimport {\n  CustomEditPopup\n} from \"../../framework/forms/elements/custom-edit-popup/custom-edit-popup\";\n\n@autoinject\nexport class CustomEditPopupService {\n  constructor() { }\n\n  artikelEditPopup: CustomEditPopup;\n  aufgabeEditPopup: CustomEditPopup;\n  benachrichtigungEditPopup: CustomEditPopup;\n  briefEditPopup: CustomEditPopup;\n  benutzerEinstellungenEditPopup: CustomEditPopup;\n  geschaeftspartnerEditPopup: CustomEditPopup;\n  mandantWechselnPopup: CustomEditPopup;\n  notizEditPopup: CustomEditPopup;\n  personEditPopup: CustomEditPopup;\n  projektEditPopup: CustomEditPopup;\n  prodAuftragEditPopup: CustomEditPopup;\n  impressumEditPopup: CustomEditPopup;\n}\n","import {\n  autoinject,\n  singleton\n} from \"aurelia-framework\";\n\n@autoinject\n@singleton(true)\nexport class CommandServerData {\n  constructor() {}\n\n  add(id: string, data: any) {\n    this[id] = data;\n  }\n\n  dispose() {\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  OnEvalEinkaufArtikeldaten,\n  OnEvalEinkaufArtikeldatenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase, ModelUtilsService\n} from \"../../../../framework/forms/export\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\n\n@autoinject\n@transient()\nexport class EingangsrechnungspositionEditUtils {\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    private _modelUtilsService: ModelUtilsService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Eingangsrechnungsposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n        if (r.hasDataReloaded) {\n            return Promise.resolve();\n        }\n\n        if (r.editPopup.id == \"eingangsrechungspositionEditPopup\") {\n            this.form.models.reloadAll();\n        }\n\n        return Promise.resolve();\n    });\n  }\n\n  async idArtikelChanged(e) {\n    if (!this.form.models.data.$m_Eingangsrechnungsposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Eingangsrechnungsposition);\n    }\n\n    this.doEvalEinkaufArtikeldaten(e.detail.value);\n  }\n\n  private async doEvalEinkaufArtikeldaten(idArtikel) {\n    if (!idArtikel) {\n      return;\n    }\n\n    const webEvent = new OnEvalEinkaufArtikeldatenEvent({\n      IdEingangsrechnung: this.form.models.data.$m_Eingangsrechnung.Id,\n      IdArtikel: idArtikel,\n      IdLieferant: this.form.models.data.$m_Eingangsrechnung.IdLieferant\n    });\n\n    const result: OnEvalEinkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    this.form.models.data.$m_Eingangsrechnungsposition.IdEinheit = result.IdArtikelEinheit;\n    this.form.models.data.$m_Eingangsrechnungsposition.LieferantArtikelNr = result.LieferantArtikelNr;\n    this.form.models.data.$m_Eingangsrechnungsposition.LieferantArtikelbezeichnung = result.LieferantArtikelbezeichnung;\n\n    if (result.Steuersatz != void (0)) {\n      this.form.models.data.$m_Eingangsrechnungsposition.Steuersatz = result.Steuersatz;\n    }\n  }\n}\n","import { autoinject, view } from \"aurelia-framework\";\nimport { ElementService } from \"./element-service\";\nimport { IViewModel } from '../interfaces/view-model';\n\n@autoinject\nexport class ChartService {\n  constructor(\n    private elementService: ElementService\n  ) { }\n\n  createOptions(viewModel: IViewModel, idDataSource: string, options: DevExpress.viz.dxChartOptions) {\n    const result: any = Object.assign({\n    }, options, <DevExpress.viz.dxChartOptions>{\n        dataSource: []\n      });\n\n    this.elementService.prepareContentReady(result);\n    this.elementService.addOnInitialized(result, (e) => {\n      viewModel.registerDataSourceChanged(idDataSource, (idDataSource, data) => {\n        e.component.option(\"dataSource\", data);\n      }, false);\n\n      const data = viewModel.dataSource[idDataSource] || [];\n      e.component.option(\"dataSource\", data);\n    });\n\n    return result;\n  }\n}","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject, TaskQueue } from \"aurelia-framework\";\nimport * as mousetrap from \"mousetrap\";\nimport \"mousetrap/plugins/global-bind/mousetrap-global-bind\";\nimport { WindowService } from './window-service';\n\n@autoinject\nexport class ShortcutService {\n  constructor(\n    private _eventAggregator: EventAggregator,\n    private _taskQueue: TaskQueue,\n    private _windowService: WindowService) { }\n\n  bindShortcut(sequence: string, idCommand: string | { (): void }, bindGlobal: boolean = true) {\n    if (bindGlobal) {\n      mousetrap.bindGlobal(sequence, e => this.fire(idCommand));\n    } else {\n      mousetrap.bind(sequence, e => this.fire(idCommand));\n    }\n  }\n\n  private fire(idCommand: string | { (): void }): boolean {\n    this._windowService.blurCurrentElement();\n\n    this._taskQueue.queueTask(() => {\n      if (typeof idCommand === \"function\") {\n        idCommand();\n      } else {\n        this._eventAggregator.publish(\"shortcut:execute\", {\n          idCommand: idCommand\n        });\n      }\n    });\n\n    return false;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  IStyleClass,\n  IStyleProperty\n} from \"../interfaces/export\";\n\n@autoinject\nexport class StyleService {\n  constructor() { }\n\n  addStyles(key: string, styleClasses: IStyleClass[]) {\n    this.removeStyleTag(key);\n\n    const styleTag = document.createElement('style');\n    styleTag.type = \"text/css\";\n    styleTag.id = key;\n\n    styleTag.appendChild(\n      document.createTextNode(this.getCssClasses(styleClasses))\n    );\n\n    document.head.appendChild(styleTag);\n  }\n  removeStyleTag(key: string) {\n    const styleTag = document.getElementById(key);\n\n    if (styleTag){\n      styleTag.parentElement.removeChild(styleTag);\n    }\n  }\n\n  private getCssClasses(styleClasses: IStyleClass[]): string {\n    return styleClasses\n    .map(c => `\\n${c.name} {\\n ${this.getCssClass(c.properties)} }\\n`)\n    .join(\"\");\n  }\n  private getCssClass(properties: IStyleProperty[]): string {\n    return properties\n      .map(c => `${c.propertyName}: ${c.value};\\n`)\n      .join(\"\")\n  }\n}","import { WebEventService } from \"./../../../../framework/base/services/web-event-service\";\nimport { OnErstellenIntrastatSync, OnErstellenIntrastatSyncEvent } from \"./../../../../framework-data/events\";\nimport { LocalizationService } from \"./../../../../framework/base/services/localization-service\";\nimport { FormBase } from \"./../../../../framework/forms/classes/form-base\";\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDateBoxComponent, IdxPopupComponent, IdxSelectBoxComponent } from \"../../../interfaces/dx-components\";\nimport * as moment from \"moment\";\n\n@autoinject\n@transient()\nexport class IntrastatSyncListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _localizationService: LocalizationService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n\n  showSynchronsierenPopupCommand: ICommandData = {\n    id: \"showSynchronsierenPopup\",\n    idCategory: \"fibu-sync-job\",\n    title: \"intrastat-sync.do_synchronisieren\",\n    sortIndex: 10,\n    icon: \"refresh\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_intrastatSyncPopup\"];\n\n      popup.instance.show();\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_firma\"];\n      if (selectBox) {\n        const dataSource = selectBox.instance.getDataSource();\n        await dataSource.reload();\n\n        if (dataSource.items().length > 0) {\n          selectBox.setOption({\n            value: dataSource.items()[0].Id\n          });\n        }\n      }\n\n      const selectBoxTyp: IdxSelectBoxComponent = this.form[\"r_intrastatSyncTyp\"];\n      if (selectBoxTyp) {\n        const dataSource = selectBoxTyp.instance.getDataSource();\n        dataSource.reload();\n\n        selectBoxTyp.setOption({\n          value: 0\n        });\n      }\n      const dateVonBox: IdxDateBoxComponent = this.form[\"r_datumVon\"];\n      dateVonBox.setOption({\n        value: moment()\n          .subtract(1, \"month\")\n          .startOf(\"month\")\n          .toDate()\n      });\n\n      const dateBisBox: IdxDateBoxComponent = this.form[\"r_datumBis\"];\n      dateBisBox.setOption({\n        value: moment()\n          .subtract(1, \"month\")\n          .endOf(\"month\")\n          .startOf(\"day\")\n          .toDate()\n      });\n    }\n  };\n\n  doSynchronisierenCommand: ICommandData = {\n    id: \"doSynchronisieren\",\n    title: \"intrastat-sync.do_synchronisieren\",\n    icon: \"refresh\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_intrastatSyncPopup\"];\n      const dateBoxVon: IdxDateBoxComponent = this.form[\"r_datumVon\"];\n      const dateBoxBis: IdxDateBoxComponent = this.form[\"r_datumBis\"];\n      const firmaSelectBox: IdxSelectBoxComponent = this.form[\"r_firma\"];\n\n      const idFirma = firmaSelectBox.instance.option(\"value\");\n      if (!idFirma) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"fibu-sync-job.firma_auswaehlen\"), \"error\", this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const selectBoxTyp: IdxSelectBoxComponent = this.form[\"r_intrastatSyncTyp\"];\n\n      const webEvent = new OnErstellenIntrastatSyncEvent({\n        Typ: selectBoxTyp.instance.option(\"value\"),\n        DatumVon: dateBoxVon.instance.option(\"value\"),\n        DatumBis: dateBoxBis.instance.option(\"value\"),\n        IdFirma: idFirma\n      });\n\n      const webEventResult: OnErstellenIntrastatSync = await this._webEventService.execute(webEvent, true);\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","import { RestService } from \"../../framework/base/services/export\";\nimport { autoinject } from \"../../framework/forms/form-export\";\n\n@autoinject\nexport class BestellungService {\n  constructor(\n    private _restService: RestService) { }\n\n  async getBestellungPosByIdBestellung(idBestellung: number) {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Einkauf/Bestellungsposition\"),\n      getOptions: {\n        where: [[\"IdBestellung\", idBestellung]]\n      }\n    });\n\n    if (!r) {\n      return null;\n    }\n\n    return r;\n  }\n\n  async getBestellungListByIdAuftrag(idAuftrag) {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Einkauf/Bestellung\"),\n      getOptions: {\n        where: [\"IdAuftrag\", idAuftrag]\n      }\n    });\n    if (!r) {\n      return null;\n    }\n\n    return r;\n  }\n\n  async getIdBestellungspositionByIdAuftragsposition(idAuftragsposition) {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Einkauf/Bestellungsposition\"),\n      getOptions: {\n        where: [\"IdAuftragsposition\", idAuftragsposition],\n        columns: [\"Id\"]\n      }\n    });\n    if (!r || r.length === 0) {\n      return null;\n    }\n\n    return r[0][\"Id\"];\n  }\n\n  async getMengeVerpEHByIdAuftragsposition(idAufragsposition){\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Einkauf/Bestellungsposition\"),\n      getOptions: {\n        where: [\"IdAuftragsposition\", idAufragsposition]\n      }\n    });\n\n    if (!r || r.length === 0) {\n      return 0;\n    }\n\n    const sum = r.reduce((p, c) => {\n      return p + c.MengeVerpEH;\n    }, 0);\n\n    return sum;\n  }\n\n  async hasBestellungsgruppePositionenZugeteilt(idBestellungsgruppe){\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Einkauf/Bestellungsposition`),\n      getOptions: {\n        where: [\"IdBestellungsgruppe\", idBestellungsgruppe]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n}\n","import {\n  autoinject,\n  transient\n} from 'aurelia-framework';\nimport {\n  FormBase\n} from '../../../../framework/forms/export';\nimport {\n  StartupService\n} from './../../../services/export';\n\n@autoinject\n@transient()\nexport class KonditionsfeldEditUtils {\n  constructor(\n    private startup: StartupService\n  ) {}\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","export enum BelegImportTyp {\n  Eingangsrechnung = 0,\n  EingangsrechnungDokument = 1,\n  QRDokument = 2,\n  Dokument = 3,\n  Angebot = 4,\n  Auftrag = 5,\n  Bestellung = 6,\n  Artikel = 7,\n  Faktura = 9\n}\n","export {\n    autoinject\n} from \"aurelia-framework\";\nexport {\n    FormBase\n} from \"./classes/form-base\";\nexport {\n    FormBaseImport\n} from \"./classes/form-base-import\";","export enum ZahlungTyp {\n  Eingang = 0,\n  Ausgang = 1\n}\n","import { autoinject } from 'aurelia-framework';\n\n@autoinject\nexport class AsyncService {\n  constructor() {}\n\n  convertToPromise<T>(p: Promise<T> & JQueryPromise<T>): Promise<T> {\n    return new Promise((resolve, reject) => {\n      if (!p.then) {\n        return resolve(p);\n      }\n\n      p.then(r => {\n        resolve(r);\n      }).catch(e => {\n        reject(e);\n      });\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  ProdAuftragSearchResult\n} from \"../elements/prod-auftrag-search-result/prod-auftrag-search-result\";\nimport {\n  ISearchOptions\n} from \"../interfaces/export\";\n\n@autoinject\nexport class ProdAuftragSearchService {\n  constructor() { }\n\n  prodAuftragSearchResult: ProdAuftragSearchResult;\n\n  show(callbackSuccess: { (idProjekt): void }, callbackCancel: { (): void }, options?: ISearchOptions) {\n    this.prodAuftragSearchResult.showPopup(callbackSuccess, callbackCancel, options)\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { RestService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IArbeitszeitLohnexportErstellen } from \"../../../elements/arbeitszeit-lohnexport-erstellen/arbeitszeit-lohnexport-erstellen\";\n\n@autoinject\n@transient()\nexport class ArbeitszeitLohnexportListUtils {\n  constructor(\n    private _restService: RestService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n\n  showLohnexportErstellenPopupCommand: ICommandData = {\n    id: \"showLohnexportErstellenPopup\",\n    idCategory: \"arbeitszeit\",\n    title: \"lohnexport.lohnexport-erstellen\",\n    sortIndex: 10,\n    icon: \"plus\",\n    execute: async () => {\n      const lohnexportPopup = this.form[\"r_lohnexportPopup\"];\n      lohnexportPopup.show({\n        callback: async (arbeitszeitLohnexportErstellen: IArbeitszeitLohnexportErstellen) => {\n          const r = await this._restService.post({\n            url: this._restService.getApiUrl(`ERP/ArbeitszeitLohnexport/lohnexport`),\n            data: {\n              Id: arbeitszeitLohnexportErstellen.Id,\n              Stichtag: arbeitszeitLohnexportErstellen.Stichtag,\n            }\n          });\n\n          this.form.models.reloadAll();\n        }\n      });\n    }\n  }\n}\n","import {\n  autoinject,\n  singleton\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  BindingService,\n  CustomEvent,\n  RestService,\n  ScopeContainer,\n  PermissionService\n} from \"../../base/export\";\nimport {\n  IModelLoadRequiredEventArgs,\n  IModelLoadedEventArgs,\n  IModelLoadedInterceptorEventArgs,\n  IModelSavedEventArgs,\n  IModelDeletedEventArgs\n} from \"../event-args/export\";\nimport {\n  ModelEventService,\n  ModelUtilsService\n} from \"../services/export\";\nimport {\n  FormBase\n} from \"./form-base\";\nimport {\n  DataSourceService\n} from \"../../base/services/data-source-service\";\nimport * as Interfaces from \"../interfaces/export\";\nimport { ObjectService } from '../../base/services/object-service';\n\n@autoinject\n@singleton(true)\nexport class Models {\n  private form: FormBase;\n  private info: any;\n\n  constructor(\n    private rest: RestService,\n    private dataSource: DataSourceService,\n    private binding: BindingService,\n    private modelEvent: ModelEventService,\n    private eventAggregator: EventAggregator,\n    private modelUtils: ModelUtilsService,\n    private objectService: ObjectService,\n    private permissionService: PermissionService,\n    public onLoadRequired: CustomEvent<IModelLoadRequiredEventArgs>,\n    public onLoadedInterceptor: CustomEvent<IModelLoadedInterceptorEventArgs>,\n    public onLoaded: CustomEvent<IModelLoadedEventArgs>,\n    public onSaved: CustomEvent<IModelSavedEventArgs>,\n    public onDeleted: CustomEvent<IModelDeletedEventArgs>\n  ) {\n    this.onLoadRequired.waitTimeout = 10;\n\n    this.data = {};\n    this.info = {};\n\n    this.onLoadRequired.register((args) => {\n      if (!this.form.isBound) {\n        return Promise.resolve();\n      }\n\n      if (args.model.key || args.model.autoLoad) {\n        const key = this.form.binding.evaluate(this.form.scope, args.model.key);\n        return this.loadModel(args.model, key);\n      }\n\n      return Promise.resolve();\n    });\n  }\n\n  data: any;\n\n  modelWithKeyId: Interfaces.IModel;\n\n  addInfo(model: Interfaces.IModel) {\n    model.keyProperty = model.keyProperty || \"Id\";\n\n    this.info[model.id] = model;\n\n    this.eventAggregator.publish(\"model:added\", {\n      form: this.form,\n      model: model\n    });\n\n    this.addObservers(model);\n\n    if (this.isModelWithKeyId(model)) {\n      this.modelWithKeyId = model;\n    }\n  }\n  allowNew(scopeContainer: ScopeContainer, model: Interfaces.IModel): boolean {\n    if (model.allowNew == void (0)) {\n      return true;\n    }\n\n    return !!this.binding.evaluate(scopeContainer.scope, model.allowNew);\n  }\n  allowSave(scopeContainer: ScopeContainer, model: Interfaces.IModel): boolean {\n    if (this.isModelWithKeyId(model) && model.modificationInfoEnabled) {\n      const canSave = this.data[model.id]\n        && this.data[model.id][\"CanSave\"];\n\n      if (!canSave) {\n        return false;\n      }\n    }\n\n    if (model.allowSave == void (0)) {\n      return true;\n    }\n\n    return !!this.binding.evaluate(scopeContainer.scope, model.allowSave);\n  }\n  allowDelete(scopeContainer: ScopeContainer, model: Interfaces.IModel): boolean {\n    if (this.isModelWithKeyId(model) && model.modificationInfoEnabled) {\n      const canDelete = this.data[model.id]\n        && this.data[model.id][\"CanDelete\"];\n\n      if (!canDelete) {\n        return false;\n      }\n    }\n\n    if (model.allowDelete == void (0)) {\n      return true;\n    }\n\n    return !!this.binding.evaluate(scopeContainer.scope, model.allowDelete);\n  }\n  callOnLoaded(model: Interfaces.IModel, data: any) {\n    this.onLoaded.fire({\n      model: model,\n      data: data\n    });\n    this.modelEvent.onLoaded.fire({\n      model: model,\n      data: data\n    });\n  }\n  canNew(model: Interfaces.IModel) {\n    if (!model.webApiAction) {\n      return true;\n    }\n\n    return this.permissionService.canWebApiNew(model.webApiAction, this.form.moduleId);\n  }\n  canSave(model: Interfaces.IModel) {\n    if (!model.webApiAction) {\n      return true;\n    }\n\n    return this.permissionService.canWebApiModify(model.webApiAction, this.form.moduleId);\n  }\n  canDelete(model: Interfaces.IModel) {\n    if (!model.webApiAction) {\n      return true;\n    }\n\n    return this.permissionService.canWebApiDelete(model.webApiAction, this.form.moduleId);\n  }\n  createNewModelData(model: Interfaces.IModel): any {\n    const data = {};\n\n    data[model.keyProperty] = 0;\n\n    return data;\n  }\n  getInfo(id: string, throwErrorIfMissing: boolean = true): Interfaces.IModel {\n    const model = this.info[id];\n    if (!model && throwErrorIfMissing) {\n      throw new Error();\n    }\n\n    return model;\n  }\n  getModels(): Interfaces.IModel[] {\n    const arr: Interfaces.IModel[] = [];\n\n    for (let i in this.info) {\n      arr.push(this.info[i]);\n    }\n\n    return arr;\n  }\n  getModelWithKeyId(): Interfaces.IModel {\n    return this\n      .getModels()\n      .find(m => this.isModelWithKeyId(m));\n  };\n  hasChangedData(): boolean {\n    for (let model of this.getModels()) {\n      if (!model.postOnSave) {\n        continue;\n      }\n\n      if (!this.data[model.id]) {\n        continue;\n      }\n\n      if (!this.data[model.id][model.keyProperty]) {\n        return true;\n      }\n      if (!this.modelUtils.isDirty(this.data[model.id])) {\n        continue;\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n  isModelWithKeyId(model: Interfaces.IModel): boolean {\n    return model.key === \"variables.data.$id\";\n  }\n  loadModel(model: Interfaces.IModel, keyValue: any): Promise<any> {\n    const getOptions = this.dataSource.createGetOptions(this.form.scopeContainer, model);\n\n    if (keyValue == void (0)) {\n      this.data[model.id] = null;\n\n      this.callOnLoaded(model, null);\n    } else {\n      return this.rest.get({\n        url: this.rest.getWebApiUrl(`${model.webApiAction}/${keyValue}`),\n        getOptions,\n        moduleId: this.form.moduleId,\n        increaseLoadingCount: true\n      }).then(r => {\n        if (this.modelWithKeyId == model) {\n          this.transferValuesFromRouteInfo(r);\n        }\n\n        this.onLoadedInterceptor.fire({\n          model: model,\n          data: r\n        });\n\n        this.data[model.id] = r;\n\n        this.callOnLoaded(model, r);\n      });\n    }\n  }\n  loadModelWithKeyId(): Promise<any> {\n    const model = this.modelWithKeyId;\n    if (!model) {\n      return Promise.resolve();\n    }\n\n    const key = this.form.variables.data.$id;\n    return this.loadModel(model, key);\n  }\n  async reloadAll(): Promise<any> {\n    const loadInfo = {};\n\n    for (let m of this.getModels()) {\n      loadInfo[m.id] = false;\n    }\n\n    const loadDependent = async (model: Interfaces.IModel) => {\n      const prefix = `models.data.${model.id}`;\n      const next: Interfaces.IModel[] = [];\n\n      for (let m of this.getModels()) {\n        if (!m.key || !m.key.startsWith(prefix)) {\n          continue;\n        }\n        if (loadInfo[m.id]) {\n          continue;\n        }\n\n        await this.onLoadRequired.fire({\n          model: m\n        }, 0);\n\n        loadInfo[m.id] = true;\n        next.push(m);\n      }\n\n      for (let n of next) {\n        await loadDependent(n);\n      }\n    }\n\n    if (this.modelWithKeyId) {\n      await this.onLoadRequired.fire({\n        model: this.modelWithKeyId\n      }, 0);\n\n      loadInfo[this.modelWithKeyId.id] = true;\n      loadDependent(this.modelWithKeyId);\n    }\n\n    for (let m of this.getModels()) {\n      if (loadInfo[m.id]) {\n        continue;\n      }\n\n      await this.onLoadRequired.fire({\n        model: m\n      }, 0);\n\n      loadInfo[m.id] = true;\n    }\n  }\n  registerForm(form: FormBase) {\n    if (this.form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this.form = form;\n  }\n  setDataChanged(model: Interfaces.IModel) {\n    if (!this.data[model.id]) {\n      return;\n    }\n\n    this.modelUtils.setDirty(this.data[model.id]);\n  }\n\n  save(): Promise<any> {\n    const promiseArr = this.getModels()\n      .filter(m => m.postOnSave && this.data[m.id])\n      .map(m => {\n\n        let method = \"post\";\n\n        if (!this.data[m.id][m.keyProperty]) {\n          method = \"put\";\n        }\n\n        const promise = this.rest[method]({\n          url: this.rest.getWebApiUrl(m.webApiAction),\n          moduleId: this.form.moduleId,\n          data: this.data[m.id],\n          increaseLoadingCount: true,\n          getOptions: this.dataSource.createGetOptions(this.form.scopeContainer, m)\n        }).then(r => {\n          this.data[m.id] = r;\n\n          if (m.key && m.key === \"variables.data.$id\") {\n            this.form.variables.data.$id = r[m.keyProperty];\n          }\n\n          this.onSaved.fire({\n            model: m,\n            data: r\n          });\n          this.modelEvent.onSaved.fire({\n            model: m,\n            data: r\n          });\n\n          this.callOnLoaded(m, r);\n        });\n\n        return promise;\n      });\n\n    return Promise\n      .all(promiseArr)\n      .then(() => {\n        return this.form.nestedForms.getNestedForms().map(f => f.models.save());\n      });\n  }\n  delete(): Promise<any> {\n    const promiseArr = this.getModels()\n      .filter(m => m.postOnSave && this.data[m.id] && this.data[m.id][m.keyProperty])\n      .map(m => {\n        const data = this.data[m.id];\n\n        const promise = this.rest.delete({\n          url: this.rest.getWebApiUrl(m.webApiAction),\n          id: data[m.keyProperty],\n          moduleId: this.form.moduleId,\n          increaseLoadingCount: true\n        }).then(() => {\n          this.modelUtils.clearDirty(data);\n\n          this.onDeleted.fire({\n            model: m,\n            data: data\n          });\n          this.modelEvent.onDeleted.fire({\n            model: m,\n            data: data\n          });\n\n          return Promise.resolve();\n        });\n\n        return promise;\n      });\n\n    return Promise.all(promiseArr)\n      .then(() => {\n        return this.form.nestedForms.getNestedForms().map(f => f.models.delete());\n      });\n  }\n\n  dispose() {\n    this.onDeleted.dispose();\n    this.onLoaded.dispose();\n    this.onLoadedInterceptor.dispose();\n    this.onLoadRequired.dispose();\n    this.onSaved.dispose();\n  }\n\n  private addObservers(model: Interfaces.IModel) {\n    this.addObserversDetail(model, model.key, true);\n\n    this.dataSource.addObservers(this.form.scopeContainer, model, () => {\n      this.onLoadRequired.fire({\n        model\n      });\n    });\n  }\n  private addObserversDetail(model: Interfaces.IModel, expression: string, checkKeyProperty: boolean) {\n    if (expression == void (0)) {\n      return;\n    }\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: expression, \n      callback: (newValue, oldValue) => {\n        this.onLoadRequired.fire({\n          model\n        });\n      }\n    });\n  }\n  private transferValuesFromRouteInfo(data: any) {\n    if (!this.form.viewItemInfo) {\n      return;\n    }\n    if (!this.form.viewItemInfo.routeInfo) {\n      return;\n    }\n    if (data[this.modelWithKeyId.keyProperty]) {\n      return;\n    }\n\n    const setValues = this.form.viewItemInfo.routeInfo.setValuesOnModelWithKeyIdLoaded;\n    if (!setValues) {\n      return;\n    }\n\n    for (let key in setValues) {\n      this.objectService.setValue(data, key, setValues[key]);\n    }\n  }\n}\n","import {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  OnOffice365AuthTokenAbfrage,\n  OnOffice365AuthTokenAbfrageEvent,\n  OnOffice365TokenAnfordern,\n  OnOffice365TokenAnfordernEvent,\n  OnVersionHasUpdate,\n  OnVersionHasUpdateEvent\n} from \"../../framework-data/events\";\nimport {\n  LocalizationService,\n  RestService,\n  WebEventService\n} from \"../../framework/base/export\";\nimport {\n  HeaderService\n} from \"../../framework/default-ui/services/export\";\nimport {\n  ICommandData\n} from \"../../framework/forms/export\";\nimport {\n  ArbeitszeitStempelnCommand\n} from \"../elements/arbeitszeit-stempeln-command/arbeitszeit-stempeln-command\";\nimport {\n  AufgabeCommand\n} from \"../elements/aufgabe-command/aufgabe-command\";\nimport {\n  BenachrichtigungCommand\n} from \"../elements/benachrichtigung-command/benachrichtigung-command\";\nimport {\n  PasswortAendern\n} from \"../elements/passwort-aendern/passwort-aendern\";\nimport {\n  ProjektTaetigkeitBuchungCommand\n} from \"../elements/projekt-taetigkeit-buchung-command/projekt-taetigkeit-buchung-command\";\nimport {\n  ZugriffHistorieCommand\n} from \"../elements/zugriff-historie-command/zugriff-historie-command\";\nimport {\n  HeaderCommandEvent, NotificationTyp\n} from \"../enumerations/export\";\nimport {\n  LocationService\n} from \"./../../framework/base/services/location-service\";\nimport {\n  MailCommand\n} from \"./../elements/mail-command/mail-command\";\nimport {\n  CustomEditPopupService\n} from \"./custom-edit-popup-service\";\nimport {\n  ModuleService\n} from \"./module-service\";\nimport {\n  StartupService\n} from \"./startup-service\";\n\n@autoinject\nexport class HeaderCommandService {\n  constructor(\n    private _eventAggregator: EventAggregator,\n    private _headerService: HeaderService,\n    private _localizationService: LocalizationService,\n    private _customEditPopupService: CustomEditPopupService,\n    private _startupService: StartupService,\n    private _locationService: LocationService,\n    private _moduleService: ModuleService,\n    private _restService: RestService,\n    private _webEventService: WebEventService) { }\n\n  passwortAendern: PasswortAendern;\n  aufgabeCommand: ICommandData = {\n    id: \"aufgabe\",\n    title: this._localizationService.translateOnce(\"form-command.aufgabe-command-icon-text\"),\n    icon: \"tasks\",\n    badgeColor: \"#C1392D\",\n    execute: (options) => {\n      this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, this.aufgabeCommand);\n\n      this.aufgabe.showPopover(this.getCommandTarget(options.event), null);\n    }\n  };\n  aufgabe: AufgabeCommand;\n\n  benachrichtigungCommand: ICommandData = {\n    id: \"benachrichtigung\",\n    title: this._localizationService.translateOnce(\"form-command.nachrichten-command-icon-text\"),\n    icon: \"bell-o\",\n    badgeColor: \"#C1392D\",\n    execute: (options) => {\n      this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, this.benachrichtigungCommand);\n\n      this.benachrichtigung.showPopover(this.getCommandTarget(options.event));\n    }\n  };\n  benachrichtigung: BenachrichtigungCommand;\n\n  mailCommand: ICommandData = {\n    id: \"mail\",\n    title: this._localizationService.translateOnce(\"form-command.mail-command-icon-text\"),\n    icon: \"envelope-o\",\n    badgeColor: \"#17A086\",\n    execute: (options) => {\n      this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, this.mailCommand);\n\n      this.mail.showPopover(this.getCommandTarget(options.event));\n    }\n  };\n  mail: MailCommand;\n\n  arbeitszeitStempelnCommand: ICommandData = {\n    id: \"arbeitszeitStempeln\",\n    title: this._localizationService.translateOnce(\"form-command.arbeitszeit\"),\n    icon: \"clock-o\",\n    badgeColor: \"#17A086\",\n    execute: (options) => {\n      this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, this.arbeitszeitStempelnCommand);\n      this.arbeitszeitStempeln.showPopover(this.getCommandTarget(options.event));\n    }\n  };\n  arbeitszeitStempeln: ArbeitszeitStempelnCommand;\n\n  projektTaetigkeitBuchungCommand: ICommandData = {\n    id: \"projektTaetigkeitBuchung\",\n    title: this._localizationService.translateOnce(\"form-command.projekt-taetigkeit-buchung\"),\n    icon: \"calendar-check-o \",\n    badgeColor: \"#17A086\",\n    execute: (options) => {\n      this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, this.projektTaetigkeitBuchungCommand);\n\n      this.projektTaetigkeitBuchung.showPopover(this.getCommandTarget(options.event));\n    }\n  };\n  projektTaetigkeitBuchung: ProjektTaetigkeitBuchungCommand;\n\n  zugriffHistorieCommand: ICommandData = {\n    id: \"zugriffHistorie\",\n    title: this._localizationService.translateOnce(\"form-command.zugriff-historie-command-icon-text\"),\n    icon: \"stack-overflow\",\n    execute: (options) => {\n      this.zugriffHistorie.showPopover(this.getCommandTarget(options.event));\n    }\n  };\n  zugriffHistorie: ZugriffHistorieCommand;\n\n  office365AuthCommand: ICommandData = {\n    id: \"office365Auth\",\n    title: this._localizationService.translateOnce(\"erp_header.office365_auth\"),\n    icon: \"lock\",\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.office365AuthCommand,\n        async () => {\n          const r: OnOffice365TokenAnfordern = await this._webEventService.execute(new OnOffice365TokenAnfordernEvent({}));\n          window.open(r.AuthUrl, \"_blank\");\n        });\n    }\n  };\n\n  benutzereinstellungenAendernCommand: ICommandData = {\n    id: \"benutzereinstellungenAendern\",\n    title: this._localizationService.translateOnce(\"erp_header.benutzereinstellungen_aendern\"),\n    execute: () => {\n      if (!this._startupService.startupInfo || !this._startupService.startupInfo.Benutzer) {\n        return;\n      }\n\n      this.onAvatarCommandClicked(\n        this.benutzereinstellungenAendernCommand,\n        () => {\n          const benutzer = this._startupService.startupInfo.Benutzer;\n          this._customEditPopupService.benutzerEinstellungenEditPopup.show({\n            mappings: { \"$id\": benutzer.Id }\n          });\n        });\n    }\n  };\n  mandantWechselnCommand: ICommandData = {\n    id: \"mandantWechseln\",\n    title: this._localizationService.translateOnce(\"erp_header.mandant_wechseln\"),\n    execute: () => {\n      if (!this._startupService.startupInfo || !this._startupService.startupInfo.Benutzer) {\n        return;\n      }\n\n      this.onAvatarCommandClicked(\n        this.benutzereinstellungenAendernCommand,\n        () => {\n          const mandant = this._startupService.startupInfo.Mandant;\n          this._customEditPopupService.mandantWechselnPopup.show({\n            mappings: { \"$id\": mandant.Id }\n          });\n        });\n    }\n  };\n  impressumCommand: ICommandData = {\n    id: \"tipInfo\",\n    title: this._localizationService.translateOnce(\"erp_header.impressum\"),\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.impressumCommand,\n        () => {\n          this._customEditPopupService.impressumEditPopup.show({\n            mappings: {}\n          });\n        });\n    }\n  };\n  passwortAendernCommand: ICommandData = {\n    id: \"passwortAendern\",\n    title: this._localizationService.translateOnce(\"erp_header.passwort_aendern\"),\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.passwortAendernCommand,\n        () => {\n          this.passwortAendern.passwortAendernPopup.instance.show();\n        });\n    }\n  };\n  versionsinfoCommand: ICommandData = {\n    id: \"versionsinfo\",\n    title: this._localizationService.translateOnce(\"erp_header.versionsinfo\"),\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.versionsinfoCommand,\n        () => {\n          this._locationService.goTo({\n            url: \"ERP/Ticket/Version\"\n          });\n        });\n    }\n  };\n  supportCenterCommand: ICommandData = {\n    id: \"supportCenter\",\n    title: this._localizationService.translateOnce(\"erp_header.support_center\"),\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.supportCenterCommand,\n        () => {\n          this._locationService.goTo({\n            url: \"ERP/Ticket/Ticket\"\n          });\n        });\n    }\n  };\n  hewNewVersionCommand: ICommandData = {\n    id: \"hasNewVersionCommand\",\n    title: this._localizationService.translateOnce(\"erp_header.neue_version\"),\n    isVisible: false,\n    icon: \"circle-o\",\n    className: \"t--header-command-has-new-version\",\n    execute: () => {\n      this.onAvatarCommandClicked(\n        this.hewNewVersionCommand,\n        () => {\n          this._locationService.goTo({\n            url: \"ERP/Ticket/Version\"\n          });\n        });\n    }\n  };\n\n  initialize() {\n    if (!this.existsCommand(this.office365AuthCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.office365AuthCommand);\n    }\n\n    this.updateHasOffice365();\n\n    this.projektTaetigkeitBuchungCommand.isVisible = this._startupService.startupInfo.Lizenz.HasProjektzeiterfassung\n      && this._moduleService.hasBerechtigungProjektzeit();\n\n    if (!this.existsCommand(this.projektTaetigkeitBuchungCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.projektTaetigkeitBuchungCommand);\n    }\n\n    if (!this.existsCommand(this.arbeitszeitStempelnCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.arbeitszeitStempelnCommand);\n    }\n    this.hasArbeitszeitStempeln();\n\n    if (!this.existsCommand(this.zugriffHistorieCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.zugriffHistorieCommand);\n    }\n    this.mailCommand.isVisible = this._startupService.startupInfo.Lizenz.HasMailImport;\n    if (!this.existsCommand(this.mailCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.mailCommand);\n    }\n    this.aufgabeCommand.isVisible = !this._startupService.startupInfo.Benutzer.IsCloudAdministrator;\n    if (!this.existsCommand(this.aufgabeCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.aufgabeCommand);\n    }\n    this.benachrichtigungCommand.isVisible = !this._startupService.startupInfo.Benutzer.IsCloudAdministrator;\n    if (!this.existsCommand(this.benachrichtigungCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.benachrichtigungCommand);\n    }\n    if (!this.existsCommand(this.hewNewVersionCommand, this._headerService.commands)) {\n      this._headerService.commands.push(this.hewNewVersionCommand);\n    }\n\n    this.mandantWechselnCommand.isVisible = !this._startupService.startupInfo.Benutzer.IsCloudAdministrator\n      && this._startupService.startupInfo.Benutzer.CanMandantWechseln;\n    if (!this.existsCommand(this.mandantWechselnCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.mandantWechselnCommand);\n    }\n    this.updateCanMandantWechseln();\n\n    if (!this.existsCommand(this.benutzereinstellungenAendernCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.benutzereinstellungenAendernCommand);\n    }\n    if (!this.existsCommand(this.passwortAendernCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.passwortAendernCommand);\n    }\n    if (!this.existsCommand(this.supportCenterCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.supportCenterCommand);\n    }\n    if (!this.existsCommand(this.versionsinfoCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.versionsinfoCommand);\n    }\n    if (!this.existsCommand(this.impressumCommand, this._headerService.avatarCommands)) {\n      this._headerService.avatarCommands.push(this.impressumCommand);\n    }\n\n    this.updateHasNewVersion();\n  }\n\n  getCommandTarget(event: Event): Element {\n    let element: any = event.target;\n\n    while (!element.hasAttribute(\"click.delegate\")) {\n      element = element.parentElement;\n    }\n\n    return element;\n  }\n\n  private onAvatarCommandClicked(command: ICommandData, execute: { (): void }) {\n    this._headerService.hideAvatarPopoper();\n    this._eventAggregator.publish(HeaderCommandEvent.onShowingPopover, command);\n    execute();\n  }\n  private existsCommand(command: ICommandData, commandList: ICommandData[]) {\n    return commandList.some((cmd) => cmd.id == command.id);\n  }\n  private async updateHasNewVersion() {\n    this._eventAggregator.subscribe(\"ticket-version:read\", () => {\n      this.hewNewVersionCommand.isVisible = false;\n    });\n\n    const r: OnVersionHasUpdate = await this._webEventService.execute(new OnVersionHasUpdateEvent({\n      HasNewVersion: false\n    }));\n\n    if (r && r.HasNewVersion) {\n      this.hewNewVersionCommand.isVisible = true;\n    }\n  }\n  private async updateHasOffice365() {\n    this._eventAggregator.subscribe(NotificationTyp.office365TokenChanged, () => {\n      this.office365AuthCommand.isVisible = false;\n    });\n\n    if (!this._startupService.startupInfo.Benutzer.HasOffice365MailServer) {\n      this.office365AuthCommand.isVisible = false;\n      return;\n    }\n\n    const r: OnOffice365AuthTokenAbfrage = await this._webEventService.execute(new OnOffice365AuthTokenAbfrageEvent({\n      HasAuthToken: false\n    }));\n\n    this.office365AuthCommand.isVisible = r && !r.HasAuthToken\n      ? true\n      : false;\n  }\n\n  private async updateCanMandantWechseln() {\n    this._eventAggregator.subscribe(NotificationTyp.benutzerCanMandantWechselnChanged, (e) => {\n      this.mandantWechselnCommand.isVisible = e.IsVisible;\n    });\n  }\n\n  private async hasArbeitszeitStempeln() {\n    const hasBerechtigungArbeitszeit = this._startupService.startupInfo.Lizenz.HasArbeitszeit\n      && this._moduleService.hasBerechtigungArbeitszeit();\n\n      if (!hasBerechtigungArbeitszeit) {\n        this.arbeitszeitStempelnCommand.isVisible = false;\n        return;\n      }\n\n      const r = await this._restService.post({\n        url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/benutzer`),\n        data:{\n          Stichtag: new Date,\n          IdBenutzer: this._startupService.startupInfo.Benutzer.Id\n        }, \n        errorCallback: () => {\n          this.arbeitszeitStempelnCommand.isVisible = false;\n          return true;\n        }\n      });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  SimpleWidgetCreatorService\n} from \"./simple-widget-creator-service\";\nimport {\n  DataGridWidgetCreatorService\n} from \"./data-grid-widget-creator-service\";\nimport {\n  ListViewWidgetCreatorService\n} from \"./list-view-widget-creator-service\";\nimport {\n  ListWidgetCreatorService\n} from \"./list-widget-creator-service\";\nimport * as WidgetOptions from \"../widget-options/export\";\n\n@autoinject\nexport class WidgetCreatorService {\n  constructor(\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private dataGridWidgetCreator: DataGridWidgetCreatorService,\n    private listWidgetCreator: ListWidgetCreatorService,\n    private listViewWidgetCreator: ListViewWidgetCreatorService\n  ) { }\n\n  addAccordion(form: FormBase, options: WidgetOptions.IAccordionOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addAccordion(form, options);\n    });\n  }\n  addCalendar(form: FormBase, options: WidgetOptions.ICalendarOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addCalendar(form, options);\n    });\n  }\n  addCheckBox(form: FormBase, options: WidgetOptions.ICheckBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addCheckBox(form, options);\n    });\n  }\n  addColorBox(form: FormBase, options: WidgetOptions.IColorBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addColorBox(form, options);\n    });\n  }\n  addCommand(form: FormBase, options: WidgetOptions.ICommandElementOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addCommand(form, options);\n    });\n  }\n  addDateBox(form: FormBase, options: WidgetOptions.IDateBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addDateBox(form, options)\n    });\n  }\n  addDataGrid(form: FormBase, options: WidgetOptions.IDataGridOptions) {\n    form.callOnBind(() => {\n      this.dataGridWidgetCreator.addDataGrid(form, options);\n    });\n  }\n  addFileUploaderWithViewer(form: FormBase, options: WidgetOptions.IFileUploaderWithViewerOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addFileUploaderWithViewer(form, options);\n    });\n  }\n  addHtmlEditor(form: FormBase, options: WidgetOptions.IHtmlEditorOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addHtmlEditor(form, options);\n    });\n  }\n  addInclude(form: FormBase, options: WidgetOptions.IIncludeOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addInclude(form, options);\n    });\n  }\n  addList(form: FormBase, options: WidgetOptions.IListOptions) {\n    form.callOnBind(() => {\n      this.listWidgetCreator.addList(form, options);\n    });\n  }\n  addListView(form: FormBase, options: WidgetOptions.IListViewOptions) {\n    form.callOnBind(() => {\n      this.listViewWidgetCreator.addListView(form, options);\n    });\n  }\n  addLookup(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addLookup(form, options);\n    });\n  }\n  addNumberBox(form: FormBase, options: WidgetOptions.INumberBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addNumberBox(form, options);\n    });\n  }\n  addPopover(form: FormBase, options: WidgetOptions.IPopoverOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addPopover(form, options);\n    });\n  }\n  addPopup(form: FormBase, options: WidgetOptions.IPopupOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addPopup(form, options);\n    });\n  }\n  addRadioGroup(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addRadioGroup(form, options);\n    });\n  }\n  addTab(form: FormBase, options: WidgetOptions.ITabOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addTab(form, options);\n    });\n  }\n  addSelectBox(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addSelectBox(form, options);\n    });\n  }\n  addTagBox(form: FormBase, options: WidgetOptions.ITagBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addTagBox(form, options);\n    });\n  }\n  addTextBox(form: FormBase, options: WidgetOptions.ITextBoxOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addTextBox(form, options);\n    });\n  }\n  addTextArea(form: FormBase, options: WidgetOptions.ITextAreaOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addTextArea(form, options);\n    });\n  }\n  addValidationGroup(form: FormBase, options: WidgetOptions.IValidationGroupOptions) {\n    form.callOnBind(() => {\n      this.simpleWidgetCreator.addValidationGroup(form, options);\n    });\n  }\n}\n","export default __webpack_public_path__ + \"52057bb006205815c1f63021b0a90131.jpg\";","import {\n  autoinject\n} from \"aurelia-framework\";\n\nimport * as enumItems from \"../../../framework-data/enum-items.json\";\n\n@autoinject\nexport class EnumItemService {\n\n  constructor() {}\n\n  getDisplayText(typeName: string, key: string): string {\n    const type = enumItems[typeName];\n    if (!type) {\n      return \"n/a\";\n    }\n\n    const item = type[key];\n    if (item == void(0)) {\n      return \"n/a\";\n    }\n\n    return item;\n  }\n}","import { BrowserService, LocalizationService } from '../../base/export';\nimport { TaskQueue, autoinject } from 'aurelia-framework';\nimport * as DxLoader from \"../../dx/dx-loader\";\n\n@autoinject\nexport class DialogConfirmService {\n  constructor(\n    private browserService: BrowserService,\n    private taskQueue: TaskQueue,\n    private localizationService: LocalizationService\n  ) { }\n\n  show(options: IDialogConfirmOptions): Promise<any> {\n    let returnTrueFalse = false;\n    \n    if (!options.buttons || options.buttons.length == 0) {\n      options.buttons = [{\n        id: \"yes\",\n        text: this.localizationService.translateOnce(\"base.yes\")\n      }, {\n        id: \"no\",\n        text: this.localizationService.translateOnce(\"base.no\")\n      }];\n\n      returnTrueFalse = true;\n    }\n\n    return new Promise((resolve, reject) => {\n      if (this.browserService.isMobile) {\n        const actionSheet = document.createElement(\"div\");\n        document.body.appendChild(actionSheet);\n\n        const instance: DevExpress.ui.dxActionSheet = DxLoader.createInstance(\"dxActionSheet\", actionSheet, <DevExpress.ui.dxActionSheetOptions>{\n          title: options.message,\n          showCancelButton: false,\n          onOptionChanged: (e) => {\n            if (e.name == \"visible\" && !e.value) {\n              this.taskQueue.queueTask(() => {\n                e.component.dispose();\n                document.body.removeChild(actionSheet);\n              });\n            }\n          },\n          dataSource: options.buttons.map(button => {\n            return {\n              text: button.text,\n              onClick: () => {\n                if (button.onClick) {\n                  button.onClick();\n                }\n\n                if (returnTrueFalse && button.id == \"yes\") {\n                  resolve(true);\n                } else if (returnTrueFalse && button.id == \"no\") {\n                  resolve(false);\n                } else {\n                  resolve(button.id);\n                }\n              }\n            };\n          })\n        }).show();\n      } else {\n        DevExpress.ui.dialog.custom({\n          messageHtml: options.message,\n          title: options.title,\n          buttons: options.buttons.map(button => {\n            return {\n              text: button.text,\n              onClick: () => {\n                if (button.onClick) {\n                  button.onClick();\n                }\n\n                if (returnTrueFalse && button.id == \"yes\") {\n                  resolve(true);\n                } else if (returnTrueFalse && button.id == \"no\") {\n                  resolve(false);\n                } else {\n                  resolve(button.id);\n                }\n              }\n            }\n          })\n        }).show();\n      }\n    });\n  }\n}\n\nexport interface IDialogConfirmOptions {\n  title: string;\n  message: string;\n  buttons?: IDialogConfirmButton[];\n}\nexport interface IDialogConfirmButton {\n  id: string;\n  text: string;\n  onClick?: { (): void };\n}\n","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { OnAuftragAddLieferscheinpositionEvent, OnAuftragBestaetigt, OnAuftragBestaetigtEvent, OnAuftragGewichtAktualisieren, OnAuftragGewichtAktualisierenEvent, OnAuftragKondAktualisieren, OnAuftragKondAktualisierenEvent, OnAuftragPositionenSortierenEvent, OnAuftragRecalcLieferdatumEvent, OnAuftragReservieren, OnAuftragReservierenEvent, OnAuftragVorauskasseEvent, OnAuftragspositionenInNeuenAuftragUebernehmen, OnAuftragspositionenInNeuenAuftragUebernehmenEvent, OnBestellungIntercompanyErstellen, OnBestellungIntercompanyErstellenEvent, OnBestellungStreckengeschaeftErstellen, OnBestellungStreckengeschaeftErstellenEvent, OnDeleteIdAuftragspositionListEvent, OnErstelleLieferscheinAusAuftrag, OnErstelleLieferscheinAusAuftragEvent, OnEvalLieferRechnungsort, OnEvalLieferRechnungsortEvent, OnImportAngebotspositionenInAuftrag, OnImportAngebotspositionenInAuftragEvent, OnKopierenRequest, OnKopierenRequestEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { ContextMenu, FormBase, ICommandData, ModelUtilsService } from \"../../../../framework/forms/export\";\nimport { PopupInfoService } from \"../../../../framework/forms/services/popup-info-service\";\nimport { Geschaeftspartner } from \"../../../elements/geschaeftspartner/geschaeftspartner\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent, IdxDateBoxComponent } from \"../../../interfaces/export\";\nimport { BelegExportService } from \"../../../services/beleg-export-service\";\nimport { BestellungService } from \"../../../services/bestellung-service\";\nimport { AuftragService, DynFelderDataService, DynFelderService, FilialeService, FirmaService, GeschaeftspartnerSearchService, GeschaeftspartnerService, KalkulationRefreshService, LagerService, LieferscheinService, StartupService, ValidationExService } from \"../../../services/export\";\nimport { PersonService } from \"../../../services/person-service\";\nimport { RestService } from \"./../../../../framework/base/services/rest-service\";\nimport { DynFeldLogikTyp } from \"../../../enumerations/dyn-feld-logik-typ\";\n\n@autoinject\n@transient()\nexport class AuftragEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _infobarZuletztArtikelAddSubscription: Subscription;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startupService: StartupService,\n    private _auftragService: AuftragService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _bestellungService: BestellungService,\n    private _dynFelderService: DynFelderService,\n    private _eventAggregator: EventAggregator,\n    private _filialeService: FilialeService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerSearchService: GeschaeftspartnerSearchService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _lagerService: LagerService,\n    private _lieferscheinService: LieferscheinService,\n    private _localizationService: LocalizationService,\n    private _locationService: LocationService,\n    private _popupInfoService: PopupInfoService,\n    private _personService: PersonService,\n    private _modelUtilsService: ModelUtilsService,\n    private _restService: RestService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  hasStreckengeschaeftBestellung: boolean;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 999,\n    isVisibleExpression: \"functions.$f_AuftragEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_AuftragEditUtils.isBelegExportMandantAktiv && models.data.$m_Auftrag.Id > 0 && !models.data.$m_Auftrag.IsIcAuftrag\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Auftrag.Id;\n      this._belegExportService.export(BelegImportTyp.Auftrag, [id]);\n    }\n  };\n  showImportAngebotspositionenPopupCommand: ICommandData = {\n    id: \"showImportAngebotspositionenPopup\",\n    icon: \"plus\",\n    idCategory: \"auftrag\",\n    sortIndex: 0,\n    title: \"auftrag.angebotspos_importieren\",\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n    execute: async () => {\n      const validationResult = await this.form.saveIfDirty();\n      if (!validationResult.isValid) {\n        return;\n      }\n\n      const angebotspositionenGrid: IdxDataGridComponent = this.form[\"r_angebotspositionenGrid\"];\n      if (angebotspositionenGrid && angebotspositionenGrid.instance) {\n        await this._asyncService.convertToPromise(angebotspositionenGrid.instance.deselectAll());\n        angebotspositionenGrid.instance.refresh();\n      }\n\n      this.form[\"r_angebotspositionenPopup\"].instance.show();\n    }\n  };\n  importAngebotspositionenCommand: ICommandData = {\n    id: \"importAngebotspositionen\",\n    title: \"auftrag.mark_pos_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionenGrid\"];\n\n      const webEvent = new OnImportAngebotspositionenInAuftragEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n        IdAngebotspositionList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportAngebotspositionenInAuftrag = await this._webEventService.execute(webEvent, true);\n\n      this.form[\"r_angebotspositionenPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  };\n  bestaetigenCommand: ICommandData = {\n    id: \"bestaetigen\",\n    idCategory: \"auftrag\",\n    title: \"\",\n    icon: \"\",\n    sortIndex: 10,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const args: OnAuftragBestaetigt = {\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n        IsBestaetigt: false\n      };\n\n      if (!this.form.models.data.$m_Auftrag.IsBestaetigt) {\n        args.IsBestaetigt = true;\n      }\n\n      const webEventResult: OnAuftragBestaetigt = await this._webEventService.execute(new OnAuftragBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n  reservierenCommand: ICommandData = {\n    id: \"reservieren\",\n    idCategory: \"reservierung\",\n    icon: \"plus-square\",\n    title: \"auftrag.reservieren\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.IsBestaetigt == true\",\n    execute: () => {\n      return this.doReservieren(true);\n    }\n  };\n  reservierungEntfernenCommand: ICommandData = {\n    id: \"reservierungEntfernen\",\n    idCategory: \"reservierung\",\n    icon: \"minus-square\",\n    title: \"auftrag.reservierung_entfernen\",\n    sortIndex: 1,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.IsBestaetigt == true\",\n    execute: () => {\n      return this.doReservieren(false);\n    }\n  };\n  showLieferscheinErstellenCommand: ICommandData = {\n    id: \"doLieferscheinErstellen\",\n    idCategory: \"auftrag\",\n    icon: \"plus-circle\",\n    title: \"auftrag.lieferschein_erstellen\",\n    sortIndex: 999,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0\",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Auftrag.TypeName,\n        this.form.models.data.$m_Auftrag.Id,\n        \"LIEFERSCHEIN_ERSTELLEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      const lieferscheinGrid: IdxDataGridComponent = this.form[\"r_lieferscheinGrid\"];\n      if (lieferscheinGrid && lieferscheinGrid.instance) {\n        lieferscheinGrid.instance.refresh();\n      }\n\n      this._lieferscheinService.canAuftragMerge(this.form.models.data.$m_Auftrag)\n        .then((r) => {\n          if (r) {\n            this.form[\"r_lieferscheinErstellenPopup\"].instance.show();\n          } else {\n            this.doInLieferscheinUebernehmen(false, ctrlKeyPressed);\n          }\n        });\n    }\n  };\n  bestellungErstellenCommand: ICommandData = {\n    id: \"doBestellungErstellen\",\n    idCategory: \"auftrag\",\n    icon: \"plus-circle\",\n    title: \"auftrag.bestellung_erstellen\",\n    sortIndex: 999,\n    isEnabledExpression: \"!functions.$f_AuftragEditUtils.hasStreckengeschaeftBestellung\",\n    isVisibleExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0 && models.data.$m_Auftrag.IsStreckengeschaeft\",\n    execute: async (e: any) => {\n      const webEvent = new OnBestellungStreckengeschaeftErstellenEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id\n      });\n\n      const webEventResult: OnBestellungStreckengeschaeftErstellen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdBestellung) {\n        return;\n      }\n\n      this.hasStreckengeschaeftBestellung = true;\n      const navigationUrl = `ERP/Einkauf/Bestellung/${webEventResult.IdBestellung}`;\n\n      this._locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  };\n  icBestellungErstellenCommand: ICommandData = {\n    id: \"doIcBestellungErstellen\",\n    idCategory: \"auftrag\",\n    icon: \"plus-circle\",\n    title: \"auftrag.ic_ablauf_ausloesen\",\n    sortIndex: 999,\n    isEnabledExpression: \"!models.data.$m_Auftrag.HasIntercompanyBestellung\",\n    isVisibleExpression: \"functions.$f_AuftragEditUtils.startupService.startupInfo.Lizenz.HasIntercompany && models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0 && models.data.$m_Auftrag.IsIntercompany\",\n    execute: async (e: any) => {\n      const webEvent = new OnBestellungIntercompanyErstellenEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id\n      });\n\n      const webEventResult: OnBestellungIntercompanyErstellen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdBestellung) {\n        return;\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  zuMarkiertemLieferscheinHinzufuegenCommand: ICommandData = {\n    id: \"zuMarkiertemLieferscheinHinzufuegen\",\n    title: \"auftrag.zu_mark_lieferschein_hinzufuegen\",\n    execute: async () => {\n      await this.doInLieferscheinUebernehmen(true);\n    }\n  };\n  neuenLieferscheinErstellenCommand: ICommandData = {\n    id: \"neuenLieferscheinErstellen\",\n    title: \"auftrag.neuen_lieferschein_erstellen\",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      await this.doInLieferscheinUebernehmen(false, ctrlKeyPressed);\n    }\n  };\n  refreshGewichtCommand: ICommandData = {\n    id: \"refreshGewichte\",\n    idCategory: \"gewicht\",\n    title: \"auftrag.gewicht_aktualisieren\",\n    icon: \"cubes\",\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0\",\n    sortIndex: 10,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const onAuftragGewichtAktualisierenEvent = new OnAuftragGewichtAktualisierenEvent({\n        IdAuftrag: this.form.models.data[\"$m_Auftrag\"].Id\n      });\n\n      const webEventResult: OnAuftragGewichtAktualisieren = await this._webEventService.execute(\n        onAuftragGewichtAktualisierenEvent,\n        true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  neueKonditionenLaden: ICommandData = {\n    id: \"neueKonditionenLaden\",\n    idCategory: \"konditionen\",\n    icon: \"refresh\",\n    title: \"auftrag.konditionen_laden\",\n    sortIndex: 1,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const args: OnAuftragKondAktualisieren = {\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n        AllePositionen: selectedKeys.length === 0,\n        IdAuftragPosList: selectedKeys\n      };\n\n      await this._webEventService.execute(new OnAuftragKondAktualisierenEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n  auftragKopieErstellenCommand: ICommandData = {\n    id: \"auftragKopieErstellen\",\n    idCategory: \"split\",\n    icon: \"plus-circle\",\n    title: \"auftrag.auftrag_erstellen\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0 && models.data.$m_Auftrag.IsStreckengeschaeft == false && !models.data.$m_Auftrag.IsIcAuftrag\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnAuftragspositionenInNeuenAuftragUebernehmenEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n        IdAuftragPosList: selectedKeys\n      });\n\n      const webEventResult: OnAuftragspositionenInNeuenAuftragUebernehmen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdAuftrag) {\n        return;\n      }\n\n      this._locationService.goTo({\n        url: `ERP/Verkauf/Auftrag/${webEventResult.IdAuftragKopie}`,\n        clearStack: false\n      });\n\n      this.form.models.reloadAll();\n    }\n  };\n  positionenSortierenCommand: ICommandData = {\n    id: \"positionenSortieren\",\n    idCategory: \"positionen\",\n    icon: \"sort-alpha-asc\",\n    title: \"erp.positionen-sortieren\",\n    sortIndex: 10,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && models.data.$m_Auftrag.Id > 0 && !models.data.$m_Auftrag.IsIcAuftrag\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const sort = async (typ) => {\n        const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n        await this._webEventService.execute(new OnAuftragPositionenSortierenEvent({\n          IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n          Typ: typ\n        }), true);\n\n        grid.instance.refresh();\n      };\n\n      const contextMenu = new ContextMenu();\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelnr\"),\n        execute: () => {\n          sort(0);\n        }\n      }, {\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelbezeichnung\"),\n        execute: () => {\n          sort(1);\n        }\n      });\n\n      contextMenu.show(e.event.target);\n    }\n  };\n  vorauskasseCommand: ICommandData = {\n    id: \"vorauskasseCommand\",\n    icon: \"plus\",\n    title: \"auftrag.vorauskasse\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnAuftragVorauskasseEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n  recalcLieferdatumCommand: ICommandData = {\n    id: \"recalcLieferdatumCommand\",\n    icon: \"calculator\",\n    idCategory: \"artikel_bestellvorschlag\",\n    title: \"auftrag.recalc-lieferdatum\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Auftrag.Id && models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n    isVisible: this.startupService.startupInfo.Mandant.IsBerechnungLieferdatumAktiv,\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnAuftragRecalcLieferdatumEvent({\n        IdAuftrag: this.form.models.data.$m_Auftrag.Id\n      }), true);\n\n      this.form.models.reloadAll();\n\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"auftrag.lieferdatum-neu-berechnet\"),\n        \"success\",\n        this.NOTIFY_TIMEOUT\n      );\n    }\n  };\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n      const auftragPosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (auftragPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"auftrag.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const auftragsposition of auftragPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          auftragsposition.TypeName,\n          auftragsposition.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const auftragsposition of auftragPosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: auftragsposition.Id,\n          CustomData: { \"PosNrUeberschreiben\": true }\n        }), true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Auftrag.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n      const auftragPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (auftragPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"auftrag.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (auftragPosGridRowData.some(c => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"auftrag.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const auftragsposition of auftragPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          auftragsposition.TypeName,\n          auftragsposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = auftragPosGridRowData.map(c => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdAuftragspositionListEvent({\n        IdAuftragspositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this._infobarZuletztArtikelAddSubscription = this._eventAggregator.subscribe(\"infobar:zuletzt-verkaufte-artikel:addArtikel\", (e) => {\n      if (this._popupInfoService.isPopupOpen()) {\n        return;\n      }\n      if (!this.form.isCurrentForm) {\n        return;\n      }\n\n      this.addLieferscheinposition(e);\n    });\n\n    form.focusFirstEnabledEditor = () => {\n      const kunde = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_kunde'] .dx-searchbox input\");\n      if (!kunde) {\n        return;\n      }\n\n      kunde.focus();\n    };\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Auftrag\") {\n        return;\n      }\n\n      if (this.form.models.data.$m_Auftrag.IsBestaetigt) {\n        this.bestaetigenCommand.title = \"auftrag.nicht_bestaetigen\";\n        this.bestaetigenCommand.icon = \"star\";\n      } else {\n        this.bestaetigenCommand.title = \"auftrag.bestaetigen\";\n        this.bestaetigenCommand.icon = \"star-o\";\n      }\n\n      this.hasStreckengeschaeftBestellungBereitsErstellt();\n\n      this.updateLieferdatumFarbe(r.data);\n      this.updateBerechnLieferdatumFarbe(r.data);\n      this.updateBerechnLieferdatumButtons(r.data);\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Auftrag);\n\n      return Promise.resolve();\n    });\n    form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        if (this.startupService.startupInfo.Lizenz.HasIntercompany && !this.form.models.data.$m_Auftrag.IsIcAuftrag) {\n          const dynFeldIntercompany = this.dynFelderData.dynFeldList\n            .filter(c => c.LogikTyp == DynFeldLogikTyp.Intercompany)[0] || null;\n\n          if (dynFeldIntercompany == null) {\n            return Promise.resolve();\n          }\n\n          const dynFeldEintragIntercompany = this.form.models.data.$m_Auftrag.DynamischesFeldContainer.DynamischesFeldEintraege\n            .filter(c => c.IdDynamischesFeld == dynFeldIntercompany.Id)[0] || null;\n\n            if (!dynFeldEintragIntercompany) {\n              return Promise.resolve();\n            }\n\n          if (dynFeldEintragIntercompany.WertNummer == 0 && this.form.models.data.$m_Auftrag.HasIntercompanyBestellung) {\n            const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n              this._localizationService.translateOnce(\"auftrag.sure_intercompany\"),\n              this._localizationService.translateOnce(\"base.question\")));\n\n            if (!doExecute) {\n              return Promise.reject();\n            }\n            return Promise.resolve();\n          }\n        }\n      }\n      return Promise.resolve();\n    });\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_AuftragspositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Auftrag\",\n      idArtPropertyName: \"IdAuftragsart\",\n      idVorgEntitaetPropertyName: \"IdKunde\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Auftrag\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"auftragspositionEditPopup\", \"auftragsgruppeEditPopup\"]\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"auftragspositionEditPopup\") {\n        form[\"r_auftragsgruppeGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"auftragsgruppeEditPopup\") {\n        form[\"r_auftragspositionGrid\"].instance.refresh();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Auftrag\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Auftrag\"];\n          if (model) {\n            model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Auftrag\",\n                bindTo: \"IdLieferfiliale\"\n              },\n              value: model.IdLieferfiliale\n            });\n          }\n        }\n\n        if (args.binding.bindTo === \"IdLieferfiliale\") {\n          const model = form.models.data[\"$m_Auftrag\"];\n          if (model) {\n            model.IdLieferlager = await this._lagerService.getIdLagerVorbelegung(args.value);\n\n            const idWaehrung = await this._filialeService.getWaehrungIdOfFiliale(args.value);\n            if (idWaehrung != null) {\n              model.IdWaehrung = idWaehrung;\n            } else {\n              model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Auftrag.IdFirma);\n            }\n          }\n        }\n\n        if (args.binding.bindTo === \"IdAuftragsart\") {\n          const data = this.form.models.data.$m_Auftrag;\n          if (!data) {\n            return;\n          }\n\n          data.Lieferdatum = await this._auftragService.getLieferdatum(\n            data.IdAuftragsart,\n            data.Lieferdatum);\n        }\n      }\n    });\n\n    this.form.callOnBind(() => {\n      if (!this.startupService.startupInfo.Mandant.IsBerechnungLieferdatumAktiv) {\n        const posGridOptions: DevExpress.ui.dxDataGridOptions = this.form[\"r_auftragspositionGridOptions\"];\n\n        const berechnLieferdatumIndex = posGridOptions.columns.findIndex((c: DevExpress.ui.dxDataGridColumn) => c.dataField == \"BerechnetLieferdatum\");\n        if (berechnLieferdatumIndex >= 0) {\n          posGridOptions.columns.splice(berechnLieferdatumIndex, 1);\n        }\n      }\n    });\n  }\n  unbind() {\n    if (this._infobarZuletztArtikelAddSubscription) {\n      this._infobarZuletztArtikelAddSubscription.dispose();\n      this._infobarZuletztArtikelAddSubscription = null;\n    }\n  }\n  async doReservieren(doReservieren: boolean) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n    const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n    const args: OnAuftragReservieren = {\n      IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n      DoReservieren: doReservieren,\n      AllePositionen: selectedKeys.length === 0,\n      IdAuftragPosList: selectedKeys\n    };\n\n    const webEventResult: OnAuftragReservieren = await this._webEventService.execute(new OnAuftragReservierenEvent(args), true);\n    return this.form.models.reloadAll();\n  }\n\n  async doInLieferscheinUebernehmen(mergeMitLieferschein: boolean, openInNewWindow: boolean = false) {\n    const selectedAuftragspositionKeys: number[] = this.getSelectedAuftragspositionen();\n\n    let idMergeMitLieferschein = null;\n\n    if (mergeMitLieferschein) {\n      idMergeMitLieferschein = this.getSelectedLieferschein();\n\n      if (!idMergeMitLieferschein) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"auftrag.kein_lieferschein_ausgewaehlt\"), \"error\", this.NOTIFY_TIMEOUT);\n        return;\n      }\n    }\n\n    const webEvent = new OnErstelleLieferscheinAusAuftragEvent({\n      IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n      UebernehmeAllePositionen: selectedAuftragspositionKeys.length === 0,\n      IdAuftragPosList: selectedAuftragspositionKeys,\n      IdMergeMitLieferschein: mergeMitLieferschein ? idMergeMitLieferschein : null\n    });\n\n    this.form[\"r_lieferscheinErstellenPopup\"].instance.hide();\n\n    const webEventResult: OnErstelleLieferscheinAusAuftrag = await this._webEventService.execute(webEvent, true);\n    if (!webEventResult || !webEventResult.IdLieferschein) {\n      return;\n    }\n\n    const navigationUrl = `ERP/Verkauf/Lieferschein/${webEventResult.IdLieferschein}`;\n\n    if (openInNewWindow) {\n      this._locationService.openWindow(navigationUrl);\n      this.form.models.reloadAll();\n    } else {\n      this._locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  }\n  async addLieferscheinposition(item) {\n    const validationResult = await this.form.saveIfDirty();\n    if (!validationResult.isValid) {\n      return;\n    }\n\n    let args = new OnAuftragAddLieferscheinpositionEvent({\n      IdAuftrag: this.form.models.data.$m_Auftrag.Id,\n      IdLieferscheinposition: item.idLieferscheinposition\n    });\n\n    args = await this._webEventService.execute(args, true);\n    item.isHandled = true;\n\n    this.form.models.reloadAll();\n  }\n\n  onMengeReserviertCellPrepared(e): void {\n    if (e.rowType != \"data\" || this.form.models.data.$m_Auftrag.IsBestaetigt == false || e.data.Status.Typ === 1) {\n      return;\n    }\n\n    const rowData = e.data;\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = rowData.MengeReserviertVerpEH < rowData.MengeOffenVerpEH\n      ? \"#C1392D\"\n      : (rowData.HasLagerfuehrung ? \"#2DCC70\" : \"#566473\");\n  }\n  onLieferdatumValueChanged() {\n    this.updateLieferdatumFarbe(null);\n  }\n  onBerechnLieferdatumCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.HasFehlendeBeschaffungsperiode) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = \"#D35400\";\n    cell.style.color = \"white\";\n  }\n  async onKundeChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    const onEvalLieferRechnungsortEvent = new OnEvalLieferRechnungsortEvent({ IdKunde: e.detail.value });\n    const onEvalLieferRechnungsortData: OnEvalLieferRechnungsort = await this._webEventService.execute(onEvalLieferRechnungsortEvent);\n\n    this.form[\"r_lieferort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdLieferort);\n    this.form[\"r_rechnungsort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdRechnungsort);\n\n    if (onEvalLieferRechnungsortData.HasMoreThanOneLieferort) {\n      this._geschaeftspartnerSearchService.show((r) => {\n        this.form[\"r_lieferort\"].setGeschaeftpartnerById(r);\n      }, () => { }, {\n        caption: \"erp.select_lieferort\",\n        filters: [{\n          webApiCustomKey: \"IdLieferortFuer\",\n          webApiCustomValue: e.detail.value\n        }]\n      });\n    }\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n  onKundeAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    const idKunde = this.form.models.data.$m_Auftrag.IdKunde;\n    if (idKunde == this.form.models.data.$m_Auftrag.IdLieferort) {\n      if (this.form.models.data.$m_Auftrag.IdLieferortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Auftrag.IdLieferortAnsprechperson = idPerson;\n      }\n\n      this.onLieferortAnsprechpersonChanged({\n        detail: {\n          value: idPerson\n        }\n      });\n    }\n\n    if (idKunde == this.form.models.data.$m_Auftrag.IdRechnungsort) {\n      if (this.form.models.data.$m_Auftrag.IdRechnungsortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Auftrag.IdRechnungsortAnsprechperson = idPerson;\n      }\n    }\n  }\n  async onLieferortAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    this.form.models.data.$m_Auftrag.LieferortTelefon = await this._personService.getPersonTelefon(idPerson);\n  }\n  onKundeAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onLieferortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onRechnungsortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n\n  private getSelectedLieferschein(): number {\n    const lieferscheinGrid: IdxDataGridComponent = this.form[\"r_lieferscheinGrid\"];\n    const selectedLieferscheinKeys: number[] = lieferscheinGrid.instance.getSelectedRowKeys();\n\n    return selectedLieferscheinKeys[0];\n  }\n  private getSelectedAuftragspositionen(): number[] {\n    const grid: IdxDataGridComponent = this.form[\"r_auftragspositionGrid\"];\n    const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n    return selectedKeys;\n  }\n  private updateLieferdatumFarbe(data: any) {\n    const berechnLieferdatum: IdxDateBoxComponent = this.form[\"r_lieferdatum\"];\n    if (!berechnLieferdatum) {\n      return;\n    }\n\n    const element = <any>berechnLieferdatum.instance.element();\n    if (!element) {\n      return;\n    }\n\n    const input = <HTMLInputElement>element.querySelector(\".dx-texteditor-container input\");\n    if (!input) {\n      return;\n    }\n\n    if (!data) {\n      data = this.form.models.data.$m_Auftrag;\n    }\n\n    if (input) {\n      if (data && data.Lieferdatum && data.BerechnetLieferdatum && data.Lieferdatum.getTime() < data.BerechnetLieferdatum.getTime()) {\n        input.style.backgroundColor = \"#C0392B\";\n        input.style.color = \"white\";\n      } else {\n        input.style.backgroundColor = \"\";\n        input.style.color = \"\";\n      }\n    }\n  }\n  private updateBerechnLieferdatumFarbe(data: any) {\n    const berechnLieferdatum: IdxDateBoxComponent = this.form[\"r_berechnLieferdatum\"];\n    if (!berechnLieferdatum) {\n      return;\n    }\n\n    const element = <any>berechnLieferdatum.instance.element();\n    if (!element) {\n      return;\n    }\n\n    const input = <HTMLInputElement>element.querySelector(\".dx-texteditor-container input\");\n    if (!input) {\n      return;\n    }\n\n    if (input) {\n      if (data && data.HasFehlendeBeschaffungsperiode) {\n        input.style.backgroundColor = \"#D35400\";\n        input.style.color = \"white\";\n      } else {\n        input.style.backgroundColor = \"\";\n        input.style.color = \"\";\n      }\n    }\n  }\n  private updateBerechnLieferdatumButtons(auftrag: any) {\n    const editor: IdxDateBoxComponent = this.form[\"r_berechnLieferdatum\"];\n    if (!editor || !editor.instance) {\n      return;\n    }\n\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    const showButton = auftrag.CanSave\n      && auftrag.BerechnetLieferdatum;\n\n    if (showButton) {\n      buttons.push({\n        location: \"after\",\n        name: \"useBerechnetLieferdatum\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-arrow-right\",\n          hint: \"Berechnetes Lieferdatum in tatsächliches Lieferdatum übernehmen\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            auftrag.Lieferdatum = auftrag.BerechnetLieferdatum;\n            this._modelUtilsService.setDirty(auftrag);\n          }\n        }\n      });\n    }\n\n    editor.instance.option(\"buttons\", buttons);\n  }\n\n  private async hasStreckengeschaeftBestellungBereitsErstellt() {\n    if (this.form.models.data.$m_Auftrag.IsStreckengeschaeft) {\n      const bestellungList = await this._restService.get({\n        url: this._restService.getWebApiUrl(\"ERP/Einkauf/Bestellung\"),\n        getOptions: {\n          where: [\"IdAuftrag\", this.form.models.data.$m_Auftrag.Id]\n        }\n      });\n      this.hasStreckengeschaeftBestellung = bestellungList.length > 0\n        ? true\n        : false;\n    } else {\n      this.hasStreckengeschaeftBestellung = false;\n    }\n  }\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Auftrag.CanSave && this.form.models.data.$m_Auftrag.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Auftrag.IdKunde);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Auftrag.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Auftrag\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import {\n  autoinject,\n  computedFrom,\n  transient\n} from \"aurelia-framework\";\nimport {\n  LocalizationService,\n  LocationService,\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase, PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport { CalcLiefertermin } from '../../../elements/calc-liefertermin/calc-liefertermin';\nimport { BelegImportTyp } from '../../../enumerations/beleg-import-typ';\nimport { IdxSelectBoxComponent } from '../../../interfaces/export';\nimport { ArtikelService, DynFelderDataService, EntitaetInfoService, StartupService } from '../../../services/export';\nimport {\n  OnArtikelartAendern,\n  OnArtikelartAendernEvent,\n  OnBVRechnen,\n  OnBVRechnenEvent,\n  OnErstelleBestellungEvent,\n  OnErstelleProdAuftragEvent\n} from \"./../../../../framework-data/events\";\nimport { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport { IdxPopupComponent } from './../../../interfaces/dx-components';\nimport { BelegExportService } from './../../../services/beleg-export-service';\nimport { ArtikelBezugTyp } from \"../../../enumerations/artikel-bezug-typ\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\n\n@autoinject\n@transient()\nexport class ArtikelEditUtils {\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startup: StartupService,\n    private _asyncService: AsyncService,\n    private _artikelService: ArtikelService,\n    private _webEventService: WebEventService,\n    private _localizationService: LocalizationService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService,\n    private _belegExportService: BelegExportService\n  ) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n  doCopyCommandExecute: { (idSource: number): void };\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 999,\n    isVisibleExpression: \"functions.$f_ArtikelEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_ArtikelEditUtils.isBelegExportMandantAktiv && models.data.$m_Artikel.Id > 0\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Artikel.Id;\n      this._belegExportService.export(BelegImportTyp.Artikel, [id]);\n    }\n  };\n  artikelBestellungErstellenCommand: ICommandData = {\n    id: \"artikelBestellungErstellen\",\n    idCategory: \"artikel\",\n    icon: \"plus-circle\",\n    title: \"artikel-edit-utils.bestellung_erstellen\",\n    sortIndex: 0,\n    isVisibleExpression: \"models.data.$m_Artikel.CanSave && models.data.$m_Artikel.Id > 0 && models.data.$m_Artikel.BezugTyp != 3 && models.data.$m_Artikel.BezugTyp != 1 && models.data.$m_Artikel.BezugTyp != 2\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const idArtikel = this.form.models.data.$m_Artikel.Id\n      const webEvent = new OnErstelleBestellungEvent({ IdArtikel: idArtikel });\n\n      const webEventResult = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult) {\n        return;\n      }\n      this._locationService.goTo({\n        url: `ERP/Einkauf/Bestellung/${webEventResult.IdBestellung}`,\n        clearStack: false\n      });\n    }\n  }\n  artikelProdAuftragErstellenCommand: ICommandData = {\n    id: \"artikelProdAuftragErstellen\",\n    idCategory: \"artikel\",\n    icon: \"plus-circle\",\n    title: \"artikel-edit-utils.prod_auftrag_erstellen\",\n    sortIndex: 0,\n    isVisibleExpression: \"models.data.$m_Artikel.CanSave && models.data.$m_Artikel.Id > 0 && (models.data.$m_Artikel.BezugTyp == 1 || models.data.$m_Artikel.BezugTyp == 2)\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const idArtikel = this.form.models.data.$m_Artikel.Id\n      const webEvent = new OnErstelleProdAuftragEvent({ IdArtikel: idArtikel });\n\n      const webEventResult = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult) {\n        return;\n      }\n      this._locationService.goTo({\n        url: `ERP/Produktion/ProdAuftrag/${webEventResult.IdProdAuftrag}`,\n        clearStack: false\n      });\n    }\n  }\n  doCopyCommand: ICommandData = {\n    id: \"doCopyCommand\",\n    icon: \"clone\",\n    title: \"artikel-edit-utils.artikel-kopie-erstellen\",\n    isEnabledExpression: \"models.data.$m_ArtikelCopy.IdArtikelart\",\n    execute: null\n  };\n  doBestellvorschlagBerechnenCommand: ICommandData = {\n    id: \"doBestellvorschlagBerechnen\",\n    idCategory: \"artikel_bestellvorschlag\",\n    icon: \"calculator\",\n    title: \"artikel-edit-utils.bestellvorschlag_berechnen\",\n    sortIndex: 950,\n    isEnabledExpression: \"models.data.$m_Artikel.IsLagerfuehrend == true  && models.data.$m_Artikel.BestellvorschlagTyp > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const onBVRechnenEvent = new OnBVRechnenEvent({\n        IdArtikelList: [this.form.models.data.$m_Artikel.Id]\n      });\n\n      const webEventResult: OnBVRechnen = await this._webEventService.execute(onBVRechnenEvent, true);\n      return DevExpress.ui.notify(this._localizationService.translateOnce(\"artikel-edit-utils.berechn_ausführ_weitergeleitet\"), \"SUCCESS\", 3000);\n    }\n  };\n  doArtikelartAendernCommand: ICommandData = {\n    id: \"doArtikelartAendern\",\n    icon: \"floppy-o\",\n    title: \"base.save\",\n    sortIndex: 955,\n    execute: async () => {\n      this.doArtikelartaendern();\n    }\n  }\n  showArtikelartAendernCommand: ICommandData = {\n    id: \"showArtikelartAendern\",\n    idCategory: \"artikel_art\",\n    icon: \"pencil-square-o\",\n    title: \"artikel-edit-utils.artikelart_aendern\",\n    sortIndex: 955,\n    isEnabledExpression: \"models.data.$m_Artikel.Id > 0\",\n    execute: this.onShowArtikelartAendernClicked.bind(this)\n  }\n  calcLieferterminCommand: ICommandData = {\n    id: \"calcLieferterminCommand\",\n    idCategory: \"artikel_bestellvorschlag\",\n    icon: \"calendar\",\n    title: \"calc-liefertermin.lieferdatum-berechnen\",\n    sortIndex: 955,\n    isEnabledExpression: \"models.data.$m_Artikel.Id > 0\",\n    execute: () => {\n      const calcLiefertermin: CalcLiefertermin = this.form[\"r_calcLiefertermin\"];\n      calcLiefertermin.show(this.form.models.data.$m_Artikel.Id);\n    }\n  }\n\n  @computedFrom(\"form.r_tabSelected\")\n  get isDashboardVisible() {\n    if (!this.form) {\n      return false;\n    }\n\n    const options: DevExpress.ui.dxTabsOptions = this.form[\"r_tabOptions\"];\n    if (!options || !options.items) {\n      return false;\n    }\n\n    const indexOf = options.items.findIndex(p => {\n      return !!p[\"__options\"]\n        && p[\"__options\"].id == \"r_tabDashboard\"\n    });\n\n    if (indexOf < 0) {\n      return false;\n    }\n\n    return indexOf == this.form[\"r_tabSelected\"];\n  }\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Artikel\",\n      idArtPropertyName: \"IdArtikelart\"\n    });\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Artikel\") {\n        return;\n      }\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Artikel);\n\n      return Promise.resolve();\n    });\n\n    this.form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        if (this.form.models.data.$m_Artikel.Id > 0 && (this.form.models.data.$m_Artikel.BezugTyp == ArtikelBezugTyp.Setartikel || this.form.models.data.$m_Artikel.BezugTyp == ArtikelBezugTyp.Eigenfertigung)) {\n          const hasBeistellartikel = await this._artikelService.hasArtikelBeistellartikel(this.form.models.data.$m_Artikel.Id);\n\n          if (hasBeistellartikel) {\n            const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n              this._localizationService.translateOnce(\"artikel-edit-utils.hinweis-setartikel-beistellartikel\"),\n              this._localizationService.translateOnce(\"base.question\")));\n\n            if (!doExecute) {\n              return Promise.reject();\n            }\n          }\n          return Promise.resolve();\n        }\n\n        return Promise.resolve();\n      }\n    });\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: \"models.data.$m_EinstandspreisEdit\",\n      callback: async (newValue) => {\n        if (!newValue) {\n          return;\n        }\n        if (!newValue.VerknuepfteEntitaet) {\n          return;\n        }\n\n        this._entitaetInfoService\n          .getUrl(newValue.VerknuepfteEntitaet.TypeName, newValue.VerknuepfteEntitaet.Id)\n          .then(r => {\n            this._popupInfoService.closeAllPopups().then(pr => {\n              if (!pr) {\n                return;\n              }\n\n              this._locationService.goTo({\n                url: r\n              });\n            });\n          });\n      }\n    });\n  }\n\n  copyArtikel($delegate: { (customData: any): Promise<any> }) {\n    const copyPopup: IdxPopupComponent = this.form[\"r_copyPopup\"];\n\n    this.form.models.data.$m_ArtikelCopy = {\n      IdArtikelart: this.form.models.data.$m_Artikel.IdArtikelart,\n      DoKopierenNotizen: false,\n      DoKopierenKonditionen: false\n    };\n\n    copyPopup.instance\n      .show()\n      .then(() => {\n        this.form[\"r_artikelCopyNummer\"].instance.focus();\n      });\n\n    this.doCopyCommand.execute = () => {\n      $delegate(this.form.models.data.$m_ArtikelCopy)\n        .then(r => {\n          copyPopup.instance.hide();\n        });\n    };\n  }\n\n  onEinstandspreisVerknEntitaetCellPrepared(e) {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.VerknuepfteEntitaet) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n    const verkn = e.data.VerknuepfteEntitaet;\n\n    const html = `<div class=\"erp--text-with-leading-label-badge\">\n      <div class=\"${verkn.TypeBezeichnung ? \"\" : \"erp--empty-badge\"}\">\n        ${verkn.TypeBezeichnung ? verkn.TypeBezeichnung : \"\"}\n      </div>\n      <div>\n        ${verkn.CboBezeichnung ? verkn.CboBezeichnung : \"\"}\n      </div>\n    </div>`;\n\n    cell.innerHTML = html;\n  }\n\n  async onShowArtikelartAendernClicked() {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const selectBox: IdxSelectBoxComponent = this.form[\"r_artikelartEdit\"];\n    if (selectBox) {\n      const dataSource = selectBox.instance.getDataSource();\n      dataSource.reload();\n\n      selectBox.setOption({ value: null });\n    }\n\n    const popup: IdxPopupComponent = this.form[\"r_artikelArtPopup\"];\n    popup.instance.show();\n  }\n\n  async onArtikelartChanged(e) {\n    if(this.form.models.data.$m_Artikel == null){\n      return;\n    }\n    \n    if (this.form.models.data.$m_Artikel.CanSave && this.form.models.data.$m_Artikel.Id > 0) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Artikel.IdArtikelart == null) {\n      return;\n    }\n\n    const artikelart = await this._artikelService.getArtikelartById(this.form.models.data.$m_Artikel.IdArtikelart);\n    if (artikelart != null) {\n      this.form.models.data.$m_Artikel.IsLagerfuehrend = artikelart.IsLagerfuehrendVorbelegung;\n    }\n  }\n\n  async doArtikelartaendern() {\n    const popup: IdxPopupComponent = this.form[\"r_artikelArtPopup\"];\n    const onArtikelartAendernEvent = new OnArtikelartAendernEvent({\n      IdArtikel: this.form.models.data.$m_Artikel.Id,\n      IdArtikelart: this.form[\"r_artikelartEdit\"].instance.option(\"value\")\n    });\n\n    if (!this.form[\"r_artikelartEdit\"].instance.option(\"value\")) {\n      DevExpress.ui.notify(this._localizationService.translateOnce(\"artikel-edit-utils.keine_artikelart_ausgewaehlt\"), \"error\", 3000);\n      return;\n    }\n\n    const result: OnArtikelartAendern = await this._webEventService.execute(onArtikelartAendernEvent, true);\n\n    this.form.models.reloadAll();\n\n    DevExpress.ui.notify(this._localizationService.translateOnce(\"artikel-edit-utils.artikelart_geandert\"), \"SUCCESS\", 3000);\n    popup.instance.hide();\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { IState } from '../interfaces/state';\nimport { RestService, JsonService } from '../../base/export';\n\n@autoinject\nexport class DataService {\n  constructor(\n    private restService: RestService,\n    private jsonService: JsonService\n  ) {}\n\n  async getReport(id: string) {\n    return this.restService.get({\n      url: this.restService.getApiUrl(\"base/Report/Definition/\".concat(id))\n    });\n  }\n  async getData(id: string, idDataSource: string, state: IState) {\n    return await this.restService.post({\n      url: this.restService.getApiUrl(\"base/Report/DataSource\"),\n      data: {\n        idReport: id,\n        idDataSource: idDataSource,\n        state: state\n      }\n    });\n  }\n}","export default __webpack_public_path__ + \"7b9e78ec16ab4347274c7e4b21ddd1ff.jpg\";","import { autoinject } from \"aurelia-framework\";\nimport { Commands, FormBase, FormEventService, ICommandData, ToolbarService } from \"../../framework/forms/export\";\nimport { IFormCommandOptions } from \"../interfaces/export\";\nimport { IFormCommandExecuteOptions } from \"../interfaces/form-command-options\";\nimport { EntitaetInfoService } from \"./entitaet-info-service\";\n\n@autoinject\nexport class FormCommandService {\n  constructor(\n    private entitaetInfo: EntitaetInfoService,\n    private formEvent: FormEventService,\n    private toolbar: ToolbarService) {\n    this.setToolbarPages();\n    this.setToolbarCategories();\n  }\n\n  attachFormCommand(commandInstance: ICommandData, commandOptions: IFormCommandOptions): { (): void } {\n    return this.formEvent.onBind.register((args) => {\n      const model = args.form.models.modelWithKeyId;\n      if (!model) {\n        return;\n      }\n\n      const entitaetInfo = this.entitaetInfo.getEntitaetInfoByWebApiAction(model.webApiAction);\n      if (!entitaetInfo) {\n        return;\n      }\n      if (commandOptions.isCommandVisibleModelProperty != void 0 && entitaetInfo[commandOptions.isCommandVisibleModelProperty] === false) {\n        return;\n      }\n\n      const command: ICommandData = Object.assign({}, commandInstance);\n\n      command.idCategory = command.idCategory || this.getCommandCategory(entitaetInfo.FullName);\n\n      command.execute = async (options) => {\n        const data = args.form.models.data[model.id];\n        const canExecute = commandOptions.isCommandVisibleModelProperty == void 0 || this.entitaetInfo.getEntitaetInfoByWebApiAction(model.webApiAction);\n        if (data == void 0 || !canExecute) {\n          return;\n        }\n\n        const r = await args.form.saveIfDirty();\n        if (!r.isValid) {\n          return;\n        }\n\n        const formCommandExecOptions: IFormCommandExecuteOptions = {\n          form: args.form,\n          modelData: data,\n          options: {\n            callBack: commandOptions.onFormModelLoaded,\n            event: options.event\n          }\n        };\n\n        commandOptions.execute(formCommandExecOptions);\n      };\n\n      this.addCommand(command, args.form);\n\n      if (commandOptions.onCommandAttached) {\n        commandOptions.onCommandAttached(args.form);\n      }\n\n      args.form.models.onLoaded.register((m) => {\n        if (m.model != model || m.data == void 0) {\n          return;\n        }\n\n        return this.onModelLoaded(m.data, command, commandOptions);\n      });\n\n      args.form.onDetached.register((r) => {\n        if (commandOptions.onCommandDetached) {\n          commandOptions.onCommandDetached(args.form);\n        }\n\n        return Promise.resolve();\n      });\n\n      return Promise.resolve();\n    });\n  }\n  //TODO Entfernen getReloadCommand Logik\n  getReloadCommand(command: ICommandData, forms: FormBase[], options: { modelPropertyName: string; modelPropertyValue: number }): ICommandData {\n    const reloadComand = this.getReloadFormCommand(command, forms, options);\n\n    return reloadComand || null;\n  }\n  getCommandCategory(entitaetFullName: string): string {\n    const entitaetName = entitaetFullName.substring(entitaetFullName.lastIndexOf(\".\") + 1);\n\n    return entitaetName != void 0 ?\n      entitaetName.toLowerCase()\n      : undefined;\n  }\n  getCommandTarget(event: Event): Element {\n    const element = <Element>event.target;\n\n    return this.getCommandElement(element);\n  }\n  getFormCommandById(id: string, form: FormBase) {\n    return form.commands\n      .getCommands()\n      .find((c) => c.id == id);\n  }\n  private addCommand(command: ICommandData, form: FormBase) {\n    const exists = this.commandExists(command, form.commands);\n    if (exists) {\n      return;\n    }\n\n    form.commands.addCommand(command);\n  }\n  private commandExists(command: ICommandData, commands: Commands): boolean {\n    return commands\n      .getCommands()\n      .some((cmd) => {\n        return cmd.id == command.id;\n      });\n  }\n  private getFormByProperty(forms: FormBase[], options: { modelPropertyName: string; modelPropertyValue: number }) {\n    return forms.find((f) => {\n      const model = f.models.getModelWithKeyId();\n\n      if (!model) {\n        return;\n      }\n      if (!f.models.data[model.id]) {\n        return null;\n      }\n\n      return f.models.data[model.id][options.modelPropertyName] == options.modelPropertyValue;\n    });\n  }\n  private getCommandElement(e: Element) {\n    if (e.classList.contains(\"t--ribbon-toolbar-item\")) {\n      return e;\n    }\n\n    let parent = null;\n    while (e) {\n      parent = e.parentElement;\n      if (parent && parent.classList.contains(\"t--ribbon-toolbar-item\")) {\n        return parent;\n      }\n\n      e = parent;\n    }\n\n    return null;\n  }\n  private getReloadFormCommand(command: ICommandData, forms: FormBase[], options: { modelPropertyName: string; modelPropertyValue: number }): ICommandData {\n    const needsToReload = this.needsToReload(command, forms, options);\n    if (!needsToReload) {\n      return null;\n    }\n\n    const commandForm = this.getFormByProperty(forms, options);\n    if (!commandForm) {\n      return null;\n    }\n\n    return this.getFormCommandById(command.id, commandForm) || null;\n  }\n  private setToolbarPages() {\n    this.toolbar.addPage(\"weiteres\", \"erp.weiteres\", 5);\n    this.toolbar.addPage(\"kommunikation\", \"erp.kommunikation\", 10);\n    this.toolbar.addPage(\"aufgaben\", \"erp.aufgaben\", 20);\n    this.toolbar.addPage(\"notizen\", \"erp.notizen\", 30);\n  }\n  private setToolbarCategories() {\n    //General\n    this.toolbar.addCategory(\"sprache\", \"$start\", \"erp.sprache\", 40);\n    this.toolbar.addCategory(\"benutzer\", \"$start\", \"erp.benutzer\", 50);\n    this.toolbar.addCategory(\"brief-entitaet\", \"$start\", \"erp.brief\", 50);\n    this.toolbar.addCategory(\"beleg-export\", \"$start\", \"erp.export\", 90);\n    this.toolbar.addCategory(\"aufgabe\", \"$start\", \"erp.aufgabe\", 60);\n    this.toolbar.addCategory(\"mail\", \"$start\", \"erp.mail\", 70);\n    this.toolbar.addCategory(\"status\", \"$start\", \"erp.status\", 90);\n    this.toolbar.addCategory(\"versionierung\", \"$start\", \"erp.versionierung\", 95);\n    this.toolbar.addCategory(\"dms\", \"kommunikation\", \"erp.dms\", 60);\n    this.toolbar.addCategory(\"aufgaben\", \"kommunikation\", \"erp.aufgaben\", 70);\n    this.toolbar.addCategory(\"notizen\", \"kommunikation\", \"erp.notizen\", 75);\n    this.toolbar.addCategory(\"brief\", \"kommunikation\", \"erp.brief\", 80);\n    this.toolbar.addCategory(\"benachrichtigung\", \"$start\", \"erp.benachrichtigung\", 83);\n    this.toolbar.addCategory(\"artikel_bestellvorschlag\", \"weiteres\", \"erp.bestellvorschlag\", 83);\n    this.toolbar.addCategory(\"artikel_art\", \"weiteres\", \"erp.artikelart\", 85);\n    this.toolbar.addCategory(\"artikel\", \"$start\", \"erp.artikel\", 80);\n    this.toolbar.addCategory(\"geschaeftspartner\", \"$start\", \"erp.geschaeftspartner\", 80);\n    this.toolbar.addCategory(\"geschaeftspartner_art\", \"weiteres\", \"erp.geschaeftspartnerart\", 85);\n    this.toolbar.addCategory(\"statistik\", \"$start\", \"erp.statistik\", 90);\n    this.toolbar.addCategory(\"statistik-filter\", \"$start\", \"erp.filterauswahl\", 80);\n    this.toolbar.addCategory(\"darstellungen\", \"$start\", \"erp.darstellungen\", 70);\n    this.toolbar.addCategory(\"newsletter\", \"$start\", \"erp.newsletter\", 80);\n    this.toolbar.addCategory(\"newsletter-empfaenger\", \"$start\", \"erp.newsletter-empfaenger\", 80);\n    this.toolbar.addCategory(\"newsletter-anmeldung\", \"$start\", \"erp.newsletter-anmeldung\", 80);\n    this.toolbar.addCategory(\"projekttaetigkeit\", \"$start\", \"erp.projekttaetigkeit\", 40);\n    this.toolbar.addCategory(\"projekt\", \"$start\", \"erp.projekt\", 40);\n    this.toolbar.addCategory(\"webshop\", \"weiteres\", \"erp.webshop\", 90);\n    this.toolbar.addCategory(\"kassa\", \"$start\", \"erp.kassa\", 40);\n    this.toolbar.addCategory(\"papierkorb\", \"$start\", \"erp.papierkorb\", 40);\n    this.toolbar.addCategory(\"zahlungsverkehr\", \"$start\", \"erp.zahlungsverkehr\", 40);\n    //Einkauf\n    this.toolbar.addCategory(\"bestellung\", \"$start\", \"erp.bestellung\", 40);\n    this.toolbar.addCategory(\"bestellungsposition\", \"$start\", \"erp.bestellungsposition\", 40);\n    this.toolbar.addCategory(\"bestellvorschlag\", \"$start\", \"erp.bestellvorschlag\", 40);\n    this.toolbar.addCategory(\"eingangsrechnung\", \"$start\", \"erp.eingangsrechnung\", 40);\n    this.toolbar.addCategory(\"warenuebernahme\", \"$start\", \"erp.warenuebernahme\", 40);\n    this.toolbar.addCategory(\"warenuebernahmeposition\", \"$start\", \"erp.warenuebernahmesposition\", 40);\n    //Verkauf\n    this.toolbar.addCategory(\"angebot\", \"$start\", \"erp.angebot\", 40);\n    this.toolbar.addCategory(\"angebotsposition\", \"$start\", \"erp.angebotsposition\", 40);\n    this.toolbar.addCategory(\"auftrag\", \"$start\", \"erp.auftrag\", 40);\n    this.toolbar.addCategory(\"auftragsposition\", \"$start\", \"erp.auftragsposition\", 40);\n    this.toolbar.addCategory(\"faktura\", \"$start\", \"erp.faktura\", 40);\n    this.toolbar.addCategory(\"fakturaposition\", \"$start\", \"erp.fakturaposition\", 40);\n    this.toolbar.addCategory(\"ladeliste\", \"$start\", \"erp.ladeliste\", 40);\n    this.toolbar.addCategory(\"ladeliste-lieferschein-weiteres\", \"weiteres\", \"erp.lieferschein\", 40);\n    this.toolbar.addCategory(\"lieferschein\", \"$start\", \"erp.lieferschein\", 40);\n    this.toolbar.addCategory(\"lieferscheinposition\", \"$start\", \"erp.lieferscheinposition\", 40);\n    this.toolbar.addCategory(\"reservierung\", \"weiteres\", \"erp.reservierung\", 40);\n    this.toolbar.addCategory(\"konditionen\", \"weiteres\", \"erp.konditionen\", 30);\n    this.toolbar.addCategory(\"gewicht\", \"weiteres\", \"erp.gewichte\", 30);\n    this.toolbar.addCategory(\"kundenreklamation\", \"$start\", \"erp.kundenreklamation\", 40);\n    this.toolbar.addCategory(\"split\", \"weiteres\", \"erp.split\", 50);\n    this.toolbar.addCategory(\"text\", \"weiteres\", \"erp.texte\", 60);\n    this.toolbar.addCategory(\"positionen\", \"weiteres\", \"erp.positionen\", 10);\n    this.toolbar.addCategory(\"provision\", \"$start\", \"erp.provision\", 40);\n    this.toolbar.addCategory(\"kassabeleg\", \"$start\", \"erp.kassa-beleg\", 40);\n    this.toolbar.addCategory(\"mahnung\", \"$start\", \"erp.mahnung\", 40);\n    this.toolbar.addCategory(\"gutschein\", \"$start\", \"erp.gutschein\", 40);\n    //projektzeit\n    this.toolbar.addCategory(\"projekt-taetigkeit-buchung\", \"$start\", \"erp.projekttaetigkeitbuchung\", 40);\n    //arbeitszeit\n    this.toolbar.addCategory(\"arbeitszeit\", \"$start\", \"erp.arbeitszeit\", 40);\n    //Produktion\n    this.toolbar.addCategory(\"prodauftrag\", \"$start\", \"erp.prodauftrag\", 40);\n    this.toolbar.addCategory(\"prodauftrag_quick\", \"weiteres\", \"erp.quick\", 83);\n    //Lager\n    this.toolbar.addCategory(\"inventur\", \"$start\", \"erp.inventur\", 40);\n    this.toolbar.addCategory(\"fehlende_artikel_laden\", \"weiteres\", \"erp.inventur\", 40);\n    this.toolbar.addCategory(\"lagerkorrektur\", \"$start\", \"erp.lagerkorrektur\", 40);\n    this.toolbar.addCategory(\"artikelverleih\", \"$start\", \"erp.artikelverleih\", 40);\n    //Konfiguration\n    this.toolbar.addCategory(\"import\", \"$start\", \"erp.import\", 40);\n    this.toolbar.addCategory(\"fibu-sync-job\", \"$start\", \"erp.synchronisierung\", 40);\n    //Ticket\n    this.toolbar.addCategory(\"ticket\", \"$start\", \"erp.ticket\", 40);\n    //Datenbank Info\n    this.toolbar.addCategory(\"datenbank-info\", \"$start\", \"erp.datenbank-info\", 40);\n    //Instanz-Status\n    this.toolbar.addCategory(\"instanz-status\", \"$start\", \"erp.instanz-status\", 40);\n  }\n  private needsToReload(command: ICommandData, forms: FormBase[], options: { modelPropertyName: string; modelPropertyValue: number }): boolean {\n    return forms.some((form) => {\n      const model = form.models.getModelWithKeyId();\n\n      if (model == void 0) {\n        return null;\n      }\n      return form.models.data[model.id] != void 0\n        && form.models.data[model.id][options.modelPropertyName] == options.modelPropertyValue;\n    });\n  }\n  private onModelLoaded(modelData: any, command: ICommandData, options?: IFormCommandOptions): Promise<any> {\n    if (options.onFormModelLoaded) {\n\n      options.onFormModelLoaded(modelData, command);\n    }\n\n    this.setCommandBindings(modelData, command, options);\n\n    return Promise.resolve();\n  }\n  private setCommandBindings(modelData: any, command: ICommandData, options?: IFormCommandOptions) {\n    if (modelData == void 0) {\n      return;\n    }\n    const isEnabled = modelData.Id > 0;\n\n    if (modelData.Id == void 0) {\n      command.badgeText = null;\n    }\n\n    command.isEnabled = isEnabled;\n  }\n}\n","export interface IWidget {\n  title: string;\n  viewModel: string;\n  settingViewModel?: string;\n  settings?: any;\n\n  supportedDashboardTyp: SupportedDashboardTyp[];\n\n  minWidth?: number;\n  maxWidth?: number;\n  minHeight?: number;\n  maxHeight?: number;\n}\n\nexport enum SupportedDashboardTyp {\n  Keine = 0,\n  Allgemein = 1,\n  Geschaeftspartner = 2,\n  Artikel = 3\n}\n","import {\n  autoinject,\n  transient\n} from 'aurelia-framework';\nimport {\n  FormBase\n} from '../../../../framework/forms/export';\nimport {\n  StartupService\n} from './../../../services/export';\n\n@autoinject\n@transient()\nexport class FibuKontoEditUtils {\n  constructor(\n    private startup: StartupService\n  ) {}\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { AuftragService } from \"../../../services/auftrag-service\";\n\n@autoinject\n@transient()\nexport class AuftragsgruppeEditUtils {\n  constructor(\n    private _auftragService: AuftragService,\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onDeleting.register(async (e) => {\n      if (await this._auftragService.hasAuftragsgruppePositionenZugeteilt(this.form.models.data.$m_Auftragsgruppe.Id)) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"base.sure_delete_question_gruppe\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return Promise.reject();\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { FakturaService } from \"../../../services/faktura-service\";\n\n@autoinject\n@transient()\nexport class FakturagruppeEditUtils {\n  constructor(\n    private _asyncService: AsyncService,\n    private _fakturaService: FakturaService,\n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onDeleting.register(async (e) => {\n      if (await this._fakturaService.hasFakturagruppePositionenZugeteilt(this.form.models.data.$m_Fakturagruppe.Id)) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"base.sure_delete_question_gruppe\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return Promise.reject();\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { OnWebValidate, OnWebValidateEvent } from \"../../framework-data/events\";\nimport { WebEventService } from \"../../framework/base/export\";\nimport { FormEventService } from \"../../framework/forms/export\";\nimport { ValidationInfo } from \"../elements/validation-info/validation-info\";\nimport { LocalizationService } from \"./../../framework/base/services/localization-service\";\nimport { ValidationService } from \"./../../framework/forms/services/validation-service\";\n\ndeclare const Barcoder: any;\n\n@autoinject\nexport class ValidationExService {\n  constructor(\n    private _localizationService: LocalizationService,\n    private _validationService: ValidationService,\n    private _webEventService: WebEventService,\n    private _formEventService: FormEventService) {\n    this.registerDeleteValidation();\n    this.registerEAN();\n    this.registerKassaCode();\n  }\n\n  validationInfo: ValidationInfo;\n\n  async executeServerValidation(typeName: string, id: number, code: string): Promise<boolean> {\n    const r: OnWebValidate = await this._webEventService.execute(new OnWebValidateEvent({\n      TypeName: typeName,\n      Id: id,\n      Code: code\n    }), true);\n\n    if (!r.ResultList || r.ResultList.length == 0) {\n      return true;\n    }\n\n    const promise = new Promise<boolean>((resolve, reject) => {\n      this.validationInfo.showPopup(r.ResultList, (r) => {\n        resolve(r);\n      });\n    });\n\n    return await promise;\n  }\n\n  private registerDeleteValidation() {\n    this._formEventService.onDeleting.register(async (ev) => {\n      const mainModel = ev.form.models.modelWithKeyId;\n      if (!mainModel) {\n        return;\n      }\n\n      const data = ev.form.models.data[mainModel.id];\n      if (!data.TypeName || !data.Id) {\n        return;\n      }\n\n      const r = await this.executeServerValidation(data.TypeName, data.Id, \"LOESCHEN\");\n      if (!r) {\n        ev.cancel = true;\n      }\n    });\n  }\n  private registerEAN() {\n    this._validationService.registerValidator(\"ean\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: this._localizationService.translateOnce(\"erp-validation.ean\"),\n        validationCallback: (e) => {\n          if (e.value == void (0) || e.value == \"\") {\n            return true;\n          }\n\n          if (!Barcoder.validate(e.value)) {\n            return false;\n          }\n\n          return true;\n        }\n      };\n    });\n  }\n\n  private registerKassaCode() {\n    this._validationService.registerValidator(\"kassacode\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: this._localizationService.translateOnce(\"erp-validation.kassacode\"),\n        validationCallback: (e) => {\n          if (e.value == void (0) || e.value == \"\") {\n            return false;\n          }\n\n          const hasInvalidChar = /_/.test(e.value);\n          if (hasInvalidChar) {\n            return false;\n          }\n\n          return true;\n        }\n      };\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { LocalizationService, RestService } from \"../../framework/base/export\";\nimport { AsyncService } from \"../../framework/base/services/async-service\";\nimport { DmsViewer } from \"../elements/dms-viewer/dms-viewer\";\nimport { IDmsViewerShowOptions } from \"../interfaces/dms-viewer-show-options\";\nimport { IFormCommandExecuteOptions } from \"../interfaces/export\";\n\n@autoinject\nexport class DmsViewerService {\n  constructor(\n    private _restService: RestService,\n    private _localizationService: LocalizationService,\n    private _asyncService: AsyncService) { }\n\n  dmsViewer: DmsViewer;\n\n  async deleteDokument(idDokument: number | string, showConfirmation: boolean = true): Promise<any> {\n    if (showConfirmation) {\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n    }\n\n    return this._restService.delete({\n      id: idDokument,\n      url: this._restService.getWebApiUrl(\"ERP/DMS/Dokument\")\n    });\n\n  }\n  saveDokument(dmsDokument: any): Promise<any> {\n    return this._restService.post({\n      url: this._restService.getWebApiUrl(\"ERP/DMS/Dokument\"),\n      data: dmsDokument,\n      increaseLoadingCount: true\n    });\n  }\n\n  saveDokumentartToDokument(idDokument, idDokumentenart): Promise<any> {\n    return this._restService.post({\n      url: this._restService.getWebApiUrl(\"ERP/DMS/Dokument\"),\n      data: {\n        Id: idDokument,\n        IdDokumentenart: idDokumentenart\n      }\n    });\n  }\n\n  getAnzahlDokumente(idDokumentContainer): Promise<string> {\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/DMS/DokumentContainer\")}/${idDokumentContainer}`,\n      getOptions: {\n        columns: [\"AnzahlDokumente\"]\n      }\n    }).then((r) => {\n      if (r && r.AnzahlDokumente) {\n        return r.AnzahlDokumente.toString();\n      } else {\n        return \"\";\n      }\n    });\n  }\n\n  showDmsViewerPopupFromFormCommand(e: IFormCommandExecuteOptions) {\n    this.showDmsViewerPopup({\n      id: e.modelData.Id,\n      idDokumentContainer: e.modelData.IdDokumentContainer,\n      typeName: e.modelData.TypeName,\n      callback: e.options.callBack\n    });\n  }\n\n  showDmsViewerPopup(options: IDmsViewerShowOptions) {\n    this.dmsViewer.show(options);\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService,\n  LocalizationService\n} from \"../../../../framework/base/export\";\nimport {\n  OnBVArtikelBestellenEvent,\n  OnBVArtikelBestellen,\n  OnBVArtikelIgnorierenEvent,\n  OnBVArtikelIgnorieren,\n  OnBVRechnenEvent,\n  OnBVRechnen\n} from \"../../../../framework-data/events\";\nimport {\n  IdxDataGridComponent\n} from \"../../../interfaces/export\";\nimport { LocationService } from '../../../../framework/base/services/location-service';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\n\n@autoinject\n@transient()\nexport class BestellvorschlagListUtils {\n\n  constructor(\n    private localization: LocalizationService,\n    private webEvent: WebEventService,\n    private locationService: LocationService,\n    private asyncService: AsyncService\n  ) { }\n\n  form: FormBase;\n\n  doBestellvorschlagRechnenCommand: ICommandData = {\n    id: \"doBestellvorschlagRechnenCommand\",\n    icon: \"calculator\",\n    idCategory: \"bestellvorschlag\",\n    sortIndex: 900,\n    title: \"bestellvorschlag.bestellvorschlag_rechnen\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellvorschlagGrid\"];\n      const selectedData: number[] = grid.instance.getSelectedRowsData().map(c => c.IdArtikel);\n\n      if (selectedData.length === 0) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.kein_artikel_ausgewaehlt\"), \"error\", 3000);\n        return;\n      }\n\n      const webEvent = new OnBVRechnenEvent({\n        IdArtikelList: selectedData\n      });\n\n      const webEventResult: OnBVRechnen = await this.webEvent.execute(webEvent, true);\n      DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.berechn_ausführ_weitergeleitet\"), \"SUCCESS\", 3000);\n\n      await this.asyncService.convertToPromise(grid.instance.deselectAll());\n      grid.instance.refresh();\n    }\n  }\n  doArtikelBestellenCommand: ICommandData = {\n    id: \"doArtikelBestellen\",\n    icon: \"plus-circle\",\n    idCategory: \"bestellvorschlag\",\n    sortIndex: 997,\n    title: \"bestellvorschlag.artikel_bestellen\",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellvorschlagGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnBVArtikelBestellenEvent({\n        IdBestellvorschlagList: selectedKeys,\n        DoAbschliessen: false\n      });\n\n      if (selectedKeys.length === 0) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.kein_artikel_ausgewaehlt\"), \"error\", 3000);\n        return;\n      }\n\n      const webEventResult: OnBVArtikelBestellen = await this.webEvent.execute(webEvent, true);\n      await this.asyncService.convertToPromise(grid.instance.deselectAll());\n      grid.instance.refresh();\n\n      let navigationUrl: string = null;\n\n      if (webEventResult.IdBestellung) {\n        navigationUrl = `ERP/Einkauf/Bestellung/${webEventResult.IdBestellung}`;\n      } else if (webEventResult.IdProdAuftrag) {\n        navigationUrl = `ERP/Produktion/ProdAuftrag/${webEventResult.IdProdAuftrag}`;\n      }\n\n      if (navigationUrl) {\n        if (ctrlKeyPressed) {\n          this.locationService.openWindow(navigationUrl);\n        } else {\n          this.locationService.goTo({\n            url: navigationUrl,\n            clearStack: false\n          });\n        }\n      }\n    }\n  }\n  doArtikelBestellenUndVersendenCommand: ICommandData = {\n    id: \"doArtikelBestellenAndVersenden\",\n    icon: \"plus-circle\",\n    idCategory: \"bestellvorschlag\",\n    sortIndex: 998,\n    title: \"bestellvorschlag.artikel_bestellen_und_versenden\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellvorschlagGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnBVArtikelBestellenEvent({\n        IdBestellvorschlagList: selectedKeys,\n        DoAbschliessen: true\n      });\n\n      if (selectedKeys.length === 0) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.kein_artikel_ausgewaehlt\"), \"error\", 3000);\n        return;\n      }\n\n      const webEventResult: OnBVArtikelBestellen = await this.webEvent.execute(webEvent, true);\n      \n      await this.asyncService.convertToPromise(grid.instance.deselectAll());\n      grid.instance.refresh();\n    }\n  }\n  doArtikelIgnorierenCommand: ICommandData = {\n    id: \"doArtikelIgnorieren\",\n    icon: \"ban\",\n    idCategory: \"bestellvorschlag\",\n    sortIndex: 999,\n    title: \"bestellvorschlag.artikel_ignorieren\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellvorschlagGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnBVArtikelIgnorierenEvent({\n        IdBestellvorschlagList: selectedKeys\n      });\n\n      if (selectedKeys.length === 0) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.kein_artikel_ausgewaehlt\"), \"error\", 3000);\n        return;\n      }\n\n      const webEventResult: OnBVArtikelIgnorieren = await this.webEvent.execute(webEvent, true);\n      \n      await this.asyncService.convertToPromise(grid.instance.deselectAll());\n      grid.instance.refresh();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject, TemplatingEngine, TaskQueue\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  CommandService,\n  DefaultCommandsService,\n  PopupInfoService,\n  SelectItemService,\n  ToolbarService,\n  ValidationService,\n  SettingService\n} from \"../services/export\";\nimport {\n  DataSourceService,\n  GlobalizationService,\n  LocalizationService,\n  RestService\n} from \"../../base/services/export\";\nimport {\n  BaseWidgetCreatorService\n} from \"./base-widget-creator-service\";\nimport {\n  ICommandData,\n  IUpdateablePopupOptions\n} from \"../interfaces/export\";\nimport * as WidgetOptions from \"../widget-options/export\";\nimport * as DxLoader from \"../../dx/dx-loader\";\nimport { HtmlEditorService } from '../services/html-editor-service';\n\n@autoinject\nexport class SimpleWidgetCreatorService {\n  constructor(\n    private baseWidgetCreator: BaseWidgetCreatorService,\n    private dataSource: DataSourceService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private toolbar: ToolbarService,\n    private defaultCommands: DefaultCommandsService,\n    private validation: ValidationService,\n    private selectItem: SelectItemService,\n    private popupInfo: PopupInfoService,\n    private command: CommandService,\n    private setting: SettingService,\n    private templatingEngine: TemplatingEngine,\n    private taskQueue: TaskQueue,\n    private htmlEditorService: HtmlEditorService\n  ) { }\n\n  addAccordion(form: FormBase, options: WidgetOptions.IAccordionOptions) {\n    this.baseWidgetCreator.createWidgetOptions(form, options);\n  }\n  addCalendar(form: FormBase, options: WidgetOptions.ICalendarOptions) {\n    this.createEditorOptions(form, options);\n  }\n  addCheckBox(form: FormBase, options: WidgetOptions.ICheckBoxOptions) {\n    const editorOptions: DevExpress.ui.dxCheckBoxOptions = this.createEditorOptions(form, options);\n\n    if (this.setting.instance.IsLabelBeforeEditor) {\n      editorOptions.text = \"        \";\n    } else {\n      editorOptions.text = this.localization.translateOnce(options.caption, form.scopeContainer);\n    }\n\n    editorOptions;\n  }\n  addColorBox(form: FormBase, options: WidgetOptions.IColorBoxOptions) {\n    const editorOptions: DevExpress.ui.dxColorBoxOptions = this.createEditorOptions(form, options);\n\n    if (options.editAlphaChannel) {\n      editorOptions.editAlphaChannel = options.editAlphaChannel;\n    }\n\n    editorOptions;\n  }\n  addDateBox(form: FormBase, options: WidgetOptions.IDateBoxOptions) {\n    const editorOptions: DevExpress.ui.dxDateBoxOptions = this.createEditorOptions(form, options);\n\n    if (options.min) {\n      editorOptions.min = options.min;\n    } else {\n      editorOptions.min = new Date(1800, 0, 1);\n    }\n\n    if (options.max) {\n      editorOptions.max = options.max;\n    }\n    if (options.format) {\n      editorOptions.displayFormat = this.globalization.getFormatterParser(options.format);\n\n      switch (options.format.toLowerCase()) {\n        case \"t\": {\n          editorOptions.type = \"time\";\n          break;\n        }\n        case \"g\": {\n          editorOptions.type = \"datetime\";\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n    }\n  }\n  addCommand(form: FormBase, options: WidgetOptions.ICommandElementOptions) {\n    let command: ICommandData;\n\n    if (options.binding.dataContext) {\n      command = form.commandServerData[`${options.binding.dataContext};${options.binding.bindTo}`];\n    } else {\n      command = form.binding.evaluate(form.scope, options.binding.bindToFQ);\n    }\n\n    const buttonOptions: DevExpress.ui.dxButtonOptions = {};\n    buttonOptions.text = this.localization.translateOnce(command.title, form.scopeContainer);\n    buttonOptions.hint = this.localization.translateOnce(command.tooltip, form.scopeContainer);\n    buttonOptions.width = \"100%\";\n    buttonOptions.onClick = (a: any) => {\n      if (typeof command.execute === \"function\") {\n        command.execute({\n          event: a.event\n        });\n      } else if (typeof command.execute === \"string\") {\n        form.binding.evaluate(form.scope, command.execute);\n      } else {\n        throw new Error();\n      }\n    };\n\n    form[options.options.optionsName] = buttonOptions;\n  }\n  addFileUploaderWithViewer(form: FormBase, options: WidgetOptions.IFileUploaderWithViewerOptions) {\n    const widgetOptions = this.createEditorOptions(form, options);\n\n    widgetOptions.acceptType = options.acceptType;\n    widgetOptions.acceptTypeEnum = options.acceptTypeEnum;\n    widgetOptions.caption = options.caption;\n    widgetOptions.height = options.height;\n    widgetOptions.iconDownload = options.iconDownload;\n    widgetOptions.iconDownloadExpression = options.iconDownloadExpression;\n    widgetOptions.placeholderIcon = options.placeholderIcon;\n    widgetOptions.placeholderIconExpression = options.placeholderIconExpression;\n    widgetOptions.placeholderImage = options.placeholderImage;\n    widgetOptions.placeholderImageExpression = options.placeholderImageExpression;\n    widgetOptions.placeholderImageText = options.placeholderImageText;\n    widgetOptions.showViewer = options.showViewer;\n    widgetOptions.tooltip = options.tooltip;\n    widgetOptions.maxFileSizeMB = options.maxFileSizeMB;\n    widgetOptions.caption = options.caption;\n    widgetOptions.showToolbar = options.showToolbar;\n    widgetOptions.showClearButton = options.showClearButton;\n\n    //Werte aus erstellten Options nehmen, da diese ggf. erweitert wurden\n    widgetOptions.isDisabled = widgetOptions.disabled;\n    if (widgetOptions.bindingOptions.disabled != void (0)) {\n      widgetOptions.isDisabledExpression = widgetOptions.bindingOptions.disabled;\n    }\n\n    widgetOptions.isReadOnly = widgetOptions.readOnly;\n    if (widgetOptions.bindingOptions.readOnly != void (0)) {\n      widgetOptions.isReadOnlyExpression = widgetOptions.bindingOptions.readOnly;\n    }\n  }\n  addHtmlEditor(form: FormBase, options: WidgetOptions.IHtmlEditorOptions) {\n    const editorOptions: DevExpress.ui.dxHtmlEditorOptions = this.createEditorOptions(form, options);\n    this.htmlEditorService.configureHtmlEditor(form.scopeContainer, options, editorOptions);\n  }\n  addInclude(form: FormBase, options: WidgetOptions.IIncludeOptions) {\n  }\n  addLookup(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    const editorOptions: DevExpress.ui.dxLookupOptions = this.createEditorOptions(form, options);\n    const selectItem = this.selectItem.getSelectItem(options.idSelect);\n\n    this.addDataExpressionOptions(form, options, editorOptions, selectItem);\n\n    if (editorOptions.closeOnOutsideClick == void (0)) {\n      editorOptions.closeOnOutsideClick = true;\n    }\n\n    editorOptions.title = this.localization.translateOnce(\"forms.lookup_selectItem\");\n\n    if (selectItem.searchMode) {\n      editorOptions.searchMode = <any>selectItem.searchMode;\n    }\n\n    if (selectItem.titleTemplateName) {\n      editorOptions.titleTemplate = selectItem.titleTemplateName;\n    }\n    if (selectItem.fieldTemplateName) {\n      editorOptions.fieldTemplate = selectItem.fieldTemplateName;\n    }\n    if (selectItem.itemTemplateName) {\n      editorOptions.itemTemplate = selectItem.itemTemplateName;\n    }\n  }\n  addNumberBox(form: FormBase, options: WidgetOptions.INumberBoxOptions) {\n    const editorOptions: DevExpress.ui.dxNumberBoxOptions = this.createEditorOptions(form, options);\n\n    if (options.format) {\n      editorOptions.format = this.globalization.getNumberFormat(options.format);\n    }\n    if (options.showClearButton) {\n      editorOptions.showClearButton = true;\n    }\n    if (options.showSpinButtons) {\n      editorOptions.showSpinButtons = true;\n    }\n    if (options.max != void (0)) {\n      editorOptions.max = options.max;\n    }\n    if (options.min != void (0)) {\n      editorOptions.min = options.min;\n    }\n    if (options.step) {\n      editorOptions.step = options.step;\n    }\n  }\n  addPopover(form: FormBase, options: WidgetOptions.IPopoverOptions) {\n    const widgetOptions: DevExpress.ui.dxPopoverOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    widgetOptions.contentTemplate = \"contentTemplate\";\n\n    if (options.caption) {\n      widgetOptions.title = this.localization.translateOnce(options.caption);\n    }\n  }\n  addPopup(form: FormBase, options: WidgetOptions.IPopupOptions, registerPopupInfo: boolean = true) {\n    const widgetOptions: DevExpress.ui.dxPopupOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n    const idToolbar = `${options.id}Toolbar`;\n\n    widgetOptions.showCloseButton = false;\n    widgetOptions.contentTemplate = \"contentTemplate\";\n    widgetOptions.titleTemplate = (container: Element) => {\n\n      const toolbar = document.createElement(\"toolbar\");\n      toolbar.setAttribute(\"options.bind\", idToolbar);\n      container.appendChild(toolbar);\n\n      const view = this.templatingEngine.enhance({\n        element: toolbar,\n        bindingContext: form.scopeContainer.scope.bindingContext,\n        overrideContext: form.scopeContainer.scope.overrideContext\n      });\n\n      const dxEventOn: any = DevExpress.events.on;\n      dxEventOn(<any>toolbar, \"dxremove\", () => {\n        view.unbind();\n        view.detached();\n      });\n    };\n\n    let onInitialized = widgetOptions.onInitialized;\n\n    widgetOptions.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n      }\n      onInitialized = null;\n\n      const component = <DevExpress.ui.dxPopup>e.component;\n      if (registerPopupInfo) {\n\n      }\n      component.on(\"showing\", c => {\n        const content: Element = component.content();\n        content.parentElement.classList.add(\"t--popup\");\n\n        if (registerPopupInfo) {\n          this.popupInfo.onShowPopup({\n            owner: form,\n            popup: c.component\n          });\n        }\n      });\n      component.on(\"hidden\", c => {\n        if (registerPopupInfo) {\n          this.popupInfo.onHidePopup(c.component);\n        }\n      });\n    };\n\n    if (options.height) {\n      widgetOptions.height = options.height;\n    }\n    if (options.width) {\n      widgetOptions.width = options.width;\n    }\n    widgetOptions.maxHeight = \"100%\";\n    widgetOptions.maxWidth = \"100%\";\n\n    const commands: ICommandData[] = [];\n    if (options.showCloseButton == void (0) || options.showCloseButton == true) {\n      commands.push(this.defaultCommands.getClosePopupCommand());\n    }\n\n    commands.push(...options.commands.map(c => {\n      const cmd = form.binding.evaluate(form.scope, c.binding.bindToFQ);\n      if (!cmd) {\n        throw new Error(`No command for ${c.binding.bindToFQ} found`);\n      }\n\n      return cmd;\n    }));\n\n    form[idToolbar] = this.toolbar.createToolbarOptions(\n      form.scopeContainer,\n      options.caption,\n      commands\n    );\n  }\n  addRadioGroup(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    const editorOptions: DevExpress.ui.dxRadioGroupOptions = this.createEditorOptions(form, options);\n    const selectItem = this.selectItem.getSelectItem(options.idSelect);\n\n    this.addDataExpressionOptions(form, options, editorOptions, selectItem);\n\n    if (selectItem.itemTemplateName) {\n      editorOptions.itemTemplate = selectItem.itemTemplateName;\n    }\n  }\n  addSelectBox(form: FormBase, options: WidgetOptions.ISelectOptions) {\n    const editorOptions: DevExpress.ui.dxSelectBoxOptions = this.createEditorOptions(form, options);\n    const selectItem = this.selectItem.getSelectItem(options.idSelect);\n\n    editorOptions.searchEnabled = true;\n    editorOptions.searchExpr = selectItem.displayMember;\n    editorOptions.showClearButton = true;\n\n    if (selectItem.searchMode) {\n      editorOptions.searchMode = <any>selectItem.searchMode;\n    }\n\n    this.addDataExpressionOptions(form, options, editorOptions, selectItem);\n\n    if (selectItem.fieldTemplateName) {\n      editorOptions.fieldTemplate = selectItem.fieldTemplateName;\n    }\n    if (selectItem.itemTemplateName) {\n      editorOptions.itemTemplate = selectItem.itemTemplateName;\n    }\n  }\n  addTab(form: FormBase, options: WidgetOptions.ITabOptions) {\n    const tabOptions: DevExpress.ui.dxTabsOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    let component: DevExpress.ui.dxTabs;\n    tabOptions.onInitialized = (e) => {\n      component = <DevExpress.ui.dxTabs>e.component;\n    }\n\n    tabOptions.items = [];\n    const propSelected = `${options.id}Selected`;\n    tabOptions.bindingOptions[\"selectedIndex\"] = propSelected;\n\n    options.pages.forEach((page, index) => {\n      const pageOptions = {\n        text: this.localization.translateOnce(page.caption, form.scopeContainer),\n        visible: true,\n        __options: page,\n        __index: index\n      };\n\n      if (page.if) {\n        form.binding.observe({\n          scopeContainer: form.scopeContainer,\n          expression: page.if,\n          callback: (newValue) => {\n            if (component) {\n              component.option(`items[${index}].visible`, newValue);\n            }\n\n            pageOptions.visible = newValue;\n\n            if ((!newValue && form[`${options.id}Selected`] == index)\n              || (newValue && form[`${options.id}Selected`] == -1)) {\n              this.taskQueue.queueMicroTask(() => {\n                //Prüfen, welchen Tab wird jetzt anzeigen, da aktueller nicht mehr sichtbar ist ...\n                for (let p of tabOptions.items) {\n                  if (!p.visible) {\n                    continue;\n                  }\n\n                  form[`${options.id}Selected`] = p.__index;\n                  break;\n                }\n\n                if (form[`${options.id}Selected`] == index) {\n                  form[`${options.id}Selected`] = -1;\n                }\n              });\n            }\n          }\n        });\n\n        pageOptions.visible = form.binding.evaluate(form.scope, page.if);\n      }\n\n      tabOptions.items.push(pageOptions);\n    });\n\n    const firstVisible = tabOptions.items.find(c => c.visible);\n    if (firstVisible) {\n      form[propSelected] = firstVisible.__index;\n    } else {\n      form[propSelected] = -1;\n    }\n\n    const callOnActivate = (e) => {\n      if (!e.addedItems || e.addedItems.length === 0) {\n        return;\n      }\n\n      const page = e.addedItems[0];\n      if (!page || !page.__options || !page.__options.onActivated) {\n        return;\n      }\n\n      form.binding.evaluate(form.scope, page.__options.onActivated);\n    }\n    const checkGridInitialize = (e) => {\n      const index = e.component.option(\"selectedIndex\");\n      const name = `${options.id}TabPage${index}`;\n\n      if (!form[name]) {\n        return;\n      }\n\n      const element: Element = form[name];\n      const attr = element.getAttribute(\"data-tab-page-activated\");\n      if (attr == \"true\") {\n        return;\n      }\n\n      element.setAttribute(\"data-tab-page-activated\", \"true\");\n      const children = Array.from(element.querySelectorAll(\".dx-widget > .dx-datagrid\"));\n      for (let i = 0; i < children.length; i++) {\n        const gr = <HTMLElement>children[i];\n        let parent = gr.parentElement;\n\n        while (parent != null && parent != element) {\n          if (parent.getAttribute(\"data-tab-page-activated\") == \"false\") {\n            return;\n          }\n          parent = parent.parentElement;\n        }\n\n        DxLoader.getInstance(\"dxDataGrid\", gr.parentElement)\n          .updateDimensions();\n      }\n    }\n\n    tabOptions.onSelectionChanged = (e) => {\n      callOnActivate(e);\n\n      this.taskQueue.queueMicroTask(() => {\n        checkGridInitialize(e);\n      });\n    };\n  }\n  addTagBox(form: FormBase, options: WidgetOptions.ITagBoxOptions) {\n    const widgetOptions: DevExpress.ui.dxTagBoxOptions = this.createEditorOptions(form, options);\n    const selectItem = options.editorOptions && options.editorOptions.idSelect\n      ? this.selectItem.getSelectItem(options.editorOptions.idSelect)\n      : null;\n\n    widgetOptions.searchEnabled = true;\n    let keyProperty = \"\";\n\n    if (selectItem) {\n      widgetOptions.valueExpr = selectItem.valueMember;\n      widgetOptions.displayExpr = selectItem.displayMember;\n\n      if (selectItem.fieldTemplateName) {\n        widgetOptions.fieldTemplate = selectItem.fieldTemplateName;\n      }\n      if (selectItem.itemTemplateName) {\n        widgetOptions.itemTemplate = selectItem.itemTemplateName;\n      }\n\n      this.addDataExpressionOptions(form, options.editorOptions, widgetOptions, selectItem);\n      keyProperty = selectItem.valueMember;\n    } else {\n      widgetOptions.valueExpr = options.itemValueExpr;\n      widgetOptions.displayExpr = options.itemDisplayExpr;\n\n      const model = form.models.getInfo(options.itemDataContext);\n      \n      const dataSource = this.dataSource.createDataSource(\n        form.scopeContainer, \n        model,\n        null,\n        () => dataSource.reload());\n\n      widgetOptions.dataSource = dataSource;\n      keyProperty = model.keyProperty;\n    }\n\n    if (options.batchSelectionEnabled) {\n      widgetOptions.showSelectionControls = true;\n      widgetOptions.applyValueMode = \"useButtons\";\n    }\n\n    if (options.fieldTemplateName) {\n      widgetOptions.fieldTemplate = options.fieldTemplateName;\n    }\n    if (options.itemTemplateName) {\n      widgetOptions.itemTemplate = options.itemTemplateName;\n    }\n    if (options.tagTemplateName) {\n      widgetOptions.tagTemplate = options.tagTemplateName;\n    }\n\n    let onInitialized = widgetOptions.onInitialized;\n\n    widgetOptions.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n      }\n\n      onInitialized = null;\n\n      const component = <DevExpress.ui.dxTagBox>e.component;\n      component.on(\"selectionChanged\", scArgs => {\n        const addedItems: any[] = scArgs.addedItems;\n        const removedItems: any[] = scArgs.removedItems;\n\n        let list: any[] = form.binding.evaluate(form.scope, options.relationBinding.bindToFQ);\n\n        if (list == void (0)) {\n          list = [];\n          form.binding.assign(form.scope, options.relationBinding.bindToFQ, list);\n        }\n\n        addedItems.map(c => c).forEach(c => {\n          const indexOf1 = removedItems.findIndex(d => c[keyProperty] == d[keyProperty]);\n          if (indexOf1 < 0) {\n            return;\n          }\n\n          const indexOf2 = addedItems.findIndex(d => c[keyProperty] == d[keyProperty]);\n          addedItems.splice(indexOf2, 1);\n          removedItems.splice(indexOf1, 1);\n        });\n\n        addedItems.forEach(c => {\n          const exists = list.some(d => d[options.relationProperty] == c[keyProperty]);\n          if (exists) {\n            return;\n          }\n\n          const newObj = {};\n          newObj[options.relationProperty] = c[keyProperty];\n          list.push(newObj);\n        });\n        removedItems.forEach(c => {\n          const existsList = list.filter(d => d[options.relationProperty] == c[keyProperty]);\n\n          existsList.forEach(d => {\n            const index = list.indexOf(d);\n            list.splice(index, 1);\n          })\n        });\n      });\n    }\n\n    form.models.onLoaded.register(a => {\n      if (a.model.id !== options.dataContext) {\n        return;\n      }\n\n      const list: any[] = form.binding.evaluate(form.scope, options.relationBinding.bindToFQ)\n        || [];\n\n      const data = list.map(c => c[options.relationProperty])\n        .filter(c => c != void (0));\n\n      if (form[options.id]) {\n        form[options.id].setOption({\n          value: data\n        });\n      } else {\n        widgetOptions.value = data;\n      }\n\n      return Promise.resolve();\n    });\n  }\n  addTextBox(form: FormBase, options: WidgetOptions.ITextBoxOptions) {\n    const editorOptions: DevExpress.ui.dxTextBoxOptions = this.createEditorOptions(form, options);\n\n    if (options.maxLength) {\n      editorOptions.maxLength = options.maxLength;\n    }\n    if (options.mode) {\n      editorOptions.mode = <any>options.mode;\n    }\n    if (options.useMaskedValue != void (0)) {\n      editorOptions.useMaskedValue = options.useMaskedValue;\n    }\n    if (options.mask) {\n      editorOptions.mask = options.mask;\n    }\n    if (options.maskChar) {\n      editorOptions.maskChar = options.maskChar;\n    }\n    if (editorOptions.mode == \"password\" && form.id.toLowerCase().indexOf(\"login\") < 0) {\n      if (editorOptions.inputAttr == void(0)) {\n        editorOptions.inputAttr = {};\n      }\n      editorOptions.inputAttr[\"autocomplete\"] = \"new-password\";\n    }\n  }\n  addTextArea(form: FormBase, options: WidgetOptions.ITextAreaOptions) {\n    const editorOptions: DevExpress.ui.dxTextAreaOptions = this.createEditorOptions(form, options);\n\n    if (options.maxLength) {\n      editorOptions.maxLength = options.maxLength;\n    }\n\n    if (options.height) {\n      editorOptions.height = options.height;\n    }\n  }\n  addValidationGroup(form: FormBase, options: WidgetOptions.IValidationGroupOptions) {\n    const validationOptions: DevExpress.ui.dxValidationGroupOptions = {};\n\n    form[options.options.optionsName] = validationOptions;\n\n    form.onValidating.register(r => {\n      const widget = form[options.id];\n      if (!widget) {\n        return Promise.resolve();\n      }\n\n      const groupConfig = DevExpress.validationEngine.getGroupConfig(widget.instance);\n      if (groupConfig === undefined) {\n        return Promise.resolve();\n      }\n\n      const instance: DevExpress.ui.dxValidationGroup = widget.instance;\n\n      const result = instance.validate();\n\n      if (result.isValid) {\n        return Promise.resolve(r.validationResult);\n      } else {\n        r.validationResult.isValid = false;\n        r.validationResult.messages.push(...result\n          .brokenRules\n          .map(c => c.message));\n\n        return Promise.resolve();\n      }\n    });\n  }\n\n  updatePopupOptions(updateablePopupOptions: IUpdateablePopupOptions) {\n    const options = updateablePopupOptions.options;\n\n    var commands: ICommandData[] = [];\n    commands.push(this.defaultCommands.getClosePopupCommand());\n    commands.push(...updateablePopupOptions.commands);\n\n    options.showCloseButton = false;\n    options.titleTemplate = (container: Element) => {\n      const toolbar = document.createElement(\"toolbar\");\n      toolbar.setAttribute(\"options.bind\", updateablePopupOptions.idToolbar);\n\n      container.appendChild(toolbar);\n\n      const view = this.templatingEngine.enhance({\n        element: toolbar,\n        bindingContext: updateablePopupOptions.scopeContainer.scope.bindingContext,\n        overrideContext: updateablePopupOptions.scopeContainer.scope.overrideContext\n      });\n\n      const dxEventOn: any = DevExpress.events.on;\n      dxEventOn(<any>toolbar, \"dxremove\", () => {\n        view.unbind();\n        view.detached();\n      });\n    };\n    options.contentTemplate = \"contentTemplate\";\n\n    let onInitialized = options.onInitialized;\n    let component: DevExpress.ui.dxPopup;\n    options.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n      }\n\n      onInitialized = null;\n\n      component = <DevExpress.ui.dxPopup>e.component;\n      component.on(\"showing\", c => {\n        const content: Element = c.component.content();\n        content.parentElement.classList.add(\"t--popup\");\n\n        this.popupInfo.onShowPopup({\n          owner: null,\n          popup: c.component,\n          executeCommand: (idCommand) => {\n            const command = commands.find(c => c.id == idCommand);\n            if (!command) {\n              return;\n            }\n\n            this.command.execute(\n              updateablePopupOptions.scopeContainer.scope,\n              command, {\n                event: null\n              }\n            );\n          }\n        });\n      });\n      component.on(\"hidden\", c => {\n        this.popupInfo.onHidePopup(c.component);\n      });\n    }\n\n    updateablePopupOptions.scopeContainer.scope.bindingContext[updateablePopupOptions.idToolbar] = this.toolbar.createToolbarOptions(\n      updateablePopupOptions.scopeContainer,\n      updateablePopupOptions.caption,\n      commands\n    );\n  }\n\n  private createEditorOptions(form: FormBase, options: WidgetOptions.IEditorOptions): any {\n    const editorOptions: DevExpress.ui.EditorOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    editorOptions[\"onValueChangedByUser\"] = (e) => {\n      form.onEditorValueChanged.fire({\n        binding: options.binding,\n        value: e.value\n      });\n    };\n\n    let onInitialized = editorOptions.onInitialized;\n    editorOptions.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n      }\n\n      onInitialized = null;\n\n      const component = <DevExpress.ui.Editor>e.component;\n      component.on(\"valueChanged\", (c) => {\n        if (options.onValueChanged) {\n          form.binding.execute(form.scope, options.onValueChanged, c);\n        }\n      });\n    };\n\n    if (options.binding && options.binding.bindToFQ) {\n      editorOptions.bindingOptions[\"value\"] = options.binding.bindToFQ;\n    }\n\n    if (options.isReadOnly) {\n      editorOptions.readOnly = true;\n    } else if (options.binding && options.binding.dataContext) {\n      const model = form.models.getInfo(options.binding.dataContext, false);\n      let readOnlyExpression = options.isReadOnlyExpression;\n\n      if (model && model.modificationInfoEnabled) {\n        const modExpression = `!models.data.${model.id}.CanSave`;\n\n        if (readOnlyExpression == void (0)) {\n          readOnlyExpression = modExpression;\n        } else {\n          readOnlyExpression = `(${readOnlyExpression}) || (${modExpression})`;\n        }\n      }\n\n      if (readOnlyExpression != void (0)) {\n        editorOptions.bindingOptions[\"readOnly\"] = readOnlyExpression;\n      }\n    } else if (options.isReadOnlyExpression) {\n      editorOptions.bindingOptions[\"readOnly\"] = options.isReadOnlyExpression;\n    }\n\n    if (options.placeholder) {\n      (<any>editorOptions).placeholder = this.localization.translateOnce(options.placeholder, form.scopeContainer);\n    }\n\n    editorOptions[\"validators\"] = options.validationRules.map(v => {\n      if (v.binding) {\n        return form.binding.evaluate(form.scope, v.binding.bindToFQ);\n      } else if (v.item) {\n        return this.validation.getValidator(\n          form.scopeContainer,\n          v.item.type,\n          options.caption,\n          v.item.parameters\n        );\n      } else {\n        throw new Error(\"No binding/item specified\");\n      }\n    });\n\n    return editorOptions;\n  }\n  private addDataExpressionOptions(form: FormBase, options: WidgetOptions.ISelectOptions, current: DevExpress.ui.DataExpressionMixinOptions, selectItem: WidgetOptions.ISelectItem): void {\n    const observerCallback = (dataSourceOptions) => {\n      const observers = this.dataSource.getElementsToObserve(dataSourceOptions);\n      if (observers.length > 0) {\n        const editorOptions: DevExpress.ui.EditorOptions = current;\n\n        let onInitialized = editorOptions.onInitialized;\n        editorOptions.onInitialized = (e) => {\n          if (onInitialized) {\n            onInitialized(e);\n          }\n\n          onInitialized = null;\n\n          form.onEditorValueChanged.register(evcArgs => {\n            if (evcArgs.binding) {\n              if (observers.some(c => c === evcArgs.binding.bindToFQ)) {\n                form.binding.assign(form.scope, options.binding.bindToFQ, null);\n\n                //Event manuell auslösen (wurde ja nicht direkt durch Benutzer gemacht)\n                form.onEditorValueChanged.fire({\n                  binding: options.binding,\n                  value: null\n                });\n              }\n            }\n\n            return Promise.resolve();\n          });\n        }\n      }\n    };\n    \n    const dataSource = this.selectItem.createSelectDataSource(\n      form.scopeContainer,\n      selectItem,\n      options.filter,\n      options.filters,\n      options.customs,\n      observerCallback);\n\n    current.dataSource = dataSource;\n    current.valueExpr = selectItem.valueMember;\n    current.displayExpr = selectItem.displayMember;\n  }\n}\n","import {\n  autoinject,\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  IPopupInfo\n} from \"../interfaces/popup-info\";\nimport { FormBase } from '../classes/form-base';\n\n@autoinject\nexport class PopupInfoService {\n  private _popupStack: IPopupInfo[] = [];\n\n  constructor(\n    private _eventAggregator: EventAggregator\n  ) {\n    this._eventAggregator.subscribe(\"window:beforeunload\", e => {\n      e.hasChangedData = e.hasChangedData || this.hasPopupWithUnchangedData();\n    });\n    this._eventAggregator.subscribe(\"popup-info:popup-open\", e => {\n      e.isOpen = this.isPopupOpen();\n    });\n    this._eventAggregator.subscribe(\"shortcut:execute\", e => {\n      if (this.isPopupOpen()) {\n        const lastPopupInfo = this.getCurrentPopup();\n\n        if (lastPopupInfo.executeCommand) {\n          lastPopupInfo.executeCommand(e.idCommand);\n        }\n      }\n    });\n  }\n\n  onShowPopup(info: IPopupInfo) {\n    if (info.popup) {\n      const content = info.popup.content();\n\n      //Muss 2x ausgeführt werden ...\n      //Das erste Mal wegen der Bestimmung der Höhe\n      //Das zweite Mal, wenn danach die Breite des Popups von DX noch angepasst wurde\n      this._eventAggregator.publish(\"grid:check-class\", {\n        element: content\n      });\n\n      const handler = (() => {\n        this._eventAggregator.publish(\"grid:check-class\", {\n          element: content\n        });\n\n        info.popup.off(\"positioned\", handler);\n      }).bind(this);\n      info.popup.on(\"positioned\", handler);\n    }\n\n    this._popupStack.push(info);\n  }\n  onHidePopup(popup: DevExpress.ui.dxPopup) {\n    const popupInfoIndex = this._popupStack.findIndex(c => c.popup == popup);\n\n    if (popupInfoIndex < 0) {\n      console.log(\"Popup not registered\");\n      throw new Error(\"Popup not registered\");\n    }\n\n    this._popupStack.splice(popupInfoIndex, 1);\n  }\n\n  getCurrentPopup(): IPopupInfo {\n    if (this._popupStack.length == 0) {\n      return;\n    }\n\n    return this._popupStack[this._popupStack.length - 1];\n  }\n  getPopup(form: FormBase): IPopupInfo {\n    return this._popupStack.find(p => p.form == form);\n  }\n\n  async closeCurrentPopup(): Promise<boolean> {\n    const popupInfo = this.getCurrentPopup();\n    if (!popupInfo) {\n      return;\n    }\n\n    if (popupInfo.handleChangedData) {\n      const canDeactivate = await popupInfo.handleChangedData();\n      if (!canDeactivate) {\n        return false;\n      }\n    }\n\n    popupInfo.popup.hide();\n    return true;\n  }\n  async closeAllPopups(): Promise<any> {\n    while (this._popupStack.length > 0) {\n      const result = await this.closeCurrentPopup();\n\n      if (!result) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  isPopupOpen() {\n    return this._popupStack.length > 0;\n  }\n\n  private hasPopupWithUnchangedData(): boolean {\n    for (let item of this._popupStack) {\n      if (!item.hasChangedData) {\n        continue;\n      }\n\n      if (item.hasChangedData()) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  IKalkulationRefreshOptions\n} from \"../../../interfaces/kalkulation-refresh-options\";\nimport {\n  KalkulationRefreshService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class KundenreklamationspositionEditUtils {\n  constructor(\n    private _kalkulationRefreshService: KalkulationRefreshService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  onReloadStuecklistenkomponentenlist: boolean = false;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Kundenreklamationsposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeVerpEH\"\n    };\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"kundenreklamationspositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    this.form.models.onSaved.register(async (e) => {\n      if (this.form.models.data.$m_Kundenreklamationsposition.IsSetartikel) {\n        if (this.onReloadStuecklistenkomponentenlist) {\n          this.onReloadStuecklistenkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n      }\n    });\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Kundenreklamationsposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Kundenreklamationsposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistenkomponentenlist = true;\n    }\n  }\n\n\n  onErsatzartikelChanged(ev: CustomEvent) {\n    const data = this.form.models.data.$m_Kundenreklamationsposition;\n\n    if (ev.detail.value && data.ErsatzartikelPreisbasis == void (0)) {\n      data.ErsatzartikelPreisbasis = 1;\n    } else if (!ev.detail.value && data.ErsatzartikelPreisbasis != void (0)) {\n      data.ErsatzartikelPreisbasis = null;\n    }\n  }\n}\n","import {\n  autoinject,\n  transient,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  AuthorizationService, LocalizationService\n} from \"../../../base/export\";\nimport { \n  FormBase,\n  ICommandData\n} from \"../../../forms/export\";\nimport { LocationService } from '../../../base/services/location-service';\nimport { HistoryService } from '../../../forms/services/history-service';\n\n@autoinject\n@transient()\nexport class LoginFuncs {\n  private form: FormBase;\n  \n  constructor(\n    private _authorizationService: AuthorizationService,\n    private _historyService: HistoryService,\n    private _locationService: LocationService,\n    private _localization: LocalizationService,\n    private _taskQueue: TaskQueue\n  ) { }\n\n  goToUrlAfterLogin: string;\n  showTwoFactorAuth = false;\n\n  loginCommand: ICommandData = {\n    id: \"$login\",\n    title: \"login-form-funcs.anmelden_caption\",\n    execute: async (e: any) => {\n      const event = e && e.event\n        ? e.event\n        : (e.preventDefault ? e : null);\n\n      if (event) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n\n      if (!this.form.models.data.$m_login.Username || !this.form.models.data.$m_login.Password) {\n        DevExpress.ui.notify(this._localization.translateOnce(\"login-form-funcs.benutzer_passwort_angeben\"), \"error\", 3000);\n        return;\n      }\n\n      const r = await this._authorizationService.login(this.form.models.data.$m_login);\n\n      if (r.isLoggedIn && this.goToUrlAfterLogin) {\n        this._historyService.pipelineUrl = this.goToUrlAfterLogin;\n      } else if (r.needsTwoFactorAuthKey) {\n        this.showTwoFactorAuth = true;\n\n        this._taskQueue.queueTask(() => {\n          const keyInput = this.form[\"twoFactorKey\"];\n          if (keyInput && keyInput.instance) {\n            keyInput.instance.focus();\n          }\n        });\n      }\n    }\n  };\n  \n  forgotPasswordCommand: ICommandData = {\n      id: \"$reset\",\n      title: \"login-form-funcs.vergessen_caption\",\n      execute: () => {\n        this._locationService.goTo({\n          url: \"reset-password\",\n          clearStack: true\n        });\n      }\n  };\n\n  goBackToLoginCommand: ICommandData = {\n    id: \"$reset\",\n    title: \"login-form-funcs.zurueck_zu_login\",\n    execute: () => {\n      this.showTwoFactorAuth = false;\n    }\n};\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.goToUrlAfterLogin = this._historyService.lastRequestUrl;\n\n    form.models.data.$m_login = {\n      StayLoggedOn: false\n    };\n  }\n}\n","export enum TicketStatus{\n  Offen = 0,\n  InBearbeitungTIP = 1,\n  ErledigtTIP = 2,\n  ErledigtKunde = 4,\n  WarteAufKunde = 5,\n  Doppelt = 6,\n  MitNaechstemUpdate = 7\n}\n","export class ElementService {\n  constructor() {}\n\n  addToContentReady(component: DevExpress.ui.Widget, callback: {(): void}) {\n    const c: any = component;\n\n    c._onContentReadyQueue = c._onContentReadyQueue || [];\n    c._onContentReadyQueue.push(callback);\n  }\n  prepareContentReady(options: DevExpress.ui.WidgetOptions) {\n    const onContentReadyOld = options.onContentReady;\n\n    options.onContentReady = (e) => {\n      if (onContentReadyOld) {\n        onContentReadyOld(e);\n      }\n\n      const c: any = e.component;\n      if (!c._onContentReadyQueue) {\n        return;\n      }\n\n      while (c._onContentReadyQueue.length > 0) {\n        c._onContentReadyQueue[0]();\n        c._onContentReadyQueue.splice(0, 1);\n      }\n    }\n  }\n\n  addOnInitialized(options: DevExpress.ui.WidgetOptions, callback: {(e: any): void}) {\n    const onInitializedOld = options.onInitialized;\n\n    options.onInitialized = (e) => {\n      if (onInitializedOld) {\n        onInitializedOld(e);\n      }\n\n      callback(e);\n    }\n  }\n}","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  OnLagerkorrekturVerbuchenEvent\n} from \"../../../../framework-data/events\";\n\nimport {\n  StatusService\n} from \"../../../services/export\";\nimport {\n  Statustyp\n} from \"../../../enumerations/export\"\n\n@autoinject\n@transient()\nexport class LagerkorrekturEditUtils {\n  constructor(\n    private status: StatusService,\n    private webEvent: WebEventService,\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n    const offenStatus = this.status.getStatusByTyp(Statustyp.Offen);\n\n    form.models.onLoaded.register((args) => {\n      if (args.model.id == \"$m_Lagerkorrektur\") {\n        this.doVerbuchen.isEnabled = args.data.IdStatus == offenStatus.Id;\n      }\n\n      return Promise.resolve();\n    });\n  }\n\n  doVerbuchen: ICommandData = {\n    id: \"doVerbuchen\",\n    idCategory: \"lagerkorrektur\",\n    title: \"lagerkorrektur.verbuchen\",\n    icon: \"envelope-o\",\n    isEnabled: false,\n    execute: async () => {\n      const result = await this.form.saveIfDirty();\n      if (!result.isValid) {\n        return;\n      }\n\n      const data: any = this.form.models.data.$m_Lagerkorrektur;\n\n      this.webEvent\n        .execute(new OnLagerkorrekturVerbuchenEvent({\n          IdLagerkorrektur: data.Id\n        }), true)\n        .then(() => {\n          this.form.models.reloadAll();\n        });\n    }\n  }\n}\n","export enum Statustyp {\n  Offen = 0,\n  Erledigt = 1,\n  Automatik = 2,\n  Fehler = 3\n}\n","export enum DynFeldTyp{\n  text = 0,\n  datum = 1,\n  nummer = 2,\n  auswahlliste = 3,\n  formatiertenText = 4,\n  checkbox = 5,\n  mehrzeiligerText = 6\n}\n","export * from \"./services/export\";\n","export default __webpack_public_path__ + \"f988104f13032b2d73fb228a083c2c26.jpg\";","import { autoinject, TaskQueue, View } from \"aurelia-framework\";\n\n@autoinject\nexport class TemplatingExService {\n  constructor(\n    private taskQueue: TaskQueue\n  ) {}\n\n  waitForViewModel(item: any, counter: number = 1000): Promise<any> {\n    return new Promise((resolve, reject) => {\n      let index = 0;\n\n      if (item.currentViewModel) {\n        resolve(item.currentViewModel);\n      } else {\n        const queue = () => {\n          this.taskQueue.queueTask(() => {\n            index++;\n  \n            if (item.currentViewModel) {\n              resolve(item.currentViewModel);\n            } else if (index >= counter) {\n              console.log(\"currentViewModel not found\");\n              reject();\n            } else {\n              queue();\n            }\n          });\n        };\n        \n        queue();\n      }\n    });\n  }\n  destroyView(view: View) {\n    view.detached();\n    view.unbind();\n  }\n}\n","import { WebEventService } from './../../../../framework/base/services/web-event-service';\nimport { OnMahnlaufEvent, OnMahnlauf, OnMahnungenVersendenEvent, OnMahnungenVersenden } from './../../../../framework-data/events';\nimport { LocalizationService } from './../../../../framework/base/services/localization-service';\nimport { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport { FormBase } from './../../../../framework/forms/classes/form-base';\nimport { autoinject, transient } from 'aurelia-framework';\nimport { __await } from 'tslib';\n\n@autoinject\n@transient()\nexport class MahnungListUtils {\n  constructor(\n    private localizationService: LocalizationService,\n    private webEventService: WebEventService\n  ) { }\n\n  form: FormBase;\n\n  doMahnungErstellen: ICommandData = {\n    id: \"doMahnungErstellen\",\n    idCategory: \"mahnung\",\n    title: \"mahnung.mahnungen_erstellen\",\n    icon: \"plus-circle\",\n    sortIndex: 100,\n    execute: async () => {\n      const webEvent = new OnMahnlaufEvent({});\n\n      const result: OnMahnlauf = await this.webEventService.execute(webEvent);\n      if (result == void 0) {\n        return;\n      }\n      DevExpress.ui.notify(this.localizationService.translateOnce(\"mahnung.mahnung_erfolgreich_erstellt\"), \"SUCCESS\", 3000);\n    }\n  };\n\n  doMahnungenVersenden: ICommandData = {\n    id: \"doMahnungenVersenden\",\n    idCategory: \"mahnung\",\n    title: \"mahnung.mahnung_versenden\",\n    icon: \"paper-plane\",\n    sortIndex: 110,\n    execute: async () => {\n      const webEvent = new OnMahnungenVersendenEvent({});\n\n      const result: OnMahnungenVersenden = await this.webEventService.execute(webEvent);\n      if (result == void 0) {\n        return;\n      }\n      DevExpress.ui.notify(this.localizationService.translateOnce(\"mahnung.mahnung_erfolgreich_versendet\"), \"SUCCESS\", 3000);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  ProjektSearchResult\n} from \"../elements/projekt-search-result/projekt-search-result\";\nimport {\n  ISearchOptions\n} from \"../interfaces/export\";\n\n@autoinject\nexport class ProjektSearchService {\n  constructor() { }\n\n  projektSearchResult: ProjektSearchResult;\n  \n  show(callbackSuccess: { (idProjekt): void }, callbackCancel: { (): void }, options?: ISearchOptions) {\n    this.projektSearchResult.showPopup(callbackSuccess, callbackCancel, options)\n  }\n}","export default \"data:image/png;base64,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\"","import { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { LieferscheinService } from \"../../../services/lieferschein-service\";\n\n@autoinject\n@transient()\nexport class LieferscheingruppeEditUtils {\n  constructor(\n    private _asyncService: AsyncService,\n    private _lieferscheinService: LieferscheinService,\n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onDeleting.register(async (e) => {\n      if (await this._lieferscheinService.hasLieferscheingruppePositionenZugeteilt(this.form.models.data.$m_Lieferscheingruppe.Id)) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"base.sure_delete_question_gruppe\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return Promise.reject();\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class ModelUtilsService {\n  private _isDirtyProperty = \"_IsDirty\";\n\n  constructor() {}\n\n  clearDirty(modelData: any) {\n    delete modelData[this._isDirtyProperty];\n  }\n  setDirty(modelData: any) {\n    modelData[this._isDirtyProperty] = true;\n  }\n  isDirty(modelData: any): boolean {\n    return !!modelData[this._isDirtyProperty];\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  BaseWidgetCreatorService\n} from \"./base-widget-creator-service\";\nimport {\n  GlobalizationService,\n  LocalizationService\n} from \"../../base/services/export\";\nimport {\n  SelectionModeEnum\n} from \"../enums/selection-mode-enum\";\nimport {\n  EnumItemService\n} from \"../services/export\";\nimport {\n  IListViewOptions\n} from \"../elements/list-view/list-view-options\";\nimport * as WidgetOptions from \"../widget-options/export\";\nimport { ListViewPagingMode } from '../elements/list-view/list-view-paging-mode';\nimport { ListType } from '../enums/list-type-enum';\n\n@autoinject\nexport class ListViewWidgetCreatorService {\n  constructor(\n    private baseWidgetCreator: BaseWidgetCreatorService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private enumItem: EnumItemService\n  ) { }\n\n  addListView(form: FormBase, options: WidgetOptions.IListViewOptions) {\n    const listViewOptions: IListViewOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    if (options.dataModel && !options.binding.bindTo) {\n      const dataSource = this.baseWidgetCreator.createListDataSource(form, options, listViewOptions);\n      listViewOptions.dataSource = dataSource;\n    }\n    else if (options.binding.bindToFQ) {\n      const dataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n        cacheRawData: false,\n        loadMode: \"raw\",\n        load: () => {\n          return form.binding.evaluate(\n            form.scope,\n            options.binding.bindToFQ\n          ) || [];\n        }\n      }));\n      \n      dataSource.requireTotalCount(true);\n      listViewOptions.dataSource = dataSource;\n\n      form.binding.observe({\n        scopeContainer: form.scopeContainer,\n        expression: options.binding.bindToFQ,\n        callback: (newVal) => {\n          dataSource.load();\n        }\n      });\n    }\n\n    listViewOptions.groupProperty = options.groupProperty;\n\n    this.baseWidgetCreator.setListClickActions(form, options);\n    const customOptions = this.baseWidgetCreator.getCustomOptions(form, options);\n\n    if (customOptions.hasClickActions > 0) {\n      listViewOptions.hoverStateEnabled = true;\n\n      listViewOptions.onItemClick = (e) => {\n        customOptions.clickActions.forEach(item => {\n          item(e, listViewOptions.dataSource);\n        });\n\n        if ((options.selectionMode || \"none\") === \"none\") {\n          customOptions.openClickActions.forEach(item => {\n            item(e, listViewOptions.dataSource);\n          });\n        }\n      };\n    }\n\n    if (options.pagingMode) {\n      switch (options.pagingMode) {\n        case \"loadNext\": {\n          listViewOptions.pagingMode = ListViewPagingMode.loadNext;\n          break;\n        }\n        case \"paging\": {\n          listViewOptions.pagingMode = ListViewPagingMode.paging;\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n    }\n\n    if (options.height) {\n      listViewOptions.height = options.height;\n    }\n\n    if (options.itemClass) {\n      listViewOptions.itemClass = options.itemClass;\n    }\n\n    if (options.selectionMode) {\n      listViewOptions.selectionMode = this.getSelectionMode(options.selectionMode);\n    }\n\n    if (options.showPagerInfo) {\n      listViewOptions.showPagerInfo = options.showPagerInfo;\n    }\n    if (options.showReloadButton) {\n      listViewOptions.showReloadButton = options.showReloadButton;\n    }\n    if (options.useDefaultListItemStyle != void (0)) {\n      listViewOptions.useDefaultListItemStyle = options.useDefaultListItemStyle;\n    }\n\n    if (options.pageSize) {\n      if (listViewOptions.dataSource) {\n        listViewOptions.dataSource.pageSize(options.pageSize);\n      }\n\n      listViewOptions.pageSize = options.pageSize\n    }\n\n    this.baseWidgetCreator.checkListToolbar(form, options, null, ListType.ListView);\n    this.baseWidgetCreator.checkListRelationEdit(form, options);\n  }\n\n  private getSelectionMode(selectionMode: SelectionModeEnum): string {\n    switch (selectionMode) {\n      case SelectionModeEnum.Multiple:\n        return \"multiple\";\n      case SelectionModeEnum.Single:\n        return \"single\";\n      default:\n        return \"none\";\n    }\n  }\n} \n","import { autoinject } from \"aurelia-framework\";\nimport { RestService, WebEventService } from '../../framework/base/export';\nimport { OnTagCreateEvent, OnTagUpdateEvent } from '../../framework-data/events';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { EntitaetInfoService } from './entitaet-info-service';\nimport { FormBase } from '../../framework/forms/classes/form-base';\nimport * as DxLoader from \"../../framework/dx/dx-loader\";\nimport { SelectItemService } from '../../framework/forms/export';\n\n@autoinject\nexport class TagService {\n  private _tagCache = {};\n\n  constructor(\n    private _restService: RestService,\n    private _webEventService: WebEventService,\n    private _eventAggregator: EventAggregator,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _selectItemService: SelectItemService\n  ) {\n    _eventAggregator.subscribe(\"form:bind\", e => {\n      e.form.callOnBind(() => {\n        this.checkTagInjection(e.form);\n      });\n    });\n\n    _eventAggregator.subscribe(\"tag:changed\", () => {\n      this.fillTagCache();\n    });\n\n    _eventAggregator.subscribe(\"startupInfo:loaded\", () => {\n      this.fillTagCache();\n    });\n\n    this.addSelectItem();\n  }\n\n  async createTag(bezeichnung: string, entitaetFullName: string) {\n    const r = await this._webEventService.execute(new OnTagCreateEvent({\n      Bezeichnung: bezeichnung,\n      EntitaetFullName: entitaetFullName\n    }), true);\n\n    if (!r) {\n      return null;\n    }\n\n    return r.Tag;\n  }\n  async updateTag(id: number, bezeichnung: string, farbe: string) {\n    await this._webEventService.execute(new OnTagUpdateEvent({\n      IdTag: id,\n      Bezeichnung: bezeichnung,\n      Farbe: farbe\n    }), true);\n  }\n\n  getEntitaetList(idTag: number) {\n    const tag = this._tagCache[idTag];\n    if (!tag) {\n      return [];\n    }\n\n    return tag.TagZuEntitaet.map(e => e.Entitaet);\n  }\n  getTagList(entitaetFullName: string) {\n    const result = [];\n\n    for (let key in this._tagCache) {\n      const exists = this._tagCache[key].TagZuEntitaet.some(e => e.Entitaet == entitaetFullName);\n      if (!exists) {\n        continue;\n      }\n\n      result.push(this._tagCache[key]);\n    }\n\n    result.sort((a, b) => a.Bezeichnung.localeCompare(b.Bezeichnung));\n\n    return result;\n  }\n\n  getAllTagList(){\n    const result = [];\n    for (let key in this._tagCache) {\n      result.push(this._tagCache[key]);\n    }\n    \n    result.sort((a, b) => a.Bezeichnung.localeCompare(b.Bezeichnung));\n    return result;\n  }\n\n  async getTagContainer(idTagContainer: number, increaseLoadingCount: boolean = false) {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Tag/TagContainer/\".concat(idTagContainer.toString())),\n      getOptions: {\n        expand: {\n          \"TagEintraege\": null\n        }\n      },\n      increaseLoadingCount: increaseLoadingCount\n    })\n  }\n\n  async fillTagCache() {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Tag/Tag\"),\n      getOptions: {\n        expand: {\n          TagZuEntitaet: null\n        }\n      }\n    });\n\n    this._tagCache = {};\n    for (let tag of r) {\n      this._tagCache[tag.Id] = tag;\n    }\n\n    this._eventAggregator.publish(\"tag:refreshed\", {});\n  }\n\n  renderTagList(tags: string | number, addWrap: boolean):  HTMLDivElement {\n    const container = document.createElement(\"div\");\n    container.className = \"tags-grid__container\";\n\n    if (addWrap) {\n      container.className += \" tags-grid__container--wrap\"\n    }\n\n    if (!tags) {\n      tags = \"\";\n    } else if (typeof tags !== \"string\") {\n      tags = tags.toString();\n    }\n\n    const tokens = (tags || \"\").split(\"|\");\n    for (let token of tokens) {\n      const tag = this._tagCache[token.toString()];\n      if (!tag) {\n        continue;\n      }\n\n      const tagElement = document.createElement(\"div\");\n      tagElement.className = \"tags-grid__item\";\n      tagElement.innerText = tag.Bezeichnung;\n      tagElement.style.backgroundColor = tag.Farbe;\n      tagElement.style.color = \"white\";\n      container.appendChild(tagElement);\n    }\n\n    return container;\n  }\n\n  private addSelectItem() {\n    this._selectItemService.addSelectItem(\"tags\", {\n      id: \"tags\",\n      elementname: \"select-box\",\n      valueMember: \"Id\",\n      displayMember: \"Bezeichnung\",\n      action: \"ERP/Tag/Tag\",\n      columns: [\"Id\", \"Bezeichnung\"]\n    });\n  }\n  private checkTagInjection(form: FormBase) {\n    const modelWithTag = form.models\n      .getModels()\n      .filter(r => r.custom && r.custom.addTagToDataGrids && r.custom.addTagToDataGrids.length > 0);\n\n    for (let model of modelWithTag) {\n      if (!model.webApiAction) {\n        continue;\n      }\n\n      model.filters.push({\n        webApiCustomKey: \"AddTags\",\n        webApiCustomValue: \"true\"\n      });\n\n      const entitaetInfo = this._entitaetInfoService.getEntitaetInfoByWebApiAction(model.webApiAction);\n\n      for (let idDataGrid of model.custom.addTagToDataGrids) {\n        const options: DevExpress.ui.dxDataGridOptions = form[idDataGrid.concat(\"Options\")];\n        \n        const columnOptions: DevExpress.ui.dxDataGridColumn = {\n          allowSorting: false,\n          allowHeaderFiltering: true,\n          caption: \"Tags\",\n          minWidth: 100,\n          name: \"tags\",\n          cellTemplate: (e: HTMLElement, i) => {\n            const container = this.renderTagList(i.data._Tags, false);\n\n            container.style.position = \"absolute\";\n            container.style.visibility = \"none\";\n            document.body.appendChild(container);\n\n            const restElement = document.createElement(\"div\");\n            restElement.className = \"tags-grid__item--last\";\n\n            let count = 0;\n            while (container.offsetWidth > e.offsetWidth) {\n              const items = container.querySelectorAll(\".tags-grid__item\");\n              if (items.length == 0) {\n                break;\n              }\n\n              const lastChild = items[items.length - 1];\n              container.removeChild(lastChild);\n              count++;\n\n              restElement.innerText = \"+\" + count.toString();\n              if (!restElement.parentElement) {\n                container.appendChild(restElement);\n              }\n            }\n\n            document.body.removeChild(container);\n            container.style.position = \"\";\n            container.style.visibility = \"\";\n            e.appendChild(container);\n            e.style.padding = \"0\";\n          },\n          calculateFilterExpression: (value, op, target) => {\n            if (target == \"headerFilter\" || target == \"filterBuilder\") {\n              return [\"TagContainer.TagEintraege\", [\"IdTag\", value]];\n            } else if (target == \"filterRow\") {\n              return [\"TagContainer.TagEintraege\", [\"Tag.Bezeichnung\", \"contains\", value]];\n            }\n          },\n          headerFilter: {\n            dataSource: this.getTagList(entitaetInfo.FullName).map(t => {\n              return {\n                value: t.Id,\n                text: t.Bezeichnung\n              };\n            })\n          }\n        };\n\n        options.columns.push(columnOptions);\n\n        let tooltipElement: HTMLDivElement;\n        let tooltipWidget: DevExpress.ui.dxTooltip;\n\n        const onCellHoverChanged = options.onCellHoverChanged;\n        options.onCellHoverChanged = (e) => {\n          if (onCellHoverChanged) {\n            onCellHoverChanged(e);\n          }\n\n          if (!e.column || !e.column.name || !e.data || !e.data._Tags) {\n            return;\n          }\n          if (e.cellElement.querySelectorAll(\".tags-grid__item--last\").length == 0) {\n            return;\n          }\n\n          if (e.column.name == \"tags\") {\n            if (e.eventType == \"mouseover\" && e.data._Tags) {\n              tooltipElement = document.createElement(\"div\");\n              document.body.appendChild(tooltipElement);\n              tooltipWidget = DxLoader.createInstance(\"dxTooltip\", tooltipElement, <DevExpress.ui.dxTooltipOptions>{\n                contentTemplate: (ct) => {\n                  const container = this.renderTagList(e.data._Tags, true);\n                  container.style.padding = \"6px\";\n                  ct.append(container);\n                }\n              });\n\n              tooltipWidget.show(e.cellElement);\n            } else if (tooltipWidget) {\n              tooltipWidget.hide();\n              tooltipWidget.dispose();\n              tooltipWidget = null;\n\n              tooltipElement.parentElement.removeChild(tooltipElement);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","import {\n  autoinject,\n  transient,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  ICustomEventArgs\n} from \"../event-args/custom-event-args\";\nimport {\n  ObjectInfoService\n} from \"../services/object-info-service\";\n\n@autoinject\n@transient()\nexport class CustomEvent<T extends ICustomEventArgs> {\n  private delegates: { (args: T): Promise<any> }[] = [];\n  private argsQueue = [];\n  private timeoutCancel: any;\n\n  constructor(\n    private objectInfo: ObjectInfoService,\n    private taskQueue: TaskQueue) {}\n\n  waitTimeout = 0;\n  anyRegistered: boolean;  \n\n  register(action: { (args: T): Promise<any> }): { (): void } {\n    this.delegates.push(action);\n    this.anyRegistered = this.delegates.length > 0;\n\n    return () => {\n      const indexOf = this.delegates.indexOf(action);\n      if (indexOf < 0) {\n        return;\n      }\n\n      this.delegates.splice(indexOf, 1);\n      this.anyRegistered = this.delegates.length > 0;\n    }\n  }\n  fire(args: T, waitTimeout: number = null): Promise<any> {\n    waitTimeout = waitTimeout == void(0) ? this.waitTimeout : waitTimeout;\n\n    if (waitTimeout === 0) {\n      return Promise.all(this.delegates.map(item => item(args)));\n    } else {\n      for (let item of this.argsQueue) {\n        if (this.objectInfo.equal(item, args)) {\n          return;\n        }\n      }\n\n      if (this.timeoutCancel) {\n        clearTimeout(this.timeoutCancel);\n        this.timeoutCancel = null;\n      }\n\n      this.argsQueue.push(args);\n      this.timeoutCancel = setTimeout(this.fireQueue.bind(this), waitTimeout);\n    }\n  }\n  dispose() {\n    this.delegates.splice(0);\n    this.argsQueue.splice(0);\n  }\n\n  private async fireQueue() {\n    const argsQueue = this.argsQueue.slice(0);\n    this.argsQueue.splice(0, this.argsQueue.length);\n\n    argsQueue.forEach(args => {\n      this.taskQueue.queueTask(() => {\n        this.delegates.map(item => item(args));\n      });\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  CustomEvent\n} from \"../../base/export\";\nimport {\n  IModelLoadedEventArgs,\n  IModelSavedEventArgs,\n  IModelDeletedEventArgs\n} from \"../event-args/export\";\n\n@autoinject\nexport class ModelEventService {\n  constructor(\n    public onLoaded: CustomEvent<IModelLoadedEventArgs>,\n    public onSaved: CustomEvent<IModelSavedEventArgs>,\n    public onDeleted: CustomEvent<IModelDeletedEventArgs>\n  ) {}\n}","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class BenachrichtigungService {\n  constructor() {}\n\n  onIsPrioritaetCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.IsPrioritaet) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = \"#C74031\";\n    cell.style.color = \"white\";\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { RestService } from '../../../../framework/base/export';\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { ZahlungTyp } from '../../../enumerations/zahlung-typ';\n\n@autoinject\n@transient()\nexport class ZahlungEditUtils {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  form: FormBase;\n  doShowWaehrungFirmaFelder: boolean = false;\n  betragFirmaFeldBez = \"\";\n  skontoFirmaFeldBez = \"\";\n\n  bind(form: FormBase) {\n    this.form = form;\n    this.form.models.onLoaded.register(async (e) => {\n      if (e.model.id == \"$m_Zahlung\" && e.data) {\n        this.setInitialData();\n      }\n    });\n    this.form.focusFirstEnabledEditor = () => {\n      this.form[\"r_betrag\"].instance.focus();\n    }\n  }\n\n  private async setInitialData() {\n    const data = this.form.models.data.$m_Zahlung;\n    const idEingangsrechnung = this.form.variables.data.$v_IdEingangsrechnung;\n    const idFaktura = this.form.variables.data.$v_IdFaktura;\n\n    if (idFaktura) {\n      const faktura = await this._restService.get({\n        url: this._restService.getWebApiUrl(\"ERP/Verkauf/Faktura/\".concat(idFaktura)),\n        getOptions: {},\n        increaseLoadingCount: true\n      });\n\n      data.IdFirma = faktura.IdFirma;\n      data.IdFaktura = faktura.Id;\n      data.Faktura = faktura;\n      data.IdGeschaeftspartner = faktura.IdRechnungsort;\n      data.IdWaehrung = faktura.IdWaehrung;\n      data.Typ = ZahlungTyp.Eingang;\n    } else if (idEingangsrechnung) {\n      const eingangsrechnung = await this._restService.get({\n        url: this._restService.getWebApiUrl(\"ERP/Einkauf/Eingangsrechnung/\".concat(idEingangsrechnung)),\n        getOptions: {},\n        increaseLoadingCount: true\n      });\n\n      data.IdFirma = eingangsrechnung.IdFirma;\n      data.IdEingangsrechnung = eingangsrechnung.Id;\n      data.Eingangsrechnung = eingangsrechnung;\n      data.IdGeschaeftspartner = eingangsrechnung.IdLieferant;\n      data.IdWaehrung = eingangsrechnung.IdWaehrung;\n      data.Typ = ZahlungTyp.Ausgang;\n    }\n    data.Firma = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma/\".concat(data.IdFirma.toString())),\n      getOptions: {\n        expand: {\n          Waehrung: {\n            columns: [\"Id\", \"ISO4217\"]\n          }\n        }\n      },\n      increaseLoadingCount: true\n    });\n\n    this.betragFirmaFeldBez = \"Betrag \" + data.Firma.Waehrung.ISO4217;\n    this.skontoFirmaFeldBez = \"Skonto \" + data.Firma.Waehrung.ISO4217;\n  }\n}\n","import { autoinject, Scope, OverrideContext } from \"aurelia-framework\";\nimport { FormBase } from '../classes/form-base';\n\n@autoinject\nexport class FormUtilsService {\n  constructor() {}\n\n  getMainForm(scope: Scope | OverrideContext, treatEditPopupAsMainForm: boolean = false): FormBase {\n    if (scope.bindingContext == null) {\n      return null;\n    }\n\n    if (scope.bindingContext instanceof FormBase) {\n      const form: FormBase = scope.bindingContext;\n      if ((!form.isEditPopup || treatEditPopupAsMainForm) && !form.isNestedForm) {\n        return form;\n      }\n    }\n    if (scope.bindingContext.mainForm instanceof FormBase) {\n      return scope.bindingContext.mainForm;\n    }\n\n    if (scope[\"overrideContext\"]) {\n      return this.getMainForm(scope[\"overrideContext\"]);\n    } else if (scope[\"parentOverrideContext\"]) {\n      return this.getMainForm(scope[\"parentOverrideContext\"]);\n    }\n\n    return null;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  NotificationTyp\n} from \"../enumerations/export\";\nimport { KonditionsfeldWaehrung } from \"../../framework-data/events\";\n\n@autoinject\nexport class WaehrungService {\n  private _waehrungList: any[];\n  \n  constructor(\n    private eventAggregator: EventAggregator,\n    private rest: RestService\n  ) {\n    this.initializeSubscribers();\n  }\n\n  getWaehrungList(waehrung: KonditionsfeldWaehrung): any[] {\n    return this._waehrungList.filter((c) => {\n      switch (waehrung) {\n        case KonditionsfeldWaehrung.Waehrung: {\n          return c.IsProzent == false;\n        }\n        case KonditionsfeldWaehrung.Prozent: {\n          return c.IsProzent == true;\n        }\n        default: {\n          return true;\n        }\n      }\n    });\n  }\n  reload() {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Stammdaten/Waehrung\"),\n      getOptions: { customs: [{ \"key\": \"Waehrung\", \"value\": 2 }] }\n    }).then(r => {\n      this._waehrungList = r;\n    });\n  }\n\n  private initializeSubscribers() {\n    this.eventAggregator.subscribe(\n      NotificationTyp.waehrungChanged,\n      this.reload.bind(this));\n  }\n}\n","export {LayoutService} from \"./layout-service\";\nexport {HeaderService} from \"./header-service\";\nexport {LoadingService} from \"./loading-service\";","import {PLATFORM} from \"aurelia-framework\";\nexport class ModuleLoader {\nconstructor() {\nPLATFORM.moduleName(\"../erp/views/arbeitszeit/benutzerstatus/benutzerstatus-list-form\",\"arbeitszeit\");\nPLATFORM.moduleName(\"../erp/views/arbeitszeit/lohnexport/lohnexport-edit-form\");\nPLATFORM.moduleName(\"../erp/views/arbeitszeit/lohnexport/lohnexport-list-form\");\nPLATFORM.moduleName(\"../erp/views/arbeitszeit/saldenuebersicht/saldenuebersicht-list-form\",\"arbeitszeit\");\nPLATFORM.moduleName(\"../erp/views/arbeitszeit/tagesbuchungen/tagesbuchungen-list-form\",\"arbeitszeit\");\nPLATFORM.moduleName(\"../erp/views/dashboard/dashboard-list-form\");\nPLATFORM.moduleName(\"../erp/views/dashboard-designer/dashboard-designer-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dashboard-designer/dashboard-designer-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/diverse/impressum/impressum-form\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-element-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamische-entitaet/dynamische-entitaet-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-vorlage-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-zu-entitaet-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/dynamische-felder/dynamisches-feld/dynamisches-feld-zu-report-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellung/bestellung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellung/bestellung-list-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellung/bestellungsgruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellung/bestellungsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellvorschlag/bestellvorschlag-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/bestellvorschlag/bestellvorschlag-list-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/eingangsrechnung/eingangsrechnung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/eingangsrechnung/eingangsrechnung-list-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/eingangsrechnung/eingangsrechnungsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/eingangsrechnung/eingangsrechnungszuschlag-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/warenuebernahme/warenuebernahme-edit-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/warenuebernahme/warenuebernahme-list-form\");\nPLATFORM.moduleName(\"../erp/views/einkauf/warenuebernahme/warenuebernahmeposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsdefinition-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsdefinition-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsfeld-kopf-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsfeld-pos-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsversion-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/berechnungsdefinition/berechnungsversion-konditionsfeld-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/kondition/kondition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/kondition/kondition-list-form\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/kondition/kondition-list-nested-form\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/konditionsfeld/konditionsfeld-edit-form\");\nPLATFORM.moduleName(\"../erp/views/kalkulation/konditionsfeld/konditionsfeld-list-form\");\nPLATFORM.moduleName(\"../erp/views/kassa/kassa-beleg/kassa-beleg-edit-form\");\nPLATFORM.moduleName(\"../erp/views/kassa/kassa-beleg/kassa-beleg-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/beleg-import/beleg-import-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/beleg-import/beleg-import-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/datenbank-info/datenbank-info-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/einstellung/einstellung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fehler/fehler-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fehler/fehler-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-konto/fibu-konto-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-konto/fibu-konto-filter-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-konto/fibu-konto-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-kontogruppe/fibu-kontogruppe-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-oss/fibu-oss-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-oss/fibu-oss-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/fibu-sync-job/fibu-sync-job-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/import/import-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/import/import-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/Instanz/instanz-edit-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/Instanz/instanz-list-form\");\nPLATFORM.moduleName(\"../erp/views/Konfiguration/status/status-list-form\");\nPLATFORM.moduleName(\"../erp/views/lager/artikelverleih/artikelverleih-edit-form\");\nPLATFORM.moduleName(\"../erp/views/lager/artikelverleih/artikelverleih-list-form\");\nPLATFORM.moduleName(\"../erp/views/lager/inventur/inventur-edit-form\");\nPLATFORM.moduleName(\"../erp/views/lager/inventur/inventur-list-form\");\nPLATFORM.moduleName(\"../erp/views/lager/inventur/inventurposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerbestand/lagerbestand-detail-list-nested-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerbestand/lagerbestand-list-nested-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerbestand/lagerbuchung-info-list-nested-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerbestand/lagerbuchung-list-nested-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerkorrektur/lagerkorrektur-edit-form\");\nPLATFORM.moduleName(\"../erp/views/lager/lagerkorrektur/lagerkorrektur-list-form\");\nPLATFORM.moduleName(\"../erp/views/produktion/produktionsauftrag/produktion-fertigware-edit-form\",\"produktion\");\nPLATFORM.moduleName(\"../erp/views/produktion/produktionsauftrag/produktion-rohware-edit-form\",\"produktion\");\nPLATFORM.moduleName(\"../erp/views/produktion/produktionsauftrag/produktionsauftrag-edit-form\",\"produktion\");\nPLATFORM.moduleName(\"../erp/views/produktion/produktionsauftrag/produktionsauftrag-list-form\",\"produktion\");\nPLATFORM.moduleName(\"../erp/views/produktion/produktionsauftrag/produktion-stueckliste-edit-form\",\"produktion\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/anfrageart/anfrageart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/anfrageart/anfrageart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/angebotsart/angebotsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/angebotsart/angebotsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/anrede/anrede-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/anrede/anrede-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/arbeitszeit-kostenstelle/arbeitszeit-kostenstelle-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-einheit-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-kunde-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-lieferant-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-mindestbestand-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikel/artikel-stueckliste-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelart/artikelart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelart/artikelart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelgruppe/artikelgruppe-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelgruppe/artikelgruppe-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelkategorie/artikelkategorie-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/artikelkategorie/artikelkategorie-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/aufgabe/aufgabe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/aufgabe/aufgabe-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/auftragsart/auftragsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/auftragsart/auftragsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/auswertung/auswertung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/auswertung/auswertung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benachrichtigung/benachrichtigung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benachrichtigung/benachrichtigung-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benutzer/benutzer-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benutzer/benutzer-einstellungen-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benutzer/benutzer-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benutzerrolle/benutzerrolle-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/benutzerrolle/benutzerrolle-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/bestellungsart/bestellungsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/bestellungsart/bestellungsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/brief/brief-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/brief/brief-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/briefvorlage/briefvorlage-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/briefvorlage/briefvorlage-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/dokumentenart/dokumentenart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/dokumentenart/dokumentenart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/dokumentenart/dokumentenart-zu-entitaet-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/druck-einstellung/druck-einstellung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/druck-einstellung/druck-einstellung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/drucktext/drucktext-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/drucktext/drucktext-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/einheit/einheit-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/einheit/einheit-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/faktura-sammelart/faktura-sammelart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/faktura-sammelart/faktura-sammelart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filiale/filiale-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filiale/filiale-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filiale/filiale-zu-land-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filtergruppe/filterelement-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filtergruppe/filtergruppe-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/filtergruppe/filtergruppe-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/bankverbindung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/firma-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/firma-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/oss-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/steuerinformation-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma/steuertext-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma-zahlungsverkehr/firma-zahlungsverkehr-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/firma-zahlungsverkehr/firma-zahlungsverkehr-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/geschaeftspartner/bankverbindung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/geschaeftspartner/geschaeftspartner-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/geschaeftspartnerart/geschaeftspartnerart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/geschaeftspartnerart/geschaeftspartnerart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/intercompany/intercompany-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/intercompany/intercompany-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/intrastat-sync/intrastat-sync-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/intrastat-sync/intrastat-sync-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/kalender/kalender-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/kalender/kalender-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/kassa/kassa-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/kassa/kassa-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lager/lager-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lager/lager-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lagerbuchungsart/lagerbuchungsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lagerbuchungsart/lagerbuchungsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/land/land-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/land/land-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lieferbedingung/lieferbedingung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lieferbedingung/lieferbedingung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/lieferbedingung/transportkosten-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-import-def/mail-import-def-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-import-def/mail-import-def-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-import-item/mail-import-item-anhang-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-import-item/mail-import-item-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-import-item/mail-import-item-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-server/mail-server-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-server/mail-server-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-vorlage/mail-vorlage-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mail-vorlage/mail-vorlage-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mandant/mandant-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mandant/mandant-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/mandant/mandant-wechseln-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/medien/medien-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/medien/medien-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter/newsletter-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter/newsletter-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter-anmeldung/newsletter-anmeldung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter-anmeldung/newsletter-anmeldung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/newsletter-empfaenger/newsletter-empfaenger-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/notiz/notiz-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/notiztyp/notiztyp-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/notiztyp/notiztyp-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/nummernkreis/nummernkreis-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/nummernkreis/nummernkreis-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/papierkorb/papierkorb-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/person/person-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/person/person-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/personenaktion/personenaktion-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/personenaktion/personenaktion-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/personenfunktion/personenfunktion-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/personenfunktion/personenfunktion-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/positionsart/positionsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/positionsart/positionsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/projekt/projekt-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/projekt/projekt-list-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/projekt/projekt-taetigkeit-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/projektart/projektart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/projektart/projektart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/provisionsmodell/provisionsfeld-edit-form\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/provisionsmodell/provisionsmodell-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/provisionsmodell/provisionsmodell-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/qr-label/qr-label-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/reklamationsgrund/reklamationsgrund-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/reklamationsgrund/reklamationsgrund-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/skript-item/skript-item-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/skript-item/skript-item-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/spediteur/spediteur-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/spediteur/spediteur-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/spediteur-dienstleistung/spediteur-dienstleistung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/spediteur-dienstleistung/spediteur-dienstleistung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/sprache/sprache-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/sprache/sprache-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/status/status-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/status/status-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/status/status-zu-entitaet-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/steuercode/steuercode-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/steuercode/steuercode-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/steuersatz/steuersatz-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/steuersatz/steuersatz-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/taetigkeit/taetigkeit-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/taetigkeit/taetigkeit-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/taetigkeitenart/taetigkeitenart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/taetigkeitenart/taetigkeitenart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/tag/tag-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/tag/tag-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/tag/tag-zu-entitaet-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/textbaustein/textbaustein-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/textbaustein/textbaustein-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/uid-validierung/uid-validierung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/uid-validierung/uid-validierung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/validierung/validierung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/validierung/validierung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/vertreter/vertreter-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/vertreter/vertreter-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/vertreter/vertreter-zu-provisionsmodell-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/waehrung/waehrung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/waehrung/waehrung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/waehrung/waehrungskurs-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zahlungsart/zahlungsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zahlungsart/zahlungsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zahlungsbedingung/zahlungsbedingung-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zahlungsbedingung/zahlungsbedingung-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zuschlagsart/zuschlagsart-edit-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/stammdaten/zuschlagsart/zuschlagsart-list-form\",\"stammdaten\");\nPLATFORM.moduleName(\"../erp/views/statistik/auswertung/auswertung-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-artikel/statistik-artikel-list-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-auftrag/statistik-auftrag-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-bestellungen/statistik-bestellungen-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-ein-auszahlungs-rechnung/statistik-ein-auszahlungs-rechnung-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-faktura/statistik-faktura-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-geschaeftspartner-person/statistik-geschaeftspartner-person-list-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-gruppe/statistik-gruppe-list-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-kassa-info/statistik-kassa-info-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-kunde/statistik-kunde-list-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-lagerbestand/statistik-lagerbestand-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-lagerbewegungen/statistik-lagerbewegungen-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-projektzeit/statistik-projektzeit-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-reklamationen/statistik-reklamationen-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/statistik-webshop-login-log/statistik-webshop-login-log-list-form\",\"Statistik\");\nPLATFORM.moduleName(\"../erp/views/statistik/uebersicht/statistik-list-form\",\"auswertungen\");\nPLATFORM.moduleName(\"../erp/views/suche/volltext-thesaurus/volltext-thesaurus-edit-form\");\nPLATFORM.moduleName(\"../erp/views/suche/volltext-thesaurus/volltext-thesaurus-list-form\");\nPLATFORM.moduleName(\"../erp/views/tickets/ticket/ticket-edit-form\",\"ticket\");\nPLATFORM.moduleName(\"../erp/views/tickets/ticket/ticket-list-form\",\"ticket\");\nPLATFORM.moduleName(\"../erp/views/tickets/version/version-list-form\",\"ticket\");\nPLATFORM.moduleName(\"../erp/views/verkauf/angebot/angebot-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/angebot/angebot-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/angebot/angebotsgruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/angebot/angebotsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/auftrag/abschlagsfaktura-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/auftrag/auftrag-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/auftrag/auftrag-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/auftrag/auftragsgruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/auftrag/auftragsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/faktura/faktura-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/faktura/fakturagruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/faktura/faktura-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/faktura/fakturaposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/gutschein/gutschein-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/gutschein/gutschein-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/kundenreklamation/Kundenreklamation-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/kundenreklamation/kundenreklamation-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/kundenreklamation/kundenreklamationsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/ladeliste/ladeliste-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/ladeliste/ladeliste-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/lieferschein/lieferschein-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/lieferschein/lieferscheingruppe-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/lieferschein/lieferschein-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/lieferschein/lieferscheinposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/mahnung/mahnung-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/mahnung/mahnung-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/provision/provision-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/provision/provision-list-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/provision/provisionsposition-edit-form\");\nPLATFORM.moduleName(\"../erp/views/verkauf/zahlung/zahlung-edit-form\",\"verkauf\");\nPLATFORM.moduleName(\"../erp/views/verkauf/zahlung/zahlung-list-form\");\nPLATFORM.moduleName(\"../erp/views/webshop/seite/webshop-seite-edit-form\",\"webshop\");\nPLATFORM.moduleName(\"../erp/views/webshop/seite/webshop-seite-list-form\",\"webshop\");\nPLATFORM.moduleName(\"../erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-edit-form\");\nPLATFORM.moduleName(\"../erp/views/zahlungsverkehr/zahlungsverkehr/zahlungsverkehr-list-form\");\nPLATFORM.moduleName(\"../erp/views/zahlungsverkehr/zahlungsverkehr-sync-job/zahlungsverkehr-sync-job-edit-form\");\nPLATFORM.moduleName(\"../erp/views/zeiterfassung/projektplanung/projektplanung-list-form\",\"projektzeit\");\nPLATFORM.moduleName(\"../erp/views/zeiterfassung/projekt-taetigkeit-buchung/projekt-taetigkeit-buchung-edit-form\",\"projektzeit\");\nPLATFORM.moduleName(\"../erp/views/zeiterfassung/projekt-taetigkeit-buchung/projekt-taetigkeit-buchung-list-form\",\"projektzeit\");\nPLATFORM.moduleName(\"../framework/login/views/activate-account/activate-account-form\");\nPLATFORM.moduleName(\"../framework/login/views/login/login-form\");\nPLATFORM.moduleName(\"../framework/login/views/password-reset/password-reset-form\");\n}\n}\n","export {ICustomEventArgs} from \"./custom-event-args\";\nexport * from \"./location-go-to\";\n","export {SelectionModeEnum} from \"./selection-mode-enum\";\nexport {SortOrderColumnEnum} from \"./sort-order-column-enum\";","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnBestellungspositionVariablerSetartikelManuellerPreisEntfernenEvent, OnBestellungspositionVariablerSetartikelPreisAendernEvent, OnBestellungspositionVariablerSetartikelRabattEntfernenEvent } from \"../../../../framework-data/events\";\nimport { RestService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase, ICommandData, ModelUtilsService } from \"../../../../framework/forms/export\";\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from \"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\";\nimport { IKalkulationRefreshOptions } from \"../../../interfaces/kalkulation-refresh-options\";\nimport { AuftragService } from \"../../../services/auftrag-service\";\nimport { BestellungService } from \"../../../services/bestellung-service\";\nimport { DxCustomizeService } from \"../../../services/dx-customize-service\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { StartupService } from \"../../../services/startup-service\";\nimport { LocalizationService } from \"./../../../../framework/base/services/localization-service\";\nimport { ArtikelService } from \"./../../../services/artikel-service\";\n\n@autoinject\n@transient()\nexport class BestellungspositionEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public startupService: StartupService,\n    public dynFelderDataService: DynFelderDataService,\n    private _auftragService: AuftragService,\n    private _asyncService: AsyncService,\n    private _artikelService: ArtikelService,\n    private _bestellungService: BestellungService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _dxCustomizeService: DxCustomizeService,\n    private _localizationService: LocalizationService,\n    private _modelUtilsService: ModelUtilsService,\n    private _restService: RestService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  mengeVerpEH: number;\n  showVariablerSetartikelCheckbox: boolean;\n\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"bestellungsposition\",\n    icon: \"money\",\n    title: \"bestellung.preis_aendern\",\n    isVisibleExpression: \"functions.$f_BestellungspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Bestellungsposition && models.data.$m_Bestellungsposition.Id > 0 && models.data.$m_Bestellungsposition.IsVariablerSetartikel && models.data.$m_Bestellungsposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Bestellungsposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Bestellungsposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeVerpEH\"\n    };\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"bestellungspositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0 || e.model.id != \"$m_Bestellungsposition\") {\n        return;\n      }\n\n      this.refreshBestellungsgruppeButton();\n\n      this.showVariablerSetartikelCheckbox = this.form.models.data.$m_Bestellungsposition\n        && this.form.models.data.$m_Bestellungsposition.Artikel != null\n        && this.form.models.data.$m_Bestellungsposition.Artikel.BezugTyp == 3\n        ? true\n        : false;\n\n      if (this.form.models.data.$m_Bestellungsposition) {\n        this.mengeVerpEH = this.form.models.data.$m_Bestellungsposition.MengeVerpEH;\n      }\n    });\n\n    this.form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        let result = await this.validateVariablerSetartikel();\n\n        if (!result) {\n          throw new Error();\n        }\n\n        result = await this.validateMindestbestellmenge();\n\n        if (!result) {\n          throw new Error();\n        }\n\n        result = await this.validateIntercompany();\n\n        if (!result) {\n          throw new Error();\n        }\n      }\n    });\n  }\n\n  async idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n\n    if (!this.form.models.data.$m_Bestellungsposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Bestellungsposition);\n    }\n\n    this._artikelService.doEvalEinkaufArtikeldaten(e, this.form.models.data.$m_Bestellung, this.form.models.data.$m_Bestellungsposition);\n  }\n\n  onBestellungsgruppeChanged() {\n    this.refreshBestellungsgruppeButton();\n  }\n\n  copyBestellungsposition($delegate: { (customData: any): Promise<any> }) {\n    $delegate({ \"PosNrUeberschreiben\": true })\n  }\n\n  private refreshBestellungsgruppeButton() {\n    const dataPos = this.form.models.data.$m_Bestellungsposition;\n    const dataBestellung = this.form.models.data.$m_Bestellung;\n\n    if (!dataPos || !dataBestellung) {\n      return;\n    }\n\n    const editor = this.form[\"r_bestellungsgruppe\"].instance;\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (!dataPos.IdBestellungsgruppe && dataPos.CanSave && !dataBestellung.HasStreckengeschaeftAuftrag) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: async () => {\n            this.form.models.data.$m_BestellungsgruppeEdit = {\n              Id: 0\n            };\n\n            this.form.editPopups.showEx({\n              idEditPopup: \"bestellungsgruppeEditPopup\",\n              modelLoaded: (form, ev) => {\n                if (!form.models.data.$m_Bestellungsgruppe) {\n                  return;\n                }\n                form.models.data.$m_Bestellungsgruppe.IdBestellung = this.form.models.data.$m_Bestellungsposition.IdBestellung;\n              },\n              closeCallback: async (form) => {\n                this.form[\"r_bestellungsgruppe\"].instance.getDataSource().reload();\n\n                const model = form.models.modelWithKeyId;\n                const data = form.models.data[model.id];\n                this.form.models.data.$m_Bestellungsposition.IdBestellungsgruppe = data.Id;\n\n                this.form.onEditorValueChanged.fire({\n                  binding: {\n                    dataContext: \"$m_Bestellungsposition\",\n                    bindTo: \"IdBestellungsgruppe\"\n                  },\n                  value: data.Id\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"clear\"\n    }, {\n      location: \"after\",\n      name: \"dropDown\"\n    });\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnBestellungspositionVariablerSetartikelRabattEntfernenEvent({\n            IdBestellungspositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnBestellungspositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdBestellungspositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnBestellungspositionVariablerSetartikelPreisAendernEvent({\n            IdBestellungspositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n\n  private async validateMindestbestellmenge() {\n    const artikelLieferant = await this._artikelService.getLieferantById(this.form.models.data.$m_Bestellungsposition.IdArtikel, this.form.models.data.$m_Bestellung.IdLieferant);\n\n    if (artikelLieferant == null) {\n      return true;\n    }\n\n    let menge = this.form.models.data.$m_Bestellungsposition.MengeVerpEH;\n    const bestellungPosList = await this._bestellungService.getBestellungPosByIdBestellung(this.form.models.data.$m_Bestellung.Id);\n\n    if (bestellungPosList != null) {\n      const mengeBestellungPos = bestellungPosList\n        .filter((c) => {\n          return c.Id != this.form.models.data.$m_Bestellungsposition.Id\n            && c.IdArtikel == this.form.models.data.$m_Bestellungsposition.IdArtikel;\n        })\n        .reduce((p, c) => {\n          return p + c.MengeVerpEH;\n        }, 0);\n\n      menge += mengeBestellungPos;\n    }\n\n    if (artikelLieferant.MindestbestellmengeVerpEH != null && artikelLieferant.MindestbestellmengeVerpEH > menge) {\n      const einheit = await this._artikelService.getEinheitbezeichnungByArtikelEinheit(this.form.models.data.$m_Bestellungsposition.IdEinheit);\n\n      const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n        \"Die Menge aller Positionen dieses Artikels (\"\n        + menge\n        + \" \"\n        + einheit\n        + \") unterschreitet die Mindestbestellmenge von \"\n        + artikelLieferant.MindestbestellmengeVerpEH\n        + \" \"\n        + einheit\n        + \". Wollen Sie wirklich weniger bestellen?\",\n        this._localizationService.translateOnce(\"base.question\")));\n\n      if (!doExecute) {\n        return false;\n      }\n      return true;\n    }\n    return true;\n  }\n\n  private async validateVariablerSetartikel() {\n    if (!this.form.models.data.$m_Bestellungsposition.IsVariablerSetartikel)\n      return true;\n\n    if (this.form.models.data.$m_Bestellung.IsIntercompany) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"bestellung.fehler_variabler_setartikel_intercompany\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT)\n      return false;\n    } else if (this.form.models.data.$m_Bestellung.HasStreckengeschaeftAuftrag) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"bestellung.fehler_variabler_setartikel_streckengeschaeft\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n\n      return false;\n    }\n    return true;\n  }\n\n  private async validateIntercompany() {\n    const checkIntercompany = this.startupService.startupInfo.Lizenz.HasIntercompany\n      && this.form.models.data.$m_Bestellung.IsIntercompany\n      && this.form.models.data.$m_Bestellung.IdIcAuftrag != null\n\n    if (!checkIntercompany) {\n      return true;\n    }\n\n    if (this.mengeVerpEH < this.form.models.data.$m_Bestellungsposition.MengeVerpEH) {\n      const icAuftragsposition = await this._auftragService.getAuftragspositionByIdIcBestellungsposition(this.form.models.data.$m_Bestellungsposition.Id);\n\n      if (icAuftragsposition != null) {\n        let doExecute = await this.validateIntercompanyLieferschein(icAuftragsposition);\n\n        if (doExecute) {\n          doExecute = await this.validateIntercompanyBestellung(icAuftragsposition);\n\n          if (!doExecute) {\n            return false;\n          }\n          return true;\n        }\n      }\n    }\n\n    return true;\n  }\n\n  private async validateIntercompanyLieferschein(icAuftragsposition: any) {\n    if (icAuftragsposition.MengeLieferscheinVerpEH > 0) {\n      const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n        this._localizationService.translateOnce(\"bestellung.sure_intercompany_menge_lieferschein\"),\n        this._localizationService.translateOnce(\"base.question\")));\n\n      if (!doExecute) {\n        return false;\n      }\n      return true;\n    }\n    return true;\n  }\n\n  private async validateIntercompanyBestellung(icAuftragsposition: any) {\n    const mengeBestellungIcAuftragsposition = await this._bestellungService.getMengeVerpEHByIdAuftragsposition(icAuftragsposition.Id);\n\n    if (mengeBestellungIcAuftragsposition > 0) {\n      const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n        this._localizationService.translateOnce(\"bestellung.sure_intercompany_menge_bestellung\"),\n        this._localizationService.translateOnce(\"base.question\")));\n\n      if (!doExecute) {\n        return false;\n      }\n      return true;\n    }\n    return true;\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnNewsletterTestVersendenEvent, OnNewsletterVersendenEvent } from '../../../../framework-data/events';\nimport { LocalizationService } from '../../../../framework/base/export';\nimport { WebEventService } from '../../../../framework/base/services/web-event-service';\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { ExcelExportService } from \"../../../../framework/forms/services/excel-export-service\";\nimport { IdxPopupComponent, IdxSelectBoxComponent, IdxTextBoxComponent } from '../../../interfaces/export';\n\n@autoinject\n@transient()\nexport class NewsletterEditUtils {\n  constructor(\n    private _localization: LocalizationService,\n    private _webEventService: WebEventService,\n    private _excelExportService: ExcelExportService\n  ) { }\n\n  form: FormBase;\n\n  layoutOeffnenCommand: ICommandData = {\n    id: \"layoutOeffnen\",\n    title: \"newsletter.layout_oeffnen\",\n    sortIndex: 49,\n    icon: \"newspaper-o\",\n    idCategory: \"newsletter\",\n    isVisibleExpression: \"!!models.data.$m_Newsletter._NewsletterUrl\",\n    execute: async () => {\n      window.open(this.form.models.data.$m_Newsletter._NewsletterUrl, \"_blank\");\n    }\n  }\n  versendenCommand: ICommandData = {\n    id: \"versenden\",\n    title: \"newsletter.versenden\",\n    icon: \"paper-plane\",\n    sortIndex: 51,\n    idCategory: \"newsletter\",\n    isEnabledExpression: \"models.data.$m_Newsletter.CanSave && models.data.$m_Newsletter.Status.Typ == 0\",\n    execute: async () => {\n      const empfaenger: IdxSelectBoxComponent = this.form[\"r_empfaenger\"];\n      const idEmpfaenger = empfaenger.instance.option(\"value\");\n\n      if (!idEmpfaenger) {\n        DevExpress.ui.notify(\n          this._localization.translateOnce(\"newsletter.empfaenger_auswaehlen\"),\n          \"error\",\n          3000);\n\n        return;\n      }\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnNewsletterVersendenEvent({\n        IdNewsletter: this.form.models.data.$m_Newsletter.Id\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  }\n  testVersendenCommand: ICommandData = {\n    id: \"testVersenden\",\n    title: \"newsletter.test_versenden\",\n    sortIndex: 50,\n    idCategory: \"newsletter\",\n    isEnabledExpression: \"models.data.$m_Newsletter.CanSave && models.data.$m_Newsletter.Status.Typ == 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const popup: IdxPopupComponent = this.form[\"r_testMailPopup\"];\n      popup.instance.show();\n    }\n  }\n  testVersendenNowCommand: ICommandData = {\n    id: \"testVersendenNow\",\n    title: \"newsletter.test_versenden\",\n    execute: async () => {\n      const emailTextBox: IdxTextBoxComponent = this.form[\"r_testMailEmpfaenger\"];\n      const email = emailTextBox.instance.option(\"value\");\n\n      if (!email) {\n        DevExpress.ui.notify(this._localization.translateOnce(\"newsletter.email_erfassen\"), \"error\", 3000);\n        return;\n      }\n\n      await this._webEventService.execute(new OnNewsletterTestVersendenEvent({\n        IdNewsletter: this.form.models.data.$m_Newsletter.Id,\n        Email: email\n      }), true);\n\n      DevExpress.ui.notify(this._localization.translateOnce(\"newsletter.test_email_wird_versandt\"), \"success\", 3000);\n\n      const popup: IdxPopupComponent = this.form[\"r_testMailPopup\"];\n      popup.instance.hide();\n    }\n  }\n  doExportGridCommand: ICommandData = {\n    id: \"doExportGrid\",\n    idCategory: \"statistik\",\n    title: \"erp-statistik.export-grid\",\n    icon: \"file-excel-o\",\n    sortIndex: 101,\n    execute: () => {\n      this._excelExportService.exportDataGrid({\n        component: this.form[\"r_versGrid\"].instance,\n        selectedRowsOnly: false\n      });\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","\nimport {\n  autoinject,\n  transient,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase,\n  PopupInfoService,\n} from \"../../../../framework/forms/export\";\nimport {\n  StartupService,\n  VerknuepfteEntitaetService\n} from \"../../../services/export\";\nimport * as moment from \"moment\";\nimport {\n  IdxTagboxComponent\n} from \"../../../interfaces/export\";\n@autoinject\n@transient()\nexport class AufgabeEditUtils {\n  constructor(\n    private popupInfo: PopupInfoService,\n    private startup: StartupService,\n    private taskQueue: TaskQueue,\n    private verknuepfteEntitaet: VerknuepfteEntitaetService\n  ) { }\n\n  form: FormBase;\n\n  verknuepfteEntitaetCommand: ICommandData = {\n    id: \"verknuepfteEntitaet\",\n    idCategory: \"aufgabe\",\n    title: \"aufgabe.verknuepfte-entitaet-command-text\",\n    icon: \"link\",\n    sortIndex: 99,\n    isVisible: false,\n    execute: this.onVerknuepfteEntitaetCommandClicked.bind(this)\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.models.onLoaded.register(r => {\n      if (r.model.id == \"$m_Aufgabe\" && r.data && !r.data.Id) {\n        this.setFollowerCurrentBenutzer(r.data);\n      }\n\n      return Promise.resolve();\n    });\n\n    form.focusFirstEnabledEditor = () => {\n      if (form[\"r_betreff\"] && form[\"r_betreff\"].instance) {\n        form[\"r_betreff\"].instance.focus();\n      }\n    };\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: \"models.data.$m_Aufgabe.FaelligAm\",\n      callback: (newVal) => {\n        const dateBox: DevExpress.ui.dxDateBox = this.form[\"r_faelligAm\"];\n        this.setDatumStyle(dateBox.element, newVal);\n      }\n    });\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: \"models.data.$m_Aufgabe.ErinnernAm\",\n      callback: (newVal) => {\n        const dateBox: DevExpress.ui.dxDateBox = this.form[\"r_erinnernAm\"];\n        this.setDatumStyle(dateBox.element, newVal);\n      }\n    });\n\n    form.models.onLoaded.register(r => {\n      this.verknuepfteEntitaetCommand.isVisible = this.form\n        && this.form.models.data.$m_Aufgabe\n        && this.form.models.data.$m_Aufgabe.IdVerknuepfteEntitaet != void 0;\n\n      return Promise.resolve();\n    });\n  }\n\n  async onVerknuepfteEntitaetCommandClicked(e) {\n    const idVerknuepfteEntitaet = this.form.models.data.$m_Aufgabe.IdVerknuepfteEntitaet;\n\n    if (idVerknuepfteEntitaet == void 0) {\n      return;\n    }\n\n    if (this.form.isEditPopup == true) {\n      this.popupInfo.closeCurrentPopup();\n    }\n\n    this.verknuepfteEntitaet\n      .goTo(idVerknuepfteEntitaet);\n  }\n\n  setDatumStyle(element: any, value: Date): void {\n    this.taskQueue.queueMicroTask(() => {\n      const isVorbei = value && moment().isSameOrAfter(value);\n      const input: HTMLInputElement = element.querySelector(\"input:not([type ='hidden'])\");\n\n      input.style.backgroundColor = isVorbei\n        ? \"#C1392D\"\n        : \"white\";\n      input.style.color = isVorbei\n        ? \"white\"\n        : \"inherit\";\n    });\n  }\n\n  private setFollowerCurrentBenutzer(data: any) {\n    if (data.AufgabeInfoBenutzer == void(0)) {\n      data.AufgabeInfoBenutzer = [];\n    }\n\n    data.AufgabeInfoBenutzer.push({\n      IdBenutzer: this.startup.startupInfo.Benutzer.Id\n    });\n  }\n\n  async onAufgabeKommentarChanged(e: any) {\n    await this.form.models.reloadAll();\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\n\n@autoinject\n@transient()\nexport class ZahlungsverkehrEditUtils {\n  constructor(\n    public dynFelderDataService: DynFelderDataService) { }\n\n  form: FormBase;\n\n  showZahlungsverkehrSyncJobCommand: ICommandData = {\n    id: \"showDokumentErstellenPopup\",\n    idCategory: \"zahlungsverkehr\",\n    icon: \"file\",\n    title: \"zahlungsverkehr.sync_oeffnen\",\n    sortIndex: 10,\n    isVisibleExpression: \"models.data.$m_Zahlungsverkehr.IdZahlungsverkehrSyncJob != null\",\n    execute: async (e) => {\n      this.form.editPopups.show(\"zahlungsverkehrSyncJobEditPopup\", null);\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Zahlungsverkehr\"\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\n\n@autoinject\nexport class JsonService {\n  private regexDateISO = /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)/;\n\n  constructor() { }\n\n  parse(json: string): any {\n    if (!json) {\n      return json;\n    }\n\n    if (!(typeof json === \"string\")) {\n      json = JSON.stringify(json);\n    }\n\n    return JSON.parse(json, (key: string, value: string): any => {\n      if (typeof value === \"string\" && value.indexOf(\"{\") < 0) {\n        var a = this.regexDateISO.exec(value);\n\n        if (a && a.index == 0) {\n          return new Date(value);\n        }\n\n        return value;\n      }\n      return value;\n    });\n  }\n  stringify(obj: any): string {\n    return JSON.stringify(obj);\n  }\n}\n","import {\n  autoinject, Scope\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"./rest-service\";\nimport {\n  BindingService\n} from \"./binding-service\";\nimport {\n  ScopeContainer\n} from \"../classes/scope-container\";\nimport {\n  ILocalizationItem,\n  ILocalizationTranslationInfo\n} from \"../interfaces/export\";\n\nimport * as localizationNeutral from \"../../../framework-data/localization-neutral.json\";\n\n@autoinject\nexport class LocalizationService {\n  private _localizationCustom: any;\n\n  constructor(\n    private _restService: RestService,\n    private _bindingService: BindingService\n  ) { }\n  \n  setCustomLocalization(localizationCustom: any) {\n    this._localizationCustom = localizationCustom;\n  }\n\n  addLocalizationNeutral(namespace: string, key: string, translation: string) {\n    const n = localizationNeutral[namespace];\n    if (!n) {\n      localizationNeutral[namespace] = {};\n    }\n\n    localizationNeutral[namespace][key] = translation;\n  }\n  getTranslationInfo(key: string | ILocalizationItem): ILocalizationTranslationInfo {\n    if (!key) {\n      return {\n        needsBinding: false,\n        text: \"\"\n      };\n    }\n\n    let item: ILocalizationItemInfo;\n\n    try {\n      item = typeof key === \"string\"\n        ? this.getLocalizationItem(key)\n        : this.getLocalizationItem(key.key);\n\n    }\n    catch (e) {\n      throw new Error(`Keine Lokalisierung für ${key} gefunden`);\n    }\n\n    if (!item) {\n      throw new Error(`No localization found for ${key}`);\n    }\n\n    let text = item.text;\n    let needsBinding = false;\n    let scope: Scope = null;\n\n    if (typeof key === \"string\") {\n      needsBinding = item.parameters\n        && item.parameters.length > 0;\n\n      item.parameters.forEach((expr, index) => {\n        text = text.replace(new RegExp(\"\\\\{\" + index + \"\\\\}\", \"g\"), \"${\" + expr + \"}\");\n      });\n    } else if (key.parameters && key.parameters.length > 0) {\n      needsBinding = true;\n      scope = {\n        bindingContext: key,\n        overrideContext: null\n      };\n      key.parameters.forEach((expr, index) => {\n        text = text.replace(new RegExp(\"\\\\{\" + index + \"\\\\}\", \"g\"), \"${parameters[\" + index + \"]}\");\n      });\n    }\n\n    return {\n      text: text,\n      needsBinding: needsBinding,\n      scope: scope\n    };\n  }\n  translateOnce(key: string | ILocalizationItem, parameters?: string[] | ScopeContainer): string {\n    if (!key) {\n      return \"\";\n    }\n\n    let item: ILocalizationItemInfo;\n\n    try {\n      item = typeof key === \"string\"\n        ? this.getLocalizationItem(key)\n        : this.getLocalizationItem(key.key);\n\n    }\n    catch (e) {\n      throw new Error(`Keine Lokalisierung für ${key} gefunden`);\n    }\n\n    if (!item) {\n      throw new Error(`No localization found for ${key}`);\n    }\n\n    if (!(typeof key === \"string\")) {\n      parameters = key.parameters;\n    }\n\n    if (!item) {\n      throw new Error(`No localization found for ${key}`);\n    }\n\n    return this.translateItem(item, parameters);\n  }\n\n  private getLocalizationItem(key: string): ILocalizationItemInfo {\n    if (this._localizationCustom) {\n      const resultCustom = this.getLocalizationItemEx(this._localizationCustom, key);\n      if (resultCustom) {\n        return resultCustom;\n      }\n    }\n    \n    const resultNeutral = this.getLocalizationItemEx(localizationNeutral, key);\n    if (resultNeutral) {\n      return resultNeutral;\n    }\n    \n    throw new Error(`Keine Lokalisierung für ${key} gefunden`);\n  }\n  private getLocalizationItemEx(localization: any, key: string): ILocalizationItemInfo {\n    const items = key.split(\".\");\n\n    let item: any = localization;\n    items.forEach(i => {\n      if (!item) {\n        return;\n      }\n\n      item = item[i];\n    });\n\n    if (!item) {\n      return null;\n    } else if (typeof item === \"string\") {\n      return {\n        key: key,\n        text: item,\n        parameters: []\n      }\n    } else {\n      return {\n        key: key,\n        text: item.text,\n        parameters: item.parameters\n      }\n    }\n  }\n  private translateItem(item: ILocalizationItemInfo, parameters?: string[] | ScopeContainer): string {\n    let text = item.text;\n\n    if (parameters != void (0)) {\n      if (Array.isArray(parameters)) {\n        parameters.forEach((val, index) => {\n          text = text.replace(new RegExp(\"\\\\{\" + index + \"\\\\}\", \"g\"), val);\n        });\n      } else {\n        item.parameters.forEach((expr, index) => {\n          let val = this._bindingService.evaluate(parameters.scope, expr);\n\n          if (val == void (0)) {\n            val = \"\";\n          }\n\n          text = text.replace(new RegExp(\"\\\\{\" + index + \"\\\\}\", \"g\"), val);\n        });\n      }\n    }\n\n    return text;\n  }\n}\n\ninterface ILocalizationItemInfo {\n  key: string;\n  text: string;\n  parameters: string[];\n}\n","import { autoinject } from \"../../framework/forms/form-export\";\nimport { WebEventService } from '../../framework/base/export';\nimport { OnCreateZugriffHistorieEvent } from '../../framework-data/events';\n\n@autoinject\nexport class ZugriffHistorieService {\n  constructor(\n    private webEventService: WebEventService\n  ) {}\n\n  async createZugriffHistorie(idEntitaet: number) {\n    await this.webEventService.execute(new OnCreateZugriffHistorieEvent({\n      IdEntitaet: idEntitaet\n    }));\n  }\n}\n","export enum KalkulationFeldTyp {\n  Konditionsfeld = 0,\n  Berechnungsfeld = 1\n}","import {\n  autoinject,\n  singleton\n} from \"aurelia-framework\";\nimport * as Interfaces from \"../interfaces/export\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\n\n@autoinject\n@singleton(true)\nexport class Commands {\n  private form: FormBase;\n  private commands: Interfaces.ICommand[] = [];\n  private commandData: Interfaces.ICommandData[] = [];\n\n  constructor() {}\n\n  addCommand(commandData: Interfaces.ICommandData) {\n    this.commandData.push(commandData);\n  }\n  addInfo(command: Interfaces.ICommand) {\n    this.commands.push(command);\n  }\n\n  getCommands(): Interfaces.ICommandData[] {\n    const result = this.commands.map(i => this.form.binding.evaluate(this.form.scope, i.binding.bindToFQ));\n\n    result.push(...this.commandData);\n\n    return result;\n  }\n  \n  registerForm(form: FormBase) {\n    if (this.form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this.form = form;\n  }\n\n  dispose() {\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\nimport * as DxLoader from \"../../framework/dx/dx-loader\";\n\n@autoinject\nexport class WidgetExtenderService {\n  constructor(\n    private eventAggregator: EventAggregator\n  ) {\n    eventAggregator.subscribe(\"dx-widget:attaching\", e => {\n      if (e.name == \"dxRadioGroup\") {\n        if (e.options.layout == void(0)) {\n          e.options.layout = \"horizontal\";\n        }\n      } else if (e.name == \"dxSelectBox\") {\n        if (e.options.searchTimeout == void(0)) {\n          e.options.searchTimeout = 150;\n        }\n      }\n    });\n\n    DxLoader.getDefinition(\"dxDateBox\").defaultOptions({\n      options: <DevExpress.ui.dxDateBoxOptions>{\n        max: new Date(2099, 11, 31)\n      }\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\nimport {\n  IAdresse\n} from \"../interfaces/export\";\n\n@autoinject\nexport class AdresseService {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  getAdresseById(id: number): Promise<IAdresse> {\n    return this.rest.get({\n      url: `${this.rest.getWebApiUrl(\"ERP/Stammdaten/Adresse\")}/${id != void 0 ? id : 0}`\n    });\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnPrepareIntrastatSync, OnPrepareIntrastatSyncEvent } from \"../../../../framework-data/events\";\nimport { WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\n\n@autoinject\n@transient()\nexport class IntrastatSyncEditUtils {\n  constructor(\n    private webEvent: WebEventService) { }\n\n  form: FormBase;\n\n  doSynchronisierungStarten: ICommandData = {\n    id: \"doSynchronisierungStarten\",\n    idCategory: \"fibu-sync-job\",\n    title: \"intrastat-sync.do_synchronisierung_starten\",\n    icon: \"refresh\",\n    isEnabledExpression: \"models.data.$m_IntrastatSync.CanSave && models.data.$m_IntrastatSync.Status.Typ == 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnPrepareIntrastatSyncEvent({\n        IdIntrastatSync: this.form.models.data.$m_IntrastatSync.Id\n      });\n\n      const webEventResult: OnPrepareIntrastatSync = await this.webEvent.execute(webEvent, true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  IListOptionsBase\n} from \"../widget-options/export\";\nimport {\n  LocationService,\n  LocalizationService,\n  PermissionService,\n  RestService,\n  ShortcutService\n} from \"../../base/services/export\";\nimport {\n  PopupInfoService\n} from \"./popup-info-service\";\nimport {\n  IValidationResult\n} from \"../interfaces/export\";\nimport * as Interfaces from \"../interfaces/export\";\nimport {\n  ContextMenu\n} from \"../classes/context-menu\";\nimport { DialogConfirmService } from './dialog-confirm-service';\nimport { ListType } from '../enums/list-type-enum';\nimport { ExcelExportService } from \"./excel-export-service\";\n\n@autoinject\nexport class DefaultCommandsService {\n  constructor(\n    private _locationService: LocationService,\n    private _localizationService: LocalizationService,\n    private _permissionService: PermissionService,\n    private _restService: RestService,\n    private _shortcutService: ShortcutService,\n    private _popupInfoService: PopupInfoService,\n    private _dialogConfirmService: DialogConfirmService,\n    private _excelExportService: ExcelExportService\n  ) {\n    this._shortcutService.bindShortcut(\"ctrl+shift+enter\", \"$command\", true);\n    this._shortcutService.bindShortcut(\"f10\", \"$save\");\n    this._shortcutService.bindShortcut(\"ctrl+f10\", \"$saveAndClose\");\n    this._shortcutService.bindShortcut(\"shift+f10\", \"$saveAndAdd\");\n    this._shortcutService.bindShortcut(\"f9\", \"$close\");\n    this._shortcutService.bindShortcut(\"f8\", \"$delete\");\n    this._shortcutService.bindShortcut(\"f7\", \"$add\");\n    this._shortcutService.bindShortcut(\"ctrl+f11\", \"$scrollUp\");\n    this._shortcutService.bindShortcut(\"ctrl+f12\", \"$scrollDown\");\n  }\n\n  getFormAddCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$add\",\n      icon: \"plus\",\n      title: \"base.add\",\n      tooltip: \"base.add_tooltip\",\n      sortIndex: 5,\n      isVisible: form.canSave(),\n      isEnabled: form.canAdd(),\n      execute: () => {\n        form.add();\n      }\n    };\n\n    form.models.onLoaded.register(() => {\n      cmd.isEnabled = form.canAdd();\n      return Promise.resolve();\n    });\n\n    return cmd;\n  }\n  getFormSaveCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$save\",\n      icon: \"floppy-o\",\n      title: \"base.save\",\n      tooltip: \"base.save_tooltip\",\n      sortIndex: 10,\n      isVisible: form.canSave(),\n      isEnabled: form.canSaveNow(),\n      execute: () => {\n        form.save()\n          .catch(r => {\n            form.error.showAndLogError(r);\n          });\n      }\n    };\n\n    form.models.onLoaded.register(() => {\n      cmd.isEnabled = form.canSaveNow();\n      return Promise.resolve();\n    });\n\n    return cmd;\n  }\n  getEditPopupSaveAndAddCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$saveAndAdd\",\n      title: \"base.save_and_add\",\n      tooltip: \"base.save_and_add_tooltip\",\n      small: true,\n      sortIndex: 11,\n      isVisible: form.canSave(),\n      isEnabled: form.canSaveNow() && form.canAdd(),\n      execute: () => {\n        form.save().then((r: IValidationResult) => {\n          if (r.isValid) {\n            form.add();\n          }\n        });\n      }\n    };\n\n    form.models.onLoaded.register(() => {\n      cmd.isEnabled = form.canSaveNow() && form.canAdd();\n      return Promise.resolve();\n    });\n\n    return cmd;\n  }\n  getEditPopupSaveAndCloseCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$saveAndClose\",\n      title: \"base.save_and_close\",\n      tooltip: \"base.save_and_close_tooltip\",\n      small: true,\n      sortIndex: 11,\n      isVisible: form.canSave(),\n      isEnabled: form.canSaveNow() && form.canAdd(),\n      execute: () => {\n        form.save().then((r: IValidationResult) => {\n          if (r.isValid) {\n            this._popupInfoService.closeCurrentPopup();\n          }\n        });\n      }\n    };\n\n    form.models.onLoaded.register(() => {\n      cmd.isEnabled = form.canSaveNow();\n      return Promise.resolve();\n    });\n\n    return cmd;\n  }\n  getFormDeleteCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$delete\",\n      icon: \"times\",\n      title: \"base.delete\",\n      tooltip: \"base.delete_tooltip\",\n      sortIndex: 20,\n      isVisible: form.canSave(),\n      isEnabled: form.canDeleteNow(),\n      execute: () => {\n        this._dialogConfirmService.show({\n          title: form.translate(\"base.question\"),\n          message: form.translate(\"base.sure_delete_question\")\n        }).then(r => {\n          if (r) {\n            form.delete().then((deleteResult) => {\n              if (!deleteResult) {\n                return;\n              }\n\n              history.back();\n            });\n          }\n        });\n      }\n    };\n\n    form.models.onLoaded.register(() => {\n      cmd.isVisible = form.canSave();\n      cmd.isEnabled = form.canDeleteNow();\n      return Promise.resolve();\n    });\n\n    return cmd;\n  }\n  getEditPopupDeleteCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd = this.getFormDeleteCommand(form);\n\n    cmd.execute = () => {\n      this._dialogConfirmService.show({\n        title: form.translate(\"base.question\"),\n        message: form.translate(\"base.sure_delete_question\")\n      }).then(r => {\n        if (r) {\n          form.delete().then((deleteResult) => {\n            if (!deleteResult) {\n              return;\n            }\n            \n            this._popupInfoService.closeCurrentPopup();\n          });\n        }\n      });\n    };\n\n    return cmd;\n  }\n  getFormGoBackCommand(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$goBack\",\n      idCategory: \"$nav\",\n      icon: \"arrow-left\",\n      tooltip: \"base.back\",\n      sortIndex: 0,\n      isEnabled: true,\n      isVisibleExpression: \"canGoBack\",\n      execute: () => {\n        this._locationService.goBack();\n      }\n    }\n\n    return cmd;\n  }\n  getListAddCommand(form: FormBase, options: IListOptionsBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$add\",\n      icon: \"plus\",\n      title: \"base.add\",\n      tooltip: \"base.add_tooltip\",\n      sortIndex: 5,\n      isVisible: false,\n      isEnabled: true,\n      execute: (e) => {\n        this.showEditPopupAdd(form, options, e.event ? e.event.target : null);\n      }\n    }\n\n    if (options.dataModel) {\n      const model = (options.relationBinding && options.relationBinding.dataContext)\n        ? options.relationBinding.dataContext\n        : options.dataModel;\n\n      const info = form.models.getInfo(model);\n      if (info) {\n        cmd.isVisible = (info.webApiAction\n          && info.keyProperty\n          && this._permissionService.canWebApiNew(info.webApiAction, form.moduleId)\n          && !!(options.editUrl || options.idEditPopup || options.listEdits.length > 0)) || false;\n\n        if (info.allowNew) {\n          cmd.isEnabledExpression = info.allowNew;\n          delete cmd.isEnabled;\n        }\n      }\n    }\n\n    return cmd;\n  }\n  getListEditCommand(form: FormBase, options: IListOptionsBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$listEdit\",\n      icon: \"pencil\",\n      title: \"base.edit\",\n      tooltip: \"base.edit\",\n      sortIndex: 6,\n      isVisible: true,\n      isEnabled: false,\n      execute: () => {\n        const customOptions = form[options.options.optionsName][\"__customOptions\"];\n\n        const args = customOptions[\"clickArguments\"];\n        const actions = customOptions[\"openClickActions\"];\n\n        actions.forEach(c => c(args.event, args.dataSource));\n      }\n    }\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: `${options.options.optionsName}.__customOptions.clickArguments`,\n      callback: (newValue, oldValue) => {\n        cmd.isEnabled = !!newValue;\n      }\n    });\n\n    return cmd;\n  }\n  getListExcelExportCommand(form: FormBase, options: IListOptionsBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$listExcelExport\",\n      idCategory: \"$export\",\n      icon: \"file-excel-o\",\n      title: \"base.excel-export\",\n      tooltip: \"base.excel-export\",\n      sortIndex: 7,\n      isVisible: true,\n      isEnabled: true,\n      execute: () => {\n        //TODO - es muss nicht unbedingt ein DataGrid sein?\n        const dataGrid: DevExpress.ui.dxDataGrid = form[options.id].instance;\n        dataGrid.option(\n          \"export.fileName\",\n          this._localizationService.translateOnce(form.title));\n\n        let onlySelected = (dataGrid.getSelectedRowKeys().length > 0);\n\n        this._excelExportService.exportDataGrid({\n          component: dataGrid,\n          selectedRowsOnly: onlySelected\n        });\n      }\n    }\n\n    return cmd;\n  }\n  getListCommands(form: FormBase, options: IListOptionsBase, addEditCommand: boolean = false, listType: ListType = null): Interfaces.ICommandData[] {\n    const result: Interfaces.ICommandData[] = [];\n\n    const addCmd = this.getListAddCommand(form, options);\n    if (addCmd) {\n      result.push(addCmd);\n    }\n\n    if (addEditCommand) {\n      const editCmd = this.getListEditCommand(form, options);\n      if (editCmd)\n        result.push(editCmd);\n    }\n\n    if (options.isMainList && listType == ListType.DataGrid) {\n      result.push(this.getListExcelExportCommand(form, options));\n    }\n\n    return result;\n  }\n  getScrollDown(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$scrollDown\",\n      idCategory: \"$nav\",\n      icon: \"chevron-down\",\n      tooltip: \"base.scroll_down_tooltip\",\n      small: true,\n      sortIndex: 2,\n      isEnabled: !!form.viewScrollInfo && form.viewScrollInfo.index < form.viewScrollInfo.maxCount - 1,\n      isVisible: !!form.viewScrollInfo,\n      execute: () => {\n        const index = form.viewScrollInfo.index + 1;\n        this.scroll(form, index);\n      }\n    }\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"viewScrollInfo.index\",\n      callback: () => {\n        cmd.isEnabled = !!form.viewScrollInfo && form.viewScrollInfo.index < form.viewScrollInfo.maxCount - 1\n      }\n    });\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"viewScrollInfo\",\n      callback: () => {\n        cmd.isVisible = !!form.viewScrollInfo;\n      }\n    });\n\n    return cmd;\n  }\n  getScrollUp(form: FormBase): Interfaces.ICommandData {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$scrollUp\",\n      idCategory: \"$nav\",\n      icon: \"chevron-up\",\n      tooltip: \"base.scroll_up_tooltip\",\n      small: true,\n      sortIndex: 1,\n      isEnabled: !!form.viewScrollInfo && form.viewScrollInfo.index > 0,\n      isVisible: !!form.viewScrollInfo,\n      execute: () => {\n        const index = form.viewScrollInfo.index - 1;\n        this.scroll(form, index);\n      }\n    }\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"viewScrollInfo.index\",\n      callback: () => {\n        cmd.isEnabled = !!form.viewScrollInfo && form.viewScrollInfo.index > 0\n      }\n    });\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"viewScrollInfo\",\n      callback: () => {\n        cmd.isVisible = !!form.viewScrollInfo;\n      }\n    });\n\n    return cmd;\n  }\n  getClosePopupCommand() {\n    const cmd: Interfaces.ICommandData = {\n      id: \"$close\",\n      idCategory: \"$close\",\n      icon: \"times\",\n      tooltip: \"base.close_tooltip\",\n      sortIndex: 999,\n      execute: () => {\n        this._popupInfoService.closeCurrentPopup();\n      }\n    }\n\n    return cmd;\n  }\n\n  private showEditPopupAdd(form: FormBase, options: IListOptionsBase, target: any) {\n    if (options.listEdits.length > 0) {\n      const ctxMenu = new ContextMenu();\n\n      options.listEdits.forEach(c => {\n        ctxMenu.items.push({\n          text: form.translate(c.caption),\n          execute: () => {\n            if (c.editDataContext) {\n              const model = form.models.getInfo(c.editDataContext);\n              form.models.data[c.editDataContext] = form.models.createNewModelData(model);\n            }\n            if (c.editUrl) {\n              this._locationService.goTo({\n                url: c.editUrl + \"/0\",\n                currentViewModel: form\n              });\n            }\n            if (c.idEditPopup) {\n              form.editPopups.show(c.idEditPopup, null);\n            }\n          }\n        });\n      });\n\n      ctxMenu.show(target);\n    } else {\n      if (options.editDataContext) {\n        const model = form.models.getInfo(options.editDataContext);\n        form.models.data[options.editDataContext] = form.models.createNewModelData(model);\n      }\n      if (options.editUrl) {\n        this._locationService.goTo({\n          url: options.editUrl + \"/0\",\n          currentViewModel: form\n        });\n      }\n      if (options.idEditPopup) {\n        form.editPopups.show(options.idEditPopup, null);\n      }\n    }\n  }\n  private async scroll(form: FormBase, index: number): Promise<any> {\n    const hasHandled = await form.handleChangedData();\n    if (!hasHandled) {\n      return;\n    }\n\n    const viewScrollInfo = form.viewScrollInfo;\n\n    if (viewScrollInfo.getNextKey) {\n      const id = viewScrollInfo.getNextKey(index);\n      if (!id) {\n        return;\n      }\n\n      viewScrollInfo.index = index;\n      form.loadById(id);\n    } else {\n      const lastLoadInfo = viewScrollInfo.lastLoadInfo;\n\n      const model = form.models.modelWithKeyId;\n      const columns = [model.keyProperty, ...(viewScrollInfo.columns || [])];\n\n      const getOptions = {\n        take: 1,\n        skip: index,\n        where: lastLoadInfo.getOptions.where,\n        orderBy: lastLoadInfo.getOptions.orderBy,\n        customs: lastLoadInfo.getOptions.customs,\n        columns: columns,\n        searchtext: lastLoadInfo.getOptions.searchtext,\n        requireTotalCount: true\n      }\n\n      this._restService.get({\n        url: lastLoadInfo.url,\n        moduleId: form.moduleId,\n        getOptions: getOptions,\n        increaseLoadingCount: true,\n      }).then(async r => {\n        if (r && r.count != void (0)) {\n          viewScrollInfo.maxCount = r.count;\n        }\n\n        if (r && r.rows && r.rows.length) {\n          viewScrollInfo.index = index;\n\n          const row = r.rows[0];\n          let id = row[model.keyProperty];\n\n          if (viewScrollInfo.resultKeyResolver) {\n            id = await viewScrollInfo.resultKeyResolver(id, row);\n          }\n\n          form.loadById(id);\n        }\n      });\n    }\n  }\n}\n","import {\n  autoinject,\n  createOverrideContext  \n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  DataSourceService,\n  LocationService\n} from \"../../base/services/export\";\nimport {\n  DefaultCommandsService,\n  ToolbarService,\n  PopupInfoService\n} from \"../services/export\";\nimport {\n  IDataSourceCustomizationOptions,\n  IViewScrollInfo\n} from \"../../base/interfaces/export\";\nimport * as WidgetOptions from \"../widget-options/export\";\nimport { ListType } from '../enums/list-type-enum';\nimport { AsyncService } from '../../base/services/async-service';\n\n@autoinject\nexport class BaseWidgetCreatorService {\n  constructor(\n    private dataSource: DataSourceService,\n    private location: LocationService,\n    private toolbar: ToolbarService,\n    private defaultCommands: DefaultCommandsService,\n    private popupService: PopupInfoService,\n    private asyncService: AsyncService\n  ) { }\n\n  checkListRelationEdit(form: FormBase, options: WidgetOptions.IListOptions) {\n    const hasEditPopup = !!options.idEditPopup\n      || (options.listEdits && options.listEdits.some(edit => !!edit.idEditPopup));\n\n    if (!hasEditPopup || !options.isRelation) {\n      return;\n    }\n\n    form.editPopups.onEditPopupModelLoaded.register(e => {\n      const isMyEditPopup = options.idEditPopup == e.editPopup.id\n      || (options.listEdits && options.listEdits.some(edit => edit.idEditPopup == e.editPopup.id));\n\n      if (!isMyEditPopup) {\n        return;\n      }\n      if (e.model.key !== \"variables.data.$id\") {\n        return;\n      }\n      if (!e.data) {\n        return;\n      }\n      if (e.data[e.model.keyProperty]) {\n        return;\n      }\n\n      const info = form.models.getInfo(options.dataModel);\n      e.data[options.relationBinding.bindTo] = form.models.data[info.id][info.keyProperty];\n\n      return Promise.resolve();\n    });\n  }\n  checkListToolbar(form: FormBase, options: WidgetOptions.IListOptions, addEditCommand: boolean = false, listType: ListType = null) {\n    if (!options.createToolbar && !options.isMainList) {\n      return;\n    }\n\n    const commands = this.defaultCommands.getListCommands(form, options, addEditCommand, listType);\n\n    if (options.commands && options.commands.length) {\n      commands.push(...options.commands.map(i => {\n        return form.binding.evaluate(form.scope, i.binding.bindToFQ)\n      }));\n    }\n\n    if (options.createToolbar) {\n      form[options.optionsToolbar.optionsName] = this.toolbar.createToolbarOptions(\n        form.scopeContainer,\n        options.caption,\n        commands,\n        true,\n        options.icon);\n    } else if (options.isMainList) {\n      commands.forEach(c => form.commands.addCommand(c));\n    }\n  }\n  createListDataSource(form: FormBase, options: WidgetOptions.IListOptionsBase, widgetOptions: DevExpress.ui.WidgetOptions, customizationOptions?: IDataSourceCustomizationOptions): DevExpress.data.DataSource {\n    if (options.dataModel) {\n      const model = form.models.getInfo(options.dataModel);\n      const relationModel = options.isRelation\n        ? form.models.getInfo(options.relationBinding.dataContext)\n        : null;\n\n      const mainModel = relationModel || model;\n\n      customizationOptions = customizationOptions || {};\n      const canLoadList: { (): boolean }[] = [];\n\n      let onInitialized = widgetOptions.onInitialized;\n      let isInitialized = false;\n\n      widgetOptions.onInitialized = (e) => {\n        if (onInitialized) {\n          onInitialized(e);\n        }\n\n        isInitialized = true;\n      }\n\n      if (options.isRelation) {\n        const getCustomWhere = () => {\n          let data = form.models.data && form.models.data[model.id]\n            ? form.models.data[model.id][model.keyProperty]\n            : \"0\";\n\n          data = data || \"0\";\n\n          return [options.relationBinding.bindTo, data];\n        };\n        const getCustomWhereParam = customizationOptions.getCustomWhere;\n\n        customizationOptions.getCustomWhere = () => {\n          const whereParam = getCustomWhereParam ? getCustomWhereParam() : null;\n          const where = getCustomWhere();\n\n          const result = [];\n          if (whereParam) {\n            result.push(whereParam);\n          }\n          if (where) {\n            result.push(where);\n          }\n\n          return result;\n        }\n\n        canLoadList.push(() => {\n          return !!(form.models.data && form.models.data[model.id]\n            && form.models.data[model.id][model.keyProperty]);\n        });\n        form.binding.observe({\n          scopeContainer: form.scopeContainer,\n          expression: `models.data.${model.id}.${model.keyProperty}`,\n          callback: () => {\n            if (!isInitialized) {\n              return;\n            }\n\n            dataSource.reload();\n          }\n        });\n      }\n\n      if (mainModel.canLoad != void(0)) {\n        canLoadList.push(() => {\n          return mainModel.canLoad(widgetOptions);\n        });\n      }\n\n      if (canLoadList.length > 0) {\n        const canLoad = () => {\n          return canLoadList.every(c => c());\n        };\n        const canLoadParam = customizationOptions.canLoad;\n\n        customizationOptions.canLoad = () => {\n          if (!canLoad()) {\n            return false;\n          }\n          if (canLoadParam && !canLoadParam()) {\n            return false;\n          }\n\n          return true;\n        };\n      }\n\n      form.models.onLoadRequired.register(r => {\n        if (r.model != mainModel) {\n          return Promise.resolve();\n        }\n\n        return new Promise<any>((resolve, reject) => {\n          if (!r.onlyCurrentPage) {\n            if (dataSource.pageIndex() > 0) {\n              dataSource.pageIndex(0);\n            }  \n          }\n\n          if (!isInitialized) {\n            resolve(true);\n            return;\n          }\n          \n          this.asyncService.convertToPromise(dataSource.reload())\n            .then(resolve)\n            .catch(reject);\n        });\n      });\n\n      const onLoaded = (data) => {\n        form.models.callOnLoaded(mainModel, data);\n      };\n      const onLoadedParam = customizationOptions.onLoaded;\n      customizationOptions.onLoaded = (data) => {\n        onLoaded(data);\n\n        if (onLoadedParam) {\n          onLoadedParam(data);\n        }\n      };\n\n      const dataSource = this.dataSource.createDataSource(form.scopeContainer, mainModel, customizationOptions);\n      return dataSource;\n    }\n  }\n  setListClickActions(form: FormBase, options: WidgetOptions.IListOptionsBase): void {\n    const clickActions: { (e: any, dataSource?: DevExpress.data.DataSource): void }[] = [];\n    const openClickActions: { (e: any, dataSource?: DevExpress.data.DataSource): void }[] = [];\n\n    const getViewScrollInfo = (e: any, dataSource: DevExpress.data.DataSource): IViewScrollInfo => {\n      const customDataSource: any = dataSource;\n      if (!customDataSource.lastLoadInfo) {\n        return null;\n      }\n\n      const pageSize = dataSource.pageSize();\n      const pageIndex = dataSource.pageIndex();\n      const pageStart = pageSize * pageIndex;\n\n      let rowIndex = -1;\n      if (e && e.rowIndex != void(0)) {\n        rowIndex = e.rowIndex;\n\n        if (!e.hasAllPages) {\n          rowIndex = rowIndex + pageStart;\n        }\n      }\n\n      return {\n        lastLoadInfo: customDataSource.lastLoadInfo,\n        index: rowIndex,\n        maxCount: dataSource.totalCount()\n      };\n    };\n\n    if (options.editDataContext || options.listEdits.length > 0) {\n      if (options.listEdits.length > 0) {\n        clickActions.push((e, ds) => {\n          const edit = options.listEdits.find(c => c.typeName === e.data.ObjectTypeName);\n          if (!edit) {\n            return;\n          }\n\n          form.models.data[edit.editDataContext] = e.data;\n        });\n      } else {\n        clickActions.push((e, ds) => {\n          form.models.data[options.editDataContext] = e.data;\n        });\n      }\n    }\n    if (options.onItemClick) {\n      clickActions.push((e, ds) => {\n        form.binding.evaluate({\n          bindingContext: form,\n          overrideContext: createOverrideContext({\n            \"$event\": e\n          })\n        }, options.onItemClick);\n      });;\n    }\n    if ((options.editUrl || options.listEdits.length > 0) && options.dataModel) {\n      const model = form.models.getInfo(options.dataModel);\n\n      if (model) {\n        if (options.listEdits.length > 0) {\n          openClickActions.push(async (e, ds) => {\n            const edit = options.listEdits.find(c => c.typeName === e.data.ObjectTypeName);\n            if (!edit) {\n              return;\n            }\n            if (!edit.editUrl) {\n              return;\n            }\n\n            const popupClosed = await this.popupService.closeAllPopups();\n            if (!popupClosed) {\n              return;\n            }       \n\n            this.location.goTo({\n              url: `#${edit.editUrl}/${e.data[model.keyProperty]}`,\n              currentViewModel: form,\n              viewScrollInfo: getViewScrollInfo(e, ds)\n            });\n          });\n        } else {\n          openClickActions.push(async (e, ds) => {\n            const key = options.editUrlIdProperty\n              ? e.data[options.editUrlIdProperty]\n              : e.data[model.keyProperty];\n\n            const popupClosed = await this.popupService.closeAllPopups();\n            if (!popupClosed) {\n              return;\n            }\n          \n            this.location.goTo({\n              url: `#${options.editUrl}/${key}`, \n              currentViewModel: form,\n              viewScrollInfo: getViewScrollInfo(e, ds)\n            });\n          });\n        }\n      }\n    }\n    if ((options.idEditPopup || options.listEdits.length > 0)) {\n      form.editPopups.onEditPopupHidden.register(a => {\n        if (a.editPopup.id === options.idEditPopup || options.listEdits.some(c => c.idEditPopup === a.editPopup.id)) {\n          const listInstance = form[options.id];\n          if (!listInstance) {\n            return;\n          }\n\n          if (listInstance.instance && listInstance.instance.refresh) {\n            listInstance.instance.refresh();\n          } else if (listInstance.refresh) {\n            listInstance.refresh();\n          }\n        };\n\n        return Promise.resolve();\n      });\n\n      if (options.listEdits.length > 0) {\n        //TODO - Info aus DataSource.lastLoadOptions übergeben und verarbeiten\n        openClickActions.push((e, ds) => {\n          const edit = options.listEdits.find(c => c.typeName === e.data.ObjectTypeName);\n          if (!edit) {\n            return;\n          }\n          if (!edit.idEditPopup) {\n            return;\n          }\n\n          form.editPopups.show(edit.idEditPopup, getViewScrollInfo(e, ds));\n        });\n      } else {\n        openClickActions.push((e, ds) => {\n          form.editPopups.show(options.idEditPopup, getViewScrollInfo(e, ds));\n        });\n      }\n    }\n\n    const customOptions = this.getCustomOptions(form, options);\n    customOptions.clickActions = clickActions;\n    customOptions.openClickActions = openClickActions;\n    customOptions.hasClickActions = clickActions.length > 0 || openClickActions.length > 0;\n\n    if (clickActions.length && openClickActions.length) {\n      clickActions.push((e, ds) => {\n        customOptions.clickArguments = {\n          event: e,\n          dataSource: ds\n        }\n      });\n    }\n  }\n\n  createWidgetOptions(form: FormBase, options: WidgetOptions.IWidgetOptions): any {\n    const widgetOptions: DevExpress.ui.WidgetOptions = {\n      bindingOptions: {}\n    };\n\n    if (options.isDisabled) {\n      widgetOptions.disabled = true;\n    } else if (options.isDisabledExpression) {\n      widgetOptions.bindingOptions[\"disabled\"] = options.isDisabledExpression;\n    }\n\n    if (options.tooltip) {\n      widgetOptions.hint = options.tooltip;\n    }\n\n    const customWidgetOptions: any = widgetOptions;\n\n    widgetOptions.onDisposing = () => {\n      widgetOptions.onDisposing = null;\n\n      this.callCustomDisposing(form, options);\n    };\n\n    form.onUnbind.register(() => {\n      for (let key in widgetOptions) {\n        if (key.startsWith(\"on\") && typeof widgetOptions[key] === \"function\") {\n          delete widgetOptions[key];\n        }\n      };\n\n      return Promise.resolve();\n    });\n\n    form[options.options.optionsName] = widgetOptions;\n\n    return widgetOptions;\n  }\n\n  callCustomDisposing(form: FormBase, options: any): void {\n    const customOptions = this.getCustomOptions(form, options);\n    if (!customOptions.disposing) {\n      return;\n    }\n\n    customOptions.disposing.forEach(c => c());\n    delete customOptions.disposing;\n    delete options[\"__customOptions\"];\n  }\n  registerCustomDisposing(form: FormBase, options: any, action: { (): void }) {\n    const customOptions = this.getCustomOptions(form, options);\n    customOptions.disposing = customOptions.disposing || [];\n\n    customOptions.disposing.push(action);\n  }\n\n  getCustomOptions(form: FormBase, options: WidgetOptions.IWidgetOptions) {\n    if (!form[options.options.optionsName][\"__customOptions\"]) {\n      form[options.options.optionsName][\"__customOptions\"] = {};\n    }\n\n    return form[options.options.optionsName][\"__customOptions\"];\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  GeschaeftspartnerSearchResult\n} from \"../elements/geschaeftspartner-search-result/geschaeftspartner-search-result\";\nimport {\n  ISearchOptions\n} from \"../interfaces/export\";\n\n@autoinject\nexport class GeschaeftspartnerSearchService {\n  constructor() { }\n\n  geschaeftspartnerSearchResult: GeschaeftspartnerSearchResult;\n  \n  show(callbackSuccess: { (idGp): void }, callbackCancel: { (): void }, options?: ISearchOptions) {\n    this.geschaeftspartnerSearchResult.showPopup(callbackSuccess, callbackCancel, options)\n  }\n}","export enum ListType {\n  DataGrid,\n  ListView,\n  List\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\n\nimport {\n  FormBase,\n} from \"../../../../framework/forms/export\";\n\n@autoinject\n@transient()\nexport class KonditionListNestedUtils {\n  constructor(\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"variables.data.$v_idArtikel\",\n      callback: (newValue) => {\n        this.changeColumnVisible(\"ArtikelInfo.CboBezeichnung\", !newValue);\n      }\n    });\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"variables.data.$v_idGeschaeftspartner\", \n      callback: (newValue) => {\n        this.changeColumnVisible(\"GeschaeftspartnerInfo.CboBezeichnung\", !newValue);\n      }\n    });\n\n    if (!this.form.variables.getInfo(\"$v_idArtikel\").isMapped) {\n      this.form.variables.data.$v_idArtikel = 0;\n    }\n    if (!this.form.variables.getInfo(\"$v_idGeschaeftspartner\").isMapped) {\n      this.form.variables.data.$v_idGeschaeftspartner = 0;\n    }\n  }\n\n  private changeColumnVisible(dataField: string, isVisible: boolean) {\n    const grid = this.form[\"r_konditionGrid\"];\n    if (grid && grid.instance) {\n      const grid: DevExpress.ui.dxDataGrid = this.form[\"r_konditionGrid\"].instance;\n\n      const columns: any[] = grid.option(\"columns\");\n      const indexOf = columns.findIndex(c => c.dataField === dataField);\n\n      if (indexOf < 0) {\n        return;\n      }\n\n      grid.option(`columns[${indexOf}].visible`, isVisible);\n    } else {\n      const options: DevExpress.ui.dxDataGridOptions = this.form[\"r_konditionGridOptions\"];\n      const column = (<DevExpress.ui.dxDataGridColumn[]>options.columns).find(c => c.dataField === dataField);\n\n      if (column == null) {\n        return;\n      }\n\n      column.visible = isVisible;\n    }\n  }\n}\n","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject } from \"aurelia-framework\";\nimport { ILocationGoToEventArgs } from \"../../base/event-args/export\";\nimport { LocalizationService } from \"../../base/services/export\";\nimport * as Interfaces from \"../interfaces/export\";\nimport { IHistoryState } from \"./../interfaces/history-state\";\nimport { PopupInfoService } from \"./popup-info-service\";\nimport { RouterService } from \"./router-service\";\n\n@autoinject\nexport class HistoryService {\n  private isActive = false;\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private router: RouterService,\n    private localization: LocalizationService,\n    private popupInfoService: PopupInfoService) {\n    this.register();\n  }\n\n  pipelineUrl: string;\n  lastRequestUrl: string;\n  checkHasChangedDataBeforeUnload: boolean = true;\n\n  clearAndGoToFallback() {\n    //Damit keine Frage nach Änderungen speichern kommt\n    this.router.currentViewItem = null;\n\n    this.navigate({\n      url: \"\",\n      clearStack: true\n    });\n  }\n  goBack(): Promise<any> {\n    history.back();\n    return Promise.resolve();\n  }\n  getUrl(url?: string): string {\n    let hash = url || location.hash;\n\n    if (!hash) {\n      return \"\";\n    }\n\n    if (hash.substr(0, 1) === \"#\") {\n      return hash.substr(1);\n    } else {\n      return hash;\n    }\n  }\n  getUrlWithHash(url?: string): string {\n    return \"#\".concat(this.getUrl(url));\n  }\n  navigateCurrentOrInPipeline() {\n    if (this.pipelineUrl) {\n      this.guardedNavigate(() => {\n        return this.navigate({\n          url: this.pipelineUrl,\n          clearStack: true\n        }).then(() => {\n          this.pipelineUrl = null;\n        });\n      });\n    } else {\n      this.guardedNavigate(() => {\n        return this.navigate({\n          url: this.getUrl()\n        });\n      });\n    }\n  }\n  //TODO - ev. in LocationService übernehmen, da es dort besser passt\n  setUrlWithoutNavigation(url: string, replace: boolean = false) {\n    this.guardedNavigate(() => {\n      let currentStateHistory: Interfaces.IHistoryState = history.state;\n\n      const urlWithHash = this.getUrlWithHash(url);\n      this.router.updateCurrentUrl(urlWithHash);\n\n      if (currentStateHistory) {\n        currentStateHistory.url = url;\n\n        history.replaceState(\n          currentStateHistory,\n          currentStateHistory.caption,\n          urlWithHash);\n      } else {\n        const currentStateRouter = this.router.getCurrentHistoryState();\n\n        history.pushState(\n          currentStateRouter,\n          currentStateRouter.caption,\n          urlWithHash);\n      }\n      return Promise.resolve();\n    });\n  }\n\n  private register() {\n    window.addEventListener(\"popstate\", (e: any) => {\n      this.guardedNavigate(async () => {\n        const state: IHistoryState = e.state;\n        let hasRoute = false;\n        let isForward = false;\n        if (state && state.id != void (0)) {\n          //Prüfen ob dieser State existiert\n          //Wenn ja, dann wurde ein Back ausgeführt, ansonsten ein Forward\n          hasRoute = this.router.hasRouteWithId(state.id);\n\n          if (hasRoute) {\n            const canDeactivate = await this.router.canDeactivateCurrentView();\n            if (!canDeactivate) {\n              //Wenn nicht deaktiviert werden kann, dann wird der History-State verwendet\n              //und wieder neu hinzugefügt\n\n              const currentState = this.router.getCurrentHistoryState();\n\n              history.pushState(\n                currentState,\n                currentState.caption,\n                this.getUrlWithHash(currentState.url));\n\n              return;\n            }\n          } else {\n            const currentState = this.router.getCurrentHistoryState();\n            if (currentState && currentState.id < state.id) {\n              isForward = true;\n            }\n          }\n        }\n\n        //Muss hier gemacht werden, da sonst EditPopups zwar im Vordergrund geschlossen werden, weil das dazugehörige \n        //Edit-Form geschlossen wird, aber im hintergrund immer noch existiert\n        await this.popupInfoService.closeAllPopups();\n\n        return this.navigate({\n          historyState: e.state,\n          clearStack: !e.state || e.state.id == void (0) || (!isForward && !hasRoute),\n          url: this.getUrl(),\n          isPopState: true\n        });\n      });\n    });\n    window.addEventListener(\"beforeunload\", (e: any) => {\n      if (!this.checkHasChangedDataBeforeUnload) {\n        return;\n      }\n\n      const args = {\n        hasChangedData: false\n      };\n      this.eventAggregator.publish(\"window:beforeunload\", args);\n\n      if (args.hasChangedData) {\n        e.returnValue = this.localization.translateOnce(\"stack-router.changed-data-found\");\n        return e.returnValue;\n      }\n    });\n\n    this.eventAggregator.subscribe(\"location:go-back\", e => {\n      this.goBack();\n    });\n    this.eventAggregator.subscribe(\"location:go-to\", e => {\n      e.promise = this.guardedNavigate(async () => {\n        const isHandled = await this.navigateByLocation(e.args);\n        e.isHandled = isHandled;\n      });\n    });\n  }\n  private async guardedNavigate(action: { (): Promise<any>; }) {\n    if (this.isActive) {\n      return;\n    }\n\n    this.isActive = true;\n    try {\n      return await action();\n    } finally {\n      this.isActive = false;\n    }\n  }\n  private async navigate(navigationArgs: Interfaces.INavigationArgs): Promise<boolean> {\n    this.lastRequestUrl = navigationArgs.url;\n\n    const hasNavigated = await this.router.navigate(navigationArgs);\n\n    if (hasNavigated) {\n      this.setCurrentHistory(navigationArgs.didReplace || navigationArgs.isPopState);\n      return true;\n    } else {\n      return false;\n    }\n  }\n  private async navigateByLocation(locationGoTo: ILocationGoToEventArgs): Promise<boolean> {\n    let replace = locationGoTo.replace || false;\n\n    if (this.router.viewStack.length > 1\n      && this.router.viewStack[this.router.viewStack.length - 2].controller[\"currentViewModel\"] === locationGoTo.currentViewModel) {\n      replace = true;\n    }\n\n    const args: Interfaces.INavigationArgs = {\n      url: this.getUrl(locationGoTo.url),\n      viewScrollInfo: locationGoTo.viewScrollInfo,\n      replace: replace,\n      clearStack: locationGoTo.clearStack,\n      setValuesOnModelWithKeyIdLoaded: locationGoTo.setValuesOnModelWithKeyIdLoaded,\n      customOptions: locationGoTo.customOptions\n    };\n\n    await this.navigate(args);\n    return true;\n  }\n  private setCurrentHistory(replace: boolean) {\n    const currentHistoryState = this.router.getCurrentHistoryState();\n\n    if (replace) {\n      history.replaceState(\n        currentHistoryState,\n        currentHistoryState.caption,\n        this.getUrlWithHash(currentHistoryState.url));\n    } else {\n      history.pushState(\n        currentHistoryState,\n        currentHistoryState.caption,\n        this.getUrlWithHash(currentHistoryState.url));\n    }\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnAuftragListBestaetigt, OnAuftragListBestaetigtEvent, OnAuftragListLieferdatumAendern, OnAuftragListLieferdatumAendernEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent, IdxDateBoxComponent, IdxPopupComponent } from \"../../../interfaces/dx-components\";\nimport { AsyncService } from \"./../../../../framework/base/services/async-service\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class AuftragListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _localizationService: LocalizationService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n  auftragGridRowDataList: any[];\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_AuftragListUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_AuftragListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Auftrag, keys);\n    }\n  };\n\n  bestaetigenSetzenCommand: ICommandData = {\n    id: \"bestaetigenSetzen\",\n    idCategory: \"auftrag\",\n    title: \"auftrag.bestaetigen\",\n    icon: \"star-o\",\n    sortIndex: 10,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const auftragGridData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (auftragGridData.length == 0) {\n        return;\n      }\n\n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"auftrag.sure_bestaetigen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasBestaetigteEintraege = auftragGridData\n        .some((c) => c.IsBestaetigt);\n\n      if (hasBestaetigteEintraege) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"auftrag.hinweis_bestaetigt\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return;\n        }\n      }\n\n      const idAuftragList = auftragGridData.map(c => c.Id);\n\n      const args: OnAuftragListBestaetigt = {\n        IdAuftragList: idAuftragList,\n        IsBestaetigt: true\n      };\n\n      const webEventResult: OnAuftragListBestaetigt = await this._webEventService.execute(new OnAuftragListBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n\n  bestaetigenEntfernenCommand: ICommandData = {\n    id: \"bestaetigenEntfernen\",\n    idCategory: \"auftrag\",\n    title: \"auftrag.nicht_bestaetigen\",\n    icon: \"star\",\n    sortIndex: 10,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const auftragGridData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (auftragGridData.length == 0) {\n        return;\n      }\n\n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"auftrag.sure_nicht_bestaetigen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasBestaetigteEintraege = auftragGridData\n        .some((c) => !c.IsBestaetigt);\n\n      if (hasBestaetigteEintraege) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"auftrag.hinweis_nicht_bestaetigt\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return;\n        }\n      }\n\n      const idAuftragList = auftragGridData.map(c => c.Id);\n\n      const args: OnAuftragListBestaetigt = {\n        IdAuftragList: idAuftragList,\n        IsBestaetigt: false\n      };\n\n      const webEventResult: OnAuftragListBestaetigt = await this._webEventService.execute(new OnAuftragListBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n\n  lieferdatumAendernCommand: ICommandData = {\n    id: \"lieferdatumAendern\",\n    idCategory: \"auftrag\",\n    title: \"auftrag.lieferdatum_aendern\",\n    icon: \"calculator\",\n    sortIndex: 10,\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_auftragLieferdatumAendernPopup\"];\n\n      popup.instance.show();\n\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n      dateBox.setOption({\n        value: null\n      });\n\n      return this.form.models.reloadAll();\n    }\n  };\n\n  doLieferdatumAendernCommand: ICommandData = {\n    id: \"doLieferdatumAendern\",\n    title: \"auftrag.lieferdatum_aendern\",\n    icon: \"save\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_auftragLieferdatumAendernPopup\"];\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n\n      const datum = dateBox.instance.option(\"value\");\n      if (!datum) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"auftrag.datum_auswaehlen\"), \"error\", this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const idAuftragList = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      const args: OnAuftragListLieferdatumAendern = {\n        IdAuftragList: idAuftragList,\n        Lieferdatum: datum\n      };\n\n      const webEventResult: OnAuftragListLieferdatumAendern = await this._webEventService.execute(new OnAuftragListLieferdatumAendernEvent(args), true);\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Auftrag);\n      return Promise.resolve();\n    });\n  }\n\n  onReservierungsgradCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.IsBestaetigt == false || e.data.Status.Typ !== 0) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.Reservierungsgrad < 1\n      ? \"#C1392D\"\n      : (e.data.HasArtikelNichtLagerfuehrendOffen ? \"#566473\" : \"#2DCC70\");\n  }\n}\n","import { GlobalizationService } from './../../base/services/globalization-service';\nimport { autoinject, computedFrom } from \"aurelia-framework\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { LayoutService } from './layout-service';\nimport { DxWidget } from '../../dx/elements/dx-widget';\nimport { LocalizationService, IDataSourceCustomizationOptions } from '../../base/export';\nimport { FormBase } from '../form-export';\nimport { GridLayoutColumns } from '../elements/grid-layout-columns/grid-layout-columns';\n\n@autoinject\nexport class GridLayoutService {\n  constructor(\n    private eventAggregator: EventAggregator,\n    private layoutService: LayoutService,\n    private globalizationService: GlobalizationService,\n    private localizationService: LocalizationService\n  ) {\n    this.eventAggregator.subscribe(\"data-grid:customize-data-source\", e => {\n      const gridOptions: DevExpress.ui.dxDataGridOptions = e.dataGridOptions;\n      const modelInfo = this.getMainModelFromCustomizeEvent(e);\n\n      const r = this.addGridColumnExtender({\n        gridOptions: gridOptions,\n        webApiAction: modelInfo ? modelInfo.webApiAction : null,\n        viewUrl: e.form.viewUrl,\n        id: e.options.id\n      });\n\n      const customizationOptions: IDataSourceCustomizationOptions = e.customizationOptions;\n      customizationOptions.getCustomFilters = () => {\n        const columns = r.getDynamicColumns();\n        if (columns.length === 0) {\n          return null;\n        }\n\n        return [{\n          webApiCustomKey: \"ExtendedLoadProperties\",\n          webApiCustomValue: JSON.stringify(columns)\n        }];\n      };\n    });\n    this.eventAggregator.subscribe(\"dx-widget:attaching\", e => {\n      const widget: DxWidget = e.widget;\n      if (widget.name != \"dxDataGrid\" || !widget.id || !widget.parentViewUrl) {\n        return;\n      }\n\n      const gridOptions: DevExpress.ui.dxDataGridOptions = e.options;\n\n      gridOptions.allowColumnReordering = gridOptions.allowColumnReordering == void(0)\n        ? true\n        : gridOptions.allowColumnReordering;\n\n      gridOptions.allowColumnResizing = gridOptions.allowColumnResizing == void(0)\n        ? true\n        : gridOptions.allowColumnResizing;\n\n      const layout = this.layoutService.getLayout(this.GRID_LAYOUT, widget.parentViewUrl, widget.id);\n      if (!layout) {\n        return;\n      }\n\n      this.assignLayoutToColumnsInt(layout.columns, <DevExpress.ui.dxDataGridColumn[]>gridOptions.columns);\n    });\n    this.eventAggregator.subscribe(\"dx-widget:attached\", e => {\n      const widget: DxWidget = e.widget;\n      if (widget.name != \"dxDataGrid\" || !widget.id || !widget.parentViewUrl) {\n        return;\n      }\n\n      const instance = e.instance;\n      instance.on(\"contextMenuPreparing\", c => {\n        if (!c || !c.row || c.row.rowType != \"header\") {\n          return;\n        }\n\n        this.loadContexMenuItems(widget, c);\n      });\n    });\n  }\n\n  gridLayoutColumnsElement: GridLayoutColumns;\n\n  get GRID_LAYOUT() {\n    return \"grid-layout\";\n  }\n  get GRID_COLUMNS() {\n    return \"grid-columns\";\n  }\n\n  addGridColumnExtender(options: IGridColumnExtenderOptions): IGridColumnExtenderResult {\n    const dynColumns: any[] = this.layoutService.getLayout(this.GRID_COLUMNS, options.viewUrl, options.id);\n    if (dynColumns && dynColumns.length) {\n      this.setDynColumns(options.gridOptions, dynColumns)\n    }\n\n    options.gridOptions.onContextMenuPreparing = (c) => {\n      if (!c || !c.row || c.row.rowType != \"header\") {\n        return;\n      }\n      if (!options.viewUrl || !options.id) {\n        return;\n      }\n      if (!options.webApiAction) {\n        return;\n      }\n\n      const insertAt = c.items.findIndex(c => c.beginGroup);\n      c.items[insertAt].beginGroup = false;\n      c.items.splice(insertAt, 0, {\n        text: this.localizationService.translateOnce(\"forms.layout_spalten_hinzufuegen\"),\n        icon: \"fa fa-plus fa-fw\",\n        beginGroup: true,\n        onItemClick: () => {\n          const component = <DevExpress.ui.dxDataGrid>c.component;\n\n          this.gridLayoutColumnsElement.showPopup({\n            webApiAction: options.webApiAction,\n            formViewUrl: options.viewUrl,\n            idGrid: options.id,\n            gridInstance: component,\n            onColumnsAdded: () => {\n              if (options.onColumnsAdded) {\n                options.onColumnsAdded();\n              } else {\n                component.refresh();\n              }\n            }\n          });\n        }\n      });\n    };\n\n    return {\n      getDynamicColumns: () => {\n        const layout = this.layoutService.getLayout(this.GRID_COLUMNS, options.viewUrl, options.id);\n        if (!layout) {\n          return [];\n        }\n\n        return layout.map(c => c.dataField);\n      }\n    };\n  }\n\n  assignLayoutToColumns(dataGridWidget: DxWidget, columns: DevExpress.ui.dxDataGridColumn[]) {\n    if (dataGridWidget.name != \"dxDataGrid\" || !dataGridWidget.id || !dataGridWidget.parentViewUrl) {\n      return;\n    }\n    \n    const layout = this.layoutService.getLayout(this.GRID_LAYOUT, dataGridWidget.parentViewUrl, dataGridWidget.id);\n    if (!layout) {\n      return;\n    }\n\n    this.assignLayoutToColumnsInt(layout.columns, columns);\n  }\n  \n  loadLayout(dataGridWidget: DxWidget) {\n    if (dataGridWidget.name != \"dxDataGrid\" || !dataGridWidget.id || !dataGridWidget.parentViewUrl) {\n      return;\n    }\n    \n    const layout = this.layoutService.getLayout(this.GRID_LAYOUT, dataGridWidget.parentViewUrl, dataGridWidget.id);\n    if (!layout) {\n      return;\n    }\n\n    const dataGrid: DevExpress.ui.dxDataGrid = dataGridWidget.instance;\n    \n    const columns = dataGrid.option(\"columns\");\n    this.assignLayoutToColumnsInt(layout.columns, columns);\n\n    dataGrid.option(\"columns\", columns);\n  }\n\n  private getMainModelFromCustomizeEvent(e) {\n    const options = e.options;\n\n    const model = options.dataModel;\n    const relationModel = options.isRelation\n      ? options.relationBinding.dataContext\n      : null;\n    const mainModel: string = relationModel || model;\n\n    const form: FormBase = e.form;\n    return form.models.getInfo(mainModel);\n  }\n\n  private getColumnsLayout(dataGrid: DevExpress.ui.dxDataGrid): DevExpress.ui.dxDataGridColumn[] {\n    const layout: DevExpress.ui.dxDataGridColumn[] = [];\n\n    dataGrid.getVisibleColumns().forEach(c => {\n      layout.push({\n        dataField: c.dataField,\n        visibleIndex: c.visibleIndex,\n        width: c.width,\n        minWidth: c.minWidth,\n        sortIndex: c.sortIndex,\n        sortOrder: c.sortOrder\n      });\n    });\n\n    return layout;\n  }\n  private assignLayoutToColumnsInt(layoutColumns: DevExpress.ui.dxDataGridColumn[], columns: DevExpress.ui.dxDataGridColumn[]) {\n    if (!columns) {\n      return;\n    }\n\n    layoutColumns.forEach(lc => {\n      const c = columns.find(dc => dc.dataField === lc.dataField);\n      if (!c) {\n        return;\n      }\n\n      c.dataField = lc.dataField;\n      c.visibleIndex = lc.visibleIndex;\n      c.visible = true;\n      c.width = lc.width;\n      c.minWidth = lc.minWidth;\n      c.sortIndex = lc.sortIndex;\n      c.sortOrder = lc.sortOrder;\n    });\n\n    columns\n      .filter(column => !layoutColumns.some(lc => lc.dataField == column.dataField))\n      .forEach(column => column.visible = false);\n  }\n  private setDynColumns(dataGrid: DevExpress.ui.dxDataGridOptions, layoutColumns: DevExpress.ui.dxDataGridColumn[]) {\n    layoutColumns.forEach(c => {\n      const newColumn = Object.assign({}, c);\n\n      if (c.format) {\n        newColumn.format = this.globalizationService.getFormatterParser(<string>c.format);\n      }\n\n      dataGrid.columns.push(newColumn);\n    });\n  }\n\n  private loadContexMenuItems(widget: DxWidget, ev: any) {\n    const canDeleteLayout = this.layoutService.getLayout(this.GRID_LAYOUT, widget.parentViewUrl, widget.id) != void 0\n      ? true\n      : false;\n\n    ev.items = ev.items || [];\n\n    ev.items.push({\n      text: this.localizationService.translateOnce(\"forms.layout_spalten_auswahl\"),\n      icon: \"fa fa-columns fa-fw\",\n      beginGroup: true,\n      onItemClick: () => {\n        const grid: DevExpress.ui.dxDataGrid = ev.component;\n\n        grid.showColumnChooser();\n      }\n    });\n\n    ev.items.push({\n      text: this.localizationService.translateOnce(\"forms.layout_speichern\"),\n      icon: \"fa fa-floppy-o fa-fw\",\n      onItemClick: () => {\n        const layout = {\n          columns: this.getColumnsLayout(ev.component)\n        };\n\n        this.layoutService.saveLayout(this.GRID_LAYOUT, widget.parentViewUrl, widget.id, layout);\n      }\n    });\n\n    if (canDeleteLayout) {\n      ev.items.push({\n        text: this.localizationService.translateOnce(\"forms.layout_loeschen\"),\n        icon: \"fa fa-times fa-fw\",\n        onItemClick: () => {\n          this.layoutService.deleteLayout(this.GRID_LAYOUT, widget.parentViewUrl, widget.id);\n        }\n      });\n    }\n  }\n}\n\nexport interface IGridColumnExtenderOptions {\n  gridOptions: DevExpress.ui.dxDataGridOptions;\n  webApiAction: string;\n  viewUrl: string;\n  id: string;\n  onColumnsAdded?: {(): void}\n}\nexport interface IGridColumnExtenderResult {\n  getDynamicColumns: {(): string[]};\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"../../framework/base/export\";\n\n@autoinject\nexport class ProjektService {\n  constructor(\n    private _restService: RestService) { }\n\n  getProjektById(idProjekt: number): Promise<any> {\n    if (!idProjekt) {\n      return Promise.resolve(false);\n    }\n\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/Stammdaten/Projekt\")}/${idProjekt}`,\n      increaseLoadingCount: true\n    });\n  }\n  getProjektByNummer(nummer: string): Promise<any> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Projekt\"),\n      getOptions: {\n        where: [\"Nummer\", nummer]\n      },\n      increaseLoadingCount: true\n    });\n  }\n  getProjektBySearchtextEindeutig(searchtext: string): Promise<any[]> {\n    const getOptions = {\n      searchtext: searchtext,\n      columns: [\"Id\"],\n      take: 2\n    };\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Projekt\"),\n      getOptions: getOptions,\n      increaseLoadingCount: true\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  DruckenCommand\n} from \"../elements/drucken-command/drucken-command\";\nimport {\n  WebEventService, LocalizationService\n} from \"../../framework/base/export\";\nimport {\n  OnReportDruckEvent,\n  OnReportDruck,\n  OnReportRequestEvent,\n  OnReportRequest,\n  OnErstelleDruckJobEvent,\n  OnRequestAnzAusdruckeEvent,\n  OnRequestAnzAusdrucke\n} from \"../../framework-data/events\";\nimport { IFormCommandExecuteOptions } from '../interfaces/export';\nimport { ValidationExService } from './validation-ex-service';\n\n@autoinject\nexport class DruckenService {\n  constructor(\n    private _webEventService: WebEventService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService\n  ) { }\n\n  druckenCommand: DruckenCommand;\n\n  showDruckenPopup(dmsLink: string, idVerknuepfteEntitaet: number = null) {\n    this.druckenCommand.showPopup(dmsLink, idVerknuepfteEntitaet);\n  }\n  showDruckenContextMenu(idVerknuepfteEntitaet: number, reportList: any[], options: IFormCommandExecuteOptions) {\n    this.druckenCommand.showContextMenu(idVerknuepfteEntitaet, reportList, options);\n  }\n  async executeDruckCommand(e: IFormCommandExecuteOptions) {\n    const validationResult = await this._validationExService.executeServerValidation(\n      e.modelData.TypeName,\n      e.modelData.Id,\n      \"DRUCK\"\n    );\n\n    if (!validationResult) {\n      return;\n    }\n\n    const webEvent = new OnReportRequestEvent({ IdObjekt: e.modelData.Id });\n    const result: OnReportRequest = await this._webEventService.execute(webEvent, true);\n\n    if (!result || !result.ReportItemList || result.ReportItemList.length === 0) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"erp_druck.keine-ausdrucke-vorhanden\"),\n        \"info\", \n        3000);\n\n      return;\n    }\n\n    this.handleDruckRequest(result, e);\n  }\n  async executeDruckJob(dmsLink: string, anzAusdrucke: number = 1) {\n    const webEvent = new OnErstelleDruckJobEvent({ \n      DMSLink: dmsLink,\n      AnzAusdrucke: anzAusdrucke\n    });\n    await this._webEventService.execute(webEvent, true);\n\n    DevExpress.ui.notify(\n      this._localizationService.translateOnce(\"erp_druck.sent-to-druck-job\"),\n      \"success\", \n      3000);\n  }\n  async getAnzAusdrucke(idEntitaet: number): Promise<number> {\n    if (!idEntitaet) {\n      return 1;\n    }\n\n    const webEvent = new OnRequestAnzAusdruckeEvent({ \n      IdEntitaet: idEntitaet\n    });\n    const result: OnRequestAnzAusdrucke = await this._webEventService.execute(webEvent, true);\n    return result.AnzAusdrucke || 1;\n  }\n\n  async getReport(idObjekt: number, idReport: string) {\n    const webEvent = new OnReportDruckEvent({ IdObjekt: idObjekt, IdReport: idReport });\n    const report: OnReportDruck = await this._webEventService.execute(webEvent, true);\n\n    return report;\n  }\n\n  private async handleDruckRequest(res: OnReportRequest, e: IFormCommandExecuteOptions) {\n    const hasMultipleRecords = res.ReportItemList.length > 1;\n\n    if (hasMultipleRecords) {\n      this.showDruckenContextMenu(res.IdObjekt, res.ReportItemList, e);\n      return\n    }\n\n    const report = await this.getReport(res.IdObjekt, res.ReportItemList[0].Id);\n\n    this.showDruckenPopup(report.DMSLink, report.IdObjekt);\n  }\n}\n","export class ObjectInfoService {\n  equal(x: any, y: any): boolean {\n\n    if (x === null || x === undefined || y === null || y === undefined) {\n      return x === y;\n    }\n    if (x.constructor !== y.constructor) {\n      return false;\n    }\n    if (x instanceof Function) {\n      return x === y;\n    }\n    if (x instanceof RegExp) {\n      return x === y;\n    }\n    if (x === y || x.valueOf() === y.valueOf()) {\n      return true;\n    }\n    if (Array.isArray(x) && x.length !== y.length) {\n      return false;\n    }\n\n    if (x instanceof Date) {\n      return false;\n    }\n\n    if (!(x instanceof Object)) {\n      return false;\n    }\n    if (!(y instanceof Object)) {\n      return false;\n    }\n\n    var p = Object.keys(x);\n    return Object.keys(y).every((i) => {\n      return p.indexOf(i) !== -1;\n    }) && p.every((i) => {\n      return this.equal(x[i], y[i]);\n    });\n  }\n}","import {\n  autoinject,\n  TemplatingEngine\n} from \"aurelia-framework\";\n\nimport {\n  LocalizationService, TemplatingExService\n} from \"../../framework/base/export\";\nimport {\n  FormEventService, RouterService, FormBase\n} from \"../../framework/forms/export\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { ZugriffHistorieService } from './zugriff-historie-service';\nimport { EntitaetInfoService } from './entitaet-info-service';\n\n@autoinject\nexport class FormExtenderService {\n  constructor(\n    private _formEventService: FormEventService,\n    private _localizationService: LocalizationService,\n    private _templatingEngine: TemplatingEngine,\n    private _templatingExService: TemplatingExService,\n    private _eventAggregator: EventAggregator,\n    private _routerService: RouterService,\n    private _zugriffHistorieService: ZugriffHistorieService,\n    private _entitaetInfoService: EntitaetInfoService\n  ) {\n    this.registerAendInfo();\n    this.registerFormReloadOnActivate();\n    this.registerEditFormZugriffHistorie();\n  }\n\n  private registerAendInfo() {\n    this._formEventService.onAttached.register(e => {\n      if (!e.form.models.modelWithKeyId) {\n        return;\n      }\n\n      const model = e.form.models.modelWithKeyId;\n      if (model.custom && model.custom.showAendinfo === false) {\n        return;\n      }\n\n      let parentElement = e.form.element.querySelector(\".t--form-content .dx-scrollview-content > .parent-container > .container\");\n      if (!parentElement) {\n        parentElement = e.form.element.querySelector(\".t--form-validation-group > div > .parent-container > .container\");\n\n        if (!parentElement) {\n          return;\n        }\n      }\n\n      const modelPraefix = \"models.data.\".concat(model.id).concat(\".\");\n\n      const aendDiv = document.createElement(\"div\");\n      aendDiv.className = \"col-xs-12 aenderung-info\";\n      \n      const erstelltDiv = document.createElement(\"div\");\n      erstelltDiv.setAttribute(\"if.bind\", modelPraefix.concat(\"AnlageBenutzer\"));\n\n      const inaktivDiv = document.createElement(\"div\");\n      inaktivDiv.className = \"inaktiv-info\";\n      \n      const inaktivContainerDiv = document.createElement(\"div\");\n      inaktivContainerDiv.setAttribute(\"if.bind\", modelPraefix.concat(\"IsInaktiv\"));\n      inaktivContainerDiv.innerText = this._localizationService.translateOnce(\"erp_aendinfo.inaktiv\");\n\n      inaktivDiv.appendChild(inaktivContainerDiv);\n\n      let erstelltText = this._localizationService.translateOnce(\"erp_aendinfo.erstellt_von\");\n      erstelltText = this.replaceIndex(erstelltText, 0, modelPraefix.concat(\"AnlageBenutzer\"));\n      erstelltText = this.replaceIndex(erstelltText, 1, modelPraefix.concat(\"AnlageDatum | format:'d'\"));\n      erstelltText = this.replaceIndex(erstelltText, 2, modelPraefix.concat(\"AnlageDatum | format:'t'\"));\n      erstelltDiv.innerText = erstelltText;\n      aendDiv.appendChild(erstelltDiv);\n\n      const geandertDiv = document.createElement(\"div\");\n      geandertDiv.setAttribute(\n        \"if.bind\", \n        modelPraefix\n          .concat(\"Aenderungsbenutzer\")\n          .concat(\" && \")\n          .concat(modelPraefix)\n          .concat(\"IsGeaendert\"));\n\n      let geaendertText = this._localizationService.translateOnce(\"erp_aendinfo.geaendert_von\");\n      geaendertText = this.replaceIndex(geaendertText, 0, modelPraefix.concat(\"Aenderungsbenutzer\"));\n      geaendertText = this.replaceIndex(geaendertText, 1, modelPraefix.concat(\"Aenderungsdatum | format:'d'\"));\n      geaendertText = this.replaceIndex(geaendertText, 2, modelPraefix.concat(\"Aenderungsdatum | format:'t'\"));\n      geandertDiv.innerText = geaendertText;\n      aendDiv.appendChild(geandertDiv);\n\n      parentElement.appendChild(aendDiv);\n      parentElement.insertBefore(inaktivDiv, parentElement.firstChild);\n\n      const resultAendInfo = this._templatingEngine.enhance({\n        element: aendDiv,\n        bindingContext: e.form.scope.bindingContext,\n        overrideContext: e.form.scope.overrideContext\n      });\n      const resultInaktiv = this._templatingEngine.enhance({\n        element: inaktivDiv,\n        bindingContext: e.form.scope.bindingContext,\n        overrideContext: e.form.scope.overrideContext\n      });\n\n      e.form.onUnbind.register(() => {\n        this._templatingExService.destroyView(resultAendInfo);\n        this._templatingExService.destroyView(resultInaktiv);\n        return Promise.resolve();\n      })\n\n      return Promise.resolve();\n    });\n  }\n  private registerFormReloadOnActivate() {\n    this._eventAggregator.subscribe(\"window:activated\", () => {\n      if (!this._routerService.currentViewItem) {\n        return;\n      }\n\n      const viewItem = this._routerService.currentViewItem;\n      \n      const controller: any = viewItem.controller;\n      if (!controller) {\n        return;\n      }\n\n      const form: FormBase = controller.currentViewModel;\n      if (!form) {\n        return;\n      }\n      \n      form.reloadIfServerHasNewVersion();\n    });\n  }\n  private registerEditFormZugriffHistorie() {\n    this._formEventService.onBind.register(e => {\n      if (!e.form.models.modelWithKeyId) {\n        return;\n      }\n\n      const model = e.form.models.modelWithKeyId;\n      const entitaetInfo = this._entitaetInfoService.getEntitaetInfoByWebApiAction(model.webApiAction);\n      if (!entitaetInfo) {\n        return;\n      }\n\n      if (!entitaetInfo.Url) {\n        return;\n      }\n\n      if (!this._routerService.existsNavigationRoute(entitaetInfo.Url)) {\n        return;\n      }\n      \n      e.form.models.onLoaded.register(async loadedArgs => {\n        if (loadedArgs.model.id != model.id) {\n          return;\n        }\n\n        if (!loadedArgs.data) {\n          return;\n        }\n        if (!loadedArgs.data.Id) {\n          return;\n        }\n\n        this._zugriffHistorieService.createZugriffHistorie(loadedArgs.data.Id);\n        return;\n      });\n\n      return Promise.resolve();\n    });\n  }\n  private replaceIndex(input: string, index: number, value: string): string {\n    const find = \"{\" + index + \"}\";\n    const replace = \"${\" + value + \"}\";\n\n    return input.replace(find, replace)\n  }\n}\n","export {CustomEvent} from \"./custom-event\";\nexport {ScopeContainer} from \"./scope-container\";","import { autoinject } from \"aurelia-framework\";\nimport { FileService } from '../../framework/base/services/file-service';\nimport { WebEventService } from '../../framework/base/services/web-event-service';\nimport { OnEximExport, OnEximExportEvent } from '../../framework-data/events';\n\n@autoinject\nexport class EximService {\n  constructor(\n    private fileService: FileService,\n    private webEventService: WebEventService\n  ) {}\n\n  async export(eximName: string, keys: number[]): Promise<any> {\n    const result: OnEximExport = await this.webEventService.execute(new OnEximExportEvent({\n      EximName: eximName,\n      IdList: keys\n    }), true);\n\n    if (!result.DMSLink) {\n      return;\n    }\n\n    this.fileService.download(result.DMSLink);\n  }\n}\n","export enum TicketTyp {\n  Frage = 0,\n  Wunsch = 1,\n  Fehler = 2,\n  Beschreibung = 3,\n  Neuigkeit = 4\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from '../../base/services/rest-service';\n\n@autoinject\nexport class LayoutService {\n  private _layouts: any = {};\n\n  constructor(\n    private restService: RestService\n  ) {}\n\n  async initializeLayouts(): Promise<any> {\n    this._layouts = {};\n\n    const result = await this.restService.get({\n      url: this.restService.getApiUrl(\"base/Layout/Get\")\n    });\n\n    for (let item of result) {\n      //TODO\n      if (item.AssignedType != \"global\") {\n        continue;\n      }\n\n      this.getLayoutType(item.Type)[this.getKey(item.Form, item.IdWidget)] = JSON.parse(item.Layout);\n    }\n  }\n  getLayout(type: string, form: string, idWidget: string): any {\n    const key = this.getKey(form, idWidget);\n    return this.getLayoutType(type)[key] || null;\n  }\n  async saveLayout(type: string, form: string, idWidget: string, layout: any) {\n    await this.restService.post({\n      url: this.restService.getApiUrl(\"base/Layout/Post\"),\n      data: {\n        Form: form,\n        IdWidget: idWidget,\n        Type: type,\n        AssignedType: \"global\",\n        Layout: JSON.stringify(layout || {})\n      },\n      increaseLoadingCount: true\n    });\n\n    this.getLayoutType(type)[this.getKey(form, idWidget)] = layout;\n  }\n  async deleteLayout(type: string, form: string, idWidget: string) {\n    await this.restService.post({\n      url: this.restService.getApiUrl(\"base/Layout/Delete\"),\n      data: {\n        Form: form,\n        IdWidget: idWidget,\n        Type: type,\n        AssignedType: \"global\"\n      },\n      increaseLoadingCount: true\n    });\n\n    delete this.getLayoutType(type)[this.getKey(form, idWidget)];\n  }\n\n  private getKey(form: string, idWidget: string): string {\n    return form.concat(\";\").concat(idWidget);\n  }\n  private getLayoutType(type: string): any {\n    if (!this._layouts[type]) {\n      this._layouts[type] = {};\n    }\n\n    return this._layouts[type];\n  }\n}\n","export enum SelectionModeEnum {\n    None = 0,\n    Single = 1,\n    Multiple = 2\n}","import { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport { ExcelExportService } from \"../../../../framework/forms/services/excel-export-service\";\n\n@autoinject\n@transient()\nexport class LagerbestandListNestedUtils {\n  constructor(\n    private _excelExportService: ExcelExportService) { }\n\n  form: FormBase;\n\n  doExportExcelCommand: ICommandData = {\n    id: \"doExportExcel\",\n    icon: \"file-excel-o\",\n    title: \"base.excel-export\",\n    isVisibleExpression: \"variables.data.$v_showExcelExport\",\n    execute: () => {\n      const grid: DevExpress.ui.dxDataGrid = this.form[\"r_lagerbestandGrid\"].instance;\n      this._excelExportService.exportDataGrid({\n        component: grid,\n        selectedRowsOnly: false\n      });\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.callOnBind(() => {\n      const gridOptions: DevExpress.ui.dxDataGridOptions = this.form[\"r_lagerbestandGridOptions\"];\n\n      gridOptions.bindingOptions = gridOptions.bindingOptions || {};\n      gridOptions.bindingOptions[\"filterRow.visible\"] = \"variables.data.$v_showFilterRow\";\n    });\n  }\n}\n","import {\n  autoinject, transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, \n  PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  ICommandData\n} from \"./../../../../framework/forms/interfaces/export\";\nimport {\n  OnMandantWechselnEvent\n} from \"../../../../framework-data/events\";\nimport {\n  StartupService\n} from \"./../../../services/export\";\n\n@autoinject\n@transient()\nexport class MandantWechselnUtils {\n  constructor(\n    public startupService: StartupService,\n    private _popupInfoService: PopupInfoService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n\n  mandantWechselnCommand: ICommandData = {\n    id: \"mandantWechselnCommand\",\n    icon: \"exchange\",\n    title: \"mandant.mandant_wechseln\",\n    execute: async () => {\n      const currentMandantId = this.form.models.data.$m_Mandant.Id;\n      \n      if (this.startupService.startupInfo.Mandant.Id == currentMandantId) {\n        this._popupInfoService.closeCurrentPopup();\n        return;\n      }\n\n      const mandantWechseln = new OnMandantWechselnEvent({\n        IdMandant: currentMandantId\n      });\n\n      await this._webEventService.execute(mandantWechseln, true);\n      \n      this._popupInfoService.closeCurrentPopup();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject, transient\n} from \"aurelia-framework\";\nimport {\n  FileService,\n  LocalizationService,\n  RestService,\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase,\n  ICommandData\n} from \"../../../../framework/forms/export\";\nimport { IdxCheckBoxComponent, IdxDataGridComponent, IdxDateBoxComponent, IdxPopupComponent, IdxRadioGroupComponent } from \"../../../interfaces/dx-components\";\nimport { OnKopierenRequest } from \"../../../../framework-data/events\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport moment = require(\"moment\");\nimport { forEach } from \"lodash\";\n\n\n@autoinject\n@transient()\nexport class ZahlungsverkehrListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _asyncService: AsyncService,\n    private _fileService: FileService,\n    private _restService: RestService,\n    private _webEventService: WebEventService,\n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n\n  showDokumentErstellenPopupCommand: ICommandData = {\n    id: \"showDokumentErstellenPopup\",\n    idCategory: \"zahlungsverkehr\",\n    icon: \"file\",\n    title: \"zahlungsverkehr.dokument_erstellen\",\n    sortIndex: 10,\n    execute: async (e) => {\n      const grid: IdxDataGridComponent = this.form[\"r_zahlungsverkehrGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const zahlungsverkehrGridRowData = grid.instance.getSelectedRowsData();\n\n      grid.instance.clearSelection();\n\n      if (zahlungsverkehrGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"zahlungsverkehr.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const popup: IdxPopupComponent = this.form[\"r_zahlungsverkehrDokumentErstellenPopup\"];\n      popup.instance.show();\n\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n      dateBox.setOption({ value: moment() });\n      dateBox.setOption({ disabled: true });\n\n      const valutadatumBeibehaltenCheckbox: IdxCheckBoxComponent = this.form[\"r_wertBehalten\"];\n      valutadatumBeibehaltenCheckbox.setOption({ value: true });\n    }\n  };\n  doDokumentErstellenCommand: ICommandData = {\n    id: \"doDokumentErstellen\",\n    title: \"zahlungsverkehr.dokument_erstellen\",\n    icon: \"file\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_zahlungsverkehrDokumentErstellenPopup\"];\n\n      const grid: IdxDataGridComponent = this.form[\"r_zahlungsverkehrGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n      grid.instance.clearSelection();\n\n      const valutadatumBehaltenCheckbox: IdxCheckBoxComponent = this.form[\"r_wertBehalten\"];\n      const valutaDatumBehalten = valutadatumBehaltenCheckbox.instance.option(\"value\");\n\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n      const valutaDatum = dateBox.instance.option(\"value\");\n\n      const r = await this._restService.post({\n        url: this._restService.getApiUrl(`ERP/Zahlungsverkehr/ZahlungsverkehrJob`),\n        data: {\n          IdZahlungsverkehrList: keys,\n          ValutaDatum: valutaDatumBehalten\n            ? null\n            : valutaDatum,\n        },\n      });\n\n      if (r == null) {\n        return;\n      }\n\n      r.DMSLinkList.forEach(dMSLink => {\n          this._fileService.download(dMSLink);\n      });\n\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  }\n\n  onValutaDatumBeibehaltenChanged(e) {\n    const valutadatumAendernCheckbox: IdxCheckBoxComponent = this.form[\"r_wertAendern\"];\n    valutadatumAendernCheckbox.setOption({ value: !e.value });\n  }\n\n  onValutaDatumAendernChanged(e) {\n    const valutadatumBehaltenCheckbox: IdxCheckBoxComponent = this.form[\"r_wertBehalten\"];\n    valutadatumBehaltenCheckbox.setOption({ value: !e.value });\n\n    const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n\n    if (e.value) {\n      dateBox.setOption({ disabled: false });\n    } else {\n      dateBox.setOption({ disabled: true });\n    }\n  }\n}\n","import {\n  autoinject, optional, Scope, OverrideContext\n} from \"aurelia-framework\";\nimport {\n  IDataSourceOptions,\n  IDataSourceOptionFilter,\n  IDataSourceCustomizationOptions,\n  IDataSourceLastLoadInfo\n} from \"../interfaces/export\";\nimport {\n  RestService\n} from \"./rest-service\";\nimport {\n  BindingService\n} from \"./binding-service\";\nimport {\n  ScopeContainer\n} from \"../classes/scope-container\";\nimport { ObjectService } from './object-service';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class DataSourceService {\n  static _instance: DataSourceService;\n\n  constructor(\n    private rest: RestService,\n    private binding: BindingService,\n    private objectService: ObjectService,\n    private eventAggregator: EventAggregator\n  ) { \n    DataSourceService._instance = this;\n  }\n\n  //TODO - ein bisschen Refactoren ;-)\n  createDataSource(\n    scopeContainer: ScopeContainer,\n    options: IDataSourceOptions,\n    customizationOptions?: IDataSourceCustomizationOptions,\n    loadRequiredAction?: { (): void }): DevExpress.data.DataSource {\n\n    const dataSource = new DevExpress.data.DataSource(this.createDataStore(\n      scopeContainer,\n      options,\n      customizationOptions,\n      loadRequiredAction,\n      (lastLoadInfo) => {\n        const currentDataSource: any = dataSource;\n        currentDataSource.lastLoadInfo = lastLoadInfo;\n      }\n    ));\n\n    dataSource.requireTotalCount(true);\n\n    let timeout = null;\n    this.addObservers(scopeContainer, options, () => {\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = null;\n      }\n\n      timeout = setTimeout(() => {\n        //nur machen, wenn die options keine id haben. Wenn doch, dann kümmern sich die Models selbst darum,\n        //dass es zu einem Reload kommt\n        if (options[\"id\"] == void (0)) {\n          if (dataSource.pageIndex() !== 0) {\n            dataSource.pageIndex(0);\n          }\n          dataSource.reload();\n        }\n\n        if (loadRequiredAction) {\n          loadRequiredAction();\n        }\n      }, 10);\n    });\n\n    return dataSource;\n  }\n  createDataStore(\n    scopeContainer: ScopeContainer,\n    options: IDataSourceOptions,\n    customizationOptions?: IDataSourceCustomizationOptions,\n    loadRequiredAction?: { (): void },\n    setLastLoadAction?: { (lastLoadInfo): void }): DevExpress.data.CustomStore {\n    let lastAccessInfo = {\n      lastLoadInfo: null,\n      resultPromise: null\n    };\n\n    return new DevExpress.data.CustomStore({\n      key: options.keyProperty,\n      byKey: (key) => {\n        if (!DataSourceService._instance.canLoad(scopeContainer, options, customizationOptions)) {\n          return Promise.resolve(null);\n        }\n  \n        const getOptions = DataSourceService._instance.createGetOptions(scopeContainer, options, customizationOptions, true);\n  \n        //Bei byKey wird kein Where übergeben, da wir bereits auf einen fixen Key einschränken\n        if (getOptions) {\n          delete getOptions.where;\n        }\n\n        return DataSourceService._instance.rest.get({\n          url: DataSourceService._instance.rest.getWebApiUrl(`${options.webApiAction}/${key}`),\n          moduleId: this.getModuleId(scopeContainer),\n          getOptions\n        });\n      },\n      load: (loadOptions) => {\n        let canLoad = DataSourceService._instance.canLoad(scopeContainer, options, customizationOptions);\n        let getOptions: any;\n        if (canLoad) {\n          getOptions = DataSourceService._instance.createGetOptions(scopeContainer, options, customizationOptions);\n          canLoad = getOptions != null;\n        }\n  \n        if (!canLoad) {\n          if (loadOptions.requireTotalCount) {\n            return Promise.resolve({\n              data: [],\n              totalCount: 0\n            });\n          } else {\n            return Promise.resolve([]);\n          }\n        }\n  \n        if (loadOptions.filter) {\n          if (getOptions.where) {\n            getOptions.where = [getOptions.where, loadOptions.filter];\n          } else {\n            getOptions.where = loadOptions.filter;\n          }\n        }\n        if (loadOptions.searchExpr && loadOptions.searchOperation && loadOptions.searchValue) {\n          if (options.webApiSearchtextEnabled) {\n            getOptions.searchtext = loadOptions.searchValue;\n          } else {\n            const searchWhere = [loadOptions.searchExpr, loadOptions.searchOperation, loadOptions.searchValue];\n  \n            if (getOptions.where) {\n              getOptions.where = [getOptions.where, searchWhere];\n            } else {\n              getOptions.where = searchWhere;\n            }\n          }\n        }\n        if (options.webApiSearchtextEnabled && options.searchtext) {\n          getOptions.searchtext = DataSourceService._instance.binding.evaluate(scopeContainer.scope, options.searchtext);\n        }\n  \n        getOptions.skip = loadOptions.skip;\n        getOptions.take = loadOptions.take;\n        getOptions.requireTotalCount = loadOptions.requireTotalCount;\n        \n        if (loadOptions.totalSummary) {\n          getOptions.totalSummary = loadOptions.totalSummary;\n        }\n  \n        if (loadOptions.sort) {\n          getOptions.orderBy = (<any[]>loadOptions.sort).map((data) => {\n            return {\n              columnName: data.selector,\n              sortOrder: (data.desc === true ? 1 : 0)\n            }\n          });\n        };\n  \n        const loadOptionsDataField = (<any>loadOptions).dataField;\n        if (loadOptionsDataField) {\n          delete getOptions.skip;\n          delete getOptions.take;\n          delete getOptions.expand;\n          delete getOptions.requireTotalCount;\n          delete getOptions.totalSummary;\n          getOptions.columns = [loadOptionsDataField];\n          getOptions.orderBy = [{ columnName: loadOptionsDataField, sortOrder: 0 }];\n          getOptions.distinct = true;\n        }\n  \n        const lastLoadInfo: IDataSourceLastLoadInfo = {\n          getOptions: getOptions,\n          url: DataSourceService._instance.rest.getWebApiUrl(options.webApiAction)\n        };\n  \n        if (setLastLoadAction) {\n          setLastLoadAction(lastLoadInfo);\n        }\n  \n        //Wenn gerade erst ein gleiches Select abgestellt wurde, dann dieses zurückgeben ...\n        if (lastAccessInfo.lastLoadInfo\n          && JSON.stringify(lastAccessInfo.lastLoadInfo) === JSON.stringify(lastLoadInfo)) {\n          return lastAccessInfo.resultPromise;\n        } else {\n          lastAccessInfo.lastLoadInfo = lastLoadInfo;\n  \n          const resultPromise = new Promise((resolve, reject) => {\n            DataSourceService._instance.rest.get({\n              url: lastLoadInfo.url,\n              moduleId: this.getModuleId(scopeContainer),\n              getOptions: lastLoadInfo.getOptions\n            }).then(r => {\n              if (loadOptionsDataField) {\n                //Nested-Eigenschaften müssen in Objekte umgewandelt werden, damit HeaderFilter richtig funktioniert\n                if (loadOptionsDataField.indexOf(\".\") > 0) {\n                  const tokens = loadOptionsDataField.split(\".\");\n  \n                  r.forEach(i => {\n                    let value = i;\n                    tokens.forEach((token, index) => {\n                      if (index + 1 === tokens.length) {\n                        value[token] = i[loadOptionsDataField];\n                      } else {\n                        value[token] = {};\n                        value = value[token];\n                      }\n                    });\n                  });\n                }\n              } else {\n                if (customizationOptions && customizationOptions.resultInterceptor) {\n                  r = customizationOptions.resultInterceptor(r);\n                }\n              }\n  \n              let result;\n              if (getOptions.requireTotalCount || getOptions.totalSummary) {\n                result = {\n                  data: r.rows\n                };\n\n                if (getOptions.requireTotalCount) {\n                  result.totalCount = r.count;\n                }\n                if (getOptions.totalSummary) {\n                  result.summary = r.summary;\n                }\n              } else {\n                result = r;\n              }\n  \n              resolve(result);\n            }).catch(reject);\n          });\n  \n          lastAccessInfo.resultPromise = resultPromise;\n\n          if (customizationOptions && customizationOptions.onLoaded) {\n            resultPromise.then((r) => {\n              customizationOptions.onLoaded(r);\n            });\n          }\n  \n          setTimeout(() => {\n            if (lastAccessInfo.lastLoadInfo == lastLoadInfo) {\n              lastAccessInfo = {\n                lastLoadInfo: null,\n                resultPromise: null\n              }\n            }\n          }, 500);\n  \n          return resultPromise;\n        }\n      }\n    });\n  }\n  createGetOptions(\n    scopeContainer: ScopeContainer, \n    options: IDataSourceOptions, \n    customizationOptions?: IDataSourceCustomizationOptions, \n    ignoreWhere?: boolean): any {\n    const getOptions: any = {};\n    getOptions.columns = options.webApiColumns;\n    getOptions.expand = options.webApiExpand;\n    getOptions.orderBy = options.webApiOrderBy;\n\n    if (!ignoreWhere && ((options.webApiWhere && options.webApiWhere.length) || (customizationOptions && customizationOptions.getCustomWhere))) {\n      const where = [];\n      const input = [];\n\n      if (options.webApiWhere) {\n        input.push(options.webApiWhere);\n      }\n      if (customizationOptions && customizationOptions.getCustomWhere) {\n        const customWhere = customizationOptions.getCustomWhere();\n        if (customWhere) {\n          input.push(customWhere);\n        }\n      }\n\n      if (!this.constructWhere(scopeContainer, input, where)) {\n        return null;\n      }\n\n      if (where.length > 0) {\n        getOptions.where = where;\n      }\n    }\n\n    if ((options.filters && options.filters.length) || (customizationOptions && customizationOptions.getCustomFilters)) {\n      const customs = [];\n      const where = [];\n\n      if (!this.constructFilters(scopeContainer, options, customizationOptions, customs, where)) {\n        return null;\n      }\n\n      if (customs.length > 0) {\n        getOptions.customs = customs;\n      }\n      if (!ignoreWhere && where.length > 0) {\n        if (getOptions.where) {\n          getOptions.where = [getOptions.where, where];\n        } else {\n          getOptions.where = where;\n        }\n      }\n    }\n\n    if (customizationOptions && customizationOptions.getSearchText) {\n      getOptions.searchtext = customizationOptions.getSearchText();\n    }\n\n    if (options.webApiMaxRecords > 0) {\n      getOptions.maxRecords = options.webApiMaxRecords;\n    }\n\n    return getOptions;\n  }\n\n  getDataSourceKeyValues(\n    dataSource: DevExpress.data.DataSource, \n    optionsPrepareCallback?: { (options): void },\n    scopeContainer?: ScopeContainer): Promise<any[]> {\n    const lastLoadInfo = this.getLastLoadInfo(dataSource);\n    if (lastLoadInfo == null) {\n      return Promise.resolve([]);\n    }\n\n    const options = this.objectService.mergeDeep({}, lastLoadInfo.getOptions);\n    const key = dataSource.key();\n\n    options.columns = [key];\n    delete options.take;\n    delete options.skip;\n    delete options.expand;\n    delete options.orderby;\n    delete options.requireTotalCount;\n\n    if (optionsPrepareCallback) {\n      optionsPrepareCallback(options);\n    }\n\n    return this.rest.get({\n      url: lastLoadInfo.url,\n      moduleId: this.getModuleId(scopeContainer),\n      getOptions: options\n    }).then(r => {\n      return r.map(item => item[key]);\n    });\n  }\n\n  addObservers(\n    scopeContainer: ScopeContainer, \n    options: IDataSourceOptions, \n    action: { (): void }) {\n    const observers = this.getElementsToObserve(options);\n\n    for (let observer of observers) {\n      this.binding.observe({\n        scopeContainer: scopeContainer,\n        expression: observer, \n        callback: action\n      });\n    }\n  }\n  getElementsToObserve(options: IDataSourceOptions): string[] {\n    const result = [];\n\n    this.evalElementsToObserveWhere(options.webApiWhere, result);\n    this.evalElementsToObserveDetail(options.searchtext, result);\n\n    if (options.filters) {\n      for (let item of options.filters) {\n        if (typeof item.if === \"string\") {\n          this.evalElementsToObserveDetail(item.if, result);\n        }\n        if (typeof item.webApiCustomValue === \"string\") {\n          this.evalElementsToObserveDetail(item.webApiCustomValue, result);\n        }\n\n        this.evalElementsToObserveWhere(item.webApiWhere, result);\n      }\n    }\n\n    return result;\n  }\n\n  getLastLoadInfo(dataSource: DevExpress.data.DataSource) {\n    return dataSource[\"lastLoadInfo\"];\n  }\n\n  private evalElementsToObserveWhere(data: any, result: string[]): void {\n    if (data == void (0)) {\n      return;\n    }\n\n    if (Array.isArray(data)) {\n      (<any[]>data).forEach(item => this.evalElementsToObserveWhere(item, result));\n    } else if (typeof data === \"object\") {\n      if (data.isBound === true && data.expression != void (0)) {\n        this.evalElementsToObserveDetail(data.expression, result);\n      } else {\n        for (let property in data) {\n          this.evalElementsToObserveWhere(data[property], result);\n        }\n      }\n    }\n  }\n  private evalElementsToObserveDetail(expression: string, result: string[]): void {\n    if (expression == void (0)) {\n      return;\n    }\n\n    result.push(expression);\n  }\n\n  private canLoad(\n    scopeContainer: ScopeContainer, \n    options: IDataSourceOptions, \n    customizationOptions: IDataSourceCustomizationOptions) {\n    if (!scopeContainer || !scopeContainer.scope) {\n      return false;\n    }\n\n    if (options && options.allowLoad) {\n      const allowLoad = this.binding.evaluate(\n        scopeContainer.scope,\n        options.allowLoad\n      );\n\n      if (!allowLoad) {\n        return false;\n      }\n    }\n\n    return !customizationOptions\n      || !customizationOptions.canLoad\n      || customizationOptions.canLoad();\n  }\n  private constructWhere(\n    scopeContainer: ScopeContainer, \n    data: any, \n    where: any[]): boolean {\n    if (data == void (0)) {\n      return true;\n    }\n\n    if (Array.isArray(data)) {\n      const newArr = [];\n      where.push(newArr);\n\n      let cancel = false;\n      (<any[]>data).forEach(item => {\n        if (!this.constructWhere(scopeContainer, item, newArr)) {\n          cancel = true;\n        }\n      });\n\n      if (cancel) {\n        return false;\n      }\n    } else if (typeof data === \"object\" && !(data instanceof Date)) {\n      if (data.isBound === true && data.expression != void (0)) {\n        const val = this.binding.evaluate(scopeContainer.scope, data.expression);\n        if (val == void (0)) {\n          return false;\n        }\n\n        where.push(val);\n      } else {\n        for (let property in data) {\n          if (!this.constructWhere(scopeContainer, data[property], where)) {\n            return false;\n          }\n        }\n      }\n    } else {\n      where.push(data);\n    }\n\n    return true;\n  }\n  private constructFilters(\n    scopeContainer: ScopeContainer, \n    options: IDataSourceOptions, \n    customizationOptions: IDataSourceCustomizationOptions, \n    customs: any[], \n    where: any[]): boolean {\n    const filters: IDataSourceOptionFilter[] = [];\n\n    if (options.filters) {\n      filters.push(...options.filters);\n    }\n    if (customizationOptions && customizationOptions.getCustomFilters) {\n      const customFilters = customizationOptions.getCustomFilters();\n      if (customFilters) {\n        filters.push(...customFilters);\n      }\n    }\n\n    for (let item of filters) {\n      if (item.if) {\n        if (!this.binding.evaluate(scopeContainer.scope, item.if)) {\n          continue;\n        }\n      }\n\n      if (item.webApiCustomKey && item.webApiCustomValue) {\n        const value = typeof item.webApiCustomValue === \"string\"\n          ? this.binding.evaluate(scopeContainer.scope, item.webApiCustomValue)\n          : item.webApiCustomValue;\n\n        if (value == void (0)) {\n          return false;\n        }\n\n        customs.push({\n          key: item.webApiCustomKey,\n          value: value\n        });\n      } else if (item.webApiWhere) {\n        const w = [];\n        if (!this.constructWhere(scopeContainer, item.webApiWhere, w)) {\n          return false;\n        }\n\n        where.push(w);\n      }\n    }\n\n    return true;\n  }\n\n  private getModuleId(scopeContainer: ScopeContainer) {\n    if (!scopeContainer) {\n      return null;\n    }\n    if (!scopeContainer.scope) {\n      return;\n    }\n    \n    const args = {\n      scope: scopeContainer.scope,\n      treatEditPopupAsMainForm: true,\n      moduleId: null\n    };\n    \n    this.eventAggregator.publish(\"form:get-main-form-module-id\", args);\n    return args.moduleId;\n  }\n}\n","import {\n  autoinject,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  IKalkulationRefreshOptions\n} from \"../interfaces/kalkulation-refresh-options\";\n\n@autoinject\nexport class KalkulationRefreshService {\n  constructor(\n    private taskQueue: TaskQueue\n  ) { }\n\n  registerRefresh(options: IKalkulationRefreshOptions) {\n    options.form.callOnBind(() => {\n      this.registerEditorValueChanged(options);\n      this.registerEditPopups(options);\n    });\n  }\n  onIdArtikelChanged(options: IKalkulationRefreshOptions) {\n    this.doKalkulieren(options, true);\n  }\n\n  private registerEditorValueChanged(options: IKalkulationRefreshOptions) {\n    options.form.onEditorValueChanged.register(e => {\n      if (!e.binding || e.binding.dataContext != options.modelName) {\n        return;\n      }\n\n      const hasPropertyChanged = (options.mengeVerpEHPropertyName && e.binding.bindTo === options.mengeVerpEHPropertyName)\n        || (options.einheitPropertyName && e.binding.bindTo === options.einheitPropertyName);\n\n      if (hasPropertyChanged) {\n        this.doKalkulieren(options, false);\n      }\n\n      return Promise.resolve();\n    });\n  }\n  private registerEditPopups(options: IKalkulationRefreshOptions) {\n    if (!options.editPopups) {\n      return;\n    }\n\n    options.form.editPopups.onEditPopupHidden.register(e => {\n      if (!options.editPopups.some(x => x == e.editPopup.id)) {\n        return;\n      }\n\n      this.doLoadItemsFromContainer(options);\n      return Promise.resolve();\n    });\n  }\n\n  private doKalkulieren(options: IKalkulationRefreshOptions, refreshKonditionen: boolean) {\n    this.taskQueue.queueMicroTask(() => {\n      options.form[options.kalkulationRef].doKalkulieren(refreshKonditionen, false);\n    });\n  }\n  private doLoadItemsFromContainer(options: IKalkulationRefreshOptions) {\n    this.taskQueue.queueMicroTask(() => {\n      options.form[options.kalkulationRef].doLoadItemsFromContainer();\n    });\n  }\n}\n","export enum NummernkreisTyp {\n    Geschaeftspartner = 0,\n    Artikel = 1,\n    Angebot = 2,\n    Auftrag = 3,\n    Lieferschein = 4,\n    Faktura = 5,\n    Bestellung = 6,\n    Warenuebernahme = 7,\n    Eingangsrechnung = 8,\n    Projekt = 9,\n    ProdAuftrag = 10,\n    Kundenreklamation = 11,\n    Ladeliste = 12\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\n@autoinject\nexport class ProdAuftragService {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  getProdAuftragById(idAufgrag: number): Promise<any> {\n    if (!idAufgrag) {\n      return Promise.resolve(false);\n    }\n\n    return this.rest.get({\n      url: `${this.rest.getWebApiUrl(\"ERP/Produktion/ProdAuftrag\")}/${idAufgrag}`,\n      getOptions: {\n        expand: {\n          Artikel: null\n        },\n      }\n    });\n  }\n  getProdAuftragByNummer(nummer: string): Promise<any> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Produktion/ProdAuftrag\"),\n      getOptions: {\n        where: [\"Nummer\", nummer]\n      }\n    });\n  }\n  getProdAuftragtBySearchtextEindeutig(searchtext: string): Promise<any[]> {\n    const getOptions = {\n      searchtext: searchtext,\n      columns: [\"Id\"],\n      take: 2\n    };\n\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Produktion/ProdAuftrag\"),\n      getOptions: getOptions\n    });\n  }\n}","import { IDataSourceCustomizationOptions } from './../../../../framework/base/interfaces/data-source-customization-options';\nimport { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport { IdxPopupComponent } from './../../../interfaces/dx-components';\nimport { IPopupInfo } from './../../../../framework/forms/interfaces/popup-info';\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport {\n  LocationService\n} from \"../../../../framework/base/export\";\nimport { EntitaetInfoService } from '../../../services/export';\n\n@autoinject\n@transient()\nexport class LagerbuchungInfoListNestedUtils {\n  constructor(\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService\n  ) { }\n\n  form: FormBase;\n  \n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: \"models.data.$m_LagerbuchungInfoE\",\n      callback: async (newValue) => {\n        if (!newValue) {\n          return;\n        }\n\n        this.form.models.data.$m_LagerbuchungInfoE = null;\n        if (!newValue.VerknuepfteEntitaet) {\n          return;\n        }\n\n        this._entitaetInfoService\n          .getUrl(newValue.VerknuepfteEntitaet.TypeName, newValue.VerknuepfteEntitaet.Id)\n          .then(r => {\n            this._popupInfoService.closeAllPopups().then(pr => {\n              if (!pr) {\n                return;\n              }\n\n              this._locationService.goTo({\n                url: r\n              });\n            });\n          });\n      }\n    });\n\n    this.form.callOnBind(() => {\n      const gridOptions = <DevExpress.ui.dxDataGridOptions>form[\"r_lagerbuchungInfoGridOptions\"];\n      (<DevExpress.ui.dxDataGridColumn[]>gridOptions.columns)\n        .filter(c => c.dataField == \"IdVerknuepfteEntitaet\")\n        .forEach(c => {\n          c.allowHeaderFiltering = false;\n          c.filterOperations = [\"contains\"];\n        });\n    });\n  }\n\n  onVerknEntitaetCellPrepared(e) {\n    if (e.rowType != \"data\") {\n      return;\n    }\n    \n    if (!e.data || !e.data.VerknuepfteEntitaet) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n    const verkn = e.data.VerknuepfteEntitaet;\n\n    const html = `<div class=\"erp--text-with-leading-label-badge\">\n      <div class=\"${verkn.TypeBezeichnung ? \"\" : \"erp--empty-badge\"}\">\n        ${verkn.TypeBezeichnung ? verkn.TypeBezeichnung : \"\"}\n      </div>\n      <div>\n        ${verkn.CboBezeichnung ? verkn.CboBezeichnung : \"\"}\n      </div>\n    </div>`;\n\n    cell.innerHTML = html;\n  }\n  onVerknEntitaetCalcFilter(e) {\n    return [\"VerknuepfteEntitaet.CboBezeichnung\", \"contains\", e.value];\n  }\n}\n","export {DxTemplateService} from \"./dx-template-service\";","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase,\n} from \"../../../../framework/forms/export\";\nimport {\n  VorbGueltigBis,\n  VorbGueltigVon\n} from \"../../../enumerations/export\";\nimport {\n  KonditionService\n} from \"../../../services/export\";\nimport * as moment from \"moment\";\nimport { LocalizationService, RestService } from '../../../../framework/base/export';\nimport { IdxNumberBoxComponent } from '../../../interfaces/export';\n\n@autoinject\n@transient()\nexport class KonditionEditUtils {\n  constructor(\n    private kondition: KonditionService,\n    private localizationService: LocalizationService,\n    private _restService: RestService) { }\n\n  form: FormBase;\n  currentKonditionsfeldOptions: any = {};\n  geschaeftspartnerInfoDataSource: DevExpress.data.DataSource;\n  artikelInfoDataSource: DevExpress.data.DataSource;\n\n\n  geschaeftspartnerInfoSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    showClearButton: true,\n    bindingOptions: {\n      disabled: \"variables.data.$v_idGeschaeftspartner\",\n      value: \"models.data.$m_Kondition.IdGeschaeftspartnerInfo\",\n    },\n    itemTemplate: (data) => {\n      return this.getSelectBoxItemTemplate(data);\n    },\n    \n    fieldTemplate: \"erp--cbo-type-bezeichnung-field-template\"\n  };\n\n  artikelInfoSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    showClearButton: true,\n    bindingOptions: {\n      disabled: \"variables.data.$v_idArtikel\",\n      value: \"models.data.$m_Kondition.IdArtikelInfo\",\n    },\n    itemTemplate: (data) => {\n      return this.getSelectBoxItemTemplate(data);\n    },\n    fieldTemplate: \"erp--cbo-type-bezeichnung-field-template\"\n  };\n\n  artikelInfoRequiredRule: DevExpress.ui.CustomRule = {\n    type: \"custom\",\n    message: this.localizationService.translateOnce(\"forms.validator_required\", [\"Artikel\"]),\n    reevaluate: true,\n    validationCallback: (e) => {\n      if (!this.currentKonditionsfeldOptions) {\n        return true;\n      }\n\n      if (!this.currentKonditionsfeldOptions.IsArtikelPflicht) {\n        return true;\n      }\n\n      const kondition = this.form.models.data.$m_Kondition;\n      if (!kondition) {\n        return true;\n      }\n      if (kondition.IdArtikelInfo) {\n        return true;\n      }\n\n      return false;\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.callOnBind(() => {\n      form[\"r_konditionsfeldOptions\"].onValueChangedByUser = (e) => {\n        this.currentKonditionsfeldOptions = e.value\n          ? this.kondition.getKonditionFeldById(e.value)\n          : {};\n\n        this.onKonditionsFeldChanged(e.value);\n        this.updateWertFormat();\n      };\n    });\n    form.models.onLoaded.register(async r => {\n      if (r.model.id !== \"$m_Kondition\") {\n        return;\n      }\n      if (!r.data) {\n        return;\n      }\n\n      this.currentKonditionsfeldOptions = r.data.IdKonditionsfeld\n        ? this.kondition.getKonditionFeldById(r.data.IdKonditionsfeld)\n        : {};\n\n      if (!r.data.Id) {\n        if (form.variables.data.$v_idArtikel) {\n          r.data.IdArtikelInfo = form.variables.data.$v_idArtikel;\n        }\n        if (form.variables.data.$v_idGeschaeftspartner) {\n          r.data.IdGeschaeftspartnerInfo = form.variables.data.$v_idGeschaeftspartner;\n        }\n      }\n\n      this.updateWertFormat();\n    });\n\n    this.geschaeftspartnerInfoDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n      cacheRawData: true,\n      key: \"Id\",\n      byKey: async (key) => {\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/Kondition/KonditionGpArtikelInfo\"),\n          data: {\n            Suchtext: null,\n            TypeName: \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\",\n            Id: key,\n            skip: 0,\n            take: 1\n          }\n        });\n\n        return r.ItemList;\n      },\n      load: async (loadOptions) => {\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/Kondition/KonditionGpArtikelInfo\"),\n          data: {\n            Suchtext: loadOptions.searchValue,\n            TypeName: \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\",\n            Id: null,\n            skip: loadOptions.skip,\n            take: loadOptions.take\n          }\n        });\n\n        return r.ItemList;\n      }\n    }));\n    this.artikelInfoDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n      cacheRawData: true,\n      key: \"Id\",\n      byKey: async (key) => {\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/Kondition/KonditionGpArtikelInfo\"),\n          data: {\n            Suchtext: null,\n            TypeName: \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\",\n            Id: key,\n            skip: 0,\n            take: 1\n          }\n        });\n\n        return r.ItemList;\n      },\n      load: async (loadOptions) => {\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/Kondition/KonditionGpArtikelInfo\"),\n          data: {\n            Suchtext: loadOptions.searchValue,\n            TypeName: \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\",\n            Id: null,\n            skip: loadOptions.skip,\n            take: loadOptions.take\n          }\n        });\n\n        return r.ItemList;\n      }\n    }));\n\n    this.artikelInfoSelectBoxOptions.dataSource = this.artikelInfoDataSource;\n    this.geschaeftspartnerInfoSelectBoxOptions.dataSource = this.geschaeftspartnerInfoDataSource;\n  }\n\n  private getVorbelegungVonDatum(gueltigkeit: VorbGueltigVon): Date {\n    if (gueltigkeit == void 0) {\n      return null;\n    }\n\n    let result: moment.Moment;\n\n    switch (gueltigkeit) {\n      case VorbGueltigVon.Min:\n        result = moment(\"01-01-2000\", \"DD-MM-YYYY\");\n        break;\n      case VorbGueltigVon.Heute:\n        result = moment().startOf(\"day\");\n        break;\n      case VorbGueltigVon.Monatsbeginn:\n        result = moment().startOf(\"month\");\n        break;\n      case VorbGueltigVon.Jahresbeginn:\n        result = moment().startOf(\"year\");\n        break;\n    }\n\n    return result ? result.toDate() : null;\n  }\n  private getVorbelegungBisDatum(gueltigkeit: VorbGueltigBis): Date {\n    if (gueltigkeit == void 0) {\n      return null;\n    }\n    let result: moment.Moment;\n\n    switch (gueltigkeit) {\n      case VorbGueltigBis.Monatsende:\n        result = moment().endOf(\"month\");\n        break;\n      case VorbGueltigBis.Jahresende:\n        result = moment().endOf(\"year\");\n        break;\n      case VorbGueltigBis.Max:\n        result = moment(\"31-12-2099\", \"DD-MM-YYYY\");\n        break;\n    }\n\n    return result ? result.toDate() : null;\n  }\n\n  private setKonditionfeldOptions(konditionsfeld: any) {\n    const kondition = this.form.models.data.$m_Kondition;\n\n    if (konditionsfeld == void 0 || kondition == void 0) {\n      return;\n    }\n\n    kondition.IdWaehrung = konditionsfeld.IdVorbWaehrung;\n    kondition.Staffel = konditionsfeld.VorbStaffel;\n    kondition.Wert = konditionsfeld.VorbWert;\n    kondition.WertPer = konditionsfeld.VorbWertPer;\n    kondition.GueltigVon = this.getVorbelegungVonDatum(konditionsfeld.VorbGueltigVon);\n    kondition.GueltigBis = this.getVorbelegungBisDatum(konditionsfeld.VorbGueltigBis);\n  }\n\n  private updateWertFormat() {\n    const anzKommastellen = !!this.currentKonditionsfeldOptions && this.currentKonditionsfeldOptions.AnzKommastellen != void (0)\n      ? this.currentKonditionsfeldOptions.AnzKommastellen\n      : 2;\n\n    let format = \"#,##0\";\n\n    if (anzKommastellen > 0) {\n      format += \".\".concat(\"0\".repeat(anzKommastellen));\n    }\n\n    const options = {\n      format: format\n    };\n\n    if (this.form[\"r_wert\"]) {\n      (<IdxNumberBoxComponent>this.form[\"r_wert\"]).setOption(options);\n    } else {\n      Object.assign(this.form[\"r_wertOptions\"], options);\n    }\n  }\n\n  private onKonditionsFeldChanged(newValue: number) {\n    this.setKonditionfeldOptions(this.currentKonditionsfeldOptions);\n  }\n\n  private getSelectBoxItemTemplate(data) {\n    return `<div class=\"erp--text-with-leading-label-badge erp--margin-top-left-2px\">\n        <div class=\"${data.TypeBezeichnung ? '' : 'erp--empty-badge'}\">\n          ${data.TypeBezeichnung}\n        </div>\n        <div class=\"erp--margin-right-36px\">\n          ${data.CboBezeichnung}\n        </div>\n      </div>`;\n  }\n};\n","// Module\nvar code = \"<div class=\\\"erp--text-with-leading-label-badge erp--margin-top-left-2px\\\"> <div class=\\\"${data.TypeBezeichnung ? '' : 'erp--empty-badge'}\\\"> ${data.TypeBezeichnung} </div> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"{ bindingOptions: { value: { expression: 'data.CboBezeichnung', readOnly: true } } }\\\"></dx-widget> </div> </div> \";\n// Exports\nmodule.exports = code;","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject } from \"aurelia-framework\";\nimport { IViewScrollInfo, RestService } from \"../../framework/base/export\";\nimport { IEntitaetInfo } from \"../interfaces/export\";\nimport { StartupService } from \"./startup-service\";\n\n@autoinject\nexport class EntitaetInfoService {\n  private _typeNameDic: any = {};\n  private _webApiActionDic: any = {};\n\n  constructor(\n    private restService: RestService,\n    private _startupService: StartupService,\n    private _eventAggregator: EventAggregator) {\n    this._eventAggregator.subscribe(\n      \"startupInfo:loaded\",\n      (r) => this.setEntitaetDic(r.startupInfo.EntitaetInfos));\n\n    if (this._startupService.startupInfo) {\n      this.setEntitaetDic(this._startupService.startupInfo.EntitaetInfos);\n    }\n  }\n\n  getUrl(typeName: string, id?: number): Promise<string> {\n    return new Promise<string>(async (resolve, reject) => {\n      const parentTypeName = this.getTypeNameParent(typeName);\n\n      if (parentTypeName != typeName) {\n        id = await this.getParentId(typeName, id);\n      }\n\n      resolve(this.getUrlString(parentTypeName, id));\n    });\n  }\n  getBezeichnung(typeName: string | { value: string }): string {\n    if (typeof typeName !== \"string\") {\n      typeName = typeName.value;\n    }\n\n    if (this._typeNameDic[typeName] && this._typeNameDic[typeName][\"Bezeichnung\"]) {\n      return this._typeNameDic[typeName][\"Bezeichnung\"];\n    }\n\n    return \"\";\n  }\n  getEntitaetInfoByTypeName(typeName: string): IEntitaetInfo {\n    return this._typeNameDic[typeName];\n  }\n  getEntitaetInfoByWebApiAction(webApiAction: string): IEntitaetInfo {\n    return this._webApiActionDic[webApiAction];\n  }\n  getEntitaetInfoList(predicate: { (item: IEntitaetInfo): boolean }): IEntitaetInfo[] {\n    const result: IEntitaetInfo[] = [];\n\n    for (const key in this._typeNameDic) {\n      const item = this._typeNameDic[key];\n\n      if (predicate) {\n        const add = predicate(item);\n        if (!add) {\n          continue;\n        }\n      }\n\n      result.push(item);\n    }\n\n    result.sort((a, b) => a.Bezeichnung.localeCompare(b.Bezeichnung));\n    return result;\n  }\n\n  async createViewScrollInfo(\n    typeName: string,\n    where: any,\n    customs: { key: string; value: any; }[],\n    orderBy: any,\n    id: any): Promise<IViewScrollInfo> {\n    const info = this.getEntitaetInfoByTypeName(typeName);\n    const url = this.restService.getWebApiUrl(info.WebApiUrl);\n\n    const result = await this.restService.get({\n      url: this.restService.getWebApiUrl(info.WebApiUrl),\n      getOptions: {\n        columns: [\"Id\"],\n        where: where,\n        customs: customs,\n        orderBy: orderBy,\n        skip: 0,\n        take: 150,\n        requireTotalCount: true\n      }\n    });\n\n    if (!result || !result.rows) {\n      return null;\n    }\n\n    const indexOf = result.rows.findIndex((i) => {\n      return i.Id == id;\n    });\n\n    if (indexOf < 0) {\n      return null;\n    }\n\n    const viewScrollInfo = <IViewScrollInfo>{\n      lastLoadInfo: {\n        url: url,\n        getOptions: {\n          where: where,\n          orderBy: orderBy\n        }\n      },\n      index: indexOf,\n      maxCount: result.count\n    };\n\n    if (this.needsParentTypeNameForUrl(typeName)) {\n      viewScrollInfo.resultKeyResolver = (key) => {\n        return this.getParentId(typeName, key);\n      };\n    }\n\n    return viewScrollInfo;\n  }\n  async createViewScrollInfoEx(\n    loadWebApiAction: string,\n    columns: string[],\n    where: any,\n    customs: { key: string; value: any; }[],\n    orderBy: any,\n    id: any,\n    queryId: { (item): number }): Promise<IViewScrollInfo> {\n    const url = this.restService.getWebApiUrl(loadWebApiAction);\n\n    const result = await this.restService.get({\n      url: url,\n      getOptions: {\n        columns: columns,\n        where: where,\n        customs: customs,\n        orderBy: orderBy,\n        skip: 0,\n        take: 150,\n        requireTotalCount: true\n      }\n    });\n\n    if (!result || !result.rows) {\n      return null;\n    }\n\n    const indexOf = result.rows.findIndex((i) => {\n      return queryId(i) == id;\n    });\n\n    if (indexOf < 0) {\n      return null;\n    }\n\n    const viewScrollInfo = <IViewScrollInfo>{\n      lastLoadInfo: {\n        url: url,\n        getOptions: {\n          where: where,\n          orderBy: orderBy\n        }\n      },\n      columns: columns,\n      index: indexOf,\n      maxCount: result.count,\n      resultKeyResolver: (key, data) => {\n        return Promise.resolve(queryId(data));\n      }\n    };\n\n    return viewScrollInfo;\n  }\n\n  async getParentId(childTypeName: string, childId: any): Promise<any> {\n    const parentTypeName = this.getTypeNameParent(childTypeName);\n\n    if (parentTypeName == childTypeName) {\n      return childId;\n    }\n\n    const childInfo = this.getEntitaetInfoByTypeName(childTypeName);\n    const parentInfo = this.getEntitaetInfoByTypeName(parentTypeName);\n\n    const parentId = await this.getParentIdFromDetail(childInfo, childId, parentInfo);\n    return parentId;\n  }\n  async getEntitaetUrlById(id: number): Promise<string> {\n    if (id == void 0) {\n      return undefined;\n    }\n\n    const entitaet = await this.restService.get({\n      url: `${this.restService.getWebApiUrl(\"ERP/Stammdaten/Entitaet\")}/${id}`,\n      getOptions: {\n        columns: [\"TypeName\"]      \n      }\n    });\n\n    if (entitaet == void 0) {\n      return undefined;\n    }\n\n    return this.getUrl(entitaet.TypeName, id);\n  }\n  needsParentTypeNameForUrl(typeName: string): boolean {\n    return this.getTypeNameParent(typeName) != typeName;\n  }\n  private getBaseEntitaetUrl(typeName: string) {\n    switch (typeName) {\n      case \"TIP.ERP.Business.Entitaeten.Import.ImportItem\": {\n        return \"ERP/Import/Import\";\n      }\n      case \"TIP.ERP.Business.Entitaeten.Fibu.FibuSyncJob\": {\n        return \"ERP/Fibu/SyncJob\";\n      }\n      case \"TIP.ERP.Business.Entitaeten.Kassen.KassaBeleg\": {\n        return \"ERP/Kassa/KassaBeleg\";\n      }\n      default: {\n        const propertyNameList = typeName.split(\".\");\n        const url = propertyNameList.slice(propertyNameList.indexOf(\"Entitaeten\") + 1).join(\"/\");\n\n        return `ERP/${url}`;\n      }\n    }\n  }\n  private getEntitaetName(typeName: string): string {\n    const propertyNameList = typeName.split(\".\");\n    return propertyNameList[propertyNameList.length - 1];\n  }\n  private async getParentIdFromDetail(positionInfo: IEntitaetInfo, positionId: number, parentInfo: IEntitaetInfo): Promise<number> {\n    if (!positionInfo || !positionId || !parentInfo) {\n      return undefined;\n    }\n\n    const idParentPropertyName = `Id${this.getEntitaetName(parentInfo.FullName)}`;\n    const result = await this.restService.get({\n      url: `${this.restService.getWebApiUrl(positionInfo.WebApiUrl)}/${positionId}`,\n      getOptions: { columns: [\"Id\", idParentPropertyName] }\n    });\n\n    return result && result[idParentPropertyName]\n      ? result[idParentPropertyName]\n      : undefined;\n  }\n  private getTypeNameParent(detailTypeName: string): string {\n    let parentEntitaetInfo = detailTypeName;\n\n    switch (detailTypeName) {\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Angebotsposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Verkauf.Angebot\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Auftragsposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferscheinposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferschein\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Fakturaposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellungsposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellung\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahmeposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahme\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnungsposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnung\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.BriefZuEmpfaenger\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Stammdaten.Brief\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Produktion.ProdFertigware\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Produktion.ProdAuftrag\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Lager.Inventurposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Lager.Inventur\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Produktion.ProdRohware\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Produktion.ProdAuftrag\";\n        break;\n      case \"TIP.ERP.Business.Entitaeten.Kassen.KassaBelegposition\":\n        parentEntitaetInfo = \"TIP.ERP.Business.Entitaeten.Kassen.KassaBeleg\";\n        break;\n    }\n\n    return parentEntitaetInfo;\n  }\n  private getUrlString(typeName: string, id: number) {\n    const entitaetInfo = this.getEntitaetInfoByTypeName(typeName);\n\n    if (entitaetInfo.Url.startsWith(\"ERP/Zeiterfassung/\")) {\n      entitaetInfo.Url = entitaetInfo.Url.replace(\"Zeiterfassung\", \"Projektzeit\");\n    }\n\n    return entitaetInfo ?\n      `${entitaetInfo.Url}${id != void 0 ? (\"/\" + id) : \"\"}`\n      : null;\n  }\n  private setEntitaetDic(entitaetList: IEntitaetInfo[]) {\n    entitaetList.forEach((e) => {\n      e.Url = this.getBaseEntitaetUrl(e.FullName);\n\n      this._typeNameDic[e.FullName] = e;\n      this._webApiActionDic[e.WebApiUrl] = e;\n    });\n  }\n}\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  AuthorizationService,\n  LocalizationService\n} from \"../../../base/export\";\nimport { \n  FormBase,\n  ICommandData\n} from \"../../../forms/export\";\nimport { LocationService } from '../../../base/services/location-service';\n\n@autoinject\n@transient()\nexport class PasswordResetFuncs {\n  private form: FormBase;\n  \n  constructor(\n    private authorization: AuthorizationService,\n    private locationService: LocationService,\n    private localization: LocalizationService\n  ) { }\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    form.models.data.$m_Password = {\n    };\n  }\n\n  resetPasswordCommand: ICommandData = {\n    id: \"$resetPassword\",\n    title: \"password-reset-funcs.reset_caption\",\n    execute: () => {\n      if (!this.form.models.data.$m_Password.Username) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"password-reset-funcs.enter_username\"), \"error\", 3000);\n        return;\n      }\n\n      this.authorization\n        .resetPassword(this.form.models.data.$m_Password)\n        .then(r => {\n          if (r) {\n            this.locationService.goTo({\n              url: \"login\",\n              clearStack: true\n            });\n          }\n        });\n    }\n  };\n  backToLoginCommand: ICommandData = {\n    id: \"$backToLogin\",\n    title: \"password-reset-funcs.back_to_login_caption\",\n    execute: () => {\n      this.locationService.goTo({\n        url: \"login\",\n        clearStack: true\n      });\n    }\n  };\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { ElementService } from \"./element-service\";\nimport { IViewModel } from '../interfaces/view-model';\n\n@autoinject\nexport class EditorService {\n  constructor(\n    private elementService: ElementService\n  ) { }\n\n  createOptions(viewModel: IViewModel, idDataSource: string, dataField: string, options: DevExpress.ui.EditorOptions) {\n    const result = Object.assign({\n    }, options, {\n        readOnly: true,\n        bindingOptions: {\n          value: \"dataSourceSelected.\".concat(idDataSource).concat(\".\").concat(dataField)\n        }\n      });\n\n    this.elementService.addOnInitialized(result, (e) => {\n      viewModel.registerDataSourceSelectionChanged(idDataSource, (idDataSource, data) => {\n        if (data.length != 1) {\n          e.component.option(\"value\", null);\n        } else {\n          const row = data[0];\n          const tokens = dataField.split(\".\");\n\n          let val = data[0];\n          for (let item of tokens) {\n            val = val[item];\n            if (!val) {\n              break;\n            }\n          }\n\n          e.component.option(\"value\", val);\n        }\n      });\n    });\n\n    return result;\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnDeleteIdWarenuebernahmepositionListEvent, OnImportBestellungspositionenInWarenuebernahme, OnImportBestellungspositionenInWarenuebernahmeEvent, OnKopierenRequest, OnKopierenRequestEvent, OnWarenuebernahmeAbschliessenEvent } from \"../../../../framework-data/events\";\nimport { WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { DynFelderDataService, DynFelderService, FilialeService, FirmaService, GeschaeftspartnerService, LagerService, ValidationExService } from \"../../../services/export\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { LocalizationService } from \"./../../../../framework/base/services/localization-service\";\n\n@autoinject\n@transient()\nexport class WarenuebernahmeEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    private _asyncService: AsyncService,\n    private _dynFelderService: DynFelderService,\n    private _filialeService: FilialeService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _lagerService: LagerService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"warenuebernahme\",\n    title: \"warenuebernahme.abschliessen\",\n    icon: \"check\",\n    sortIndex: 999,\n    isEnabledExpression: \"models.data.$m_Warenuebernahme.CanSave && models.data.$m_Warenuebernahme.Status.Typ === 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Warenuebernahme.TypeName,\n        this.form.models.data.$m_Warenuebernahme.Id,\n        \"ABSCHLIESSEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnWarenuebernahmeAbschliessenEvent({\n        IdWarenuebernahme: this.form.models.data[\"$m_Warenuebernahme\"].Id\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  showImportBestellungspositionenPopupCommand: ICommandData = {\n    id: \"showImportBestellungspositionen\",\n    icon: \"plus\",\n    idCategory: \"warenuebernahme\",\n    title: \"warenuebernahme.bestellungspos_importieren\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Warenuebernahme.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const bestellungspositionGrid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      if (bestellungspositionGrid && bestellungspositionGrid.instance) {\n        await this._asyncService.convertToPromise(bestellungspositionGrid.instance.deselectAll());\n        bestellungspositionGrid.instance.refresh();\n      }\n\n      this.form[\"r_bestellungspositionEditPopup\"].instance.show();\n    }\n  };\n  importBestellungspositionenCommand: ICommandData = {\n    id: \"importBestellungspositionen\",\n    title: \"warenuebernahme.mark_pos_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n\n      const webEvent = new OnImportBestellungspositionenInWarenuebernahmeEvent({\n        IdWarenuebernahme: this.form.models.data.$m_Warenuebernahme.Id,\n        IdBestellungspositionList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportBestellungspositionenInWarenuebernahme = await this._webEventService.execute(webEvent, true);\n      this.form[\"r_bestellungspositionEditPopup\"].instance.hide();\n\n      this.form.models.reloadAll();\n    }\n  };\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Warenuebernahme.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_warenuebernahmepositionGrid\"];\n      const warenuebernahmePosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (warenuebernahmePosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"warenuebernahme.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const warenuebernahmeposition of warenuebernahmePosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          warenuebernahmeposition.TypeName,\n          warenuebernahmeposition.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const warenuebernahmeposition of warenuebernahmePosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: warenuebernahmeposition.Id,\n          CustomData: { \"PosNrUeberschreiben\": true }\n        }),\n          true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Warenuebernahme.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_warenuebernahmepositionGrid\"];\n      const warenuebernahmePosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (warenuebernahmePosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"warenuebernahme.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (warenuebernahmePosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"warenuebernahme.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const warenuebernahmeposition of warenuebernahmePosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          warenuebernahmeposition.TypeName,\n          warenuebernahmeposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = warenuebernahmePosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdWarenuebernahmepositionListEvent({\n        IdWarenuebernahmepositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const lieferant = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_lieferant'] .dx-searchbox input\");\n      if (!lieferant) {\n        return;\n      }\n\n      lieferant.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Warenuebernahme\",\n      idVorgEntitaetPropertyName: \"IdLieferant\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Warenuebernahme\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"warenuebernahmepositionEditPopup\"]\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_WarenuebernahmepositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Warenuebernahme\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Warenuebernahme\"];\n          if (model) {\n            model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Warenuebernahme\",\n                bindTo: \"IdLieferfiliale\"\n              },\n              value: model.IdLieferfiliale\n            });\n          }\n        }\n\n        if (args.binding.bindTo === \"IdLieferfiliale\") {\n          const model = form.models.data[\"$m_Warenuebernahme\"];\n          if (model) {\n            model.IdLieferlager = await this._lagerService.getIdLagerVorbelegung(args.value);\n\n            const idWaehrung = await this._filialeService.getWaehrungIdOfFiliale(args.value);\n            if (idWaehrung != null) {\n              model.IdWaehrung = idWaehrung;\n            } else {\n              model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Warenuebernahme.IdFirma);\n            }\n          }\n        }\n      }\n    });\n  }\n\n  async onLieferantChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(){\n    if (this.form.models.data.$m_Warenuebernahme.CanSave && this.form.models.data.$m_Warenuebernahme.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Warenuebernahme.IdLieferant);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if(idFirma == null){\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Warenuebernahme.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Warenuebernahme\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { StartupService } from \"./startup-service\";\nimport { IModul } from \"../interfaces/modul\";\n\n@autoinject\nexport class ModuleService {\n  private _moduleInfos: IModuleInfo[];\n  private _berechtModules: IModul[];\n\n  constructor(\n    private startupService: StartupService) {\n    this.registerModules();\n  }\n\n  canActivateModule(moduleId: string) {\n    const startupInfo = this.startupService.startupInfo;\n\n    const isCloudAdministrator = startupInfo\n      && startupInfo.Benutzer\n      && startupInfo.Benutzer.IsCloudAdministrator;\n\n    const isAdministrator = startupInfo\n      && startupInfo.Benutzer\n      && startupInfo.Benutzer.IsAdministrator;\n\n    const isSupport = startupInfo.Benutzer.IsSupport;\n\n    const moduleInfo = this._moduleInfos.find((m) =>\n      moduleId.toLowerCase()\n        .startsWith(m.moduleIdStart));\n    if (!moduleInfo) {\n      return !isCloudAdministrator;\n    }\n\n    if (!this.hasLizenz(moduleInfo)) {\n      return false;\n    }\n\n    if ((isCloudAdministrator || false) != (moduleInfo.hasOnlyCloudAdmin || false)) {\n      //Ausnahme wenn IsCloudAdministrator und hasCloudAdmin\n      if (!(isCloudAdministrator && moduleInfo.hasCloudAdmin)) {\n        return false;\n      } else if (isCloudAdministrator && moduleInfo.hasCloudAdmin) {\n        return true;\n      }\n    }\n\n    if (!this.hasBerechtigung(moduleId)) {\n      return false;\n    }\n\n    if (!isAdministrator && !isCloudAdministrator) {\n      if (moduleInfo.hasOnlyAdmin) {\n        return false;\n      }\n    }\n\n    if (!isSupport && moduleInfo.hasOnlySupport) {\n      return false;\n    }\n\n    return true;\n  }\n  resetBerechtModules() {\n    this._berechtModules = this.startupService.startupInfo.ModulList\n      .map((c) => c)\n      .sort((a, b) => b.Modul.localeCompare(a.Modul));\n  }\n\n  hasBerechtigungProjektzeit() {\n    return this.hasBerechtigung(\"erp/zeiterfassung\");\n  }\n  hasBerechtigungArbeitszeit() {\n    return this.hasBerechtigung(\"erp/arbeitszeit\");\n  }\n  hasBerechtigungDashboardUnternehmen() {\n    return this.hasBerechtigung(\"erp/dashboard-unternehmen\");\n  }\n\n  private hasBerechtigung(moduleId: string) {\n    if (this.startupService.startupInfo.Benutzer.IsAdministrator) {\n      return true;\n    }\n\n    const module = this._berechtModules.find((m) =>\n      moduleId.toLowerCase()\n        .startsWith(m.Modul));\n    if (!module) {\n      return true;\n    }\n    if (!module.HasBerechtigung) {\n      return false;\n    }\n\n    return true;\n  }\n  private hasLizenz(moduleInfo: IModuleInfo) {\n    const lizenz = this.startupService.startupInfo.Lizenz;\n\n    const needsLizenz = moduleInfo.hasEinkaufVerkauf\n      || moduleInfo.hasMailImport\n      || moduleInfo.hasNewsletter\n      || moduleInfo.hasProduktion\n      || moduleInfo.hasSkript\n      || moduleInfo.hasWebshop\n      || moduleInfo.HasWooCommerce\n      || moduleInfo.hasKassa\n      || moduleInfo.hasMahnung\n      || moduleInfo.hasFibu\n      || moduleInfo.hasProjektzeiterfassung\n      || moduleInfo.hasLadeliste\n      || moduleInfo.hasArtikelverleih\n      || moduleInfo.hasBelegImportExport\n      || moduleInfo.hasProjektplanung\n      || moduleInfo.hasIntrastat\n      || moduleInfo.hasProjektzeitverrechnung\n      || moduleInfo.hasVariablerSetartikel\n      || moduleInfo.hasArbeitszeit\n      || moduleInfo.hasIntercompany\n      || moduleInfo.hasZahlungsverkehr\n      || moduleInfo.hasOSS\n      || moduleInfo.hasLagerOhneMHDCharge;\n\n    if (!needsLizenz) {\n      return true;\n    }\n\n    return (moduleInfo.hasEinkaufVerkauf && lizenz.HasEinkaufVerkauf)\n      || (moduleInfo.hasMailImport && lizenz.HasMailImport)\n      || (moduleInfo.hasNewsletter && lizenz.HasNewsletter)\n      || (moduleInfo.hasProduktion && lizenz.HasProduktion)\n      || (moduleInfo.hasProvision && lizenz.HasProvision)\n      || (moduleInfo.hasSkript && lizenz.HasSkript)\n      || (moduleInfo.hasWebshop && lizenz.HasWebshop)\n      || (moduleInfo.HasWooCommerce && lizenz.HasWooCommerce)\n      || (moduleInfo.hasKassa && lizenz.HasKassa)\n      || (moduleInfo.hasMahnung && lizenz.HasMahnung)\n      || (moduleInfo.hasFibu && lizenz.HasFibu)\n      || (moduleInfo.hasLadeliste && lizenz.HasLadeliste)\n      || (moduleInfo.hasArtikelverleih && lizenz.HasArtikelverleih)\n      || (moduleInfo.hasBelegImportExport && lizenz.HasBelegImportExport)\n      || (moduleInfo.hasProjektzeiterfassung && lizenz.HasProjektzeiterfassung)\n      || (moduleInfo.hasProjektplanung && lizenz.HasProjektplanung)\n      || (moduleInfo.hasIntrastat && lizenz.HasIntrastat)\n      || (moduleInfo.hasProjektzeitverrechnung && lizenz.HasProjektzeitverrechnung)\n      || (moduleInfo.hasVariablerSetartikel && lizenz.HasVariablerSetartikel)\n      || (moduleInfo.hasArbeitszeit && lizenz.HasArbeitszeit)\n      || (moduleInfo.hasIntercompany && lizenz.HasIntercompany)\n      || (moduleInfo.hasZahlungsverkehr && lizenz.HasZahlungsverkehr)\n      || (moduleInfo.hasOSS && lizenz.HasOSS)\n      || (moduleInfo.hasLagerOhneMHDCharge && lizenz.HasLagerOhneMHDCharge)\n  }\n  private registerModules() {\n    const moduleInfos: IModuleInfo[] = [];\n\n    moduleInfos.push({ moduleIdStart: \"erp/views/dashboard-designer\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/anfrageart\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/angebotsart\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/anrede\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/arbeitszeit-benutzer-zuteilung\", hasArbeitszeit: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/arbeitszeit-kostenstelle\", hasArbeitszeit: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/artikelart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/artikelgruppe\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/artikelkategorie\", hasBenutzerrolle: true, hasKassa: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/auswertung\", hasBenutzerrolle: true, hasOnlySupport: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/auftragsart\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/benutzer\", hasBenutzerrolle: true, hasCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/benutzerrolle\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/bestellungsart\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/briefvorlage\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/dokumentenart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/druck-einstellung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/drucktext\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/einheit\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/faktura-sammelart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/filiale\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/filtergruppe\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/firma\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/firma-zahlungsverkehr\", hasBenutzerrolle: true, hasZahlungsverkehr: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/geschaeftspartnerart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/intercompany\", hasBenutzerrolle: true, hasIntercompany: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/intrastat-sync\", hasBenutzerrolle: true, hasIntrastat: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/kalender\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/kassa\", hasBenutzerrolle: true, hasKassa: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/lager\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/lagerbuchungsart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/land\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/lieferbedingung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/mail-import-item\", hasBenutzerrolle: true, hasMailImport: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/mail-import-def\", hasMailImport: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/mail-server\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/mail-vorlage\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/mandant\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/medien\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/newsletter\", hasBenutzerrolle: true, hasNewsletter: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/notiztyp\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/nummernkreis\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/papierkorb\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/personenaktion\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/personenfunktion\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/positionsart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/projektart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/provisionsmodell\", hasProvision: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/qr-label\", hasEinkaufVerkauf: true, hasBelegImportExport: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/reklamationsgrund\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/skript-item\", hasSkript: true, hasOnlySupport: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/spediteur\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/sprache\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/status\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/steuercode\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/steuersatz\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/tag\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/taetigkeit\", hasBenutzerrolle: true, hasProjektzeiterfassung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/taetigkeitenart\", hasBenutzerrolle: true, hasProjektzeiterfassung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/textbaustein\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/uid-validierung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/validierung\", hasSkript: true, hasOnlySupport: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/vertreter\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/waehrung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/zahlungsart\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/zahlungsbedingung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/stammdaten/zuschlagsart\", hasEinkaufVerkauf: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/suche/volltext-thesaurus\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/dynamische-felder\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/kalkulation/berechnungsdefinition\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/kalkulation/konditionsfeld\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/kalkulation/kondition\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/beleg-import\", hasBelegImportExport: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/fibu-konto\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/fibu-oss\", hasFibu: true, hasOSS: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/fibu-sync-job\", hasFibu: true, hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/fehler\", hasOnlyCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/instanz\", hasOnlyCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/import\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/einstellung\", hasOnlyCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/datenbank-info\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration/status\", hasOnlyCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/konfiguration\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/einkauf/bestellung\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/einkauf/bestellvorschlag\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/einkauf/warenuebernahme\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/einkauf/eingangsrechnung\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/lager/inventur\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/lager/lagerkorrektur\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/lager/artikelverleih\", hasBenutzerrolle: true, hasArtikelverleih: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/produktion\", hasBenutzerrolle: true, hasProduktion: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/kassa/kassa-beleg\", hasBenutzerrolle: true, hasKassa: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/angebot\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/auftrag\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/lieferschein\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/ladeliste\", hasBenutzerrolle: true, hasLadeliste: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/faktura\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/kundenreklamation\", hasBenutzerrolle: true, hasEinkaufVerkauf: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/provision\", hasBenutzerrolle: true, hasProvision: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/gutschein\", hasBenutzerrolle: true, hasKassa: true, HasWooCommerce: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/mahnung\", hasBenutzerrolle: true, hasMahnung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/verkauf/zahlung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/tickets\", hasCloudAdmin: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/webshop\", hasBenutzerrolle: true, hasWebshop: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/zeiterfassung/projekt-taetigkeit-buchung\", hasBenutzerrolle: true, hasProjektzeiterfassung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/zeiterfassung/projektplanung\", hasBenutzerrolle: true, hasProjektplanung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-artikel\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-auftrag\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-bestellung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-ein-auszahlungs-rechnung\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-faktura\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-webshop-login-log\", hasBenutzerrolle: true, hasWebshop: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-geschaeftspartner-person\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-gruppe\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-kassa-info\", hasBenutzerrolle: true, hasKassa: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-kunde\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-lagerbestand\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-lagerbewegungen\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-reklamationen\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/statistik-projektzeit\", hasBenutzerrolle: true, hasProjektzeiterfassung: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/statistik/uebersicht\", hasBenutzerrolle: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/arbeitszeit/benutzerstatus\", hasBenutzerrolle: true, hasArbeitszeit: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/arbeitszeit/saldenuebersicht\", hasBenutzerrolle: true, hasArbeitszeit: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/arbeitszeit/lohnexport\", hasBenutzerrolle: true, hasArbeitszeit: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/arbeitszeit/tagesbuchungen\", hasBenutzerrolle: true, hasArbeitszeit: true });\n    moduleInfos.push({ moduleIdStart: \"erp/views/zahlungsverkehr/zahlungsverkehr\", hasBenutzerrolle: true, hasZahlungsverkehr: true });\n\n    this._moduleInfos = moduleInfos.sort((a, b) => b.moduleIdStart.localeCompare(a.moduleIdStart));\n  }\n}\n\ninterface IModuleInfo {\n  moduleIdStart: string;\n  hasWebshop?: boolean;\n  hasProduktion?: boolean;\n  hasNewsletter?: boolean;\n  hasEinkaufVerkauf?: boolean;\n  hasMailImport?: boolean;\n  hasProvision?: boolean;\n  hasSkript?: boolean;\n  hasKassa?: boolean;\n  hasMahnung?: boolean;\n  HasWooCommerce?: boolean;\n  hasLadeliste?: boolean;\n  hasFibu?: boolean;\n  hasProjektzeiterfassung?: boolean;\n  hasArtikelverleih?: boolean;\n  hasBelegImportExport?: boolean;\n  hasOnlyAdmin?: boolean;\n  hasOnlyCloudAdmin?: boolean;\n  hasOnlySupport?: boolean;\n  hasCloudAdmin?: boolean;\n  hasBenutzerrolle?: boolean;\n  hasProjektplanung?: boolean;\n  hasIntrastat?: boolean;\n  hasProjektzeitverrechnung?: boolean;\n  hasVariablerSetartikel?:boolean\n  hasArbeitszeit?: boolean;\n  hasIntercompany?: boolean;\n  hasZahlungsverkehr?: boolean;\n  hasOSS?: boolean;\n  hasLagerOhneMHDCharge?: boolean;\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnAngebotspositionArtikelErsetzen, OnAngebotspositionArtikelErsetzenEvent, OnAngebotspositionVariableStuecklisteAuswahl, OnAngebotspositionVariableStuecklisteAuswahlEvent, OnAngebotspositionVariablerSetartikelManuellerPreisEntfernenEvent, OnAngebotspositionVariablerSetartikelPreisAendernEvent, OnAngebotspositionVariablerSetartikelRabattEntfernenEvent, OnEvalVerkaufArtikeldaten, OnEvalVerkaufArtikeldatenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData, ModelUtilsService, PopupInfoService } from \"../../../../framework/forms/export\";\nimport { IKalkulationRefreshOptions } from \"../../../interfaces/kalkulation-refresh-options\";\nimport { ArtikelService, DynFelderDataService, KalkulationRefreshService, StartupService } from \"../../../services/export\";\nimport { OnAngebotspositionVariableStuecklistenkomponentenErstellen, OnAngebotspositionVariableStuecklistenkomponentenErstellenEvent } from './../../../../framework-data/events';\nimport { VariablerSetartikelKomponentenAuswahl } from './../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl';\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from './../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern';\nimport { DxCustomizeService } from './../../../services/dx-customize-service';\nimport { DynFelderService } from './../../../services/dyn-felder-service';\nimport { DynFeldLogikTyp } from \"../../../enumerations/dyn-feld-logik-typ\";\n\n@autoinject\n@transient()\nexport class AngebotspositionEditUtils {\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    public startupService: StartupService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _artikelService: ArtikelService,\n    private _dynFelderService: DynFelderService,\n    private _modelUtilsService: ModelUtilsService,\n    private _webEventService: WebEventService,\n    private _popupInfoService: PopupInfoService,\n    private _localizationService: LocalizationService,\n    private _dxCustomizeService: DxCustomizeService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  idArtikelErsetzen: number;\n  showVariablerSetartikelCheckbox: boolean;\n  variablerSetartikelKomponentenAuswahlList: any[];\n  onReloadStuecklistemkomponentenlist: boolean;\n\n  showArtikelErsetzenCommand: ICommandData = {\n    id: \"artikelErsetzenCommand\",\n    idCategory: \"angebotsposition\",\n    icon: \"exchange\",\n    title: \"angebot.artikel_ersetzen\",\n    isEnabledExpression: \"!!models.data.$m_Angebotsposition && !!models.data.$m_Angebotsposition.CanSave && !!models.data.$m_Angebotsposition.Id && !models.data.$m_Angebotsposition.IsPositionVariableStuecklistenkomponente\",\n    sortIndex: 990,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      this.idArtikelErsetzen = null;\n\n      await this.form[\"r_artikelErsetzenPopup\"].instance.show();\n\n      const artikel = this.form[\"r_artikelErsetzenElement\"];\n      artikel.artikelNummer.instance.focus();\n    }\n  }\n  doArtikelErsetzen: ICommandData = {\n    id: \"doArtikelErsetzen\",\n    title: \"angebot.artikel_ersetzen\",\n    icon: \"exchange\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnAngebotspositionArtikelErsetzenEvent({\n        IdAngebotsposition: this.form.models.data.$m_Angebotsposition.Id,\n        IdArtikel: this.idArtikelErsetzen\n      });\n\n      if (!this.idArtikelErsetzen) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"angebot.kein_artikel_ausgewaehlt\"), \"ERROR\", 3000);\n        return;\n      }\n\n      const webEventResult: OnAngebotspositionArtikelErsetzen = await this._webEventService.execute(webEvent, true);\n      DevExpress.ui.notify(this._localizationService.translateOnce(\"angebot.artikel_erfolgreich_ersetzt\"), \"SUCCESS\", 3000);\n      this._popupInfoService.closeAllPopups();\n    }\n  }\n\n  showVariablerSetartikelKomponentenAuswahlCommand: ICommandData = {\n    id: \"variablerSetartikelKomponentenAuswahlCommand\",\n    idCategory: \"angebotsposition\",\n    icon: \"list\",\n    title: \"angebot.stueckliste_auswaehlen\",\n    isVisibleExpression: \"functions.$f_AngebotspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Angebotsposition && models.data.$m_Angebotsposition.Id > 0 && models.data.$m_Angebotsposition.IsVariablerSetartikel && models.data.$m_Angebotsposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n    }\n  }\n\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"angebotsposition\",\n    icon: \"money\",\n    title: \"angebot.preis_aendern\",\n    isVisibleExpression: \"functions.$f_AngebotspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Angebotsposition && models.data.$m_Angebotsposition.Id > 0 && models.data.$m_Angebotsposition.IsVariablerSetartikel && models.data.$m_Angebotsposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Angebotsposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Angebotsposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeVerpEH\"\n    }\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"angebotspositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0 || e.model.id != \"$m_Angebotsposition\" || !e.data) {\n        return;\n      }\n\n      this.showVariablerSetartikelCheckbox = this.form.models.data.$m_Angebotsposition\n        && this.form.models.data.$m_Angebotsposition.Artikel != null\n        && this.form.models.data.$m_Angebotsposition.Artikel.BezugTyp == 3\n        ? true\n        : false;\n\n      this.refreshAngebotsgruppeButton();\n    });\n    this.form.onSaving.register(async (r) => {\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n      if (!this.form.models.data.$m_Angebotsposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      if (r.form.models.data.$m_Angebotsposition.Id > 0) {\n        return;\n      }\n\n      if (this.variablerSetartikelKomponentenAuswahlList != null) {\n        return;\n      }\n\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n\n      return Promise.reject();\n    });\n\n    this.form.onSaved.register(async (r) => {\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n      if (this.variablerSetartikelKomponentenAuswahlList == null && this.form.models.data.$m_Angebotsposition.IsSetartikel) {\n        if (this.onReloadStuecklistemkomponentenlist) {\n          this.onReloadStuecklistemkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n        return;\n      }\n\n      if (r.form.models.data.$m_Angebotsposition.Id > 0 && !this.form.models.data.$m_Angebotsposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      const webEvent = new OnAngebotspositionVariableStuecklistenkomponentenErstellenEvent({\n        IdAngebotsposition: r.form.models.data.$m_Angebotsposition.Id,\n        StuecklistenkomponentenMengeList: this.variablerSetartikelKomponentenAuswahlList\n      });\n\n      const result: OnAngebotspositionVariableStuecklistenkomponentenErstellen = await this._webEventService.execute(webEvent);\n\n      this.form.models.reloadAll();\n      this.variablerSetartikelKomponentenAuswahlList = null;\n    });\n  }\n\n  async idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n\n    if (!this.form.models.data.$m_Angebotsposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Angebotsposition);\n    }\n\n    this.doEvalVerkaufArtikeldaten(e.detail.value);\n\n    if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n      return;\n    }\n\n    if (e.detail.value != null) {\n      const artikel = await this._artikelService.getArtikelById(e.detail.value);\n\n      this.form.models.data.$m_Angebotsposition.IsVariablerSetartikel = false;\n      this.showVariablerSetartikelCheckbox = false;\n      this.variablerSetartikelKomponentenAuswahlList = null;\n\n      if (artikel.BezugTyp != 3) {\n        return;\n      }\n\n      const dynFeldEintrag = await this._dynFelderService.loadDynFeldEintragByLogikttyp(artikel.IdDynamischesFeldContainer, DynFeldLogikTyp.VariablerSetartikel);\n      this.showVariablerSetartikelCheckbox = true;\n\n      if (dynFeldEintrag != null && dynFeldEintrag[0].WertNummer == 1) {\n        this.form.models.data.$m_Angebotsposition.IsVariablerSetartikel = true;\n      }\n    }\n  }\n\n  copyAngebotsposition($delegate: { (customData: any): Promise<any> }) {\n    $delegate({ \"PosNrUeberschreiben\": true })\n  }\n\n  private async showVariablerSetartikelStuecklistenKomponentenAuswahl() {\n    const webEvent = new OnAngebotspositionVariableStuecklisteAuswahlEvent({\n      IdArtikel: this.form.models.data.$m_Angebotsposition.IdArtikel,\n      IdAngebotsposition: this.form.models.data.$m_Angebotsposition.Id\n    });\n\n    const result: OnAngebotspositionVariableStuecklisteAuswahl = await this._webEventService.execute(webEvent);\n\n    if (result == void 0) {\n      return;\n    }\n\n    if (result.StuecklistenkomponentenAuswahlList.length == 0) {\n      return;\n    }\n\n    const variablerSetartikelAuswahlPopup: VariablerSetartikelKomponentenAuswahl = this.form[\"r_variablerSetartikelKomponentenAuswahlElement\"];\n\n    variablerSetartikelAuswahlPopup.show({\n      StuecklisteList: result.StuecklistenkomponentenAuswahlList,\n      callback: async (auswahl) => {\n        this.variablerSetartikelKomponentenAuswahlList = auswahl;\n        this.form.save();\n      }\n    });\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnAngebotspositionVariablerSetartikelRabattEntfernenEvent({\n            IdAngebotspositionSetartikel: this.form.models.data.$m_Angebotsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnAngebotspositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdAngebotspositionSetartikel: this.form.models.data.$m_Angebotsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnAngebotspositionVariablerSetartikelPreisAendernEvent({\n            IdAngebotspositionSetartikel: this.form.models.data.$m_Angebotsposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n\n  private async doEvalVerkaufArtikeldaten(idArtikel) {\n    if (!idArtikel) {\n      return;\n    }\n\n    const webEvent = new OnEvalVerkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdKunde: this.form.models.data.$m_Angebot.IdKunde\n    });\n\n    const result: OnEvalVerkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    this.form.models.data.$m_Angebotsposition.IdEinheit = result.IdArtikelEinheit;\n    this.form.models.data.$m_Angebotsposition.KundeArtikelNr = result.KundeArtikelNr;\n    this.form.models.data.$m_Angebotsposition.KundeArtikelbezeichnung = result.KundeArtikelbezeichnung;\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Angebotsposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Angebotsposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistemkomponentenlist = true;\n    }\n  }\n\n  onAngebotsgruppeChanged() {\n    this.refreshAngebotsgruppeButton();\n  }\n\n  private refreshAngebotsgruppeButton() {\n    const data = this.form.models.data.$m_Angebotsposition;\n    if (!data) {\n      return;\n    }\n    const editor = this.form[\"r_angebotsgruppe\"].instance;\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (!data.IdAngebotsgruppe && data.CanSave) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: async () => {\n            this.form.models.data.$m_AngebotsgruppeEdit = {\n              Id: 0\n            };\n\n            this.form.editPopups.showEx({\n              idEditPopup: \"angebotsgruppeEditPopup\",\n              modelLoaded: (form, ev) => {\n                if (!form.models.data.$m_Angebotsgruppe) {\n                  return;\n                }\n                form.models.data.$m_Angebotsgruppe.IdAngebot = this.form.models.data.$m_Angebotsposition.IdAngebot;\n              },\n              closeCallback: async (form) => {\n                this.form[\"r_angebotsgruppe\"].instance.getDataSource().reload();\n\n                const model = form.models.modelWithKeyId;\n                const data = form.models.data[model.id];\n                this.form.models.data.$m_Angebotsposition.IdAngebotsgruppe = data.Id;\n\n                this.form.onEditorValueChanged.fire({\n                  binding: {\n                    dataContext: \"$m_Angebotsposition\",\n                    bindTo: \"IdAngebotsgruppe\"\n                  },\n                  value: data.Id\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"clear\"\n    }, {\n      location: \"after\",\n      name: \"dropDown\"\n    });\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  AuthorizationService,\n  LocalizationService\n} from \"../../../base/export\";\nimport { \n  FormBase,\n  ICommandData\n} from \"../../../forms/export\";\nimport { LocationService } from '../../../base/services/location-service';\n\n@autoinject\n@transient()\nexport class ActivateAccountFuncs {\n  private form: FormBase;\n\n  constructor(\n    private authorization: AuthorizationService,\n    private localization: LocalizationService,\n    private locationService: LocationService\n  ) { }\n\n  activationKey: string;\n\n  registerForm(form: FormBase) {\n    this.form = form;\n\n    form.onActivate.register(r => {\n      if (r && r.parameters) {\n        this.activationKey = r.parameters.key;\n      }\n\n      return Promise.resolve();\n    });\n  }\n\n  activateCommand: ICommandData = {\n    id: \"$login\",\n    title: \"activate-account-form-funcs.account_aktivieren_caption\",\n    execute: (e) => {\n      if (this.form.models.data.$m_activateAccount.Password !== this.form.models.data.$m_activateAccount.ConfirmPassword) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"activate-account-form-funcs.password_missmatch\"), \"error\", 3000);\n        return;\n      }\n\n      this.form.models.data.$m_activateAccount.ActivationKey = this.activationKey;\n\n      this.authorization\n        .activateAccount(this.form.models.data.$m_activateAccount)\n        .then(r => {\n          if (r) {\n            this.locationService.goTo({\n              url: \"login\",\n              clearStack: true\n            });\n          }\n        });\n    }\n  };\n\n  backToLoginCommand: ICommandData = {\n    id: \"$backToLogin\",\n    title: \"activate-account-form-funcs.back_to_login_caption\",\n    execute: () => {\n      this.locationService.goTo({\n        url: \"login\",\n        clearStack: true\n      });\n    }\n  };\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernenEvent, OnLieferscheinpositionVariablerSetartikelPreisAendernEvent, OnLieferscheinpositionVariablerSetartikelRabattEntfernenEvent } from \"../../../../framework-data/events\";\nimport { WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from \"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\";\nimport { IKalkulationRefreshOptions } from \"../../../interfaces/kalkulation-refresh-options\";\nimport { DxCustomizeService } from '../../../services/dx-customize-service';\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { StartupService } from \"../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class LieferscheinpositionEditUtils {\n\n  constructor(\n    public startupService: StartupService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _dxCustomizeService: DxCustomizeService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  onReloadStuecklistenkomponentenlist: boolean;\n\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"lieferscheinposition\",\n    icon: \"money\",\n    title: \"lieferschein.preis_aendern\",\n    isVisibleExpression: \"functions.$f_LieferscheinpositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Lieferscheinposition && models.data.$m_Lieferscheinposition.Id > 0 && models.data.$m_Lieferscheinposition.IsVariablerSetartikel && models.data.$m_Lieferscheinposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Lieferscheinposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeVerpEH\"\n    }\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"lieferscheinpositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Lieferscheinposition\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"MengeIstVerpEH\" && this.form.models.data.$m_Lieferscheinposition.IsSetartikel) {\n          this.onReloadStuecklistenkomponentenlist = true;\n        }\n      }\n    });\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0 || e.model.id != \"$m_Lieferscheinposition\") {\n        return;\n      }\n      this.refreshLieferscheingruppeButton();\n    });\n\n    this.form.onSaved.register(async (r) => {\n      if (this.form.models.data.$m_Lieferscheinposition.IsSetartikel) {\n        if (this.onReloadStuecklistenkomponentenlist) {\n          this.onReloadStuecklistenkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n        return;\n      }\n    });\n  }\n\n  idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Lieferscheinposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Lieferscheinposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistenkomponentenlist = true;\n    }\n  }\n\n  onLieferscheingruppeChanged() {\n    this.refreshLieferscheingruppeButton();\n  }\n\n  private refreshLieferscheingruppeButton() {\n    const data = this.form.models.data.$m_Lieferscheinposition;\n    if (!data) {\n      return;\n    }\n    const editor = this.form[\"r_lieferscheingruppe\"].instance;\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (!data.IdLieferscheingruppe && data.CanSave) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: async () => {\n            this.form.models.data.$m_LieferscheingruppeEdit = {\n              Id: 0\n            };\n\n            this.form.editPopups.showEx({\n              idEditPopup: \"lieferscheingruppeEditPopup\",\n              modelLoaded: (form, ev) => {\n                if (!form.models.data.$m_Lieferscheingruppe) {\n                  return;\n                }\n                form.models.data.$m_Lieferscheingruppe.IdLieferschein = this.form.models.data.$m_Lieferscheinposition.IdLieferschein;\n              },\n              closeCallback: async (form) => {\n                this.form[\"r_lieferscheingruppe\"].instance.getDataSource().reload();\n\n                const model = form.models.modelWithKeyId;\n                const data = form.models.data[model.id];\n                this.form.models.data.$m_Lieferscheinposition.IdLieferscheingruppe = data.Id;\n\n                this.form.onEditorValueChanged.fire({\n                  binding: {\n                    dataContext: \"$m_Lieferscheinposition\",\n                    bindTo: \"IdLieferscheingruppe\"\n                  },\n                  value: data.Id\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"clear\"\n    }, {\n      location: \"after\",\n      name: \"dropDown\"\n    });\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnLieferscheinpositionVariablerSetartikelRabattEntfernenEvent({\n            IdLieferscheinpositionSetartikel: this.form.models.data.$m_Lieferscheinposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdLieferscheinpositionSetartikel: this.form.models.data.$m_Lieferscheinposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnLieferscheinpositionVariablerSetartikelPreisAendernEvent({\n            IdLieferscheinpositionSetartikel: this.form.models.data.$m_Lieferscheinposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n}\n","import { DynFeldWertVorlage } from './../elements/dyn-feld-wert-vorlage/dyn-feld-wert-vorlage';\nimport {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService,\n  WebEventService\n} from \"../../framework/base/export\";\nimport {\n  OnDynamischesFeldEvalVorbelegungEvent,\n  OnDynamischesFeldEvalVorbelegung,\n  OnDynamischesFeldHasManuellerText,\n  OnDynamischesFeldHasManuellerTextEvent,\n  OnDynamischesFeldUpdateManuellerTextEvent\n} from \"../../framework-data/events\";\nimport { DynFeldTyp } from '../enumerations/export';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { DynFeldLogikTyp } from '../enumerations/dyn-feld-logik-typ';\n\n@autoinject\nexport class DynFelderService {\n  private _manuellerTextCache = {};\n  private _dynFeldCache: IDynamischesFeld[];\n\n  constructor(\n    private _restService: RestService,\n    private _webEventService: WebEventService,\n    private _eventAggregator: EventAggregator\n  ) {\n    this._eventAggregator.subscribe(\"dynamisches-feld:changed\", () => {\n      this._dynFeldCache = null;\n    });\n    this._eventAggregator.subscribe(\"startupInfo:loaded\", () => {\n      this._dynFeldCache = null;\n    });\n  }\n\n  dynFeldWertVorlage: DynFeldWertVorlage;\n\n  async hasManuellerText(typeName: string): Promise<OnDynamischesFeldHasManuellerText> {\n    if (this._manuellerTextCache[typeName]) {\n      return this._manuellerTextCache[typeName];\n    }\n\n    const result: OnDynamischesFeldHasManuellerText = await this._webEventService.execute(new OnDynamischesFeldHasManuellerTextEvent({\n      TypeName: typeName\n    }), false);\n\n    this._manuellerTextCache[typeName] = result;\n    return result;\n  }\n  updateManuelleTexte(id: number, kopftext: boolean, fusstext: boolean): Promise<any> {\n    return this._webEventService.execute(new OnDynamischesFeldUpdateManuellerTextEvent({\n      Id: id,\n      Kopftext: kopftext,\n      Fusstext: fusstext\n    }), true);\n  }\n\n  async showWertVorlageAuswahlPopup(id: number, htmlEditor: any) {\n    await this.dynFeldWertVorlage.showPopup(id, htmlEditor);\n  }\n\n  async getDynFeldById(id: number) {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/DynamischesFeld/DynamischesFeld/${id}`),\n      getOptions: this.getDynFeldOptions()\n    });\n  }\n\n  async loadDynFelder(typeName: string): Promise<IDynamischesFeld[]> {\n    if (!this._dynFeldCache) {\n      this._dynFeldCache = await this._restService.get({\n        url: this._restService.getWebApiUrl(\"ERP/DynamischesFeld/DynamischesFeld\"),\n        getOptions: this.getDynFeldOptions()\n      })\n    }\n\n    return this._dynFeldCache\n      .filter(d => d.DynamischesFeldZuEntitaeten.some(e => e.TypeName == typeName))\n      .map(d => {\n        const r = Object.assign({}, d);\n        r.DynamischesFeldZuEntitaeten = d.DynamischesFeldZuEntitaeten.filter(e => e.TypeName == typeName).map(e => Object.assign({}, e));\n\n        return r;\n      });\n  }\n  loadDynFelderContainer(id: number): Promise<any> {\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/DynamischesFeld/DynamischesFeldContainer\")}/${id}`,\n      getOptions: {\n        expand: { DynamischesFeldEintraege: null }\n      },\n      increaseLoadingCount: true\n    });\n  }\n  loadDynFeldEintragByLogikttyp(idDynFeldContainer: number, logikTyp){\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/DynamischesFeld/DynamischesFeldEintrag\")}`,\n      getOptions: {\n        where: [[\"IdDynamischesFeldContainer\", idDynFeldContainer], [\"DynamischesFeld.LogikTyp\", logikTyp]],\n        expand: { DynamischesFeldEintraege: null }\n      }\n    });\n  }\n  loadVorbelegungDynFelder(options: OnDynamischesFeldEvalVorbelegung): Promise<OnDynamischesFeldEvalVorbelegung> {\n    const vorbelegungEvent = new OnDynamischesFeldEvalVorbelegungEvent(options);\n    return this._webEventService.execute(vorbelegungEvent, true);\n  }\n\n  async getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(idDynamischesFeldContainer: number) {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/DynamischesFeld/DynamischesFeldEintrag\"),\n      getOptions: {\n        where: [[\"IdDynamischesFeldContainer\", idDynamischesFeldContainer], [\"DynamischesFeld.LogikTyp\", DynFeldLogikTyp.FirmaUmstellungMehrereFirmen]]\n      }\n    });\n\n    if (r && r.length > 0) {\n      const idWertAuswahlliste = r[0].IdWertAuswahlliste;\n      if (idWertAuswahlliste == null) {\n        return null;\n      } else {\n        const dynEntitaetElement = await this.getDynamischeEntitaetElementById(idWertAuswahlliste);\n        return parseInt(dynEntitaetElement.Code);\n      }\n    } else {\n      return null;\n    }\n  }\n\n  private async getDynamischeEntitaetElementById(IdDynamischeEntitaetElement: number) {\n    return await this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/DynamischesFeld/DynamischeEntitaetElement\")}/${IdDynamischeEntitaetElement}`\n    });\n  }\n\n  private getDynFeldOptions() {\n    return {\n      columns: [\"Id\", \"Bezeichnung\", \"BreiteMD\", \"BreiteLG\", \"Code\", \"Typ\", \"AuswahllisteDatenquelle\", \"Format\", \"SortNr\", \"HasWertVorlagen\", \"Hoehe\", \"LogikTyp\"],\n      orderBy: [{ columnName: \"SortNr\", sortOrder: 0 }],\n      expand: {\n        DynamischesFeldZuEntitaeten: {\n          columns: [\"Id\", \"IdDynamischesFeld\", \"Anzeigeort\", \"TypeName\", \"IsPflicht\", \"IsReadOnly\", \"CanAenderWennDatensatzErledigt\", \"IdArt\", \"IdVorbWertAuswahlliste\", \"VorbWertText\", \"VorbWertDatum\", \"VorbWertNummer\"]\n        }\n      }\n    }\n  }\n}\n\nexport interface IDynamischesFeld {\n  Id: number;\n  SortNr: number;\n  Code: string;\n  Typ: DynFeldTyp;\n  Bezeichnung: string;\n  BreiteMD: number;\n  BreiteLG: number;\n  AuswahllisteDatenquelle: string;\n  Format: string;\n  HasWertVorlagen: boolean;\n  Hoehe: string;\n  LogikTyp: number;\n  DynamischesFeldZuEntitaeten: IDynamischesFeldZuEntitaet[];\n}\nexport interface IDynamischesFeldZuEntitaet {\n  Id: number;\n  IdDynamischesFeld: number;\n  IdArt: number;\n  IdVorbWertAuswahlliste: number;\n  Anzeigeort: string;\n  TypeName: string;\n  IsPflicht: boolean;\n  IsReadOnly: boolean;\n  CanAenderWennDatensatzErledigt: boolean;\n  VorbWertText: string;\n  VorbWertDatum: Date;\n  VorbWertNummer: number;\n}\n","export enum ListViewPagingMode {\n  loadNext = 0,\n  paging = 1\n}\n","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject } from \"aurelia-framework\";\nimport { OnUIDValidierenEvent } from \"../../framework-data/events\";\nimport { ObjectService, WebEventService } from \"../../framework/base/export\";\nimport * as DxLoader from \"../../framework/dx/dx-loader\";\n\n@autoinject\nexport class DxCustomizeService {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _eventAggregator: EventAggregator,\n    private _objectService: ObjectService,\n    private _webEventService: WebEventService\n  ) {\n    this._eventAggregator.subscribe(\"dx-widget:attaching\", (attaching) => {\n      switch (attaching.name) {\n        case \"dxFilterBuilder\": {\n          this.checkFilterBuilderFieldOperators(attaching.options.fields);\n          this.checkFilterBuilderAnyOfSupported(attaching.options);\n          break;\n        }\n      }\n    });\n  }\n\n  checkFilterBuilderFieldOperators(fields: DevExpress.ui.dxFilterBuilderField[]) {\n    if (!fields) {\n      return;\n    }\n\n    for (const field of fields) {\n      if (field.filterOperations && field.filterOperations.length > 0) {\n        continue;\n      }\n\n      if (!field.dataType) {\n        continue;\n      }\n\n      switch (field.dataType) {\n        case \"string\": {\n          field.filterOperations = [\"=\", \"<>\", \"contains\", \"notcontains\", \"isblank\", \"isnotblank\"];\n          break;\n        }\n        case \"number\": {\n          field.filterOperations = field.lookup\n            ? [\"=\", \"<>\", \"isblank\", \"isnotblank\"]\n            : [\"=\", \"<>\", \"isblank\", \"isnotblank\", \">\", \">=\", \"<\", \"<=\", \"between\"];\n          break;\n        }\n        case \"date\":\n        case \"datetime\": {\n          field.filterOperations = [\"=\", \"<>\", \"isblank\", \"isnotblank\", \">\", \">=\", \"<\", \"<=\", \"between\"];\n          break;\n        }\n        case \"boolean\": {\n          field.filterOperations = [\"=\"];\n        }\n      }\n\n      if (field.lookup && field.filterOperations) {\n        field.filterOperations.push(\"anyof\", \"noneof\");\n      }\n    }\n  }\n  private checkFilterBuilderAnyOfSupported(options: DevExpress.ui.dxFilterBuilderOptions) {\n    if (!options.customOperations) {\n      options.customOperations = [];\n    }\n\n    const displayInfo = {};\n\n    const customizeText = (info) => {\n      const value: any = info.value;\n      if (displayInfo[value]) {\n        return displayInfo[value];\n      }\n\n      return info.valueText;\n    };\n    const editorTemplate = (conditionInfo) => {\n      const options: DevExpress.ui.dxTagBoxOptions = {\n        value: <any>conditionInfo.value,\n        onSelectionChanged: (e) => {\n          const keyExpr = <string>conditionInfo.field.lookup.valueExpr;\n          const displayExpr = <string>conditionInfo.field.lookup.displayExpr;\n\n          for (const item of e.addedItems) {\n            const key = this._objectService.getValue(item, keyExpr);\n            if (displayInfo[key]) {\n              continue;\n            }\n\n            displayInfo[key] = this._objectService.getValue(item, displayExpr);\n          }\n        },\n        onValueChanged: (e) => {\n          conditionInfo.setValue(e.value && e.value.length ? e.value : null);\n        },\n        valueExpr: conditionInfo.field.lookup.valueExpr,\n        displayExpr: conditionInfo.field.lookup.displayExpr,\n        dataSource: conditionInfo.field.lookup.dataSource,\n        width: \"100%\"\n      };\n\n      const div = document.createElement(\"div\");\n      DxLoader.createInstance(\"dxTagBox\", div, options);\n      return div;\n    };\n\n    options.customOperations.push({\n      name: \"anyof\",\n      caption: \"einer aus\",\n      customizeText,\n      editorTemplate\n    });\n\n    options.customOperations.push({\n      name: \"noneof\",\n      caption: \"keiner aus\",\n      customizeText,\n      editorTemplate\n    });\n  }\n\n  addTelefon(options: DevExpress.ui.dxTextBoxOptions) {\n    let onInitialized = options.onInitialized;\n\n    options.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n        onInitialized = null;\n      }\n\n      e.component.on(\"valueChanged\", (e) => this.updateTelefonButton(e.component));\n      this.updateTelefonButton(e.component);\n    };\n  }\n  private updateTelefonButton(editor: DevExpress.ui.dxTextBox) {\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n    const telefon: string = editor.option(\"value\");\n\n    if (telefon) {\n      buttons.push({\n        location: \"after\",\n        name: \"telefon\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-phone\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            location.href = `tel:${telefon.replace(/[^\\+0-9.]/g, \"\")}`;\n          }\n        }\n      });\n    }\n\n    this.updateEditorButtons(editor, buttons);\n  }\n\n  addHomepage(options: DevExpress.ui.dxTextBoxOptions) {\n    let onInitialized = options.onInitialized;\n\n    options.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n        onInitialized = null;\n      }\n\n      e.component.on(\"valueChanged\", (e) => this.updateHomepageButton(e.component));\n      this.updateTelefonButton(e.component);\n    };\n  }\n  private updateHomepageButton(editor: DevExpress.ui.dxTextBox) {\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n    let homepage = editor.option(\"value\");\n\n    if (homepage) {\n      buttons.push({\n        location: \"after\",\n        name: \"telefon\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-home\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            if (!homepage.match(/^https?:\\/\\//i)) {\n              homepage = `http://${homepage}`;\n            }\n\n            window.open(`${homepage}`, \"_blank\");\n          }\n        }\n      });\n    }\n\n    this.updateEditorButtons(editor, buttons);\n  }\n\n  addBrief(options: DevExpress.ui.dxTextBoxOptions, callback: { (): void; }) {\n    let onInitialized = options.onInitialized;\n\n    options.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n        onInitialized = null;\n      }\n\n      e.component.on(\"valueChanged\", (e) => this.updateBriefButton(e.component, callback));\n      this.updateBriefButton(e.component, callback);\n    };\n  }\n  private updateBriefButton(editor: DevExpress.ui.dxTextBox, callback: { (): void; }) {\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n    const email = editor.option(\"value\");\n\n    if (email) {\n      buttons.push({\n        location: \"after\",\n        name: \"brief\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-envelope-open-o\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            callback();\n          }\n        }\n      });\n    }\n\n    this.updateEditorButtons(editor, buttons);\n  }\n\n  addUid(options: DevExpress.ui.dxTextBoxOptions) {\n    let onInitialized = options.onInitialized;\n\n    options.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n        onInitialized = null;\n      }\n\n      e.component.on(\"valueChanged\", (e) => this.updateUidButton(e.component, !!e.event));\n      this.updateUidButton(e.component);\n    };\n  }\n  reloadUid(editor: DevExpress.ui.dxTextBox) {\n    this.updateUidButton(editor);\n  }\n  private async updateUidButton(editor: DevExpress.ui.dxTextBox, byUser: boolean = false) {\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (byUser) {\n      this.updateEditorButtons(editor, [{\n        location: \"after\",\n        name: \"uid\",\n        options: {\n          icon: \"fa fa-spinner\",\n          stylingMode: \"text\",\n          hint: \"wird überprüft\",\n          tabIndex: -1,\n          disabled: true\n        }\n      }]);\n    }\n\n    const uidNummer = editor.option(\"value\");\n\n    if (uidNummer) {\n      const r = await this.validateUidNummer(uidNummer);\n\n      if (r.Exists == true) {\n        buttons.push({\n          location: \"after\",\n          name: \"uid\",\n          options: {\n            disabled: false,\n            icon: \"fa fa-\" + (r.IsGueltig ? \"check\" : \"exclamation\"),\n            type: r.IsGueltig ? \"success\" : \"danger\",\n            stylingMode: \"contained\",\n            hint: r.Text,\n            tabIndex: -1,\n            onClick: async (e) => {\n              const v = await this.validateUidNummer(uidNummer, true, true);\n              e.component.option(\"icon\", \"fa fa-\" + (v.IsGueltig ? \"check\" : \"exclamation\"));\n              e.component.option(\"type\", v.IsGueltig ? \"success\" : \"danger\");\n\n              DevExpress.ui.notify(\n                v.Text,\n                v.IsGueltig ? \"success\" : \"error\",\n                this.NOTIFY_TIMEOUT\n              );\n            }\n          }\n        });\n      } else {\n        buttons.push({\n          location: \"after\",\n          name: \"uid\",\n          options: {\n            disabled: false,\n            icon: \"fa fa-question\",\n            stylingMode: \"contained\",\n            hint: r.Text,\n            tabIndex: -1\n          }\n        });\n      }\n    }\n    this.updateEditorButtons(editor, buttons);\n  }\n\n  updateEditorButtons(editor: DevExpress.ui.Editor, buttons: DevExpress.ui.dxTextEditorButton[]) {\n    editor.option(\"buttons\", buttons);\n  }\n\n  private async validateUidNummer(uidNummer: string, neuValidieren: boolean = false, showLoading: boolean = false) {\n    return await this._webEventService.execute(new OnUIDValidierenEvent({\n      UIDNummer: uidNummer,\n      NeuValidieren: neuValidieren,\n      IsGueltig: false,\n      Exists: false\n    }), showLoading);\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  SearchResult\n} from \"../elements/search-result/search-result\";\nimport {\n  ISearchOptions\n} from \"../interfaces/export\";\n\n@autoinject\nexport class SearchResultSearchService{\n  constructor(){}\n\n  searchResult: SearchResult\n\n   show(callbackSuccess: { (urlToNavigate: string, customOptions?: any): void }, callbackCancel: { (): void }, options?: ISearchOptions) {\n    this.searchResult.showSearchPopup(callbackSuccess, callbackCancel, options)\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { DynFelderService, IDynamischesFeld } from \"./dyn-felder-service\";\nimport { FormBase, ModelUtilsService, IHtmlEditorOptions, ICommandData, ValidationService } from \"../../framework/forms/export\";\nimport { IDynFelderDataServiceOptions } from \"../interfaces/export\";\nimport { DynFeldTyp } from \"../enumerations/export\";\nimport { GlobalizationService, DataSourceService, CustomEvent } from \"../../framework/base/export\";\nimport { EntitaetInfoService } from \"./entitaet-info-service\";\nimport { IDynFelderDataReloadRequestedEventArgs } from \"../event-args/dyn-felder-data-reload-requested\";\nimport { ScopeContainer } from '../../framework/base/classes/scope-container';\nimport { DxCustomizeService } from './dx-customize-service';\nimport { DynFeldContainer } from '../elements/dyn-feld-container/dyn-feld-container';\n\n@autoinject\n@transient()\nexport class DynFelderDataService {\n  private _form: FormBase;\n  private _options: IDynFelderDataServiceOptions;\n\n  constructor(\n    private _dynFelderService: DynFelderService,\n    private _globalizationService: GlobalizationService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _dataSourceService: DataSourceService,\n    private _modelUtilsService: ModelUtilsService,\n    private _dxCustomizeService: DxCustomizeService,\n    private _validationService: ValidationService,\n    public onDynFelderDataReloadRequested: CustomEvent<IDynFelderDataReloadRequestedEventArgs>\n  ) { }\n\n  dynFeldList: IDynamischesFeld[];\n  mainModel: any;\n\n  register(form: FormBase, options: IDynFelderDataServiceOptions) {\n    this._form = form;\n    this._options = options;\n\n    form.models.onLoaded.register(async r => {\n      if (r.model.id == options.idMainModel && r.data) {\n        await this.loadDynFeldList();\n        if (!await this.loadDynFeldContainer()) {\n          return;\n        }\n\n        this.mainModel = r.data;\n\n        if (!r.data[r.model.keyProperty]) {\n          this.loadVorbelegungen();\n        }\n      }\n    });\n\n    form.onEditorValueChanged.register(r => {\n      if (r.binding && r.binding.dataContext == this._options.idMainModel) {\n        const bindTo = r.binding.bindTo;\n\n        if (bindTo == this._options.idArtPropertyName) {\n          this.loadVorbelegungen();\n        }\n      }\n\n      return Promise.resolve();\n    });\n  }\n\n  async getDynFeldAnzeigeList(anzeigeort: string, isDefault: boolean): Promise<IDynamischesFeldAnzeige[]> {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return [];\n    }\n\n    const container = this._form.models.data[this._options.idMainModel][\"DynamischesFeldContainer\"];\n    if (!container) {\n      return [];\n    }\n\n    const elemente = {};\n    container.DynamischesFeldEintraege.forEach(dynFeldEintrag => {\n      elemente[dynFeldEintrag.IdDynamischesFeld] = dynFeldEintrag;\n    });\n\n    return this.getFilteredDynFeldList()\n      .filter(feld => {\n        return feld.DynamischesFeldZuEntitaeten[0].Anzeigeort == void 0 || feld.DynamischesFeldZuEntitaeten[0].Anzeigeort == \"\"\n          ? isDefault === true\n          : feld.DynamischesFeldZuEntitaeten[0].Anzeigeort === anzeigeort;\n      })\n      .map(feld => this.getDynFeldAnzeige(feld, container, elemente));\n  }\n  getDynFeldAnzeige(feld: IDynamischesFeld, container?: any, elemente?: any): IDynamischesFeldAnzeige {\n    const editorType = this.getWidgetType(feld);\n    const isHtmlEditor = /^htmlEditor$/.test(editorType);\n    const isDxEditor = /^dx.*$/.test(editorType);\n    const feldAnzeige: IDynamischesFeldAnzeige = {\n      colClass: (feld.BreiteMD ? `col-md-${feld.BreiteMD}` : \"\")\n        .concat(\" \")\n        .concat(feld.BreiteLG ? `col-lg-${feld.BreiteLG}` : \"\"),\n      data: feld,\n      editorType: editorType,\n      name: null,\n      options: null,\n      useDxWidget: isDxEditor,\n      useHtmlEditor: isHtmlEditor,\n      isReadOnly: this.isReadOnly(feld),\n      eintrag: null\n    }\n\n    if (isDxEditor) {\n      feldAnzeige.name = editorType;\n    }\n\n    const addBinding = !!container\n      && !!elemente;\n\n    feldAnzeige.options = this.getWidgetOptions(feld, feldAnzeige, addBinding);\n\n    if (addBinding) {\n      feldAnzeige.eintrag = elemente[feld.Id];\n      if (!feldAnzeige.eintrag) {\n        feldAnzeige.eintrag = {\n          IdDynamischesFeld: feld.Id\n        };\n\n        if (container.Id) {\n          feldAnzeige.eintrag.IdDynamischesFeldContainer = container.Id;\n        }\n\n        if (editorType == \"dxCheckBox\") {\n          feldAnzeige.eintrag.WertNummer = 0;\n        }\n\n        container.DynamischesFeldEintraege.push(feldAnzeige.eintrag);\n      }\n    }\n\n    return feldAnzeige;\n  }\n  getDataSource(auswahllisteDatenquelle: string, idDynFeld: number, scopeContainer: ScopeContainer = null, returnStore?: boolean): any {\n    scopeContainer = scopeContainer || this._form.scopeContainer;\n\n    const action = (returnStore\n      ? this._dataSourceService.createDataStore\n      : this._dataSourceService.createDataSource).bind(this._dataSourceService);\n\n    const filters = idDynFeld\n      ? [{ webApiCustomKey: \"idDynFeld\", webApiCustomValue: idDynFeld }]\n      : null;\n\n    if (auswahllisteDatenquelle.startsWith(\"AEMDT\")) {\n      const tokens = auswahllisteDatenquelle.split(\";\");\n      const entitaetInfo = this._entitaetInfoService.getEntitaetInfoByTypeName(tokens[1]);\n      const hasVolltext = entitaetInfo.HasVolltext;\n\n      return action(scopeContainer, {\n        webApiAction: entitaetInfo.WebApiUrl,\n        webApiColumns: [\"Id\", \"DisplayText\"],\n        webApiOrderBy: entitaetInfo.WebApiOrderBy,\n        webApiSearchtextEnabled: hasVolltext,\n        filters: filters,\n        keyProperty: \"Id\"\n      });\n    } else if (auswahllisteDatenquelle.startsWith(\"ADE\")) {\n      return action(scopeContainer, {\n        webApiAction: \"ERP/DynamischesFeld/DynamischeEntitaetElement\",\n        webApiColumns: [\"Id\", \"DisplayText\"],\n        webApiOrderBy: [{ columnName: \"SortNr\", sortOrder: 0 }, { columnName: \"DisplayText\", sortOrder: 0 }],\n        webApiWhere: [\"IdDynamischeEntitaet\", parseInt(auswahllisteDatenquelle.substring(4))],\n        filters: filters,\n        keyProperty: \"Id\"\n      });\n    } else {\n      throw new Error(`${auswahllisteDatenquelle} not supported`);\n    }\n  }\n\n  async loadDynFeldList() {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return;\n    }\n\n    this.dynFeldList = await this._dynFelderService.loadDynFelder(data.TypeName);\n  }\n  async loadDynFeldContainer() {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return false;\n    }\n\n    const id = this.getIdDynFeldContainer();\n    let container;\n\n    if (id) {\n      container = await this._dynFelderService.loadDynFelderContainer(id);\n    } else {\n      container = {};\n    }\n\n    if (id != this.getIdDynFeldContainer()) {\n      return false;\n    }\n\n    if (!container.DynamischesFeldEintraege) {\n      container.DynamischesFeldEintraege = [];\n    }\n\n    data[\"DynamischesFeldContainer\"] = container;\n    this.onDynFelderDataReloadRequested.fire({});\n\n    return true;\n  }\n  async loadVorbelegungen() {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return;\n    }\n\n    const container = this._form.models.data[this._options.idMainModel][\"DynamischesFeldContainer\"];\n    if (!container) {\n      return;\n    }\n\n    const elemente = {};\n    container.DynamischesFeldEintraege.forEach(dynFeldEintrag => {\n      elemente[dynFeldEintrag.IdDynamischesFeld] = dynFeldEintrag;\n    });\n\n    const vorbelegung = await this._dynFelderService.loadVorbelegungDynFelder({\n      TypeName: data.TypeName,\n      IdArt: this._options.idArtPropertyName ? data[this._options.idArtPropertyName] : null,\n      IdVorgEntitaet: this._options.idVorgEntitaetPropertyName ? data[this._options.idVorgEntitaetPropertyName] : null,\n      ItemList: this.getFilteredDynFeldList().map((feld) => {\n        return {\n          IdDynamischesFeld: feld.DynamischesFeldZuEntitaeten[0].IdDynamischesFeld\n        };\n      })\n    });\n\n    vorbelegung.ItemList.forEach(i => {\n      let item = elemente[i.IdDynamischesFeld];\n\n      if (!item) {\n        item = {\n          IdDynamischesFeld: i.IdDynamischesFeld\n        };\n\n        container.DynamischesFeldEintraege.push(item);\n      } else {\n        const hasValue = i.VorbIdWertAuswahlliste != void (0)\n          || i.VorbWertText != void (0)\n          || i.VorbWertDatum != void (0)\n          || i.VorbWertNummer != void (0);\n\n        if (!hasValue) {\n          return;\n        }\n      }\n\n      item.IdWertAuswahlliste = i.VorbIdWertAuswahlliste;\n      item.WertText = i.VorbWertText;\n      item.WertDatum = i.VorbWertDatum;\n      item.WertNummer = i.VorbWertNummer;\n    });\n\n    this.onDynFelderDataReloadRequested.fire({});\n  }\n\n  private getFilteredDynFeldList(): IDynamischesFeld[] {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return [];\n    }\n    const idArt = this._options.idArtPropertyName ? data[this._options.idArtPropertyName] : \"null\";\n\n    return this.dynFeldList.filter(feld => {\n      return feld.DynamischesFeldZuEntitaeten.some(zu => {\n        return !zu.IdArt || zu.IdArt == idArt;\n      });\n    });\n  }\n  private getIdDynFeldContainer(): number {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return null;\n    }\n\n    return data[\"IdDynamischesFeldContainer\"];\n  }\n  private getWidgetType(feld: IDynamischesFeld): string {\n    switch (feld.Typ) {\n      case DynFeldTyp.text:\n        return \"dxTextBox\";\n      case DynFeldTyp.mehrzeiligerText:\n        return \"dxTextArea\";\n      case DynFeldTyp.datum:\n        return \"dxDateBox\";\n      case DynFeldTyp.nummer:\n        return \"dxNumberBox\";\n      case DynFeldTyp.checkbox:\n        return \"dxCheckBox\";\n      case DynFeldTyp.auswahlliste:\n        return \"dxSelectBox\";\n      case DynFeldTyp.formatiertenText:\n        return \"htmlEditor\"\n      default:\n        return \"dxTextBox\";\n    }\n  }\n  private getWidgetOptions(feld: IDynamischesFeld, feldAnzeige: IDynamischesFeldAnzeige, addBinding: boolean) {\n    let options;\n\n    switch (feld.Typ) {\n      case DynFeldTyp.text: {\n        options = <DevExpress.ui.dxTextBoxOptions>{\n          bindingOptions: {\n            value: \"feld.eintrag.WertText\"\n          }\n        };\n\n        if (feld.LogikTyp == 20) {\n          this._dxCustomizeService.addTelefon(options);\n        } else if (feld.LogikTyp == 21) {\n          this._dxCustomizeService.addHomepage(options);\n        } else if (feld.LogikTyp == 22) {\n          options[\"validators\"] = [this._validationService.getValidator(\n            null,\n            \"email\",\n            \"erp.email\",\n            null,\n          )];\n        } else if (feld.LogikTyp == 24) {\n          options[\"validators\"] = [this._validationService.getValidator(\n            null,\n            \"duration\",\n            \"erp.duration\",\n            [{ name: \"durationPeriodType\", value: 2 }],\n          )];\n        }\n        break;\n      }\n      case DynFeldTyp.mehrzeiligerText: {\n        options = <DevExpress.ui.dxTextAreaOptions>{\n          height: feld.Hoehe || \"120px\",\n          bindingOptions: {\n            value: \"feld.eintrag.WertText\"\n          }\n        };\n        break;\n      }\n      case DynFeldTyp.datum: {\n        options = <DevExpress.ui.dxDateBoxOptions>{\n          displayFormat: this._globalizationService.getFormatterParser(feld.Format || \"d\"),\n          bindingOptions: {\n            value: \"feld.eintrag.WertDatum\"\n          }\n        };\n        break;\n      }\n      case DynFeldTyp.nummer: {\n        options = <DevExpress.ui.dxNumberBoxOptions>{\n          format: this._globalizationService.getNumberFormat(feld.Format || \"f0\"),\n          showClearButton: true,\n          bindingOptions: {\n            value: \"feld.eintrag.WertNummer\"\n          }\n        };\n        break;\n      }\n      case DynFeldTyp.auswahlliste: {\n        options = <DevExpress.ui.dxSelectBoxOptions>{\n          valueExpr: \"Id\",\n          displayExpr: \"DisplayText\",\n          showClearButton: true,\n          searchEnabled: true,\n          dataSource: this.getDataSource(feld.AuswahllisteDatenquelle, feld.Id),\n          bindingOptions: {\n            value: \"feld.eintrag.IdWertAuswahlliste\"\n          }\n        }\n        break;\n      }\n      case DynFeldTyp.checkbox: {\n        options = <DevExpress.ui.dxCheckBoxOptions>{\n          bindingOptions: {\n            value: \"feld.eintrag.WertNummer\"\n          }\n        };\n        break;\n      }\n      case DynFeldTyp.formatiertenText: {\n        options = <IHtmlEditorOptions>{\n          height: feld.Hoehe || \"150px\",\n          showToolbar: true,\n          isReadOnly: feldAnzeige.isReadOnly\n        };\n\n        if (feld.HasWertVorlagen) {\n          options.commandData = <ICommandData[]>[{\n            id: \"vorlage\",\n            icon: \"file-text-o\",\n            execute: (e) => {\n              const htmlEditor = e.details ? e.details.htmlEditor : null;\n              if (!htmlEditor) {\n                return;\n              }\n\n              this._dynFelderService.showWertVorlageAuswahlPopup(feld.Id, htmlEditor);\n            }\n          }];\n        }\n        break;\n      }\n      default: {\n        throw new Error(`${feld.Typ} not implementiert`);\n      }\n    }\n\n    const data = this._form.models.data[this._options.idMainModel];\n    const idArt = this._options.idArtPropertyName ? data[this._options.idArtPropertyName] : \"null\";\n\n    var dynFeldZuEntitaet = feld.DynamischesFeldZuEntitaeten.filter(zu => {\n        return !zu.IdArt || zu.IdArt == idArt;\n      })[0] || null;\n\n    if (dynFeldZuEntitaet != null && dynFeldZuEntitaet.IsPflicht) {\n      options[\"validators\"] = options[\"validators\"] || [];\n      options[\"validators\"].push({ type: \"required\" });\n    }\n\n    if (addBinding) {\n      options.readOnly = data && data.CanSave != undefined ? !data.CanSave : false;\n      options.onValueChangedByUser = this.onValueChangedByUser.bind(this);\n\n      if (feldAnzeige.isReadOnly) {\n        options.readOnly = true;\n      }\n      if (this.canWertAendernReadOnly(feld)) {\n        const onOptionChanged = (<DevExpress.ui.EditorOptions>options).onOptionChanged;\n        options.onOptionChanged = (e) => {\n          if (onOptionChanged) {\n            onOptionChanged(e);\n          }\n\n          if (e.name == \"readOnly\") {\n            this.updateCanWertAendernButtons(feld, feldAnzeige, e.component, options);\n          }\n        }\n\n        let onInitialized = (<DevExpress.ui.EditorOptions>options).onInitialized;\n        options.onInitialized = (e) => {\n          if (onInitialized) {\n            onInitialized(e);\n            onInitialized = null;\n          }\n\n          this.updateCanWertAendernButtons(feld, feldAnzeige, e.component, options);\n        }\n      }\n    } else {\n      delete options.bindingOptions;\n    }\n\n    return options;\n  }\n\n  private isReadOnly(feld: IDynamischesFeld): boolean {\n    return !!feld.DynamischesFeldZuEntitaeten\n      && feld.DynamischesFeldZuEntitaeten.length > 0\n      && feld.DynamischesFeldZuEntitaeten[0].IsReadOnly == true;\n  }\n  private canWertAendernReadOnly(feld: IDynamischesFeld): boolean {\n    return !!feld.DynamischesFeldZuEntitaeten\n      && feld.DynamischesFeldZuEntitaeten.length > 0\n      && feld.DynamischesFeldZuEntitaeten[0].CanAenderWennDatensatzErledigt == true;\n  }\n  private updateCanWertAendernButtons(feld: IDynamischesFeld, feldAnzeige: IDynamischesFeldAnzeige, editor: DevExpress.ui.Editor, options: DevExpress.ui.EditorOptions) {\n    const isReadOnly = editor.option(\"readOnly\");\n    const buttons: DevExpress.ui.dxTextEditorButton[] = editor.option(\"buttons\") || [];\n    const indexOf = buttons.findIndex(b => b.name == \"updateValue\");\n\n    const dynFeldContainer: DynFeldContainer = options[\"DynFeldContainer\"];\n    if (!dynFeldContainer) {\n      return;\n    }\n\n    if (isReadOnly) {\n      if (indexOf < 0) {\n        buttons.push({\n          name: \"updateValue\",\n          location: \"after\",\n          options: {\n            icon: \"fa fa-pencil\",\n            disabled: false,\n            stylingMode: \"text\",\n            onClick: (e) => {\n              dynFeldContainer.showWertAendern(feld, feldAnzeige);\n            }\n          }\n        });\n        editor.option(\"buttons\", buttons);\n      }\n    } else {\n      if (indexOf >= 0) {\n        buttons.splice(indexOf, 1);\n        editor.option(\"buttons\", buttons);\n      }\n    }\n  }\n\n  private onValueChangedByUser(e) {\n    const data = this._form.models.data[this._options.idMainModel];\n    if (!data) {\n      return;\n    }\n\n    if (this._modelUtilsService.isDirty(data)) {\n      return;\n    }\n\n    this._modelUtilsService.setDirty(data)\n  }\n}\n\nexport interface IDynamischesFeldAnzeige {\n  colClass: string;\n  data: IDynamischesFeld;\n  editorType: string;\n  name: string;\n  options: any;\n  useDxWidget: boolean;\n  useHtmlEditor: boolean;\n  isReadOnly: boolean;\n  eintrag: IDynamischesFeldEintrag;\n}\nexport interface IDynamischesFeldEintrag {\n  IdDynamischesFeldContainer?: number;\n  IdDynamischesFeld: number;\n  WertText?: string;\n  WertNummer?: number;\n  WertDatum?: Date;\n  IdWertAuswahlliste?: number;\n}\n","import {\n  Disposable,\n  Scope\n} from \"aurelia-framework\";\n\nexport class ScopeContainer {\n  private _disposables: Disposable[];\n\n  constructor(\n    public scope: Scope,\n    private parentScopeContainer?: ScopeContainer\n  ) {\n    if (parentScopeContainer) {\n      this._disposables = parentScopeContainer._disposables;\n    } else {\n      this._disposables = [];\n    }\n  }\n\n  addDisposable(disposable: Disposable) {\n    this._disposables.push(disposable);\n  }\n  disposeAll(disposeScope: boolean = true) {\n    if (this.parentScopeContainer) {\n      this._disposables = [];\n    } else {\n      this._disposables.forEach(c => {\n        c.dispose();\n      })\n      this._disposables.length = 0;\n    }\n\n    if (disposeScope && this.scope) {\n      for (let key in this.scope) {\n        delete this.scope[key];\n      }\n    }\n\n    this.scope = null;\n    this.parentScopeContainer = null;\n  }\n}","import { autoinject, view } from \"aurelia-framework\";\nimport { ElementService } from \"./element-service\";\nimport { IViewModel } from '../interfaces/view-model';\n\n@autoinject\nexport class PivotService {\n  constructor(\n    private elementService: ElementService\n  ) { }\n\n  createOptions(viewModel: IViewModel, idDataSource: string, options: DevExpress.ui.dxPivotGridOptions) {\n    const result: any = Object.assign({\n    }, options);\n\n    this.elementService.prepareContentReady(result);\n    this.elementService.addOnInitialized(result, (e) => {\n      viewModel.registerDataSourceChanged(idDataSource, (idDataSource, data) => {\n        e.component.option(\"dataSource.store\", new DevExpress.data.ArrayStore({data: data}));\n      }, false);\n\n      const data = viewModel.dataSource[idDataSource] || [];\n      e.component.option(\"dataSource.store\", new DevExpress.data.ArrayStore({data: data}));\n    });\n\n    return result;\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnBestellungListBestaetigt, OnBestellungListBestaetigtEvent, OnBestellungListLieferdatumAendern, OnBestellungListLieferdatumAendernEvent } from \"../../../../framework-data/events\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/classes/form-base\";\nimport { ICommandData } from \"../../../../framework/forms/interfaces/command-data\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent, IdxDateBoxComponent, IdxPopupComponent } from \"../../../interfaces/export\";\nimport { StatusService } from \"../../../services/status-service\";\nimport { LocalizationService } from \"./../../../../framework/base/services/localization-service\";\nimport { WebEventService } from \"./../../../../framework/base/services/web-event-service\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class BestellungListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _localizationService: LocalizationService,\n    private _statusService: StatusService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_BestellungListUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_BestellungListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Bestellung, keys);\n    }\n  };\n\n  bestaetigenSetzenCommand: ICommandData = {\n    id: \"bestaetigenSetzen\",\n    idCategory: \"bestellung\",\n    title: \"bestellung.bestaetigen\",\n    icon: \"star-o\",\n    sortIndex: 10,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const bestellungGridData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (bestellungGridData.length == 0) {\n        return;\n      }\n\n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"bestellung.sure_bestaetigen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasBestaetigteEintraege = bestellungGridData\n        .some((c) => c.IsBestaetigt);\n\n      if (hasBestaetigteEintraege) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"bestellung.hinweis_bestaetigt\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return;\n        }\n      }\n\n      const idBestellungList = bestellungGridData.map((c) => c.Id);\n\n      const args: OnBestellungListBestaetigt = {\n        IdBestellungList: idBestellungList,\n        IsBestaetigt: true\n      };\n\n      const webEventResult: OnBestellungListBestaetigt = await this._webEventService.execute(new OnBestellungListBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n\n  bestaetigenEntfernenCommand: ICommandData = {\n    id: \"bestaetigenEntfernen\",\n    idCategory: \"bestellung\",\n    title: \"bestellung.nicht_bestaetigen\",\n    icon: \"star\",\n    sortIndex: 10,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const bestellungGridData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (bestellungGridData.length == 0) {\n        return;\n      }\n\n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"bestellung.sure_nicht_bestaetigen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasBestaetigteEintraege = bestellungGridData\n        .some((c) => !c.IsBestaetigt);\n\n      if (hasBestaetigteEintraege) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"bestellung.hinweis_nicht_bestaetigt\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return;\n        }\n      }\n\n      const idBestellungList = bestellungGridData.map((c) => c.Id);\n\n      const args: OnBestellungListBestaetigt = {\n        IdBestellungList: idBestellungList,\n        IsBestaetigt: false\n      };\n\n      const webEventResult: OnBestellungListBestaetigt = await this._webEventService.execute(new OnBestellungListBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n\n  lieferdatumAendernCommand: ICommandData = {\n    id: \"lieferdatumAendern\",\n    idCategory: \"bestellung\",\n    title: \"bestellung.lieferdatum_aendern\",\n    icon: \"calculator\",\n    sortIndex: 10,\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_bestellungLieferdatumAendernPopup\"];\n\n      popup.instance.show();\n\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n      dateBox.setOption({\n        value: null\n      });\n\n      return this.form.models.reloadAll();\n    }\n  };\n\n  doLieferdatumAendernCommand: ICommandData = {\n    id: \"doLieferdatumAendern\",\n    title: \"bestellung.lieferdatum_aendern\",\n    icon: \"save\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_bestellungLieferdatumAendernPopup\"];\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datum\"];\n\n      const datum = dateBox.instance.option(\"value\");\n      if (!datum) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"bestellung.datum_auswaehlen\"), \"error\", this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const idBestellungList = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      const args: OnBestellungListLieferdatumAendern = {\n        IdBestellungList: idBestellungList,\n        Lieferdatum: datum\n      };\n\n      const webEventResult: OnBestellungListLieferdatumAendern = await this._webEventService.execute(new OnBestellungListLieferdatumAendernEvent(args), true);\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Bestellung);\n      return Promise.resolve();\n    });\n  }\n\n  onLieferdatumCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.Lieferdatum || !e.data._LieferdatumTyp) {\n      return;\n    }\n\n    if (e.data.IdStatus) {\n      if (!this._statusService.isOffen(e.data.IdStatus)) {\n        return;\n      }\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = this.getLieferdatumTypFarbe(e.data._LieferdatumTyp);\n    cell.style.color = \"white\";\n  }\n\n  private getLieferdatumTypFarbe(typ): string {\n    switch (typ) {\n      case 1: {\n        return \"#C0392B\";\n      }\n      case 2: {\n        return \"#F39C12\";\n      }\n      default: {\n        return \"\";\n      }\n    }\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class ObjectService {\n  constructor() {}\n\n  mergeDeep(target, ...sources) {\n    if (!sources.length) {\n      return target\n    }\n\n    const source = sources.shift();\n    if (this.isObject(target) && this.isObject(source)) {\n      for (const key in source) {\n        if (this.isObject(source[key])) {\n          if (!target[key]) {\n            Object.assign(target, { [key]: {} });\n          }\n\n          this.mergeDeep(target[key], source[key]);\n        } else {\n          Object.assign(target, { [key]: source[key] });\n        }\n      }\n    }\n  \n    return this.mergeDeep(target, ...sources);\n  }\n  isObject(item) {\n    return (item \n      && typeof item === \"object\"\n      && !Array.isArray(item));\n  }\n\n  getValue(obj: any, propertyName: string): any {\n    const tokens = propertyName.split(\".\");\n\n    for (let i = 0; i < tokens.length; i++) {\n      const token = tokens[i];\n\n      if (i + 1 === tokens.length) {\n        return obj[token];\n      } \n\n      obj = obj[token];\n      if (!obj) {\n        return;\n      }\n    }\n\n    return null;\n  }\n  setValue(obj: any, propertyName: string, value: any, createObjectIfMissing: boolean = false) {\n    const tokens = propertyName.split(\".\");\n\n    for (let i = 0; i < tokens.length; i++) {\n      const token = tokens[i];\n\n      if (i + 1 === tokens.length) {\n        obj[token] = value;\n      } else {\n        let newObj = obj[token];\n\n        if (newObj == void(0)) {\n          if (createObjectIfMissing) {\n            newObj = {};\n            obj[token] = newObj;\n          } else {\n            return;\n          }\n        }\n\n        obj = newObj;\n      }\n    }\n  }\n}\n","export enum TicketKategorie{\n  Dashboard = 0,\n  Stammdaten = 1,\n  Einkauf = 2,\n  Verkauf = 3,\n  Produktion = 4,\n  Lager = 5,\n  Statistik = 6,\n  Konfiguration = 7,\n  Andere = 8\n}\n","export default __webpack_public_path__ + \"451d85dd212042e0e6e0f48f01b5dceb.jpg\";","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { FirmaService } from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class GutscheinEditUtils {\n  constructor(\n    private _firmaService: FirmaService,) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n\n  async onFirmaChanged() {\n    const idWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Gutschein.IdFirma);\n\n    if (idWaehrung != null) {\n      this.form.models.data.$m_Gutschein.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Gutschein.IdFirma);\n    }\n  }\n}\n","import { IFormCommandExecuteOptions } from './../interfaces/form-command-options';\nimport {\n  autoinject,\n  Disposable\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\nimport {\n  NotificationTyp\n} from \"../enumerations/export\";\nimport {\n  StatusFormCommand\n} from './../elements/status-form-command/status-form-command';\n\n@autoinject\nexport class StatusService {\n  private _statusInfo = {};\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private rest: RestService\n  ) {\n    this.initializeSubscribers();\n  }\n\n  onCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.IdStatus) {\n      return;\n    }\n\n    const info = this._statusInfo[e.data.IdStatus];\n    if (!info || !info.Farbe) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = info.Farbe;\n    cell.style.color = \"white\";\n  }\n  onValueChanged(e): void {\n    const value = e.value;\n    const element: Element = e.element;\n\n    const info = this._statusInfo[value];\n    const input = <HTMLInputElement>element.querySelector(\".dx-texteditor-container input\");\n\n    if (input) {\n      if (info && info.Farbe) {\n        input.style.backgroundColor = info.Farbe;\n        input.style.color = \"white\";\n      } else {\n        input.style.backgroundColor = \"\";\n        input.style.color = \"\";\n      }\n    }\n  }\n\n  reload(): Promise<any> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Stammdaten/Status\")\n    }).then((r: any[]) => {\n      this._statusInfo = {};\n\n      if (!r) {\n        return;\n      }\n\n      r.forEach(i => {\n        this._statusInfo[i.Id] = i;\n      });\n    });\n  }\n\n  getStatusByTyp(typ: number): any {\n    let statusResult = null;\n    for (let status in this._statusInfo) {\n      if (this._statusInfo[status].Typ == typ) {\n        statusResult = this._statusInfo[status];\n        break;\n      }\n    }\n\n    return statusResult;\n  }\n\n  isOffen(idStatus: number): boolean {\n    const info = this._statusInfo[idStatus];\n    if (!info || info.Typ == 1) {\n      return false;\n    }\n\n    return true;\n  }\n  isErledigt(idStatus: number): boolean {\n    const info = this._statusInfo[idStatus];\n    if (!info || info.Typ != 1) {\n      return false;\n    }\n\n    return true;\n  }\n\n  private initializeSubscribers() {\n    this.eventAggregator\n      .subscribe(\n        NotificationTyp.statusChanged,\n        this.reload.bind(this)\n      );\n  }\n}\n","import {\n  autoinject,\n  TemplatingEngine\n} from \"aurelia-framework\";\nimport {\n  RestService, TemplatingExService, GlobalizationService, ScopeContainer, JsonService\n} from \"../../framework/base/export\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  NotificationTyp\n} from \"../enumerations/export\";\nimport {\n  FormBase,\n  IModel,\n  SelectItemService,\n  FormEventService\n} from \"../../framework/forms/export\";\nimport {\n  EntitaetInfoService\n} from \"./entitaet-info-service\";\nimport { DynFelderDataService } from './dyn-felder-data-service';\nimport { DxCustomizeService } from './dx-customize-service';\n\n@autoinject\nexport class FilterService {\n  private _filterGruppeList: any[];\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private rest: RestService,\n    private entitaetInfo: EntitaetInfoService,\n    private templatingEngine: TemplatingEngine,\n    private templatingExService: TemplatingExService,\n    private globalizationService: GlobalizationService,\n    private dynFeldDataService: DynFelderDataService,\n    private dxCustomizeService: DxCustomizeService,\n    private selectItemService: SelectItemService,\n    private formEvent: FormEventService,\n    private jsonService: JsonService\n  ) {\n    this.initializeSubscribers();\n\n    eventAggregator.subscribe(\n      \"model:added\",\n      this.checkFilterInjectionModel.bind(this));\n\n    formEvent.onAttached.register(e => {\n      e.form.callOnBind(() => {\n        this.checkFilterInjection(e.form);\n      });\n\n      return Promise.resolve();\n    });\n  }\n\n  getFilterGruppen(webApiAction: string): any[] {\n    if (!this._filterGruppeList) {\n      return [];\n    }\n\n    const entitaet = this.entitaetInfo.getEntitaetInfoByWebApiAction(webApiAction).FullName;\n\n    return this._filterGruppeList.filter(c => {\n      return c.Entitaet === entitaet;\n    });\n  }\n  reload() {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Stammdaten/FilterGruppe\"),\n      getOptions: { expand: { FilterElemente: null } }\n    }).then(r => {\n      this._filterGruppeList = r;\n    });\n  }\n\n  getFilterBuilderFeldList(scopeContainer: ScopeContainer, filterFeldItemList: IFilterFeldItem[]) {\n    const result = filterFeldItemList.map(feld => {\n      const r: DevExpress.ui.dxFilterBuilderField = {\n        caption: feld.Bezeichnung,\n        dataField: feld.Name,\n        format: feld.Format\n          ? this.globalizationService.getFormatterParser(feld.Format)\n          : null,\n        dataType: <any>feld.Datentyp,\n        filterOperations: feld.Operatoren && feld.Operatoren.length > 0\n          ? feld.Operatoren\n          : null\n      };\n\n      if (feld.DynFeldAuswahlliste) {\n        r.lookup = {\n          dataSource: {\n            store: this.dynFeldDataService.getDataSource(feld.DynFeldAuswahlliste, feld.IdDynFeld, scopeContainer, true)\n          },\n          valueExpr: \"Id\",\n          displayExpr: \"DisplayText\"\n        }\n      } else if (feld.IdSelect) {\n        const selectItem = this.selectItemService.getSelectItem(feld.IdSelect);\n        if (selectItem) {\n          const dataSource = this.selectItemService.createSelectDataSource(\n            scopeContainer,\n            selectItem,\n            feld.SelectFilter ? this.jsonService.parse(feld.SelectFilter) : null,\n            null,\n            feld.SelectCustoms ? this.jsonService.parse(feld.SelectCustoms) : null\n          );\n\n          r.lookup = {\n            dataSource: {\n              store: dataSource.store()\n            },\n            valueExpr: selectItem.valueMember,\n            displayExpr: selectItem.displayMember\n          }\n        }\n      }\n\n      return r;\n    });\n\n    this.dxCustomizeService.checkFilterBuilderFieldOperators(result);\n    return result;\n  }\n\n  private checkFilterInjectionModel(args: any) {\n    const form: FormBase = args.form;\n    const model: IModel = args.model;\n\n    if (!model.custom || !model.custom.addFilter) {\n      return;\n    }\n\n    const entitaetInfo = this.entitaetInfo.getEntitaetInfoByWebApiAction(model.webApiAction);\n    if (!entitaetInfo) {\n      return;\n    }\n\n    form[\"_filterModel\"] = model;\n    form.variables.addInfo({\n      id: \"$v_filter\"\n    });\n\n    if (entitaetInfo.HasVolltext) {\n      form.variables.addInfo({\n        id: \"$v_filterSearchtext\"\n      });\n\n      model.searchtext = \"variables.data.$v_filterSearchtext\";\n      model.webApiSearchtextEnabled = true;\n    }\n    if (entitaetInfo.HasFilterManuell) {\n      form.variables.addInfo({\n        id: \"$v_filterManuell\"\n      });\n\n      model.filters.push({\n        if: \"variables.data.$v_filterManuell\",\n        webApiCustomKey: \"filterManuell\",\n        webApiCustomValue: \"variables.data.$v_filterManuell\"\n      });\n    }\n\n    model.filters.push({\n      if: \"variables.data.$v_filter\",\n      webApiCustomKey: \"filter\",\n      webApiCustomValue: \"variables.data.$v_filter\"\n    });\n    \n    model.filters.push({\n      if: \"variables.data.$v_filterInject\",\n      webApiCustomKey: \"filterInject\",\n      webApiCustomValue: \"variables.data.$v_filterInject\"\n    });\n\n    if (!form.viewItemInfo || !form.viewItemInfo.routeInfo || !form.viewItemInfo.routeInfo.customOptions || !form.viewItemInfo.routeInfo.customOptions.filterInject) {\n      let filterDefault = \"\";\n      for (let gruppe of this.getFilterGruppen(model.webApiAction)) {\n        for (let element of gruppe.FilterElemente) {\n          if (!element.IsVorbelegung) {\n            continue;\n          }\n  \n          filterDefault += `|${gruppe.Id}=${element.Id}|`\n          break;\n        }\n      }\n  \n      form.variables.data.$v_filter = filterDefault;\n    }    \n  }\n\n  private checkFilterInjection(form: FormBase) {\n    if (!form[\"_filterModel\"]) {\n      return;\n    }\n\n    const model: IModel = form[\"_filterModel\"];\n\n    const grid = form.element.querySelector(\".t--dx-widget[name='dxDataGrid']\");\n    if(!grid){\n      return;\n    }\n\n    const filterContainer = document.createElement(\"div\");\n    filterContainer.className = \"erp--filter-container\";\n\n    if (!form.isNestedForm) {\n      filterContainer.className += \" erp--filter-container-100\";\n    }\n\n    const filter = document.createElement(\"filter\");\n    filter.setAttribute(\"web-api-action\", model.webApiAction);\n    filter.setAttribute(\"tokens.bind\", \"variables.data.$v_filter\");\n\n    const relativeContainer = document.createElement(\"div\");\n\n    if (model.webApiSearchtextEnabled) {\n      filter.setAttribute(\"searchtext.bind\", \"variables.data.$v_filterSearchtext\");\n      filter.setAttribute(\"has-volltext.bind\", \"true\");\n    }\n    if (model.filters && model.filters.some(filter => filter.webApiCustomKey == \"filterManuell\")) {\n      filter.setAttribute(\"filter-manuell.bind\", \"variables.data.$v_filterManuell\");\n      filter.setAttribute(\"has-filter-manuell.bind\", \"true\");\n    }\n\n    filter.setAttribute(\"filter-inject.bind\", \"variables.data.$v_filterInject\");\n\n    grid.parentElement.appendChild(filterContainer);\n    filterContainer.appendChild(filter);\n    filterContainer.appendChild(relativeContainer);\n    relativeContainer.appendChild(grid);\n\n    const result = this.templatingEngine.enhance({\n      element: filter,\n      bindingContext: form.scope.bindingContext,\n      overrideContext: form.scope.overrideContext\n    });\n\n    const hasSearchtext = form.viewItemInfo \n      && form.viewItemInfo.routeInfo \n      && form.viewItemInfo.routeInfo.customOptions \n      && form.viewItemInfo.routeInfo.customOptions.searchtext;\n\n    if (hasSearchtext) {\n      form.variables.data.$v_filterSearchtext = form.viewItemInfo.routeInfo.customOptions.searchtext;\n    }\n\n    form.onUnbind.register(() => {\n      this.templatingExService.destroyView(result);\n      return Promise.resolve();\n    });\n  }\n\n  private initializeSubscribers() {\n    this.eventAggregator.subscribe(\n      NotificationTyp.filtergruppeChanged,\n      this.reload.bind(this));\n\n    this.eventAggregator.subscribe(\n      NotificationTyp.filterelementChanged,\n      this.reload.bind(this));\n  }\n}\n\ninterface IFilterFeldItem {\n  Name?: string;\n  Bezeichnung?: string;\n  Datentyp?: string;\n  Format?: string;\n  Operatoren?: string[];\n  \n  IdDynFeld?: number;\n  DynFeldAuswahlliste?: string;\n\n  IdSelect?: string;\n  SelectFilter?: string;\n  SelectCustoms?: string;\n}","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  ViewItem\n} from \"../classes/view-item\";\nimport {\n  LocalizationService\n} from \"../../base/services/export\";\nimport * as Interfaces from \"../interfaces/export\";\nimport { FormBase } from '../classes/form-base';\nimport { IHistoryState } from '../export';\nimport { TemplatingExService } from '../../base/services/templating-ex-service';\nimport { INavigationRoute } from '../interfaces/export';\n\n@autoinject\nexport class RouterService {\n  private routes: Interfaces.IRoute[] = [];\n  private fallbackRoute: string;\n  private routeInfoId = 0;\n\n  constructor(\n    private localization: LocalizationService,\n    private eventAggregator: EventAggregator,\n    private templatingExService: TemplatingExService\n  ) {\n    this.registerAppChanging();\n    this.registerShortcuts();\n    this.registerTitleChanged();\n  }\n\n  navigationRoutes: Interfaces.INavigationRoute[];\n  viewStack: ViewItem[] = [];\n  currentViewItem: ViewItem;\n\n  constructUrl(route: Interfaces.IRoute, parameters: any): string {\n    let url = Array.isArray(route.route)\n      ? route.route[0]\n      : route.route;\n\n    for (let parameter in parameters) {\n      url = url.replace(new RegExp(`/:${parameter}`), `/${parameters[parameter]}`)\n    }\n\n    return url;\n  }\n  async canDeactivateCurrentView(): Promise<boolean> {\n    if (!this.currentViewItem || !this.currentViewItem.controller) {\n      return true;\n    }\n\n    const currentViewModel = this.currentViewItem.controller[\"currentViewModel\"];\n    if (currentViewModel && typeof currentViewModel.handleChangedData === \"function\") {\n      const result = await currentViewModel.handleChangedData();\n\n      return result == void (0) || result;\n    } else {\n      return true;\n    }\n  }\n  deactivate() {\n  }\n  existsNavigationRoute(url: string) {\n    return this.navigationRoutes.some(r => {\n      return this.existsNavigationRouteEx(url, r);\n    })\n  }\n  getCurrentHistoryState(): IHistoryState {\n    if (!this.currentViewItem) {\n      return null;\n    }\n\n    return {\n      id: this.currentViewItem.model.routeInfo.id,\n      url: this.currentViewItem.model.routeInfo.url,\n      caption: this.currentViewItem.title\n    }\n  }\n  getRoute(url: string): Interfaces.IRouteInfo {\n    const indexQuestionMark = url.indexOf(\"?\");\n    const defaultParameters = {};\n    if (indexQuestionMark >= 0) {\n      url = url.substr(0, indexQuestionMark);\n    }\n\n    const searchRouteInfo = (routes: Interfaces.IRoute[]) => {\n      for (const route of routes) {\n        const routeInfo = this.isRoute(route, url)\n          || searchRouteInfo(route.children);\n\n        if (routeInfo == void (0)) {\n          continue;\n        }\n\n        return routeInfo;\n      }\n\n      return null;\n    }\n\n    const routeInfo = searchRouteInfo(this.routes);\n    if (routeInfo != void (0)) {\n      return routeInfo;\n    }\n\n    const fallbackRoute = this.getFallbackRoute();\n    const route = Array.isArray(fallbackRoute.route)\n      ? fallbackRoute.route[0]\n      : fallbackRoute.route;\n\n    return {\n      id: this.routeInfoId++,\n      route: fallbackRoute,\n      parameters: {},\n      url: route,\n      isFallback: true\n    };\n  }\n  hasRouteWithId(id: number): boolean {\n    return this.viewStack.some(v => {\n      return v.model.routeInfo.id == id;\n    });\n  }\n  async navigate(navigationArgs: Interfaces.INavigationArgs): Promise<boolean> {\n    if (navigationArgs.clearStack || navigationArgs.replace) {\n      const canDeactivate = await this.canDeactivateCurrentView();\n\n      if (!canDeactivate) {\n        return false;\n      }\n    }\n\n    const routeInfo = this.getRoute(navigationArgs.url);\n    if (routeInfo == void (0)) {\n      return false;\n    }\n\n    routeInfo.setValuesOnModelWithKeyIdLoaded = navigationArgs.setValuesOnModelWithKeyIdLoaded;\n    routeInfo.customOptions = navigationArgs.customOptions;\n\n    const routerInterceptorArgs = {\n      routeInfo: routeInfo,\n      moduleIdPromise: <Promise<string>>null\n    };\n\n    Object.assign(routeInfo.parameters, this.getParameters(navigationArgs.url));\n    \n    if (navigationArgs.historyState) {\n      routeInfo.id = navigationArgs.historyState.id;\n    }\n    \n    this.eventAggregator.publish(\"router:intercept-route\", routerInterceptorArgs);\n\n    let moduleId = routeInfo.route.moduleId;\n    if (routerInterceptorArgs.moduleIdPromise) {\n      moduleId = await routerInterceptorArgs.moduleIdPromise;\n      if (!moduleId) {\n        return false;\n      }\n    }\n\n    const routerCanNavigateArgs = {\n      routeInfo: routeInfo,\n      moduleId: moduleId,\n      cancel: false\n    };\n\n    this.eventAggregator.publish(\"router:can-navigate\", routerCanNavigateArgs);\n    if (routerCanNavigateArgs.cancel) {\n      return false;\n    }\n\n    navigationArgs.routeInfo = routeInfo;\n\n    if (navigationArgs.clearStack) {\n      this.viewStack.splice(0, this.viewStack.length);\n    } else if (this.viewStack.length > 1 && this.viewStack[this.viewStack.length - 2].model.routeInfo.id === routeInfo.id) {\n      this.removeLastViewItem();\n      navigationArgs.didReplace = true;\n      return true;\n    } else if (this.viewStack.length > 0 && navigationArgs.replace) {\n      this.viewStack.splice(this.viewStack.length - 1, 1);\n      navigationArgs.didReplace = true;\n    }\n\n    const newViewItem = new ViewItem({\n      routeInfo: routeInfo,\n      moduleId: moduleId,\n      viewScrollInfo: navigationArgs.viewScrollInfo\n    });\n    this.addViewItem(newViewItem);\n\n    this.eventAggregator.publish(\"router:view-item-created\", {\n      viewItem: newViewItem\n    });\n\n    return true;\n  }\n  registerRoutes(routes: Interfaces.IRoute[], fallbackRoute: string) {\n    routes = routes || [];\n\n    this.routes = this.validateRoutes(routes);\n    this.fallbackRoute = fallbackRoute;\n\n    this.navigationRoutes = this.getNavigationRoutes(routes);\n  }\n  reset() {\n    this.viewStack.splice(0, this.viewStack.length);\n    this.navigationRoutes = [];\n  }\n  removeLastViewItem() {\n    const length = this.viewStack.length;\n    const view = this.viewStack[length - 1];\n    this.viewStack.splice(length - 1);\n    \n    this.setCurrentViewItem();\n\n    if (this.currentViewItem) {\n      const currentViewModel = this.currentViewItem.controller[\"currentViewModel\"];\n      if (currentViewModel && typeof currentViewModel.reactivate === \"function\") {\n        currentViewModel.reactivate();\n      }\n    }\n\n    this.eventAggregator.publish(\"router:view-item-removed\", {\n      viewItem: view\n    });\n  }\n  updateCurrentUrl(url: string) {\n    const canUpdateUrl = this.currentViewItem\n      && this.currentViewItem.model\n      && this.currentViewItem.model.routeInfo;\n\n    if (!canUpdateUrl) {\n      return;\n    }\n\n    this.currentViewItem.model.routeInfo.url = url;\n  }\n\n  private addViewItem(viewItem: ViewItem) {\n    this.viewStack.push(viewItem);\n    this.setCurrentViewItem();\n\n    setTimeout(() => {\n      viewItem.isAttached = true;\n    }, 100);\n  }\n  private getFallbackRoute(): Interfaces.IRoute {\n    if (!this.fallbackRoute) {\n      return null;\n    }\n\n    const getRoute = (routes: Interfaces.IRoute[]): Interfaces.IRoute => {\n      for (const route of routes) {\n        if ((<string[]>route.route).some(r => r === this.fallbackRoute)) {\n          return route;\n        }\n\n        const childRoute = getRoute(route.children);\n        if (childRoute) {\n          return childRoute;\n        }\n      }\n    };\n\n    const fallbackRoute = getRoute(this.routes);\n    if (!fallbackRoute) {\n      throw new Error(\"Fallback route not found\");\n    }\n\n    return fallbackRoute;\n  }\n  private getNavigationRoutes(routes: Interfaces.IRoute[]): Interfaces.INavigationRoute[] {\n    const result: Interfaces.INavigationRoute[] = [];\n\n    for (const route of routes) {\n      if (!route.navigation) {\n        continue;\n      }\n      if (!route.canActivate()) {\n        continue;\n      }\n\n      const navigationRoute: Interfaces.INavigationRoute = {\n        caption: route.caption,\n        route: route.route[0],\n        navigation: route.navigation,\n        children: this.getNavigationRoutes(route.children)\n      };\n\n      if (navigationRoute.route || (navigationRoute.children && navigationRoute.children.length > 0)) {\n        result.push(navigationRoute);\n      }\n    }\n\n    return result;\n  }\n  private getParameters(url: string): any {\n    const result = {};\n\n    const indexQuestionMark = url.indexOf(\"?\");\n    if (indexQuestionMark < 0) {\n      return result;\n    }\n\n    const parameterString = url.substr(indexQuestionMark + 1);\n    const parameters = parameterString.split(\"&\");\n\n    for (const parameter of parameters) {\n      const parts = parameter.split(\"=\");\n\n      if (parts.length == 1) {\n        result[parts[0]] = true;\n      } else {\n        result[parts[0]] = parts[1];\n      }\n    }\n\n    return result;\n  }\n  private isRoute(route: Interfaces.IRoute, url: string): Interfaces.IRouteInfo {\n    if (route.route == void (0)) {\n      return null;\n    }\n\n    if (Array.isArray(route.route)) {\n      for (const part of route.route) {\n        const result = this.isRoutePattern(part, url);\n\n        if (result == void (0)) {\n          continue;\n        } else if (!route.canActivate()) {\n          continue;\n        } else {\n          return {\n            id: this.routeInfoId++,\n            route: route,\n            parameters: result,\n            url: url\n          };\n        }\n      }\n\n      return null;\n    } else {\n      throw new Error()\n    }\n  }\n  private isRoutePattern(route: string, url: string): any {\n    if (!route) {\n      return null;\n    }\n\n    const routeParts = route.split(\"/\");\n    const urlParts = url.split(\"/\");\n    const parameters: any = {};\n\n    if (routeParts.length !== urlParts.length) {\n      return null;\n    }\n\n    for (let i = 0; i < urlParts.length; i++) {\n      if (routeParts[i].startsWith(\":\")) {\n        let routePart = routeParts[i];\n        const indexOfBracket = routePart.indexOf(\"{\");\n        const lastIndexOfBrack = routePart.lastIndexOf(\"}\");\n\n        if (indexOfBracket >= 0 && lastIndexOfBrack >= 0) {\n          let r = routePart.substring(indexOfBracket + 1, lastIndexOfBrack);\n          routePart = routePart.substr(0, indexOfBracket);\n\n          if (!new RegExp(`^${r}$`).test(urlParts[i])) {\n            return null;\n          }\n        }\n\n        parameters[routePart.substr(1)] = urlParts[i];\n      }\n      else if (urlParts[i] !== routeParts[i]) {\n        return null;\n      }\n    }\n\n    return parameters;\n  }\n  private validateRoutes(routes: Interfaces.IRoute[]): Interfaces.IRoute[] {\n    for (const route of routes) {\n      if (route.route == void (0)) {\n        route.route = \"\";\n      }\n\n      if (typeof route.route === \"string\") {\n        route.route = [route.route];\n      }\n\n      if (route.canActivate == void (0)) {\n        route.canActivate = () => {\n          return true;\n        };\n      }\n\n      route.children = route.children || [];\n      this.validateRoutes(route.children);\n    }\n\n    return routes;\n  }\n  private registerAppChanging() {\n    this.eventAggregator.subscribe(\"authorization:changing-app\", () => {\n      this.viewStack.splice(0);\n    });\n  }\n  private registerShortcuts() {\n    this.eventAggregator.subscribe(\"shortcut:execute\", e => {\n      if (!this.currentViewItem) {\n        return Promise.resolve();\n      }\n\n      const args = {\n        isOpen: false\n      };\n\n      //Muss so gemacht werden, da sonst Ringverweis\n      this.eventAggregator.publish(\"popup-info:popup-open\", args);\n      if (args.isOpen) {\n        return Promise.resolve();\n      }\n\n      const currentViewModel = this.currentViewItem.controller[\"currentViewModel\"];\n      if (!currentViewModel.executeCommand) {\n        return;\n      }\n\n      currentViewModel.executeCommand(e.idCommand);\n      return Promise.resolve();\n    });\n  }\n  private registerTitleChanged() {\n    this.eventAggregator.subscribe(\"form:title-changed\", (e) => {\n      this.setFormTitle(e.form);\n    });\n  }\n  private setCurrentViewItem() {\n    let newCurrentViewItem;\n\n    if (this.viewStack.length === 0) {\n      newCurrentViewItem = null;\n    } else {\n      newCurrentViewItem = this.viewStack[this.viewStack.length - 1];\n      newCurrentViewItem.isCurrent = true;\n\n      if (this.viewStack.length > 1) {\n        this.viewStack[this.viewStack.length - 2].isCurrent = false;\n      }\n\n      if (this.currentViewItem != newCurrentViewItem) {\n        this.currentViewItem = newCurrentViewItem;\n\n        this.eventAggregator.publish(\"router:current-view-item-changed\", {\n          currentViewItem: newCurrentViewItem\n        });\n      }\n    }\n  }\n  private async setFormTitle(form: FormBase) {\n    if (!this.currentViewItem) {\n      return;\n    }\n\n    const controller: any = this.currentViewItem.controller;\n    if (!controller) {\n      return;\n    }\n\n    const viewModel = await this.templatingExService.waitForViewModel(controller);\n    if (!viewModel) {\n      return;\n    }\n\n    if (viewModel != form) {\n      return;\n    }\n\n    document.title = this.localization.translateOnce(form.title, form.scopeContainer);\n  }\n  private existsNavigationRouteEx(url: string, navigationRoute: INavigationRoute): boolean {\n    if (navigationRoute.route == url) {\n      return true;\n    }\n    if (!navigationRoute.children) {\n      return false;\n    }\n\n    return navigationRoute.children.some(r => {\n      return this.existsNavigationRouteEx(url, r);\n    })\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\n\n@autoinject\nexport class ArbeitszeitBenutzerZuteilungEditUtils {\n\n  constructor(\n    private _restService: RestService) { }\n\n  form: FormBase;\n\n  doNeuerMitarbeiterstatus: ICommandData = {\n    id: \"doNeuerMitarbeiterstatus\",\n    idCategory: \"arbeitszeit\",\n    title: \"arbeitszeit-benutzer-zuteilung.mitarbeiterstatus_erstellen\",\n    isEnabledExpression: \"models.data.$m_ArbeitszeitBenutzerZuteilung.Id != null\",\n    icon: \"plus\",\n    sortIndex: 100,\n    execute: () => {\n      const arbeitszeitBenutzerZuteilung = this.form[\"r_arbeitszeitBenutzerZuteilung\"];\n      arbeitszeitBenutzerZuteilung.doNeuerMitarbeiterstatus();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.models.onLoaded.register(async r => {\n      if (r == void 0 || r.model.id != \"$m_ArbeitszeitBenutzerZuteilung\") {\n        return;\n      }\n\n      const arbeitszeitBenutzerZuteilung = this.form[\"r_arbeitszeitBenutzerZuteilung\"];\n      arbeitszeitBenutzerZuteilung.id = form.models.data.$m_ArbeitszeitBenutzerZuteilung.Id;\n      arbeitszeitBenutzerZuteilung.idPartei = form.models.data.$m_ArbeitszeitBenutzerZuteilung.IdArbeitszeitPartei;\n      arbeitszeitBenutzerZuteilung.idMitarbeiterstatus = null;\n    });\n\n    this.form.models.onSaved.register(async (e) => {\n      const arbeitszeitBenutzerZuteilung = this.form[\"r_arbeitszeitBenutzerZuteilung\"];\n      arbeitszeitBenutzerZuteilung.idMitarbeiterstatus = null;\n\n      if (this.form.models.data.$m_ArbeitszeitBenutzerZuteilung.IdArbeitszeitPartei == 0) {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitPartei/partei`),\n          data: {\n            IdArbeitszeitBenutzerZuteilung: this.form.models.data.$m_ArbeitszeitBenutzerZuteilung.Id\n          }\n        });\n        this.form.models.reloadAll();\n      }\n    });\n  }\n}\n","import {\n  autoinject,\n  Aurelia,\n  observable,\n  TaskQueue,\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"./rest-service\";\nimport config from \"../../../config\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n//TODO - Übersetzungen!\n@autoinject\nexport class AuthorizationService {\n  private readonly X_TIP_AUTH = \"X-TIP-AUTH\";\n  private X_TIP_AUTH_LOCAL_STORAGE = \"X-TIP-AUTH\";\n\n  constructor(\n    private rest: RestService,\n    private aurelia: Aurelia,\n    private eventAggregator: EventAggregator,\n    private taskQueue: TaskQueue\n  ) {\n    this.X_TIP_AUTH_LOCAL_STORAGE = this.getAuthLocalStorageKey();\n\n    this.rest.getAuthorizationHeader = this.getAuthorizationHeaders.bind(this);\n    this.rest.getAuthorizationToken = this.getAuthorizationToken.bind(this);\n\n    this.checkAlive();\n\n    this.eventAggregator.subscribe(\"rest:unauthorized\", () => {\n      this.isLoggedIn = false;\n    });\n  }\n\n  @observable isLoggedIn: boolean = null;\n  useSessionStorageForTemporarySessions = false;\n  onBeforeLogin: (data: ILoginData) => Promise<void>;\n  onAfterLoginCompleted: (data: ILoginData) => Promise<void>;\n\n  getAuthorizationKey(): string {\n    return sessionStorage.getItem(this.X_TIP_AUTH_LOCAL_STORAGE)\n      || localStorage.getItem(this.X_TIP_AUTH_LOCAL_STORAGE);\n  }\n\n  openApp() {\n    if (this.isLoggedIn) {\n      return;\n    }\n    if (!this.getAuthorizationKey()) {\n      this.isLoggedIn = false;\n      return;\n    }\n\n    this.rest.get({\n      url: this.rest.getApiUrl(\"base/Authorization/IsLoggedIn\"),\n      increaseLoadingCount: true\n    }).then(r => {\n      this.isLoggedIn = r.IsValid;\n    }).catch(r => {\n      this.eventAggregator.publish(\"alert\", {\n        message: \"Fehler bei Verbindung mit Datenserver. Bitte versuchen Sie es etwas später noch einmal\",\n        title: \"Fehler\"\n      });\n    });\n  }\n  async login(data: any, showNotificationOnError: boolean = true): Promise<ILoginResult> {\n    await this.onBeforeLogin?.(data);\n\n    const r = await this.rest.post({\n      url: this.rest.getApiUrl(\"base/Authorization/Login\"),\n      data: Object.assign({ AppId: config.appId }, data),\n      increaseLoadingCount: true\n    });\n\n    if (r.IsValid) {\n      if (r.AuthenticationToken) {\n        await this.onAfterLoginCompleted?.(data);\n        this.isLoggedIn = true;\n\n        if (!data.StayLoggedOn && this.useSessionStorageForTemporarySessions) {\n          sessionStorage.setItem(this.X_TIP_AUTH_LOCAL_STORAGE, r.AuthenticationToken);\n        } else {\n          localStorage.setItem(this.X_TIP_AUTH_LOCAL_STORAGE, r.AuthenticationToken);\n        }\n      }\n\n      if (!this.isLoggedIn && r.NeedsTwoFactorAuthKey && data.TwoFactorAuthKey) {\n        if (showNotificationOnError) {\n          this.eventAggregator.publish(\"notify\", {\n            message: \"Code ungültig\",\n            type: \"error\"\n          });\n        }\n      }\n\n      return {\n        isLoggedIn: this.isLoggedIn,\n        isValid: r.isValid,\n        needsTwoFactorAuthKey: r.NeedsTwoFactorAuthKey\n      };\n    }\n\n    if (showNotificationOnError) {\n      const isInstanzInaktiv = await this.rest.get({\n        url: this.rest.getApiUrl(\"ERP/Instanz/IsInstanzInaktiv/\" + data.Username)\n      });\n\n      if (isInstanzInaktiv) {\n        this.eventAggregator.publish(\"notify\", {\n          message: \"CLUE ist umgezogen! Bitte folgende URL verwenden: ERP: https://clue.services, Kassa: https://kassa.clue.services, App: https://app.clue.services\",\n          type: \"error\"\n        });\n      } else {\n        this.eventAggregator.publish(\"notify\", {\n          message: \"Benutzer oder Passwort ungültig\",\n          type: \"error\"\n        });\n      }\n    }\n\n    return {\n      isLoggedIn: false,\n      isValid: false,\n      needsTwoFactorAuthKey: false\n    };\n  }\n  logout() {\n    return this.rest.get({\n      url: this.rest.getApiUrl(\"base/Authorization/Logout\"),\n      increaseLoadingCount: true\n    }).then(() => {\n      this.isLoggedIn = false;\n      sessionStorage.removeItem(this.X_TIP_AUTH_LOCAL_STORAGE);\n      localStorage.removeItem(this.X_TIP_AUTH_LOCAL_STORAGE);\n    })\n  }\n  changePassword(data: any): Promise<any> {\n    return this.rest.post({\n      url: this.rest.getApiUrl(\"base/Authorization/ChangePassword\"),\n      data: data,\n      increaseLoadingCount: true\n    }).then(r => {\n      this.eventAggregator.publish(\"notify\", {\n        message: \"Passwort wurde erfolgreich geändert\",\n        type: \"success\"\n      });\n    });\n  }\n  resetPassword(data: any): Promise<boolean> {\n    return this.rest.post({\n      url: this.rest.getApiUrl(\"base/Authorization/ResetPassword\"),\n      data: data,\n      increaseLoadingCount: true\n    }).then(r => {\n      if (r.IsValid) {\n        this.isLoggedIn = true;\n        this.eventAggregator.publish(\"notify\", {\n          message: \"Der Aktivierungslink wird in Kürze versendet\",\n          type: \"success\"\n        });\n        return true;\n      }\n\n      this.eventAggregator.publish(\"notify\", {\n        message: \"Für den angegeben Benutzernamen existiert kein Konto\",\n        type: \"error\"\n      });\n      return false;\n    });\n  }\n  activateAccount(data: any): Promise<boolean> {\n    return this.rest.post({\n      url: this.rest.getApiUrl(\"base/Authorization/ActivateAccount\"),\n      data: data,\n      increaseLoadingCount: true\n    }).then(r => {\n      if (r.IsValid) {\n        this.isLoggedIn = true;\n        this.eventAggregator.publish(\"notify\", {\n          message: \"Der Account wurde aktiviert\",\n          type: \"success\"\n        });\n        return true;\n      }\n\n      this.eventAggregator.publish(\"notify\", {\n        message: \"Ein Fehler ist aufgetreten\",\n        type: \"success\"\n      });\n      return false;\n    });\n  }\n  isLoggedInChanged(newValue) {\n    if (newValue == void (0)) {\n      return;\n    }\n\n    let app = \"/\";\n\n    if (newValue && config[\"mainApp\"]) {\n      app = config[\"mainApp\"]\n    } else if (!newValue && config[\"loginApp\"]) {\n      app = config[\"loginApp\"]\n    }\n\n    const args = {\n      app: app,\n      isHandled: false\n    };\n    this.eventAggregator.publish(\"authorization:change-app\", args);\n\n    if (args.isHandled) {\n      return;\n    }\n\n    this.eventAggregator.publish(\"authorization:changing-app\", args);\n\n    this.taskQueue.queueMicroTask(() => {\n      this.aurelia.setRoot(app);\n      this.eventAggregator.publish(\"authorization:changed-app\", args);\n    });\n  }\n\n  private getAuthLocalStorageKey(): string {\n    const keyStr = location.origin.concat(location.pathname);\n\n    let hash = 0;\n    for (let i = 0; i < keyStr.length; i++) {\n      const character = keyStr.charCodeAt(i);\n      hash = ((hash << 5) - hash) + character;\n      hash = hash & hash;\n    }\n    return \"TA\".concat(hash.toString());\n  }\n  private getAuthorizationHeaders(): any {\n    const headers = {};\n\n    const auth = this.getAuthorizationKey();\n    if (auth) {\n      headers[this.X_TIP_AUTH] = auth;\n    }\n\n    return headers;\n  }\n  private getAuthorizationToken(): string {\n    return this.getAuthorizationKey();\n  }\n  private checkAlive() {\n    const callback = () => {\n      if (!this.isLoggedIn) {\n        return;\n      }\n\n      if (!navigator.onLine) {\n        return;\n      }\n\n      this.rest.get({\n        url: this.rest.getApiUrl(\"base/Session/IAmAlive\"),\n        errorCallback: (response) => {\n          return response.status != 401; //Unauthorized nicht behandeln, den Rest schon\n        }\n      });\n    };\n\n    window.addEventListener(\"online\", callback);\n    window.addEventListener(\"visibilitychange\", () => {\n      if (!document.hidden) {\n        callback();\n      }\n    });\n\n    setInterval(callback, 1000 * 60);\n  }\n}\n\nexport interface ILoginData {\n  Username: string;\n  Password: string;\n  StayLoggedOn: boolean;\n  TwoFactorAuthKey?: string;\n}\n\nexport interface ILoginResult {\n  isValid: boolean;\n  needsTwoFactorAuthKey: boolean;\n  isLoggedIn: boolean;\n}\n","import {\n  autoinject, optional\n} from \"aurelia-framework\";\nimport {\n  IViewScrollInfo\n} from \"../interfaces/export\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { ILocationGoToEventArgs } from '../event-args/location-go-to';\n\n@autoinject\nexport class LocationService {\n  constructor(\n    private eventAggregator: EventAggregator\n  ) {}\n\n  goBack(): Promise<any> {\n    const args = {\n      promise: null\n    };\n\n    this.eventAggregator.publish(\"location:go-back\", args);\n    return args.promise || Promise.resolve();\n  }\n  async goTo(options?: ILocationGoToEventArgs): Promise<any> {\n    const url = options.url;\n    if (!url.startsWith(\"#\")) {\n      options.url = \"#\".concat(url);\n    }\n\n    const args = {\n      promise: null,\n      args: options,\n      isHandled: false\n    }\n\n    this.eventAggregator.publish(\"location:go-to\", args);\n    await args.promise || Promise.resolve();\n\n    if (!args.isHandled) {\n      location.assign(url);\n    }\n  }\n  openWindow(url: string) {\n    window.open(`${location.origin}${location.pathname}#${url}`, \"_blank\");\n  }\n}\n","import { IAuGridCell } from 'aurelia-dashboard-grid';\nimport { autoinject, PLATFORM } from \"aurelia-framework\";\nimport { StatistikVerkaufWertTyp, StatistikVerkaufZeitraumTyp } from '../../../framework-data/events';\nimport { IWidget } from '../interfaces/widget';\nimport { IWidgetModel } from '../interfaces/widget-model';\nimport { IAuswertungSettings } from '../widgets/auswertung/auswertung-settings';\nimport { IEntitaetTagsSettings } from '../widgets/entitaet-tags/entitaet-tags-settings';\nimport { IKennzahlenSettings } from '../widgets/kennzahlen/kennzahlen-settings';\nimport { IOffeneAuftraegeSettings } from '../widgets/offene-auftraege/offene-auftraege-settings';\nimport { ITopArtikelSettings } from '../widgets/top-artikel/top-artikel-settings';\nimport { ITopKundenSettings, TopKundenGPArt } from '../widgets/top-kunden/top-kunden-settings';\nimport { IUmsatzAktuellSettings } from '../widgets/umsatz-aktuell/umsatz-aktuell-settings';\nimport { IUmsatzLandSettings } from '../widgets/umsatz-land/umsatz-land-settings';\nimport { IUmsatzMonatSettings } from '../widgets/umsatz-monat/umsatz-monat-settings';\nimport { SupportedDashboardTyp } from './../interfaces/widget';\nimport { IStatistikGruppiertSettings } from './../widgets/statistik-gruppiert/statistik-gruppiert-settings';\n\n@autoinject\nexport class WidgetService {\n  constructor() {\n    this.registerWidgets();\n  }\n\n  widgets: IWidget[] = [];\n\n  getCellsFromDefinition(definition: string, mainModel?: any): IAuGridCell[] {\n    if (definition) {\n      return (<any[]>JSON.parse(definition)).map(c => {\n        const widget = this.widgets.find(w => w.viewModel == c.viewModel);\n        if (!widget) {\n          return null;\n        }\n\n        const settings = Object.assign({}, widget.settings || {}, c.settings || {});\n\n        return <IAuGridCell>{\n          x: c.x,\n          y: c.y,\n          width: c.width,\n          height: c.height,\n          viewModel: c.viewModel,\n          minHeight: widget.minHeight,\n          minWidth: widget.minWidth,\n          model: <IWidgetModel>{\n            isDesignMode: true,\n            settings: settings,\n            mainModel: mainModel,\n            widget: widget\n          }\n        }\n      }).filter(c => !!c);\n    } else {\n      return [];\n    }\n  }\n\n  getWidgets(dashboardTyp: DashboardTyp) {\n    return this.widgets\n      .filter(w => {\n        const supportedDashboardTyp = (dashboardTyp == DashboardTyp.Allgemein ? SupportedDashboardTyp.Allgemein : (dashboardTyp == DashboardTyp.Geschaeftspartner\n          ? SupportedDashboardTyp.Geschaeftspartner\n          : (dashboardTyp == DashboardTyp.Artikel\n            ? SupportedDashboardTyp.Artikel\n            : 0)));\n\n        return w.supportedDashboardTyp.includes(supportedDashboardTyp);\n      })\n      .sort((a, b) => a.title.localeCompare(b.title));\n  }\n\n  private registerWidgets() {\n    this.widgets.push({\n      title: \"Kennzahlen\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/kennzahlen/kennzahlen\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/kennzahlen/kennzahlen-settings\"),\n      settings: <IKennzahlenSettings>{\n        ueberschrift: \"Kennzahlen\",\n        showNewsletterAbmeldungen: true,\n        showNewsletterAktivierungen: true,\n        showOffeneAngebote: true,\n        showOffeneAuftraege: true,\n        showOffeneBestellung: true,\n        showOffeneEingangsrechnungen: true,\n        showOffeneFakturen: true,\n        showOffeneKundenreklamationen: true,\n        showOffeneLieferscheine: true,\n        showOffenePosten: true,\n        showOffeneProduktionen: true,\n        showOffeneWarenuebernahmen: true\n      },\n      minWidth: 4,\n      minHeight: 16,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Geschaeftspartner, SupportedDashboardTyp.Artikel]\n    });\n\n    this.widgets.push({\n      title: \"Top Artikel\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/top-artikel/top-artikel\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/top-artikel/top-artikel-settings\"),\n      settings: <ITopArtikelSettings>{\n        anzahl: 10\n      },\n      minWidth: 4,\n      minHeight: 12,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Geschaeftspartner]\n    });\n\n    this.widgets.push({\n      title: \"Top Kunden/Lieferanten\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/top-kunden/top-kunden\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/top-kunden/top-kunden-settings\"),\n      settings: <ITopKundenSettings>{\n        anzahl: 10,\n        art: TopKundenGPArt.Kunde\n      },\n      minWidth: 4,\n      minHeight: 12,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Artikel]\n    });\n\n    this.widgets.push({\n      title: \"Umsatz aktuell\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-aktuell/umsatz-aktuell-settings\"),\n      settings: <IUmsatzAktuellSettings>{\n        showDB: true,\n        showAuftragseingang: true,\n        showNetto: true,\n        standard: StatistikVerkaufWertTyp.Netto\n      },\n      minWidth: 2,\n      minHeight: 12,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Geschaeftspartner, SupportedDashboardTyp.Artikel]\n    });\n\n    this.widgets.push({\n      title: \"Umsatz Land\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-land/umsatz-land\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-land/umsatz-land-settings\"),\n      settings: <IUmsatzLandSettings>{\n        showNettoJahr: true,\n        showNettoYTD: true,\n        standard: StatistikVerkaufZeitraumTyp.YTD\n      },\n      minWidth: 3,\n      minHeight: 10,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Artikel]\n    });\n\n    this.widgets.push({\n      title: \"Umsatz Monat\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-monat/umsatz-monat\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/umsatz-monat/umsatz-monat-settings\"),\n      settings: <IUmsatzMonatSettings>{\n        showAuftragseingang: true,\n        showDB: true,\n        showEinsatz: true,\n        showNetto: true,\n        showNettoMitForecast: true,\n        standard: StatistikVerkaufWertTyp.Netto\n      },\n      minWidth: 4,\n      minHeight: 8,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Geschaeftspartner, SupportedDashboardTyp.Artikel]\n    });\n\n    this.widgets.push({\n      title: \"Entität mit Tag\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/entitaet-tags/entitaet-tags\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/entitaet-tags/entitaet-tags-settings\"),\n      settings: <IEntitaetTagsSettings>{\n        nurAktiveDatensaetze: false\n      },\n      minWidth: 4,\n      minHeight: 8,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein]\n    });\n\n    this.widgets.push({\n      title: \"Meine Aufgaben\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/aufgabe-tags/aufgabe-tags\"),\n      settings: {},\n      minWidth: 4,\n      minHeight: 12,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein]\n    });\n\n    this.widgets.push({\n      title: \"Zu liefernde Aufträge in 5 Tagen\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/offene-auftraege/offene-auftraege\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/offene-auftraege/offene-auftraege-settings\"),\n      settings: <IOffeneAuftraegeSettings>{},\n      minWidth: 4,\n      minHeight: 18,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein]\n    });\n\n    this.widgets.push({\n      title: \"Statistik gruppiert\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/statistik-gruppiert/statistik-gruppiert-settings\"),\n      settings: <IStatistikGruppiertSettings>{\n        anzahl: 5,\n        zeitraumTyp: StatistikVerkaufZeitraumTyp.YTD\n      },\n      minWidth: 4,\n      minHeight: 12,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein, SupportedDashboardTyp.Geschaeftspartner, SupportedDashboardTyp.Artikel]\n    });\n    this.widgets.push({\n      title: \"Auswertung\",\n      viewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/auswertung/auswertung\"),\n      settingViewModel: PLATFORM.moduleName(\"erp/dashboard/widgets/auswertung/auswertung-settings\"),\n      settings: <IAuswertungSettings>{},\n      minWidth: 4,\n      minHeight: 8,\n      supportedDashboardTyp: [SupportedDashboardTyp.Allgemein]\n    });\n  }\n}\n\nexport enum DashboardTyp {\n  Allgemein = 0,\n  Geschaeftspartner = 1,\n  Artikel = 2\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { LocalizationService, LocationService, RestService } from \"../../../../framework/base/services/export\";\nimport { FormBase, PopupInfoService } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent, IdxPopupComponent } from \"../../../interfaces/export\";\nimport { EntitaetInfoService, StartupService } from \"../../../services/export\";\nimport { ICommandData } from \"./../../../../framework/forms/interfaces/command-data\";\nimport { ProjektDmsViewer } from \"./../../../elements/projekt-dms-viewer/projekt-dms-viewer\";\n\n@autoinject\n@transient()\nexport class ProjektEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public startupService: StartupService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _locationService: LocationService,\n    private _localizationService: LocalizationService,\n    private _popupInfoService: PopupInfoService,\n    private _restService: RestService,\n    private _asyncService: AsyncService) {\n    this.showTaetigkeiten = startupService.startupInfo.Lizenz.HasProjektzeiterfassung;\n  }\n\n  projektDmsViewer: ProjektDmsViewer;\n  idGeschaeftspartner: number;\n\n  form: FormBase;\n\n  showTaetigkeiten: boolean = false;\n\n  geschaeftspartnerZuordnenCommand: ICommandData = {\n    id: \"geschaeftspartnerZuordnen\",\n    icon: \"plus-circle\",\n    title: \"projekt.geschaeftspartner-zuordnen\",\n    sortIndex: 1000,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      this.idGeschaeftspartner = null;\n\n      const popup: IdxPopupComponent = this.form[\"r_geschaeftspartnerZuordnenPopup\"];\n      await this._asyncService.convertToPromise(popup.instance.show());\n\n      const el = this.form[\"r_geschaeftspartnerElement\"];\n      el.focus();\n    }\n  };\n  doGeschaeftspartnerZuordnen: ICommandData = {\n    id: \"doGeschaeftspartnerZuordnen\",\n    title: \"projekt.zuordnen\",\n    icon: \"plus-circle\",\n    execute: async () => {\n      if (!this.idGeschaeftspartner) {\n        return DevExpress.ui.notify(this._localizationService.translateOnce(\"projekt.geschaeftspartner-auswaehlen\"), \"ERROR\", this.NOTIFY_TIMEOUT);\n      }\n\n      const r = await this._restService.post({\n        url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ProjektZuGeschaeftspartner\"),\n        data: {\n          IdProjekt: this.form.models.data.$m_Projekt.Id,\n          IdGeschaeftspartner: this.idGeschaeftspartner,\n          IsManuell: true\n        },\n        increaseLoadingCount: true\n      });\n\n      DevExpress.ui.notify(this._localizationService.translateOnce(\"projekt.geschaeftspartner-erfolgreich-zugeordnet\"), \"SUCCESS\", this.NOTIFY_TIMEOUT);\n      this._popupInfoService.closeAllPopups();\n      this.form.models.reloadAll();\n    }\n  };\n  doGeschaeftspartnerZuordnungenEntfernen: ICommandData = {\n    id: \"doGeschaeftspartnerZuordnungenEntfernen\",\n    title: \"projekt.zuordnungen-entfernen\",\n    icon: \"trash\",\n    sortIndex: 1010,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_proGeschaeftspartnerGrid\"];\n      const selectedRowsData: any[] = grid.instance.getSelectedRowsData();\n      if (selectedRowsData.length === 0) {\n        return DevExpress.ui.notify(this._localizationService.translateOnce(\"projekt.geschaeftspartner-auswaehlen\"), \"ERROR\", this.NOTIFY_TIMEOUT);\n      }\n\n      const invalidSelectedKeys: any[] = selectedRowsData.filter((c) => c.IsManuell != true);\n      if (invalidSelectedKeys.length && invalidSelectedKeys.length >= 1) {\n        return DevExpress.ui.notify(this._localizationService.translateOnce(\"projekt.zuordnung-loeschen-nicht-moeglich\"), \"ERROR\", this.NOTIFY_TIMEOUT);\n      }\n\n      for (const data of selectedRowsData.map((c) => c.Id)) {\n        await this._restService.delete({\n          url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ProjektZuGeschaeftspartner\"),\n          id: data\n        });\n      }\n      grid.instance.refresh();\n    }\n  };\n  projektdateienCommand: ICommandData = {\n    id: \"projektdateienCommand\",\n    title: \"projekt.projektdateien\",\n    idCategory: \"projekt\",\n    icon: \"file-o\",\n    isEnabledExpression: \"!models.data.$m_Projekt.IsInaktiv && models.data.$m_Projekt.Id\",\n    execute: async () => {\n      const projektDmsViewerPopup: ProjektDmsViewer = this.form[\"r_projektDmsViewerElement\"];\n      projektDmsViewerPopup.show(this.form.models.data.$m_Projekt.Id);\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      if (form[\"r_bezeichnung\"].instance) {\n        form[\"r_bezeichnung\"].instance.focus();\n      }\n    };\n\n    this.form.models.onLoaded.register((r) => {\n      if (r.model.id == \"$m_ProjektZuGeschaeftspartnerRel\") {\n        if (r.data && r.data.data && Array.isArray(r.data.data)) {\n          for (const item of r.data.data) {\n            if (!item.Geschaeftspartner || !item.Geschaeftspartner.IdStatus) {\n              continue;\n            }\n\n            item[\"IdStatus\"] = item.Geschaeftspartner.IdStatus;\n          }\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n//TODO Entfernen?\n  // onBewClicked(e: any) {\n  //   this._entitaetInfoService\n  //     .getUrl(e.item.TypeName, e.item.Id)\n  //     .then(async (r) => {\n  //       if (!r) {\n  //         DevExpress.ui.notify(\"Die Entität ist nicht definiert\");\n  //         return;\n  //       }\n\n  //       const where = [\"IdCboProjekt\", e.item.IdCboProjekt];\n  //       const orderBy = [{ columnName: \"Aenderungsdatum\", sortOrder: 1 }];\n\n  //       const viewScrollInfo = await this._entitaetInfoService.createViewScrollInfo(\n  //         e.item.TypeName,\n  //         where,\n  //         null,\n  //         orderBy,\n  //         e.item.Id\n  //       );\n\n  //       this._locationService.goTo({\n  //         url: r,\n  //         clearStack: false,\n  //         viewScrollInfo: viewScrollInfo\n  //       });\n\n  //       if (this._popupInfoService.isPopupOpen()) {\n  //         this._popupInfoService.closeCurrentPopup();\n  //       }\n  //     });\n  // }\n  onReservierungsgradCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.IsBestaetigt == false || e.data.Status.Typ !== 0) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.Reservierungsgrad < 1\n      ? \"#C1392D\"\n      : (e.data.HasArtikelNichtLagerfuehrendOffen ? \"#566473\" : \"#2DCC70\");\n  }\n  onZahlungFaelligCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.BezahltTyp == void (0) || !e.data.ZahlungFaelligkeit || !e.data.Status || e.data.Status.Typ != 1) {\n      return;\n    }\n    if (e.data.BezahltTyp != 0 && e.data.BezahltTyp != 2) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.ZahlungFaelligkeit.getTime() >= new Date().getTime()\n      ? \"#2DCC70\"\n      : \"#C1392D\";\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnDeleteIdLieferscheinpositionListEvent, OnEvalLieferRechnungsort, OnEvalLieferRechnungsortEvent, OnImportAuftragInLieferschein, OnImportAuftragInLieferscheinEvent, OnLieferscheinAbschliessenEvent, OnLieferscheinFakturaStatusAendernEvent, OnLieferscheinGewichtAktualisieren, OnLieferscheinGewichtAktualisierenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { ContextMenu, FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { DynFelderDataService, FilialeService, FormCommandService, ValidationExService } from \"../../../services/export\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { PersonService } from \"../../../services/person-service\";\n\n@autoinject\n@transient()\nexport class LieferscheinEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    private _webEventService: WebEventService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _filialeService: FilialeService,\n    private _personService: PersonService,\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService,\n    private _formCommandService: FormCommandService,\n    private _validationExService: ValidationExService) { }\n\n  form: FormBase;\n\n  fakturaStatusAendernCommand: ICommandData = {\n    id: \"fakturaStatusAendern\",\n    idCategory: \"lieferschein\",\n    title: \"lieferschein.faktura_status_aendern\",\n    icon: \"bullseye\",\n    isVisibleExpression: \"models.data.$m_Lieferschein.FakturaStatus == 3 && !models.data.$m_Lieferschein.CanSave\",\n    sortIndex: 998,\n    execute: (e) => {\n      const ctxMenu = new ContextMenu();\n      ctxMenu.items.push({\n        text: this._localizationService.translateOnce(\"lieferschein.faktura_neu_erstellen\"),\n        execute: () => {\n          this.changeFakturaStatus(1);\n        }\n      });\n      ctxMenu.items.push({\n        text: this._localizationService.translateOnce(\"lieferschein.faktura_nicht_notwendig\"),\n        execute: () => {\n          this.changeFakturaStatus(2);\n        }\n      });\n\n      ctxMenu.show(this._formCommandService.getCommandTarget(e.event));\n    }\n  };\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"lieferschein\",\n    title: \"lieferschein.abschliessen\",\n    icon: \"check\",\n    isEnabledExpression: \"models.data.$m_Lieferschein.CanSave && models.data.$m_Lieferschein.Status && models.data.$m_Lieferschein.Status.Typ === 0\",\n    sortIndex: 999,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Lieferschein.TypeName,\n        this.form.models.data.$m_Lieferschein.Id,\n        \"ABSCHLIESSEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnLieferscheinAbschliessenEvent({\n        IdLieferschein: this.form.models.data[\"$m_Lieferschein\"].Id\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  refreshGewichtCommand: ICommandData = {\n    id: \"refreshGewichte\",\n    idCategory: \"gewicht\",\n    title: \"lieferschein.gewicht_aktualisieren\",\n    icon: \"cubes\",\n    isEnabledExpression: \"models.data.$m_Lieferschein.CanSave && models.data.$m_Lieferschein.Id > 0\",\n    sortIndex: 10,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const onLieferscheinGewichtAktualisierenEvent = new OnLieferscheinGewichtAktualisierenEvent({\n        IdLieferschein: this.form.models.data[\"$m_Lieferschein\"].Id\n      });\n\n      const webEventResult: OnLieferscheinGewichtAktualisieren = await this._webEventService.execute(\n        onLieferscheinGewichtAktualisierenEvent,\n        true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  showImportAuftragPopupCommand: ICommandData = {\n    id: \"showImportAuftrag\",\n    icon: \"plus\",\n    idCategory: \"lieferschein\",\n    title: \"lieferschein.auftrag_importieren\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Lieferschein.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const auftragGrid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n      if (auftragGrid && auftragGrid.instance) {\n        await this._asyncService.convertToPromise(auftragGrid.instance.deselectAll());\n        auftragGrid.instance.refresh();\n      }\n\n      this.form[\"r_auftragEditPopup\"].instance.show();\n    }\n  };\n  importAuftraegeCommand: ICommandData = {\n    id: \"importAuftraege\",\n    title: \"lieferschein.mark_auftraege_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_auftragGrid\"];\n\n      const webEvent = new OnImportAuftragInLieferscheinEvent({\n        IdLieferschein: this.form.models.data.$m_Lieferschein.Id,\n        IdAuftragList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportAuftragInLieferschein = await this._webEventService.execute(webEvent, true);\n\n      this.form[\"r_auftragEditPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Lieferschein.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_lieferscheinpositionGrid\"];\n      const lieferscheinPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (lieferscheinPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"lieferschein.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (lieferscheinPosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"lieferschein.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const lieferscheinposition of lieferscheinPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          lieferscheinposition.TypeName,\n          lieferscheinposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = lieferscheinPosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdLieferscheinpositionListEvent({\n        IdLieferscheinpositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const kunde = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_kunde'] .dx-searchbox input\");\n      if (!kunde) {\n        return;\n      }\n\n      kunde.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Lieferschein\",\n      idVorgEntitaetPropertyName: \"IdKunde\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Lieferschein\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"lieferscheinpositionEditPopup\", \"lieferscheingruppeEditPopup\"]\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_LieferscheinpositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"lieferscheinpositionEditPopup\") {\n        form[\"r_lieferscheingruppeGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"lieferscheingruppeEditPopup\") {\n        form[\"r_lieferscheinpositionGrid\"].instance.refresh();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Lieferschein\") {\n        if (args.binding.bindTo === \"IdFirma\") {\n          if (args.value) {\n            const model = form.models.data[\"$m_Lieferschein\"];\n            if (model) {\n              model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n            }\n          }\n        }\n      }\n    });\n  }\n\n  async onKundeChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    const onEvalLieferRechnungsortEvent = new OnEvalLieferRechnungsortEvent({ IdKunde: e.detail.value });\n    const onEvalLiefeRechnungsortData: OnEvalLieferRechnungsort = await this._webEventService.execute(onEvalLieferRechnungsortEvent);\n\n    this.form[\"r_lieferort\"].setGeschaeftpartnerById(onEvalLiefeRechnungsortData.IdLieferort);\n    this.form[\"r_rechnungsort\"].setGeschaeftpartnerById(onEvalLiefeRechnungsortData.IdRechnungsort);\n  }\n  onKundeAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    const idKunde = this.form.models.data.$m_Lieferschein.IdKunde;\n    if (idKunde == this.form.models.data.$m_Lieferschein.IdLieferort) {\n      if (this.form.models.data.$m_Lieferschein.IdLieferortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Lieferschein.IdLieferortAnsprechperson = idPerson;\n      }\n\n      this.onLieferortAnsprechpersonChanged({\n        detail: {\n          value: idPerson\n        }\n      });\n    }\n\n    if (idKunde == this.form.models.data.$m_Lieferschein.IdRechnungsort) {\n      if (this.form.models.data.$m_Lieferschein.IdRechnungsortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Lieferschein.IdRechnungsortAnsprechperson = idPerson;\n      }\n    }\n  }\n  async onLieferortAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    this.form.models.data.$m_Lieferschein.LieferortTelefon = await this._personService.getPersonTelefon(idPerson);\n  }\n  async changeFakturaStatus(fakturaStatus) {\n    await this._webEventService.execute(new OnLieferscheinFakturaStatusAendernEvent({\n      IdLieferschein: this.form.models.data.$m_Lieferschein.Id,\n      Status: fakturaStatus\n    }), true);\n\n    this.form.reloadIfServerHasNewVersion();\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { OnEvalEinkaufArtikeldaten, OnEvalEinkaufArtikeldatenEvent, OnEvalVerkaufArtikeldaten, OnEvalVerkaufArtikeldatenEvent } from \"../../framework-data/events\";\nimport { RestService, WebEventService } from \"../../framework/base/export\";\n\n@autoinject\nexport class ArtikelService {\n  constructor(\n    private _restService: RestService,\n    private _webEventService: WebEventService\n  ) { }\n\n  getArtikelById(id: number): Promise<any> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Artikel/${id}`),\n      getOptions: {\n        expand: {\"SetartikelAngebotsposition\": null}\n      }\n    });\n  }\n  getArtikelByNummer(nummer: string, where: any = null): Promise<any> {\n    const getOptions: any = {\n      where: [\"Nummer\", nummer]\n    };\n\n    if (where) {\n      getOptions.where = [getOptions.where, where];\n    }\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Artikel\"),\n      getOptions: getOptions\n    });\n  }\n  getArtikelBySearchtextEindeutig(searchtext: string, where: any = null): Promise<any[]> {\n    const getOptions: any = {\n      searchtext: searchtext,\n      columns: [\"Id\", \"Bezeichnung\"],\n      take: 2\n    };\n\n    if (where) {\n      getOptions.where = where;\n    }\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Artikel\"),\n      getOptions: getOptions,\n      increaseLoadingCount: true\n    });\n  }\n  getIdHauptlieferant(idArtikel: number): Promise<number> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelLieferant\"),\n      getOptions: {\n        where: [[\"IsHauptlieferant\", true], [\"IdArtikel\", idArtikel]]\n      }\n    }).then((r) => {\n      if (!r || r.length === 0) {\n        return null;\n      }\n\n      return r[0][\"IdLieferant\"];\n    });\n  }\n  getLieferantById(idArtikel: number, idLieferant: number): Promise<any> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelLieferant\"),\n      getOptions: {\n        where: [[\"IdLieferant\", idLieferant], [\"IdArtikel\", idArtikel]]\n      }\n    }).then((r) => {\n      if (!r || r.length === 0) {\n        return null;\n      }\n\n      return r[0];\n    });\n  }\n  async getEinheitbezeichnungByArtikelEinheit(idArtikelEinheit: number): Promise<any> {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelEinheit/\".concat(idArtikelEinheit.toString())),\n      getOptions: {\n        expand: { \"Einheit\": null }\n      }\n    });\n\n    if (!r) {\n      return null;\n    }\n\n    return r.Einheit.Bezeichnung;\n  }\n  async getUmrechner(idArtikelEinheit: number): Promise<number> {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelEinheit/\".concat(idArtikelEinheit.toString())),\n      getOptions: {\n        columns: [\"Id\", \"Umrechner\"]\n      }\n    });\n\n    if (!r || !r.Umrechner) {\n      return 1;\n    }\n\n    return r.Umrechner;\n  }\n  getArtikelartById(id: number): Promise<any> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Artikelart/${id}`),\n    })\n  }\n  async hasArtikelBeistellartikel(idArtikel): Promise<boolean>{\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelStueckliste\"),\n      getOptions: {\n        where: [[\"IdArtikelFW\", idArtikel],[\"IsBeistellartikel\", true]]\n      }\n    });\n\n    if (r.length == 0) {\n      return false;\n    }\n\n    return true;\n  }\n\n  async onArtikeldatenChanged(e: CustomEvent, modelData: any) {\n    // TODO OnEvalVerkaufArtikeldatenEvent Centralized here.\n    const idArtikel = e.detail.value;\n    if (idArtikel == void 0) {\n      return;\n    }\n    const webEvent = new OnEvalVerkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdKunde: modelData.IdFirma || 0\n    });\n\n    const result: OnEvalVerkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    modelData.IdEinheit = result.IdArtikelEinheit;\n  }\n  async doEvalEinkaufArtikeldaten(e: CustomEvent, modelData: any, positionData: any) {\n    //TODO Centralized all the doEvalEinkaufArtikeldaten here.\n    const idArtikel = e.detail.value;\n    if (idArtikel == void 0) {\n      return;\n    }\n\n    const webEvent = new OnEvalEinkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdLieferant: modelData.IdLieferant\n    });\n\n    const result: OnEvalEinkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    positionData.IdEinheit = result.IdArtikelEinheit;\n    positionData.LieferantArtikelNr = result.LieferantArtikelNr;\n    positionData.LieferantArtikelbezeichnung = result.LieferantArtikelbezeichnung;\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"../../framework/base/export\";\n\n@autoinject\nexport class GeschaeftspartnerService {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  getGeschaeftspartnerBasicDataById(idGeschaeftspartner: number): Promise<any> {\n    const getOptions = {\n      columns: [\"Id\", \"Nummer\", \"Telefon\"]\n    };\n\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/Stammdaten/Geschaeftspartner\")}/${idGeschaeftspartner}`,\n      getOptions: getOptions\n    });\n  }\n  getGeschaeftspartnerById(idGeschaeftspartner: number, needsAdresse: boolean = true): Promise<any> {\n    const getOptions: any = {};\n\n    if (needsAdresse) {\n      getOptions.expand = {\n        Adresse: null\n      };\n    }\n\n    return this._restService.get({\n      url: `${this._restService.getWebApiUrl(\"ERP/Stammdaten/Geschaeftspartner\")}/${idGeschaeftspartner}`,\n      getOptions: getOptions,\n      increaseLoadingCount: true\n    });\n  }\n  getGeschaeftspartnerByNummer(nummer: string, needsAdresse: boolean = true, where: any = null): Promise<any> {\n    const getOptions: any = {\n      where: [\"Nummer\", nummer]\n    };\n\n    if (needsAdresse) {\n      getOptions.expand = { Adresse: null };\n    }\n\n    if (where) {\n      getOptions.where = [getOptions.where, where];\n    }\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Geschaeftspartner\"),\n      getOptions: getOptions,\n      increaseLoadingCount: true\n    });\n  }\n  getGeschaeftspartnerBySearchtextEindeutig(searchtext: string, needsAdresse: boolean = true, where: any = null): Promise<any[]> {\n    const getOptions: any = {\n      searchtext: searchtext,\n      take: 2\n    };\n\n    if (needsAdresse) {\n      getOptions.expand = {\n        Adresse: null\n      };\n    }\n\n    if (where) {\n      getOptions.where = where;\n    }\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Geschaeftspartner\"),\n      getOptions: getOptions,\n      increaseLoadingCount: true\n    });\n  }\n  getGeschaeftspartnerBankverbindungList(idGeschaeftspartner: number, where: any = null): Promise<any> {\n    const getOptions: any = {\n      where: [\"IdGeschaeftspartner\", idGeschaeftspartner],\n    };\n\n    if (where) {\n      getOptions.where = [getOptions.where, where];\n    }\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Bankverbindung\"),\n      getOptions: getOptions\n    });\n  }\n}\n","export default __webpack_public_path__ + \"9109c7becdb50b68d7f1a006d9a63693.jpg\";","\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase,\n  ICommandData\n} from \"../../../../framework/forms/export\";\nimport {\n  OnImportLieferscheinInLadelisteEvent,\n  OnImportLieferscheinInLadeliste,\n  OnLadelisteEntferneLieferscheineEvent,\n  OnLadelisteEntferneLieferscheine\n} from \"./../../../../framework-data/events\";\nimport {\n  IdxDataGridComponent\n} from \"../../../interfaces/export\";\nimport {\n  WebEventService,\n  LocalizationService\n} from \"../../../../framework/base/export\";\nimport { DynFelderDataService } from \"../../../services/export\";\nimport { AsyncService } from '../../../../framework/base/services/async-service';\n\n\n@autoinject\n@transient()\nexport class LadelisteEditUtils {\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    private _webEventService: WebEventService,\n    private _localizationService: LocalizationService,\n    private _asyncService: AsyncService\n  ) { }\n\n  form: FormBase;\n\n  showImportLieferscheinPopupCommand: ICommandData = {\n    id: \"showImportLieferscheinPopupCommand\",\n    icon: \"plus\",\n    idCategory: \"ladeliste\",\n    sortIndex: 0,\n    title: \"ladeliste.lieferscheinpos_importieren\",\n    isEnabledExpression: \"models.data.$m_Ladeliste.CanSave && models.data.$m_Ladeliste.Status && models.data.$m_Ladeliste.Status.Typ === 0\",\n    execute: async () => {\n      const validationResult = await this.form.saveIfDirty();\n      if (!validationResult.isValid) {\n        return;\n      }\n\n      const lieferscheinpositionGrid: IdxDataGridComponent = this.form[\"r_lieferscheinGrid\"];\n      if (lieferscheinpositionGrid && lieferscheinpositionGrid.instance) {\n        await this._asyncService.convertToPromise(lieferscheinpositionGrid.instance.deselectAll());\n        lieferscheinpositionGrid.instance.refresh();\n      }\n\n      this.form[\"r_lieferscheinEditPopup\"].instance.show();\n    }\n  }\n  importLieferscheinpositionCommand: ICommandData = {\n    id: \"importLieferscheinpositionCommand\",\n    title: \"ladeliste.mark_pos_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_lieferscheinGrid\"];\n\n      const webEvent = new OnImportLieferscheinInLadelisteEvent({\n        IdLadeliste: this.form.models.data.$m_Ladeliste.Id,\n        IdLieferscheinList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportLieferscheinInLadeliste = await this._webEventService.execute(webEvent, true);\n\n      this.form[\"r_lieferscheinEditPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  }\n  lieferscheinEntfernenCommand: ICommandData = {\n    id: \"lieferscheinEntfernenCommand\",\n    idCategory: \"ladeliste-lieferschein-weiteres\",\n    icon: \"minus-square\",\n    title: \"ladeliste.lieferschein_entfernen\",\n    isEnabledExpression: \"models.data.$m_Ladeliste.CanSave\",\n    sortIndex: 0,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_ladelistenpositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const args: OnLadelisteEntferneLieferscheine = {\n        IdLadeliste: this.form.models.data.$m_Ladeliste.Id,\n        IdLadelistePosList: selectedKeys\n      };\n\n      const webEventResult: OnLadelisteEntferneLieferscheine = await this._webEventService.execute(new OnLadelisteEntferneLieferscheineEvent(args), true);\n      if (selectedKeys.length === 0) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"ladeliste.kein_lieferschein_ausgewaehlt\"), \"error\", 3000);\n        return;\n      }\n\n      return this.form.models.reloadAll();\n    }\n  }\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Ladeliste\"\n    });\n  }\n}\n\n\n","export enum VorbGueltigVon{\n  Min = 0,\n  Heute = 1,\n  Monatsbeginn = 2,\n  Jahresbeginn = 3\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService,\n  LocalizationService\n} from \"../../../../framework/base/export\";\nimport {\n  OnBVArtikelBestellenEvent,\n  OnBVArtikelBestellen,\n  OnBVArtikelIgnorierenEvent,\n  OnBVArtikelIgnorieren,\n  OnBVRechnenEvent,\n  OnBVRechnen\n} from \"../../../../framework-data/events\";\nimport {\n  VerknuepfteEntitaetService\n} from \"../../../services/export\";\nimport {\n  IdxDataGridComponent\n} from \"../../../interfaces/export\";\nimport { LocationService } from '../../../../framework/base/services/location-service';\n\n@autoinject\n@transient()\nexport class BestellvorschlagEditUtils {\n\n  constructor(\n    private localization: LocalizationService,\n    private verknuepfteEntitaet: VerknuepfteEntitaetService,\n    private webEvent: WebEventService,\n    private locationService: LocationService\n  ) { }\n\n  form: FormBase;\n\n  doBestellvorschlagRechnenCommand: ICommandData = {\n    id: \"doBestellvorschlagRechnenCommand\",\n    icon: \"calculator\",\n    sortIndex: 900,\n    idCategory: \"bestellvorschlag\",\n    title: \"bestellvorschlag.bestellvorschlag_rechnen\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnBVRechnenEvent({\n        IdArtikelList: [this.form.models.data.$m_Bestellvorschlag.IdArtikel]\n      });\n\n      const webEventResult: OnBVRechnen = await this.webEvent.execute(webEvent, true);\n      DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.berechn_ausführ_weitergeleitet\"), \"SUCCESS\", 3000);\n\n      this.form.models.reloadAll();\n    }\n  }\n  doArtikelBestellenCommand: ICommandData = {\n    id: \"doArtikelBestellen\",\n    icon: \"plus-circle\",\n    idCategory: \"bestellvorschlag\",\n    isEnabledExpression: \"models.data.$m_Bestellvorschlag.Status.Typ == 0\",\n    sortIndex: 997,\n    title: \"bestellvorschlag.artikel_bestellen\",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnBVArtikelBestellenEvent({\n        IdBestellvorschlagList: [this.form.models.data.$m_Bestellvorschlag.Id],\n        DoAbschliessen: false\n      });\n\n      const webEventResult: OnBVArtikelBestellen = await this.webEvent.execute(webEvent, true);\n      if (!webEventResult) {\n        return;\n      }\n\n      let navigationUrl: string = null;\n\n      if (webEventResult.IdBestellung) {\n        navigationUrl = `ERP/Einkauf/Bestellung/${webEventResult.IdBestellung}`;\n      } else if (webEventResult.IdProdAuftrag) {\n        navigationUrl = `ERP/Produktion/ProdAuftrag/${webEventResult.IdProdAuftrag}`;\n      } else {\n        DevExpress.ui.notify(this.localization.translateOnce(\"bestellvorschlag.bestellung_erstellt\"), \"SUCCESS\", 3000);\n      }\n\n      if (navigationUrl) {\n        if (ctrlKeyPressed) {\n          this.locationService.openWindow(navigationUrl);\n          this.form.models.reloadAll;\n        } else {\n          this.locationService.goTo({\n            url: navigationUrl,\n            clearStack: false\n          });\n        }\n      }\n\n      this.form.models.reloadAll();\n    }\n  }\n  doArtikelBestellenUndVersendenCommand: ICommandData = {\n    id: \"doArtikelBestellenAndVersenden\",\n    icon: \"plus-circle\",\n    idCategory: \"bestellvorschlag\",\n    isEnabledExpression: \"models.data.$m_Bestellvorschlag.Status.Typ == 0\",\n    sortIndex: 998,\n    title: \"bestellvorschlag.artikel_bestellen_und_versenden\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnBVArtikelBestellenEvent({\n        IdBestellvorschlagList: [this.form.models.data.$m_Bestellvorschlag.Id],\n        DoAbschliessen: true\n      });\n\n      const webEventResult: OnBVArtikelBestellen = await this.webEvent.execute(webEvent, true);\n      if (!webEventResult) {\n        return;\n      }\n\n      this.form.models.reloadAll();\n    }\n  }\n  doArtikelIgnorierenCommand: ICommandData = {\n    id: \"doArtikelIgnorieren\",\n    icon: \"ban\",\n    idCategory: \"bestellvorschlag\",\n    sortIndex: 999,\n    title: \"bestellvorschlag.artikel_ignorieren\",\n    isEnabledExpression: \"models.data.$m_Bestellvorschlag.Status.Typ == 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnBVArtikelIgnorierenEvent({\n        IdBestellvorschlagList: [this.form.models.data.$m_Bestellvorschlag.Id]\n      });\n\n      const webEventResult: OnBVArtikelIgnorieren = await this.webEvent.execute(webEvent, true);\n\n      this.locationService.goTo({\n        url: \"ERP/Einkauf/Bestellvorschlag\",\n        clearStack: true\n      });\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n\n  async onBestellvorschlagBedarfClick(e: any) {\n    if (!e.data || !e.data.IdVerknuepfteEntitaet) {\n      return;\n    }\n\n    this.verknuepfteEntitaet\n      .goTo(e.data.IdVerknuepfteEntitaet);\n  }\n}\n","// Module\nvar code = \"<div class=\\\"erp--text-with-leading-label-badge\\\"> <div class=\\\"${data.TypeBezeichnung ? '' : 'erp--empty-badge'}\\\"> ${data.TypeBezeichnung} </div> <div> ${data.CboBezeichnung} </div> </div> \";\n// Exports\nmodule.exports = code;","export default __webpack_public_path__ + \"b6e42ca99366e7454c8cee43e748376a.jpg\";","import {\n  BindingEngine,\n  Expression,\n  Container,\n  TaskQueue,\n  transient\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  Models\n} from \"./models\";\nimport {\n  Functions\n} from \"./functions\";\nimport {\n  Commands\n} from \"./commands\";\nimport {\n  Variables\n} from \"./variables\";\nimport {\n  EditPopups\n} from \"./edit-popups\";\nimport {\n  NestedForms\n} from \"./nested-forms\";\nimport {\n  CommandServerData\n} from \"./command-server-data\";\nimport {\n  DefaultCommandsService,\n  CommandService,\n  FormEventService,\n  PopupInfoService,\n  ToolbarService,\n  RouterService,\n  HistoryService,\n  DialogConfirmService\n} from \"../services/export\";\nimport {\n  WidgetCreatorService\n} from \"../widget-services/widget-creator-service\";\nimport {\n  BindingService,\n  CustomEvent,\n  GlobalizationService,\n  LocalizationService,\n  ErrorService,\n  PermissionService,\n  RestService,\n  WindowService\n} from \"../../base/export\";\nimport {\n  IFormAttachedEventArgs,\n  IFormActivateEventArgs,\n  IFormReadyEventArgs,\n  IFormReactivatedEventArgs,\n  IFormValidatingEventArgs,\n  IFormDetachedEventArgs,\n  IFormBindEventArgs,\n  IFormUnbindEventArgs,\n  IEditorValueChangedEventArgs,\n  IFormSavingEventArgs,\n  IFormSavedEventArgs,\n  IFormDeletedEventArgs\n} from \"../event-args/export\";\nimport { FileService } from '../../base/services/file-service';\nimport { BrowserService } from '../../base/services/browser-service';\nimport { FormInfoService } from '../services/form-info-service';\nimport { IFormDeletingEventArgs } from '../event-args/form-deleting';\n\n@transient()\nexport class FormBaseImport {\n  constructor(\n    public bindingEngine: BindingEngine,\n    public taskQueue: TaskQueue,\n    public eventAggregator: EventAggregator,\n    public rest: RestService,\n    public widgetCreator: WidgetCreatorService,\n    public command: CommandService,\n    public toolbar: ToolbarService,\n    public defaultCommands: DefaultCommandsService,\n    public router: RouterService,\n    public history: HistoryService,\n    public permission: PermissionService,\n    public error: ErrorService,\n    public file: FileService,\n    public models: Models,\n    public nestedForms: NestedForms,\n    public variables: Variables,\n    public functions: Functions,\n    public commands: Commands,\n    public editPopups: EditPopups,\n    public binding: BindingService,\n    public globalization: GlobalizationService,\n    public localization: LocalizationService,\n    public commandServerData: CommandServerData,\n    public popupInfo: PopupInfoService,\n    public formEvent: FormEventService,\n    public browser: BrowserService,\n    public windowService: WindowService,\n    public dialogConfirm: DialogConfirmService,\n    public formInfoService: FormInfoService,\n    public onAttached: CustomEvent<IFormAttachedEventArgs>,\n    public onDetached: CustomEvent<IFormDetachedEventArgs>,\n    public onActivate: CustomEvent<IFormActivateEventArgs>,\n    public onBind: CustomEvent<IFormBindEventArgs>,\n    public onUnbind: CustomEvent<IFormUnbindEventArgs>,\n    public onReady: CustomEvent<IFormAttachedEventArgs>,\n    public onReactivated: CustomEvent<IFormReadyEventArgs>,\n    public onValidating: CustomEvent<IFormValidatingEventArgs>,\n    public onEditorValueChanged: CustomEvent<IEditorValueChangedEventArgs>,\n    public onSaving: CustomEvent<IFormSavingEventArgs>,\n    public onSaved: CustomEvent<IFormSavedEventArgs>,\n    public onDeleting: CustomEvent<IFormDeletingEventArgs>,\n    public onDeleted: CustomEvent<IFormDeletedEventArgs>\n  ) { }\n\n  dispose() {\n    this.onAttached.dispose();\n    this.onDetached.dispose();\n    this.onActivate.dispose();\n    this.onBind.dispose();\n    this.onUnbind.dispose();\n    this.onReady.dispose();\n    this.onReactivated.dispose();\n    this.onValidating.dispose();\n    this.onEditorValueChanged.dispose();\n    this.onSaving.dispose();\n    this.onSaved.dispose();\n    this.onDeleting.dispose();\n    this.onDeleted.dispose();\n\n    this.commandServerData.dispose();\n    this.commands.dispose();\n    this.editPopups.dispose();\n    this.functions.dispose();\n    this.models.dispose();\n    this.nestedForms.dispose();\n    this.variables.dispose();\n  }\n} \n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  AuthorizationService\n} from \"./authorization-service\";\nimport {\n  RestService\n} from \"./rest-service\";\n\n@autoinject\nexport class FileService {\n  constructor(\n    private _authorizationService: AuthorizationService,\n    private _restService: RestService\n  ) {}\n\n  getDownloadUrl(key: string) {\n    if (!key) {\n      return null;\n    }\n    \n    let authKey = this._authorizationService.getAuthorizationKey();\n    if (authKey) {\n      authKey = `&auth-token=${encodeURIComponent(authKey)}`;\n    }\n\n    return this._restService.getApiUrl(`base/File/Download/${key}${authKey}`);\n  }\n  getInlineUrl(key: string) {\n    if (!key) {\n      return null;\n    }\n    \n    let authKey = this._authorizationService.getAuthorizationKey();\n    if (authKey) {\n      authKey = `&auth-token=${encodeURIComponent(authKey)}`;\n    }\n\n    return this._restService.getApiUrl(`base/File/Inline/${key}${authKey}`);\n  }\n  download(key: string) {\n    const downloadUrl = this.getDownloadUrl(key);\n    window.open(downloadUrl, \"_blank\");\n  }\n  inline(key: string) {\n    const downloadUrl = this.getInlineUrl(key);\n    window.open(downloadUrl, \"_blank\");\n  }\n  async upload(file: File, increaseLoadingCount: boolean = true): Promise<string> {\n    const formData = new FormData();\n    formData.append(\"file\", file);\n\n    const r = await this._restService.post({\n      url: this._restService.getApiUrl(\"base/File/Upload\"),\n      data: formData, \n      increaseLoadingCount: increaseLoadingCount\n    });\n\n    if (!r || !r.length) {\n      return null;\n    }\n\n    return r[0];\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport * as ExcelJS from \"exceljs\";\nimport { saveAs } from \"file-saver\";\n\n@autoinject\nexport class ExcelExportService {\n  constructor() {}\n\n  async exportDataGrid(options: IExcelExportDataGridOptions) {\n    this.onExporting(options);\n    this.prepareOptions(options);\n\n    await DevExpress.excelExporter.exportDataGrid(options);\n    await this.onExported(options);\n  }\n  async exportPivotGrid(options: IExcelExportPivotGridOptions) {\n    this.onExporting(options);\n    this.prepareOptions(options);\n\n    await DevExpress.excelExporter.exportPivotGrid(options);\n    await this.onExported(options);\n  }\n\n  private prepareOptions(options: IExcelExportBaseOptions) {\n    if (!options.workbookName) {\n      options.workbookName = \"export\";\n    }\n\n    if (!options.workbook) {\n      options.workbook = new ExcelJS.Workbook();\n    }\n\n    if (!options.worksheetName) {\n      options.worksheetName = \"Daten\";\n    }\n\n    if (!options.worksheet) {\n      options.worksheet = options.workbook.addWorksheet(options.worksheetName);\n    }\n\n    if (options.saveAndOpenWorkbookAfterExport == void(0)) {\n      options.saveAndOpenWorkbookAfterExport = true;\n    }\n  }\n  private async onExporting(options: IExcelExportBaseOptions) {\n    if (options.exporting) {\n      options.exporting(options);\n    }\n  }\n  private async onExported(options: IExcelExportBaseOptions) {\n    if (options.saveAndOpenWorkbookAfterExport) {\n      if (options.saving) {\n        options.saving(options);\n      }\n\n      const buffer = await options.workbook.xlsx.writeBuffer();\n      \n      saveAs(\n        new Blob([buffer], { type: \"application/octet-stream\" }),\n        options.workbookName.concat(\".xlsx\"));\n    }\n  }\n}\n\ninterface IExcelExportBaseOptions extends DevExpress.excelExporter.ExcelExportBaseProps {\n  workbook?: ExcelJS.Workbook;\n  workbookName?: string;\n  worksheetName?: string;\n  saveAndOpenWorkbookAfterExport?: boolean;\n\n  exporting?: {(options: IExcelExportBaseOptions): void};\n  saving?: {(options: IExcelExportBaseOptions): void};\n}\nexport interface IExcelExportDataGridOptions extends DevExpress.excelExporter.ExcelExportDataGridProps, IExcelExportBaseOptions {\n}\nexport interface IExcelExportPivotGridOptions extends DevExpress.excelExporter.ExcelExportPivotGridProps, IExcelExportBaseOptions {\n}","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport { autoinject } from \"aurelia-framework\";\nimport { NotificationTyp } from \"./erp/enumerations/export\";\nimport { IStartupInfo } from \"./erp/interfaces/export\";\nimport { DxCustomizeService } from \"./erp/services/dx-customize-service\";\nimport { FilterService, FormExtenderService, HeaderCommandService, KonditionService, SearchResultSearchService, StartupService, StatusService, TemplateRegisterService, ValidationExService, WaehrungService } from \"./erp/services/export\";\nimport { ModuleService } from \"./erp/services/module-service\";\nimport { TagService } from \"./erp/services/tag-service\";\nimport { WidgetExtenderService } from \"./erp/services/widget-extender-service\";\nimport { FileService, LocalizationService, PermissionService, RestService, ShortcutService, StyleService } from \"./framework/base/export\";\nimport { LocationService } from \"./framework/base/services/location-service\";\nimport { HeaderService, LayoutService } from \"./framework/default-ui/services/export\";\nimport { HistoryService, IRoute, LayoutService as FormLayoutService, RouterService, RoutesCreatorService } from \"./framework/forms/export\";\n\nimport * as routesForm from \"./framework-data/forms.json\";\nimport * as routesStructure from \"./route-info/structure.json\";\n\n\n@autoinject\nexport class App {\n  private _routes: IRoute[] = [];\n  private _startupInfo: IStartupInfo;\n  private _avatarUrlChangedSubscription: Subscription;\n  private _headerSearchSubscription: Subscription;\n  private _headerShowSearchPopupSubscription: Subscription;\n  private _startupInfoLoadedSubscription: Subscription;\n  private _mandantSwitchedSubscription: Subscription;\n  private _mandantChangedSubscription: Subscription;\n  private _htmlEditorMentionSubscription: Subscription;\n\n  constructor(\n    private _router: RouterService,\n    private _historyService: HistoryService,\n    private _routesCreator: RoutesCreatorService,\n    private _header: HeaderService,\n    private _headerCommand: HeaderCommandService,\n    private _layout: LayoutService,\n    private _startup: StartupService,\n    private _file: FileService,\n    private _searchResultSearch: SearchResultSearchService,\n    private _shortcut: ShortcutService,\n    private _localization: LocalizationService,\n    private _status: StatusService,\n    private _kondition: KonditionService,\n    private _waehrung: WaehrungService,\n    private _templateRegister: TemplateRegisterService,\n    private _formExtender: FormExtenderService,\n    private _filter: FilterService,\n    private _style: StyleService,\n    private _validationEx: ValidationExService,\n    private _eventAggregator: EventAggregator,\n    private _locationService: LocationService,\n    private _formLayoutService: FormLayoutService,\n    private _widgetExtenderService: WidgetExtenderService,\n    private _permissionService: PermissionService,\n    private _moduleService: ModuleService,\n    private _restService: RestService,\n    private _dxCustomizeService: DxCustomizeService,\n    private _tagService: TagService) {\n    this.configureHeader();\n    this.registerShortcuts();\n\n    _templateRegister.register();\n  }\n\n  async activate() {\n    await this.loadRoutes();\n    await this._startup.loadStartupInfo();\n    await this.loadMandantDaten();\n    await this.startupInfoLoaded();\n\n    this._permissionService.allowAllPermission = true;\n  }\n  attached() {\n    this.registerRoutes();\n    this.registerAvatarUrlChanged();\n    this.registerStartupInfoLoaded();\n    this.registerHeaderSearch();\n    this.registerMandantSwitched();\n    this.registerMandantChanged();\n    this.registerHtmlEditorMention();\n\n    //this.memoryTest();\n  }\n  detached() {\n    if (this._avatarUrlChangedSubscription) {\n      this._avatarUrlChangedSubscription.dispose();\n      this._avatarUrlChangedSubscription = null;\n    }\n    if (this._startupInfoLoadedSubscription) {\n      this._startupInfoLoadedSubscription.dispose();\n      this._startupInfoLoadedSubscription = null;\n    }\n    if (this._headerSearchSubscription) {\n      this._headerSearchSubscription.dispose();\n      this._headerSearchSubscription = null;\n    }\n    if (this._headerShowSearchPopupSubscription) {\n      this._headerShowSearchPopupSubscription.dispose();\n      this._headerShowSearchPopupSubscription = null;\n    }\n    if (this._mandantSwitchedSubscription) {\n      this._mandantSwitchedSubscription.dispose();\n      this._mandantSwitchedSubscription = null;\n    }\n    if (this._mandantChangedSubscription) {\n      this._mandantChangedSubscription.dispose();\n      this._mandantChangedSubscription = null;\n    }\n    if (this._htmlEditorMentionSubscription) {\n      this._htmlEditorMentionSubscription.dispose();\n      this._htmlEditorMentionSubscription = null;\n    }\n  }\n\n  private async loadRoutes() {\n    const routes = this._routesCreator.createRoutes(\n      <any>routesStructure,\n      routesForm,\n      (r) => {\n        return this._moduleService.canActivateModule(r.moduleId);\n      });\n\n    const routeAuswertung = routes.find(r => r.caption == \"routes.auswertungen\");\n    if (routeAuswertung) {\n      const auswertungList = await this._restService.get({\n        url: this._restService.getWebApiUrl(\"Framework/Report/Definition\"),\n        getOptions: {\n          where: [\"IsVisible\", true],\n          columns: [\"Id\", \"Name\"]\n        }\n      });\n\n      for (let auswertung of auswertungList) {\n        this._localization.addLocalizationNeutral(\"auswertung\", auswertung.Id, auswertung.Name);\n\n        const route: IRoute = {\n          caption: \"auswertung.\".concat(auswertung.Id),\n          canActivate: () => true,\n          navigation: {},\n          moduleId: \"erp/views/statistik/auswertung/auswertung-form\",\n          route: \"ERP/Statistik/Auswertung/\".concat(auswertung.Id)\n        };\n        routeAuswertung.children.push(route);\n      }\n    }\n\n    this._routes = this.orderRoutes(routes);\n  }\n  private registerRoutes() {\n    if (this._startup.startupInfo.Benutzer.IsCloudAdministrator) {\n      this._router.registerRoutes(this._routes, \"ERP/Ticket/Ticket\");\n    } else {\n      this._router.registerRoutes(this._routes, \"ERP/Dashboard\");\n    }\n  }\n  private registerAvatarUrlChanged() {\n    this._avatarUrlChangedSubscription = this._eventAggregator\n      .subscribe(\n        NotificationTyp.benutzerAvatarUrlChanged,\n        (data) => {\n          this._header.avatarUrl = this._file.getDownloadUrl(data);\n        });\n  }\n  private registerStartupInfoLoaded() {\n    this._startupInfoLoadedSubscription = this._eventAggregator.subscribe(NotificationTyp.startupInfoLoaded, (r) => {\n      this.startupInfoLoaded(r.autoLoadMandantDaten);\n    });\n  }\n  private registerHeaderSearch() {\n    this._header.isSearchRegistered = true;\n\n    this._headerSearchSubscription = this._eventAggregator.subscribe(\"header:search\", e => {\n      this._searchResultSearch.show(\n        (urlToNavigate: string, customOptions?: any) => {\n          this._locationService.goTo({\n            url: urlToNavigate,\n            clearStack: true,\n            customOptions: customOptions\n          });\n        },\n        () => { },\n        { searchValue: e.text }\n      );\n    });\n    this._headerShowSearchPopupSubscription = this._eventAggregator.subscribe(\"header:show-search-popup\", () => {\n      this._searchResultSearch.show(\n        (urlToNavigate: string, customOptions?: any) => {\n          this._locationService.goTo({\n            url: urlToNavigate,\n            clearStack: true,\n            customOptions: customOptions\n          });\n        },\n        () => { });\n    });\n  }\n  private registerMandantSwitched() {\n    this._mandantSwitchedSubscription = this._eventAggregator.subscribe(NotificationTyp.mandantSwitched, async () => {\n      await this._startup.loadStartupInfo(true);\n\n      this._eventAggregator.publish(NotificationTyp.aufgabeAnzahlChanged);\n      this._eventAggregator.publish(NotificationTyp.benachrichtigungAnzahlChanged);\n      this._eventAggregator.publish(NotificationTyp.briefAnzahlChanged);\n      this._eventAggregator.publish(NotificationTyp.mailAnzahlChanged);\n\n      this._historyService.clearAndGoToFallback();\n    });\n  }\n  private registerMandantChanged() {\n    this._mandantChangedSubscription = this._eventAggregator.subscribe(NotificationTyp.mandantChanged, async (e) => {\n      if (this._startup.startupInfo.Mandant.Id != e.IdMandant) {\n        return;\n      }\n\n      await this._startup.loadStartupInfo(true);\n    });\n  }\n  private registerHtmlEditorMention() {\n    this._htmlEditorMentionSubscription = this._eventAggregator.subscribe(\"html-editor:mention\", (e) => {\n      if (e.mentionKey == \"benutzer\") {\n        e.mention = <DevExpress.ui.dxHtmlEditorMention>{\n          dataSource: new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n            cacheRawData: true,\n            loadMode: \"raw\",\n            load: async () => {\n              return this._restService.get({\n                url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Benutzer\"),\n                getOptions: {\n                  columns: [\"Id\", \"Name\"],\n                  orderBy: [{ columnName: \"Name\", sortOrder: 0 }],\n                  customs: [{\n                    key: \"HtmlMention\",\n                    value: e.mentionKey\n                  }]\n                }\n              });\n            }\n          })),\n          displayExpr: \"Name\",\n          searchExpr: \"Name\",\n          valueExpr: \"Id\"\n        };\n      }\n    });\n  }\n  private async loadMandantDaten(): Promise<any> {\n    await this._status.reload();\n    await this._waehrung.reload();\n    await this._kondition.reload();\n    await this._filter.reload();\n  }\n  private configureHeader() {\n    this._header.text = \"TIP Technik und Informatik Partner GmbH & Co KG\";\n  }\n  private registerShortcuts() {\n    this._shortcut.bindShortcut(\"n g p\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Stammdaten/Geschaeftspartner/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n p e\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Stammdaten/Person/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n p r\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Stammdaten/Projekt/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n a n\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Verkauf/Angebot/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n a u\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Verkauf/Auftrag/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n r e\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Verkauf/Faktura/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n b s\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Einkauf/Bestellung/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n w u\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Einkauf/Warenuebernahme/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n e r\", () => {\n      this._locationService.goTo({\n        url: \"ERP/Einkauf/Eingangsrechnung/0\",\n        clearStack: true\n      });\n    }, false);\n\n    this._shortcut.bindShortcut(\"n b r\", \"$addBrief\", false);\n\n    this._shortcut.bindShortcut(\"n a g\", \"$addAufgabe\", false);\n\n    this._shortcut.bindShortcut(\"n n o\", \"$addNotiz\", false);\n  }\n  private orderRoutes(routes: IRoute[]): IRoute[] {\n    const dashboard = routes.find(c => c.route == \"ERP/Dashboard\");\n    if (!dashboard) {\n      return routes;\n    }\n\n    const dashboardIndex = routes.indexOf(dashboard);\n    routes.splice(dashboardIndex, 1);\n    routes.splice(0, 0, dashboard);\n\n    return routes;\n  }\n  private async startupInfoLoaded(autoLoadMandantDaten?: boolean) {\n    const startupInfo = this._startup.startupInfo;\n    this._startupInfo = startupInfo;\n\n    this._moduleService.resetBerechtModules();\n\n    if (startupInfo.Mandant.Bezeichnung) {\n      this._header.text = startupInfo.Mandant.Bezeichnung;\n      startupInfo.Benutzer.Benutzername\n    }\n    if (startupInfo.Benutzer.AvatarDownloadKey) {\n      this._header.avatarUrl = this._file.getDownloadUrl(startupInfo.Benutzer.AvatarDownloadKey);\n    }\n    \n    if (startupInfo.Mandant.Logo) {\n      this._header.setLogoUrl(this._file.getDownloadUrl(startupInfo.Mandant.Logo));\n    } else {\n      this._header.setLogoUrl(null);\n    }\n\n    this._layout.themeColor = startupInfo.Mandant.Farbe || \"#396394\";\n    this._style.addStyles(\"erp--filter\", [\n      {\n        name: \".filter-container .filter-element-bez.filter-element-aktiv\",\n        properties: [{\n          propertyName: \"background-color\",\n          value: this._layout.themeColor\n        }]\n      }\n    ]);\n\n    this._headerCommand.initialize();\n    this._layout.activateTheme();\n\n    await this._formLayoutService.initializeLayouts();\n\n    if (autoLoadMandantDaten) {\n      await this.loadMandantDaten();\n    }\n  }\n\n  private memoryTest() {\n    let isEdit = false;\n    let count = 0;\n    const switchForm = () => {\n      count++;\n      if (window[\"s\"]) {\n        return;\n      }\n\n      console.log(count);\n\n      if (isEdit) {\n        this._locationService.goTo({\n          url: \"ERP/Stammdaten/Artikel\",\n          clearStack: true\n        });\n      } else {\n        this._locationService.goTo({\n          url: \"ERP/Stammdaten/Artikel/1789\",\n          clearStack: true\n        });\n      }\n\n      isEdit = !isEdit;\n      setTimeout(switchForm.bind(this), 500);\n    }\n\n    setTimeout(switchForm.bind(this), 1500);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./framework/default-ui/views/container/container\\\"></require> <require from=\\\"./erp/elements/search-result/search-result\\\"></require> <require from=\\\"./erp/elements/geschaeftspartner-search-result/geschaeftspartner-search-result\\\"></require> <require from=\\\"./erp/elements/artikel-search-result/artikel-search-result\\\"></require> <require from=\\\"./erp/elements/header-commands/header-commands\\\"></require> <require from=\\\"./erp/elements/dms-viewer/dms-viewer\\\"></require> <require from=\\\"./erp/elements/drucken-command/drucken-command\\\"></require> <require from=\\\"./erp/elements/sprache-uebersetzung/sprache-uebersetzung\\\"></require> <require from=\\\"./erp/elements/custom-edit-popup-container/custom-edit-popup-container\\\"></require> <require from=\\\"./erp/elements/form-commands/form-commands.html\\\"></require> <require from=\\\"./erp/elements/version-check/version-check\\\"></require> <require from=\\\"./erp/elements/popup-hider/popup-hider\\\"></require> <require from=\\\"./erp/elements/aendprot/aendprot\\\"></require> <require from=\\\"./erp/elements/statistik-verkauf-detail/statistik-verkauf-detail\\\"></require> <require from=\\\"./erp/elements/statistik-einkauf-detail/statistik-einkauf-detail\\\"></require> <require from=\\\"./erp/elements/dyn-feld-wert-vorlage/dyn-feld-wert-vorlage\\\"></require> <require from=\\\"./erp/elements/validation-info/validation-info\\\"></require> <require from=\\\"./framework/forms/elements/web-socket/web-socket\\\"></require> <require from=\\\"./framework/forms/elements/grid-layout-columns/grid-layout-columns\\\"></require> <container></container> <search-result></search-result> <geschaeftspartner-search-result></geschaeftspartner-search-result> <artikel-search-result></artikel-search-result> <header-commands></header-commands> <dms-viewer></dms-viewer> <web-socket></web-socket> <drucken-command></drucken-command> <custom-edit-popup-container></custom-edit-popup-container> <sprache-uebersetzung></sprache-uebersetzung> <form-commands></form-commands> <grid-layout-columns></grid-layout-columns> <version-check></version-check> <popup-hider></popup-hider> <statistik-verkauf-detail></statistik-verkauf-detail> <statistik-einkauf-detail></statistik-einkauf-detail> <dyn-feld-wert-vorlage></dyn-feld-wert-vorlage> <aendprot></aendprot> <validation-info></validation-info> </template> \";\n// Exports\nmodule.exports = code;","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./benutzerstatus-list-form.ts\"));\n\t}, \"arbeitszeit\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./saldenuebersicht-list-form.ts\"));\n\t}, \"arbeitszeit\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./tagesbuchungen-list-form.ts\"));\n\t}, \"arbeitszeit\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dashboard-designer-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dashboard-designer-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamische-entitaet-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamische-entitaet-element-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamische-entitaet-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamisches-feld-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamisches-feld-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamisches-feld-vorlage-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamisches-feld-zu-entitaet-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dynamisches-feld-zu-report-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsdefinition-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsdefinition-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsfeld-kopf-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsfeld-pos-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsversion-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./berechnungsversion-konditionsfeld-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./produktion-fertigware-edit-form.ts\"));\n\t}, \"produktion\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./produktion-rohware-edit-form.ts\"));\n\t}, \"produktion\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./produktion-stueckliste-edit-form.ts\"));\n\t}, \"produktion\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./produktionsauftrag-edit-form.ts\"));\n\t}, \"produktion\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./produktionsauftrag-list-form.ts\"));\n\t}, \"produktion\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./anfrageart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./anfrageart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./angebotsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./angebotsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./anrede-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./anrede-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelgruppe-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelgruppe-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelkategorie-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./artikelkategorie-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./auftragsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./auftragsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./auswertung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./auswertung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./benutzer-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./benutzer-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./benutzerrolle-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./benutzerrolle-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./bestellungsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./bestellungsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./briefvorlage-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./briefvorlage-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dokumentenart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dokumentenart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./dokumentenart-zu-entitaet-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./druck-einstellung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./druck-einstellung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./drucktext-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./drucktext-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./einheit-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./einheit-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./faktura-sammelart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./faktura-sammelart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filiale-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filiale-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filiale-zu-land-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filterelement-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filtergruppe-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./filtergruppe-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./firma-zahlungsverkehr-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./firma-zahlungsverkehr-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./bankverbindung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./firma-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./firma-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./oss-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuerinformation-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuertext-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./geschaeftspartnerart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./geschaeftspartnerart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./intercompany-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./intercompany-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./kalender-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./kalender-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./kassa-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./kassa-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lager-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lager-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lagerbuchungsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lagerbuchungsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./land-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./land-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lieferbedingung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./lieferbedingung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./transportkosten-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-import-def-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-import-def-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-server-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-server-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-vorlage-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mail-vorlage-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mandant-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./mandant-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./newsletter-anmeldung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./newsletter-anmeldung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./notiztyp-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./notiztyp-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./nummernkreis-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./nummernkreis-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./papierkorb-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./personenaktion-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./personenaktion-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./personenfunktion-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./personenfunktion-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./positionsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./positionsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projekt-taetigkeit-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projektart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projektart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./provisionsmodell-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./provisionsmodell-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./qr-label-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./reklamationsgrund-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./reklamationsgrund-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./skript-item-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./skript-item-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./spediteur-dienstleistung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./spediteur-dienstleistung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./spediteur-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./spediteur-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./sprache-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./sprache-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./status-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./status-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./status-zu-entitaet-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuercode-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuercode-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuersatz-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./steuersatz-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./taetigkeit-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./taetigkeit-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./taetigkeitenart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./taetigkeitenart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./tag-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./tag-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./tag-zu-entitaet-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./textbaustein-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./textbaustein-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./uid-validierung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./uid-validierung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./validierung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./validierung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./vertreter-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./vertreter-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./vertreter-zu-provisionsmodell-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./waehrung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./waehrung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./waehrungskurs-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zahlungsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zahlungsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zahlungsbedingung-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zahlungsbedingung-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zuschlagsart-edit-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zuschlagsart-list-form.ts\"));\n\t}, \"stammdaten\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./auswertung-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-artikel-list-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-auftrag-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-bestellungen-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-ein-auszahlungs-rechnung-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-faktura-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-geschaeftspartner-person-list-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-gruppe-list-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-kassa-info-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-kunde-list-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-lagerbestand-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-lagerbewegungen-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-projektzeit-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-reklamationen-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-webshop-login-log-list-form.ts\"));\n\t}, \"Statistik\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./statistik-list-form.ts\"));\n\t}, \"auswertungen\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./ticket-edit-form.ts\"));\n\t}, \"ticket\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./ticket-list-form.ts\"));\n\t}, \"ticket\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./version-list-form.ts\"));\n\t}, \"ticket\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./zahlung-edit-form.ts\"));\n\t}, \"verkauf\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./webshop-seite-edit-form.ts\"));\n\t}, \"webshop\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./webshop-seite-list-form.ts\"));\n\t}, \"webshop\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projekt-taetigkeit-buchung-edit-form.ts\"));\n\t}, \"projektzeit\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projekt-taetigkeit-buchung-list-form.ts\"));\n\t}, \"projektzeit\");\n}","module.exports = function(cb) {\n\trequire.ensure([], function(require) {\n\t\tcb(require(\"!!../../../../../node_modules/awesome-typescript-loader/dist/entry.js!./projektplanung-list-form.ts\"));\n\t}, \"projektzeit\");\n}","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"../../framework/base/export\";\n\n@autoinject\nexport class FirmaService {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  async getIdFirmaVorbelegung() {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\"],\n        where: [\"IsVorbelegung\", true]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return r[0].Id;\n    } else {\n      return null;\n    }\n  }\n\n  async getFirmaBezeichnungById(idFirma: number){\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Firma/${idFirma}`)\n    });\n\n    if (r) {\n      return r.Bezeichnung;\n    } else {\n      return null;\n    }\n  }\n\n  async getFirmaSteuerInformationListByIdFirma(idFirma: number) {\n    return await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/FirmaSteuerinformation\"),\n      getOptions: {\n        where: [\"IdFirma\", idFirma]\n      }\n    });\n  }\n\n  async getWaehrungIdOfFirma(idFirma: number): Promise<number> {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Firma/${idFirma}`)\n    });\n\n    if (r) {\n      return r.IdWaehrung;\n    } else {\n      return null;\n    }\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  OnBelegImportFreigebenEvent, OnDatabaseRunningQueryRequestEvent, OnDatabaseRunningQueryRequest, OnDatabaseUpdateStatisticsEvent, OnDatabaseKillSessionEvent\n} from \"../../../../framework-data/events\";\nimport { WebEventService } from '../../../../framework/base/services/web-event-service';\n\n@autoinject\n@transient()\nexport class DatenbankInfoListUtils {\n  constructor(\n    private webEvent: WebEventService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onAttached.register(r => {\n      this.loadQueries();\n      return Promise.resolve();\n    })\n  }\n\n  doAktualisierenCommand: ICommandData = {\n    id: \"doAktualisieren\",\n    idCategory: \"datenbank-info\",\n    title: \"datenbank-info.aktualisieren\",\n    sortIndex: 10,\n    icon: \"refresh\",\n    execute: () => {\n      this.loadQueries();\n    }\n  }\n  doKillSessionsCommand: ICommandData = {\n    id: \"doKillSessions\",\n    idCategory: \"datenbank-info\",\n    title: \"datenbank-info.kill-sessions\",\n    icon: \"ban\",\n    sortIndex: 15,\n    execute: async () => {\n      const grid: DevExpress.ui.dxDataGrid = this.form[\"r_queryGrid\"].instance;\n      const sessionIdList = grid.getSelectedRowsData().map(c => c.SessionId);\n\n      await this.webEvent.execute(\n        new OnDatabaseKillSessionEvent({\n          SessionIdList: sessionIdList\n        }), \n        true);\n\n      this.loadQueries();\n    }\n  }\n  doStatistikenAktualisierenCommand: ICommandData = {\n    id: \"doStatistikenAktualisieren\",\n    idCategory: \"datenbank-info\",\n    title: \"datenbank-info.statistik-aktualisieren\",\n    icon: \"calculator\",\n    sortIndex: 20,\n    execute: async () => {\n      await this.webEvent.execute(\n        new OnDatabaseUpdateStatisticsEvent({}), \n        true);\n\n      this.loadQueries();\n    }\n  }\n\n  private async loadQueries() {\n    const r: OnDatabaseRunningQueryRequest = await this.webEvent.execute(\n      new OnDatabaseRunningQueryRequestEvent({}), \n      true);\n\n    const grid: DevExpress.ui.dxDataGrid = this.form[\"r_queryGrid\"].instance;\n    grid.option(\"dataSource\", r.DatabaseQueryList);\n  }\n}\n","export enum VorbGueltigBis{\n  Monatsende = 0,\n  Jahresende = 1,\n  Max = 2\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { IHtmlEditorOptions } from '../widget-options/html-editor-options';\n\nimport * as Quill from \"devextreme-quill\";\nimport { ICommandData } from '../interfaces/export';\nimport { CommandService } from './command-service';\nimport { ScopeContainer, BindingService } from '../../base/export';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nconst Embed = Quill.import(\"blots/embed\");\n\nexport class CustomTabBlot extends Embed {\n  static create() {\n    const node = super.create();\n    node.innerText = \"\\t\";\n\n    return node;\n  }\n  static value(node) {\n    return {\n      value: node.innerText || null,\n    };\n  }\n\n  static blotName = \"custom-tab\";\n  static tagName = \"span\";\n  static className = \"t--html-custom-tab\";\n}\n\nQuill.register(\"formats/custom-tab\", CustomTabBlot);\n\n@autoinject\nexport class HtmlEditorService {\n  constructor(\n    private commandService: CommandService,\n    private bindingService: BindingService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  defaultHeaders = [1, 2];\n\n  configureHtmlEditor(scopeContainer: ScopeContainer, options: IHtmlEditorOptions, editorOptions: DevExpress.ui.dxHtmlEditorOptions) {\n    let onInitialized = editorOptions.onInitialized;\n    let onContentReady = editorOptions.onContentReady;\n    let onDisposing = editorOptions.onDisposing;\n    let htmlEditor: DevExpress.ui.dxHtmlEditor;\n\n    editorOptions.onInitialized = (e) => {\n      if (onInitialized) {\n        onInitialized(e);\n      }\n\n      htmlEditor = e.component;\n    }\n    editorOptions.onContentReady = (e) => {\n      if (onContentReady) {\n        onContentReady(e);\n      }\n\n      const quill = e.component.getQuillInstance();\n      this.configurePasteWithoutFont(quill);\n      this.rebindTabKey(quill);\n\n    };\n    editorOptions.onDisposing = (e) => {\n      if (onDisposing) {\n        onDisposing(e);\n        onDisposing = null;\n      }\n\n      htmlEditor = null;\n    }\n\n    if (options.height) {\n      editorOptions.height = options.height;\n    } else {\n      editorOptions.height = \"150px\";\n    }\n\n    if (options.showToolbar == void (0)) {\n      options.showToolbar = true;\n    }\n\n    if (options.mentionKey) {\n      const args = {\n        mentionKey: options.mentionKey,\n        mention: null\n      };\n\n      this.eventAggregator.publish(\"html-editor:mention\", args);\n\n      if (args.mention) {\n        editorOptions.mentions = [args.mention];\n      }\n    }\n\n    if (options.showToolbar) {\n      const toolbarItems: any[] = [\"bold\", \"italic\", \"underline\", \"orderedList\", \"bulletList\", \"link\"];\n\n      if (options.allowImages) {\n        this.addImageButton(toolbarItems, () => htmlEditor);\n      }\n      if (options.allowHeaders) {\n        toolbarItems.push({\n          formatName: \"header\",\n          formatValues: (<any[]>[false]).concat(...this.defaultHeaders)\n        });\n      }\n      if (options.allowColors) {\n        toolbarItems.push(\"color\", \"background\");\n      }\n      if (options.variables != void (0)) {\n        editorOptions.variables = {\n          dataSource: options.variables.split(\";\").filter(c => !!c)\n        };\n\n        if (options.variableEscapeChars) {\n          editorOptions.variables.escapeChar = options.variableEscapeChars.split(\";\");\n        } else {\n          editorOptions.variables.escapeChar = [\"${\", \"}\"]\n        }\n\n        toolbarItems.push(\"variable\");\n      }\n      if (options.commandData && options.commandData.length > 0) {\n        this.addCommandDataToToolbar(scopeContainer, toolbarItems, options.commandData, () => htmlEditor);\n      }\n\n      toolbarItems.push(\"clear\");\n\n      editorOptions.toolbar = {\n        items: toolbarItems\n      };\n    }\n  }\n\n  private configurePasteWithoutFont(quill: any) {\n    quill.clipboard.addMatcher(Node.ELEMENT_NODE, (node, delta) => {\n      delta.ops = delta.ops.map(op => {\n        const attributes = Object.assign({}, op.attributes || {});\n        delete attributes.font;\n        delete attributes.size;\n\n        return {\n          insert: op.insert,\n          attributes: attributes\n        };\n      });\n\n      return delta;\n    });\n  }\n  private rebindTabKey(quill) {\n    const tabBindings = quill.keyboard.bindings[\"tab\"];\n    if (tabBindings) {\n      for (let i = 0; i < tabBindings.length; i++) {\n        const tabBinding = tabBindings[i];\n        if (tabBinding.format) {\n          continue;\n        }\n\n        tabBindings.splice(i, 1);\n        i--;\n      }\n    }\n\n    quill.keyboard.addBinding({\n      key: \"tab\",\n    }, (r, e) => {\n      quill.insertEmbed(r.index, \"custom-tab\", \"\");\n      quill.setSelection(r.index + 1)\n    });\n  }\n  private addImageButton(toolbarItems: any[], getHtmlEditor: { (): DevExpress.ui.dxHtmlEditor }) {\n    //TODO DXUPDATE\n    toolbarItems.push({\n      widget: \"dxButton\",\n      options: <DevExpress.ui.dxButtonOptions>{\n        icon: \"image\",\n        hint: \"Bild einfügen\",\n        stylingMode: \"text\",\n        onClick: (e) => {\n          e.event.stopPropagation();\n          e.event.preventDefault();\n\n          const htmlEditor = getHtmlEditor();\n          if (!htmlEditor) {\n            return;\n          }\n\n          const editor: any = htmlEditor;\n          if (!editor._imgUpload) {\n            const input = document.createElement(\"input\");\n            input.type = \"file\";\n            input.accept = \"image/png, image/gif, image/jpeg\";\n            input.hidden = true;\n\n            input.addEventListener(\"change\", (e: any) => {\n              const files = e.target.files;\n              if (!files || files.length == 0 || !files[0]) {\n                return;\n              }\n\n              let reader = new FileReader();\n              reader.onload = (x: any) => {\n                const selection = htmlEditor.getSelection();\n                const pasteIndex = selection ? selection.index : htmlEditor.getLength();\n                htmlEditor.insertEmbed(pasteIndex, \"extendedImage\", { src: x.target.result });\n                htmlEditor.setSelection(pasteIndex + 1, 0);\n                e.target.value = \"\";\n              };\n              reader.readAsDataURL(e.target.files[0]);\n            });\n\n            editor._imgUpload = input;\n            htmlEditor.element().append(input);\n          }\n\n          editor._imgUpload.click();\n        }\n      }\n    });\n  }\n  private addCommandDataToToolbar(scopeContainer: ScopeContainer, toolbarItems: any[], commandData: ICommandData[], getHtmlEditor: { (): DevExpress.ui.dxHtmlEditor }) {\n    for (let item of commandData) {\n\n      toolbarItems.push({\n        widget: \"dxButton\",\n        options: <DevExpress.ui.dxButtonOptions>{\n          icon: item.icon ? \"fa fa-\".concat(item.icon) : null,\n          text: item.title,\n          hint: item.tooltip,\n          stylingMode: \"text\",\n          disabled: !this.commandService.isEnabled(item),\n          visible: this.commandService.isVisible(item),\n          _commandData: item,\n          onInitialized: (e) => {\n            if (item.isEnabledExpression) {\n              this.bindingService.observe({\n                scopeContainer: scopeContainer,\n                expression: item.isEnabledExpression,\n                callback: (newValue) => {\n                  e.component.option(\"disabled\", !newValue);\n                }\n              });\n            }\n            if (item.isVisibleExpression) {\n              this.bindingService.observe({\n                scopeContainer: scopeContainer,\n                expression: item.isVisibleExpression,\n                callback: (newValue) => {\n                  e.component.option(\"visible\", newValue);\n                }\n              });\n            }\n          },\n          onClick: (e) => {\n            e.event.stopPropagation();\n            e.event.preventDefault();\n\n            this.commandService.execute(scopeContainer.scope, item, {\n              event: <any>e.event,\n              details: {\n                htmlEditor: getHtmlEditor()\n              }\n            });\n          }\n        }\n      });\n    }\n  }\n}","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  BriefVersendenTyp,\n  OnBriefVersendenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  RestService,\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase,\n  ICommandData,\n  ModelUtilsService,\n  PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport { IFormCommandExecuteOptions } from \"../../../interfaces/export\";\nimport {\n  DruckenService, StartupService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class BriefEditUtils {\n  constructor(\n    private _webEventService: WebEventService,\n    private _popupInfoService: PopupInfoService,\n    private _druckenService: DruckenService,\n    private _startupService: StartupService,\n    private _restService: RestService,\n    private _modelUtilsService: ModelUtilsService) { }\n\n  form: FormBase;\n  showEditor: boolean = true;\n  briefEmpfaengerDataSource: DevExpress.data.DataSource;\n  briefEmpfaengerCCDataSource: DevExpress.data.DataSource;\n  briefEmpfaengerBCCDataSource: DevExpress.data.DataSource;\n\n  briefEmpfaengerTagBoxOptions: DevExpress.ui.dxTagBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"models.data.$m_Brief.__BriefZuEmpfaenger_Empfaenger\",\n    },\n    itemTemplate: (data) => {\n      return this.getTagBoxItemTemplate(data);\n    },\n    tagTemplate: (data) => {\n      return this.getTagBoxTagTemplate(data);\n    },\n    onSelectionChanged: (e) => {\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief == null) {\n        return;\n      }\n\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuEmpfaenger == null) {\n        e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuEmpfaenger = [];\n      }\n\n      this.addItemOfEmpfaengerList(e.addedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuEmpfaenger);\n      this.removeItemOfEmpfaengerList(e.removedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuEmpfaenger);\n    }\n  };\n  briefEmpfaengerCCTagBoxOptions: DevExpress.ui.dxTagBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"models.data.$m_Brief.__BriefZuCC_Empfaenger\",\n    },\n    itemTemplate: (data) => {\n      return this.getTagBoxItemTemplate(data);\n    },\n    tagTemplate: (data) => {\n      return this.getTagBoxTagTemplate(data);\n    },\n    onSelectionChanged: (e) => {\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief == null) {\n        return;\n      }\n\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuCC == null) {\n        e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuCC = [];\n      }\n\n      this.addItemOfEmpfaengerList(e.addedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuCC);\n      this.removeItemOfEmpfaengerList(e.removedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuCC);\n    }\n  };\n  briefEmpfaengerBCCTagBoxOptions: DevExpress.ui.dxTagBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"models.data.$m_Brief.__BriefZuBCC_Empfaenger\",\n    },\n    itemTemplate: (data) => {\n      return this.getTagBoxItemTemplate(data);\n    },\n    tagTemplate: (data) => {\n      return this.getTagBoxTagTemplate(data);\n    },\n    onSelectionChanged: (e) => {\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief == null) {\n        return;\n      }\n\n      if (e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuBCC == null) {\n        e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuBCC = [];\n      }\n\n      this.addItemOfEmpfaengerList(e.addedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuBCC);\n      this.removeItemOfEmpfaengerList(e.removedItems, e.model.bindingContext.$f_briefEditUtils.form.models.data.$m_Brief.BriefZuBCC);\n    }\n  };\n\n  showDivAdresse: ICommandData = {\n    id: \"showDivAdresse\",\n    idCategory: \"brief-entitaet\",\n    title: \"brief.show_div_adresse\",\n    sortIndex: 10,\n    isVisibleExpression: \"models.data.$m_Brief.CanSave && !models.data.$m_Brief.HasDiverseAdresse\",\n    execute: (options) => {\n      const model = this.form.models.data.$m_Brief;\n\n      if (!model.IdAdresse && !model.Adresse) {\n        model.Adresse = {};\n      }\n\n      model.HasDiverseAdresse = true;\n    }\n  };\n  hideDivAdresse: ICommandData = {\n    id: \"hideDivAdresse\",\n    idCategory: \"brief-entitaet\",\n    title: \"brief.hide_div_adresse\",\n    sortIndex: 10,\n    isVisibleExpression: \"models.data.$m_Brief.CanSave && models.data.$m_Brief.HasDiverseAdresse\",\n    execute: (options) => {\n      const model = this.form.models.data.$m_Brief;\n      model.HasDiverseAdresse = false;\n    }\n  };\n  doVersendenEmail: ICommandData = {\n    id: \"doVersendenEmail\",\n    idCategory: \"brief-entitaet\",\n    title: \"brief.send_email\",\n    icon: \"envelope-o\",\n    sortIndex: 20,\n    isEnabledExpression: \"models.data.$m_Brief.CanSave\",\n    execute: (options) => {\n      this.execute(BriefVersendenTyp.Email, options);\n    }\n  };\n  doDrucken: ICommandData = {\n    id: \"doDrucken\",\n    idCategory: \"brief-entitaet\",\n    title: \"brief.print\",\n    icon: \"print\",\n    sortIndex: 21,\n    isEnabled: true,\n    isVisible: true,\n    execute: (options) => {\n      this.execute(BriefVersendenTyp.Drucken, options);\n    }\n  };\n  doDruckvorschau: ICommandData = {\n    id: \"doDruckvorschau\",\n    idCategory: \"brief-entitaet\",\n    title: \"brief.print-preview\",\n    icon: \"file-text-o\",\n    sortIndex: 22,\n    isEnabled: true,\n    execute: (options) => {\n      this.preview(options);\n    }\n  };\n  showHtmlBriefOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Brief in neuem Fenster öffnen\",\n    onClick: () => {\n      const w = window.open();\n      w.document.write(this.form.models.data.$m_Brief.TextHtml);\n      w.document.close();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.models.onLoaded.register(e => {\n      if (e.model.id == \"$m_Brief\" && e.data) {\n        this.showEditor = !e.data.TextHtml\n          || e.data.TextHtml.indexOf(\"</body>\") < 0;\n\n        if (e.data.BriefZuEmpfaenger != null) {\n          e.data.__BriefZuEmpfaenger_Empfaenger = e.data.BriefZuEmpfaenger.map(c => c.IdEmpfaenger);\n        }\n        if (e.data.BriefZuCC != null) {\n          e.data.__BriefZuCC_Empfaenger = e.data.BriefZuCC.map(c => c.IdEmpfaenger);\n        }\n        if (e.data.BriefZuBCC != null) {\n          e.data.__BriefZuBCC_Empfaenger = e.data.BriefZuBCC.map(c => c.IdEmpfaenger);\n        }\n      }\n\n      return Promise.resolve();\n    });\n\n    this.doDrucken.isVisible = this._startupService.startupInfo.Mandant.IsDruckJobAktiv;\n\n    this.briefEmpfaengerDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n      cacheRawData: true,\n      load: async (loadOptions) => {\n        let filter = this.getBriefEmpfaengerFilterList(loadOptions.filter);\n\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/BriefEmpfaenger\"),\n          data: {\n            Suchtext: loadOptions.searchValue,\n            IdList: filter,\n            skip: loadOptions.skip,\n            take: loadOptions.take\n          }\n        });\n\n        return r.ItemList;\n      }\n    }));\n    this.briefEmpfaengerCCDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n      cacheRawData: true,\n      load: async (loadOptions) => {\n        let filter = this.getBriefEmpfaengerFilterList(loadOptions.filter);\n\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/BriefEmpfaenger\"),\n          data: {\n            Suchtext: loadOptions.searchValue,\n            IdList: filter,\n            skip: loadOptions.skip,\n            take: loadOptions.take\n          }\n        });\n\n        return r.ItemList;\n      }\n    }));\n    this.briefEmpfaengerBCCDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n      cacheRawData: true,\n      load: async (loadOptions) => {\n        let filter = this.getBriefEmpfaengerFilterList(loadOptions.filter);\n\n        let r = await this._restService.post({\n          url: this._restService.getApiUrl(\"ERP/BriefEmpfaenger\"),\n          data: {\n            Suchtext: loadOptions.searchValue,\n            IdList: filter,\n            skip: loadOptions.skip,\n            take: loadOptions.take\n          }\n        });\n\n        return r.ItemList;\n      }\n    }));\n\n    this.briefEmpfaengerTagBoxOptions.dataSource = this.briefEmpfaengerDataSource;\n    this.briefEmpfaengerCCTagBoxOptions.dataSource = this.briefEmpfaengerCCDataSource;\n    this.briefEmpfaengerBCCTagBoxOptions.dataSource = this.briefEmpfaengerBCCDataSource;\n  }\n\n  private getBriefEmpfaengerFilterList(loadOptionsFilter) {\n    let filter = [];\n\n    if (loadOptionsFilter != null) {\n      loadOptionsFilter.forEach(element => {\n        if (Array.isArray(element)) {\n          element.forEach(el => {\n            if (typeof el === \"number\") {\n              filter.push(el);\n            }\n          });\n        } else {\n          if (typeof element === \"number\") {\n            filter.push(element);\n          }\n        }\n      });\n    }\n    return filter;\n  }\n  private getTagBoxTagTemplate(data) {\n    return `<div class=\"erp--text-with-leading-label-badge erp--background-ddd erp--margin-top-left-2px\">\n        <div class=\"${data.TypeName ? '' : 'erp--empty-badge'}\">\n          ${data.TypeName}\n        </div>\n        <div class=\"erp--margin-right-36px\">\n         ${data.Bezeichnung}\n        </div>\n        <div class=\"dx-tag-remove-button\"></div>\n      </div>`;\n  }\n  private getTagBoxItemTemplate(data) {\n    return `<div class=\"erp--text-with-leading-label-badge erp--margin-top-left-2px\">\n        <div class=\"${data.TypeName ? '' : 'erp--empty-badge'}\">\n          ${data.TypeName}\n        </div>\n        <div class=\"erp--margin-right-36px\">\n          ${data.Bezeichnung}\n        </div>\n      </div>`;\n  }\n  private addItemOfEmpfaengerList(addedItems, list) {\n    addedItems.forEach(c => {\n      const hasEntry = list\n        .some(el => c.Id == el.IdEmpfaenger);\n\n      if (!hasEntry) {\n        list.push({ IdEmpfaenger: c.Id });\n        this._modelUtilsService.setDirty(this.form.models.data.$m_Brief);\n      }\n    });\n  }\n  private removeItemOfEmpfaengerList(removedItems, list) {\n    removedItems.forEach(c => {\n      var entry = list\n        .filter(el => el.IdEmpfaenger == c.Id)[0] || null;\n\n      if (entry != null) {\n        var index = list.indexOf(entry);\n        list.splice(index, 1);\n        this._modelUtilsService.setDirty(this.form.models.data.$m_Brief);\n      }\n    });\n  }\n\n  private async execute(versandTyp: BriefVersendenTyp, options) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const data: any = this.form.models.data;\n\n    return this._webEventService\n      .execute(new OnBriefVersendenEvent({\n        IdBrief: this.form.models.data.$m_Brief.Id,\n        IdVerknuepfteEntitaet: this.form.models.data.$m_Brief.IdVerknuepfteEntitaet,\n        VersandTyp: versandTyp\n      }), true)\n      .then(() => {\n        return this.form.models.reloadAll();\n      })\n      .then(() => {\n        if (this._popupInfoService.isPopupOpen()) {\n          this._popupInfoService.closeCurrentPopup();\n        }\n      });\n  }\n  private async preview(options) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const data: any = this.form.models.data;\n\n    const execOptions: IFormCommandExecuteOptions = {\n      form: this.form,\n      modelData: this.form.models.data.$m_Brief,\n      options: { event: options.event }\n    };\n\n    this._druckenService.executeDruckCommand(execOptions);\n  }\n}\n","export default __webpack_public_path__ + \"bbe0d30d9f80b2ce585aff2feb2f931c.jpg\";","export {CommandServerData} from \"./command-server-data\";\nexport {Commands} from \"./commands\";\nexport {ContextMenu} from \"./context-menu\";\nexport {EditPopups} from \"./edit-popups\";\nexport {FormBase} from \"./form-base\";\nexport {Functions} from \"./functions\";\nexport {Models} from \"./models\";\nexport {NestedForms} from \"./nested-forms\";\nexport {Variables} from \"./variables\";\nexport {ViewItem} from \"./view-item\";","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EntitaetInfoService\n} from './entitaet-info-service';\nimport { LocationService } from '../../framework/base/services/location-service';\n\n@autoinject\nexport class VerknuepfteEntitaetService {\n  constructor(\n    private entitaetInfo: EntitaetInfoService,\n    private locationService: LocationService\n  ) { }\n\n  async goTo(id: number, clearStack: boolean = false) {\n    const url = await this.entitaetInfo\n      .getEntitaetUrlById(id);\n\n    if (url == void 0) {\n      return;\n    }\n\n    this.locationService.goTo({\n      url: url,\n      clearStack: clearStack\n    });\n  }\n}\n","export default __webpack_public_path__ + \"45911c39291dea9dffc49fee189eba38.jpg\";","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  JsonService\n} from \"./json-service\";\nimport {\n  RestService\n} from \"./rest-service\";\n\n@autoinject\nexport class NotificationService {\n  private _socket: WebSocket;\n  private _manualClose: boolean;\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private json: JsonService,\n    private rest: RestService\n  ) { }\n\n  subscribe(): void {\n    this._manualClose = false;\n    this._socket = new WebSocket(this.rest.getWebSocketUrl(\"base/Notification/Socket\"));\n\n    this._socket.onmessage = (e) => {\n      const data = this.json.parse(e.data);\n\n      this.eventAggregator.publish(data.Type, data.Data);\n    }\n    this._socket.onclose = (e) => {\n      if (!this._manualClose) {\n        setTimeout(this.tryToReconnect.bind(this), 6000);\n      }\n\n      this._socket = null;\n      this._manualClose = false;\n    };\n  }\n\n  unsuscribe(): void {\n    if (this._socket) {\n      this._manualClose = true;\n      this._socket.close();\n    }\n  }\n\n  private tryToReconnect(): void {\n    if (this._socket == void 0) {\n      this.subscribe();\n      return;\n    } \n    \n    this._socket.close();\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService, WebEventService\n} from \"../../framework/base/export\";\nimport { PersonRequestTyp, OnPersonRequestEvent, OnPersonRequest } from '../../framework-data/events';\n\n@autoinject\nexport class PersonService {\n  constructor(\n    private _restService: RestService,\n    private _webEventService: WebEventService\n  ) { }\n\n \n  getPersonBasicDataById(idPerson: number): Promise<any>{\n    const getOptions = {\n      columns: [\"Id\", \"Telefon\"]\n    };\n\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Person/${idPerson}`),\n      getOptions: getOptions\n    });\n  }\n  async getIdPersonVorbelegung(idGeschaeftspartner: number, requestTyp: PersonRequestTyp) {\n    const r: OnPersonRequest = await this._webEventService.execute(new OnPersonRequestEvent({\n      IdGeschaeftspartner: idGeschaeftspartner,\n      Typ: requestTyp\n    }));\n\n    return r.IdPerson;\n  }\n  getPersonTelefon(idPerson: number): Promise<string> {\n    return this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Person/${idPerson}`),\n      getOptions: {\n        columns: [\"Id\", \"Telefon\", \"Mobiltelefon\"]\n      }\n    }).then(r => {\n      if (!r) {\n        return null;\n      }\n\n      return r.Telefon || r.Mobiltelefon;\n    })\n  }\n}\n","import {\n  autoinject,\n  singleton,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport * as Interfaces from \"../interfaces/export\";\nimport { NestedForm } from '../interfaces/nested-form-x';\n\n@autoinject\n@singleton(true)\nexport class NestedForms {\n  private form: FormBase;\n  private nestedForms = {};\n\n  constructor(\n    private taskQueue: TaskQueue\n  ) {}\n\n  addInfo(id: string, mappings: Interfaces.IMapping[]) {\n    this.nestedForms[id] = {\n      id: id,\n      mappings: mappings\n    };\n    this.createMappings(id, mappings);\n  } \n  getInfo(id: string): NestedForm  {\n    return this.nestedForms[id];\n  }\n  getNestedForms(): FormBase[] {\n    const arr: FormBase[] = [];\n\n    for (let key in this.nestedForms) {\n      const form: FormBase = this.form[key];\n      \n      if (!form) {\n        continue;\n      }\n      \n      arr.push(form);\n      arr.push(...form.nestedForms.getNestedForms());\n    }\n\n    return arr;\n  }\n  createMappings(id: string, mappings: Interfaces.IMapping[]) {\n    for (let mapping of mappings) {\n      this.form.binding.observe({\n        scopeContainer: this.form.scopeContainer,\n        expression: mapping.binding.bindToFQ,\n        callback: (newValue) => {\n          const setVariable = () => {\n            let nestedForm: FormBase = this.form[id];\n            if (!nestedForm) {\n              return false;\n            }\n\n            nestedForm.variables.data[mapping.to] = newValue;\n            return true;\n          }\n\n          if (!setVariable()) {\n            this.taskQueue.queueTask(() => {\n              if (!setVariable()) {\n                return;\n              }\n            })\n          }\n        },\n        checkPrimitiveType: true\n      });\n    }\n  }\n\n  registerForm(form: FormBase) {\n    if (this.form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this.form = form;\n  }\n\n  dispose() {\n  }\n}\n","export enum NotificationTyp {\n  aufgabeAnzahlChanged = \"aufgabe:anzahlchanged\",\n  benachrichtigungAnzahlChanged = \"benachrichtigung:anzahlchanged\",\n  briefAnzahlChanged = \"brief:anzahlchanged\",\n  konditionsfeldChanged = \"konditionsfeld:changed\",\n  statusChanged = \"status:changed\",\n  waehrungChanged = \"waehrung:changed\",\n  filtergruppeChanged = \"filtergruppe:changed\",\n  filterelementChanged = \"filterelement:changed\",\n  notizAnzahlChanged = \"notiz:anzahlchanged\",\n  mailAnzahlChanged = \"mail:anzahlchanged\",\n  benutzerAvatarUrlChanged = \"benutzer:avatarUrlChanged\",\n  mandantChanged = \"mandant:changed\",\n  mandantSwitched = \"mandant:switched\",\n  startupInfoLoaded = \"startupInfo:loaded\",\n  notizShowEditPopup = \"notiz:showEditPopup\",\n  notizShowListPopover = \"notiz:showListPopover\",\n  dataReload = \"data:reload\",\n  office365TokenChanged = \"office365:tokenChanged\",\n  benutzerCanMandantWechselnChanged = \"benutzer:canMandantWechselnChanged\"\n}\n","import { WebEventService } from './../../../../framework/base/services/web-event-service';\nimport { OnMahnungVersendenEvent, OnMahnungVersenden } from './../../../../framework-data/events';\nimport { FormBase } from './../../../../framework/forms/classes/form-base';\nimport { transient, autoinject } from 'aurelia-framework';\nimport { ICommandData } from '../../../../framework/forms/export';\nimport { DynFelderDataService } from '../../../services/dyn-felder-data-service';\n\n@autoinject\n@transient()\nexport class MahnungEditUtils {\n  constructor(\n    private webEventService: WebEventService,\n    public dynFelderData: DynFelderDataService\n  ) { }\n\n  form: FormBase;\n\n  doMahnungVersenden: ICommandData = {\n    id: \"doMahnungVersenden\",\n    idCategory: \"mahnung\",\n    title: \"mahnung.mahnung_versenden\",\n    icon: \"paper-plane\",\n    isEnabledExpression: \"models.data.$m_Mahnung.CanSave && models.data.$m_Mahnung.Status && models.data.$m_Mahnung.Status.Typ == 0\",\n    execute: async () => {\n      const webEvent = new OnMahnungVersendenEvent({\n        IdMahnung: this.form.models.data.$m_Mahnung.Id\n      });\n\n      const result: OnMahnungVersenden = await this.webEventService.execute(webEvent);\n      if (result == void 0) {\n        return;\n      }\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.models.onLoaded.register(r => {\n      if (r.model.id == \"$m_MahnungspositionRel\") {\n        if (r.data && r.data.data && Array.isArray(r.data.data)) {\n          for (let item of r.data.data) {\n            if (!item.Faktura || !item.Faktura.IdStatus) {\n              continue;\n            }\n\n            item[\"IdStatus\"] = item.Faktura.IdStatus;\n          }\n        }\n      }\n      return Promise.resolve();\n    });\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Mahnung\"\n    });\n\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { AngebotService } from \"../../../services/angebot-service\";\n\n@autoinject\n@transient()\nexport class AngebotsgruppeEditUtils {\n  constructor(\n    private _angebotService: AngebotService,\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.onDeleting.register(async (e) => {\n      if (await this._angebotService.hasAngebotsgruppePositionenZugeteilt(this.form.models.data.$m_Angebotsgruppe.Id)) {\n        const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n          this._localizationService.translateOnce(\"base.sure_delete_question_gruppe\"),\n          this._localizationService.translateOnce(\"base.question\")));\n\n        if (!doExecute) {\n          return Promise.reject();\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { StatistikEinkaufDetail } from '../elements/statistik-einkauf-detail/statistik-einkauf-detail';\nimport { IUmsatzWhereItem, StatistikVerkaufDetail, StatistikVerkaufDetailViewTyp } from '../elements/statistik-verkauf-detail/statistik-verkauf-detail';\n\n@autoinject\nexport class StatistikService {\n  constructor() { }\n\n  verkaufElement: StatistikVerkaufDetail;\n  einkaufElement: StatistikEinkaufDetail;\n\n  async showVerkaufDetail(typ: StatistikVerkaufDetailViewTyp, where: IUmsatzWhereItem) {\n    return this.verkaufElement.show(typ, where);\n  }\n  async showEinkaufDetail(where: IUmsatzWhereItem) {\n    return this.einkaufElement.show(where);\n  }\n}\n","import {\n  autoinject,\n  observable\n} from \"aurelia-framework\";\nimport {\n  CustomEvent,\n} from \"../../base/export\";\nimport {\n  ICommandData\n} from \"../../forms/export\";\nimport { Header } from \"../views/header/header\";\n\ndeclare var require: any;\n\nconst logo = require(\"../../images/logo_tip.png\");\nconst user = require(\"../../images/user.jpg\");\n\n@autoinject\nexport class HeaderService {\n  constructor() {\n    this.avatarUrlChanged();\n  }\n\n  logoUrl: string = logo.default || logo;\n  @observable avatarUrl: string;\n  text: string = \"TIP Technik und Informatik Partner GmbH & Co KG\";\n  logoStyle: any;\n  avatarStyle: any;\n  header: Header;\n  isSearchRegistered: boolean;\n\n  commands: ICommandData[] = [];\n  avatarCommands: ICommandData[] = [];\n\n  avatarUrlChanged() {\n    const image = this.avatarUrl || user.default || user;\n\n    this.avatarStyle = {\n      \"background-image\": `url(${image})`\n    }\n  }\n  hideAvatarPopoper(){\n    const popover = this.header.avatarPopover;\n    if(!popover || !popover.instance){\n      return;\n    }\n    \n    this.header.avatarPopover.instance.hide();\n  }\n  \n  setLogoUrl(logoUrl: string) {\n    this.logoUrl = logoUrl || logo.default || logo;\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase\n} from \"../../../../framework/forms/export\";\n\n@autoinject\n@transient()\nexport class EinstellungEditUtils {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Cloud/Einstellung\"),\n      getOptions: {\n        columns: [\"Id\"]\n      }\n    }).then(r => {\n      if (r && r.length === 1) {\n        form.variables.data.$idEinstellung = r[0].Id;\n      }\n    });\n  }\n}","import {\n  computedFrom,\n  Controller\n} from \"aurelia-framework\";\nimport {\n  IViewItemModel\n} from \"../interfaces/view-item-model\";\n\nexport class ViewItem {\n  constructor(viewModelItem: IViewItemModel) {\n    this.title = viewModelItem.routeInfo.route.caption;\n    this.moduleId = viewModelItem.moduleId;\n    this.model = viewModelItem;\n    this.isCurrent = true;\n  }\n\n  title: string;\n  moduleId: any;\n  model: IViewItemModel;\n  isCurrent: boolean;\n  controller?: Controller;\n  customClassName?: string;\n  isAttached: boolean;\n\n  @computedFrom(\"isCurrent\", \"isAttached\", \"customClassName\")\n  get className(): string {\n    return (this.isCurrent \n      ? \"t--view-current\"\n      : \"t--view-history\") + (this.isAttached ? \" t--view-attached\" : \"\") + (this.customClassName ? ` ${this.customClassName}` : \"\");\n  }\n}\n","\nimport {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\nimport {\n  IStartupInfo\n} from \"../interfaces/export\";\n\n@autoinject\nexport class StartupService {\n  constructor(\n    private rest: RestService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  startupInfo: IStartupInfo;\n\n  loadStartupInfo(autoLoadMandantDaten: boolean = true): Promise<IStartupInfo> {\n    return this.rest.get({\n      url: this.rest.getApiUrl(\"ERP/Startup/Info\")\n    }).then(r => {\n      this.startupInfo = r;\n\n      this.eventAggregator.publish(\n        \"startupInfo:loaded\", {\n          startupInfo: r,\n          autoLoadMandantDaten: autoLoadMandantDaten\n        });\n\n      return r;\n    });\n  }\n}\n","export default {\n  debug: true,\n  testing: true\n};\n","import {\n  autoinject,\n  singleton,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  ToolbarService\n} from \"../services/toolbar-service\";\nimport {\n  PopupInfoService\n} from \"../services/popup-info-service\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../widget-services/simple-widget-creator-service\";\nimport {\n  IEditPopupHiddenEventArgs,\n  IEditPopupShownEventArgs,\n  IEditPopupModelLoadedEventArgs\n} from \"../event-args/export\";\nimport {\n  CustomEvent\n} from \"../../base/classes/custom-event\";\nimport {\n  IViewScrollInfo\n} from \"../../base/interfaces/export\";\nimport * as Interfaces from \"../interfaces/export\";\n\n@autoinject\n@singleton(true)\nexport class EditPopups {\n  private _form: FormBase;\n  private _editPopups: Interfaces.IEditPopup[] = [];\n  private _options: IEditPopupShowOptions;\n\n  constructor(\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private toolbar: ToolbarService,\n    private popupInfo: PopupInfoService,\n    private taskQueue: TaskQueue,\n    private eventAggregator: EventAggregator,\n    public onEditPopupShown: CustomEvent<IEditPopupShownEventArgs>,\n    public onEditPopupHidden: CustomEvent<IEditPopupHiddenEventArgs>,\n    public onEditPopupModelLoaded: CustomEvent<IEditPopupModelLoadedEventArgs>\n  ) {}\n\n  addInfo(editPopup: Interfaces.IEditPopup) {\n    this._editPopups.push(editPopup);\n    this.createOptions(editPopup);\n  }\n  getInfo(id: string): Interfaces.IEditPopup {\n    return this._editPopups.find(c => c.id === id);\n  \n  }\n  async show(id: string, viewScrollInfo: IViewScrollInfo) {\n    return this.showEx({\n      idEditPopup: id,\n      viewScrollInfo: viewScrollInfo\n    });\n  }\n  async showEx(options: IEditPopupShowOptions) {\n    this._options = options;\n\n    const saveResult = await this._form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const editPopup = this._editPopups.find(c => c.id === options.idEditPopup);\n\n    if (!editPopup) {\n      throw new Error(`No edit popup with id ${options.idEditPopup} found`);\n    }\n\n    const instance: DevExpress.ui.dxPopup = this._form[editPopup.id].instance;\n\n    let showInstance = true;\n    if (!editPopup.isInitialized) {\n      this.initializeContent(instance, editPopup);\n\n      //wird durch onContentTemplateRendered ausgelöst\n      showInstance = false;\n    }\n\n    const editPopupFormBase: FormBase = this._form[editPopup.idContent]\n    editPopupFormBase.viewScrollInfo = options.viewScrollInfo;\n\n    if (showInstance) {\n      instance.show();\n    }\n  }\n\n  registerForm(form: FormBase) {\n    if (this._form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this._form = form;\n  }\n\n  dispose() {\n    this.onEditPopupHidden.dispose();\n    this.onEditPopupModelLoaded.dispose();\n    this.onEditPopupShown.dispose();\n  }\n\n  private createOptions(editPopup: Interfaces.IEditPopup) {\n    this.simpleWidgetCreator.addPopup(this._form, editPopup, false);\n  }\n  private initializeContent(instance: DevExpress.ui.dxPopup, editPopup: Interfaces.IEditPopup) {\n    editPopup.isInitialized = true;\n\n    this._form[editPopup.options.optionsName].onContentTemplateRendered = (e) => {\n      this.taskQueue.queueTask(() => {\n        e.instance.show();\n      });\n    };\n\n    instance.option(\"deferRendering\", false);\n\n    const popup: DevExpress.ui.dxPopup = this._form[editPopup.id].instance;\n    const content: FormBase = this._form[editPopup.idContent];\n\n    content.models.onLoaded.register(r => {\n      const modelLoadedArgs = {\n        editPopup: editPopup,\n        model: r.model,\n        data: r.data\n      };\n\n      if (this._options.modelLoaded) {\n        this._options.modelLoaded(content, modelLoadedArgs);\n      }\n\n      return this.onEditPopupModelLoaded.fire(modelLoadedArgs);\n    });\n\n    content.models.onSaved.register(async e => {\n      if (this._options.savedCallback) {\n        this._options.savedCallback(content);\n      }\n    });\n\n    content.callOnCommandsLoaded(() => {\n      const toolbarOptions = this.toolbar.createToolbarOptions(\n        content.scopeContainer,\n        content.title, \n        content.commands.getCommands());\n\n      content.binding.observe({\n        scopeContainer: content.scopeContainer,\n        expression: \"title\",\n        callback: (newVal) => {\n          toolbarOptions.title = newVal;\n        }\n      });\n\n      this._form[`${editPopup.id}Toolbar`] = toolbarOptions;\n    });\n\n    popup.on({\n      showing: (e) => {\n        this.popupInfo.onShowPopup({\n          owner: this._form,\n          popup: e.component,\n          form: content,\n          executeCommand: (idCommand) => {\n            content.executeCommand(idCommand);\n          },\n          handleChangedData: () => {\n            return content.handleChangedData();\n          },\n          hasChangedData: () => {\n            return content.models.hasChangedData();\n          }\n        });\n      },\n      shown: () => {\n        editPopup.mappings.forEach(m => {\n          content.variables.data[m.to] = this._form.binding.evaluate(\n            this._form.scope, \n            m.binding.bindToFQ\n          );\n        });\n\n        this.onEditPopupShown.fire({\n          editPopup: editPopup\n        });\n        this.eventAggregator.publish(\"editpopup:shown\", {\n          form: content\n        });\n\n        content.dispatchOnReady();\n      },\n      hiding: (e) => {\n        this.popupInfo.onHidePopup(e.component);\n\n        if (this._options.closeCallback) {\n          this._options.closeCallback(content);\n        }\n\n        this.eventAggregator.publish(\"editpopup:hiding\", {\n          form: content\n        });\n      },\n      hidden: async () => {\n        editPopup.mappings.forEach(m => {\n          content.variables.data[m.to] = null;\n        });\n\n        const hasDataReloaded = await this._form.reloadIfServerHasNewVersion();\n\n        this.onEditPopupHidden.fire({\n          editPopup: editPopup,\n          hasDataReloaded: hasDataReloaded\n        });\n        this.eventAggregator.publish(\"editpopup:hidden\", {\n          form: content\n        });\n      }\n    });\n  }\n}\n\nexport interface IEditPopupShowOptions {\n  idEditPopup: string;\n  viewScrollInfo?: IViewScrollInfo;\n  modelLoaded?: {(form: FormBase, ev: IEditPopupModelLoadedEventArgs): void};\n  savedCallback?: {(form: FormBase): void};\n  closeCallback?: {(form: FormBase): void};\n}","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  FileService,\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  OnImportFreigebenEvent,\n  OnImportCreateVorlageEvent,\n  OnImportCreateVorlage\n} from \"../../../../framework-data/events\";\nimport {\n  StatusService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class ImportEditUtils {\n  constructor(\n    private webEvent: WebEventService,\n    private file: FileService,\n    private status: StatusService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"models.data.$m_Import.CanSave\",\n      callback: () => {\n        const data: any = this.form.models.data.$m_Import;\n        this.doFreigebenCommand.isEnabled = data && data.CanSave;\n      }\n    });\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"models.data.$m_Import.Id\",\n      callback: () => {\n        const data: any = this.form.models.data.$m_Import;\n        this.doCreateVorlageCommand.isEnabled = data\n          && data.Id;\n      }\n    });\n  }\n\n  doFreigebenCommand: ICommandData = {\n    id: \"doFreigeben\",\n    idCategory: \"import\",\n    title: \"import-edit-utils.do-freigeben\",\n    icon: \"check\",\n    isEnabled: false,\n    execute: () => {\n      const data: any = this.form.models.data.$m_Import;\n      if (data && data.CanSave) {\n        this.form.save()\n          .then((r) => {\n            if (!r.isValid) {\n              return;\n            }\n\n            return this.webEvent\n              .execute(new OnImportFreigebenEvent({\n                IdImport: this.form.models.data.$m_Import.Id\n              }), true)\n              .then(() => {\n                return this.form.models.reloadAll();\n              });\n          });\n      }\n    }\n  }\n  doCreateVorlageCommand: ICommandData = {\n    id: \"doCreateVorlage\",\n    idCategory: \"import\",\n    title: \"import-edit-utils.do-create-vorlage\",\n    icon: \"download\",\n    isEnabled: false,\n    execute: () => {\n      return this.webEvent\n        .execute(new OnImportCreateVorlageEvent({\n          IdImport: this.form.models.data.$m_Import.Id,\n          DMSLink: null\n        }), true)\n        .then((r: OnImportCreateVorlage) => {\n          if (!r.DMSLink) {\n            return;\n          }\n\n          const url = this.file.download(r.DMSLink);\n        });\n    }\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase, ICommandData\n} from \"../../../../framework/forms/export\";\n\n@autoinject\n@transient()\nexport class StatusListUtils {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  form: FormBase;\n  \n  status: any[];\n  \n  doAktualisierenCommand: ICommandData = {\n    id: \"doAktualisieren\",\n    idCategory: \"instanz-status\",\n    title: \"instanz-status.aktualisieren\",\n    sortIndex: 10,\n    icon: \"refresh\",\n    execute: () => {\n      this.loadData();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.loadData();\n  }\n  \n  private async loadData() {\n    this.status = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Status\")\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  BindingService,\n  LocalizationService,\n  ScopeContainer\n} from \"../../base/export\";\n\n@autoinject\nexport class ValidationService {\n  private validators: any = {};\n\n  constructor(\n    private _bindingService: BindingService,\n    private _localizationService: LocalizationService\n  ) {\n    this.registerRequired();\n    this.registerConditionalRequired();\n    this.registerEmail();\n    this.registerEmailMultiple();\n    this.registerStringLength();\n    this.registerIBAN();\n    this.registerBIC();\n    this.registerDuration();\n    this.registerAHVNr();\n    this.registerSVNr();\n    this.registerTelefonLandvorwahl();\n  }\n\n  registerValidator(type: string, callback: { (scopeContainer: ScopeContainer, caption: string, parameters: any): any }) {\n    this.validators[type] = callback;\n  }\n\n  getValidator(scopeContainer: ScopeContainer, type: string, caption: string, parameters: any): any {\n    const validator = this.validators[type];\n\n    if (!validator) {\n      throw new Error(`Validator ${type} not found`);\n    }\n\n    return validator(scopeContainer, caption, parameters);\n  }\n\n  private registerRequired() {\n    this.registerValidator(\"required\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"required\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_required\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n  private registerConditionalRequired() {\n    this.registerValidator(\"conditionalRequired\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: this._localizationService.translateOnce(\n          \"forms.validator_required\",\n          [this._localizationService.translateOnce(caption)]),\n        validationCallback: (e) => {\n          if (e.value != void (0) && e.value.toString() != \"\") {\n            return true;\n          }\n\n          const condition = parameters.find((p) => p.name === \"condition\");\n          if (!condition || !condition.value) {\n            return false;\n          }\n\n          return !this._bindingService.evaluate(scopeContainer.scope, condition.value);\n        }\n      };\n    });\n  }\n  private registerBIC() {\n    this.registerValidator(\"bic\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"pattern\",\n        pattern: \"^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_bic\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n  private registerIBAN() {\n    this.registerValidator(\"iban\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"pattern\",\n        pattern: \"[A-Z]{2}[0-9]{2}[A-Z0-9]{4}[0-9]{7}([A-Z0-9]?){0,16}\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_iban\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n  private registerDuration() {\n    this.registerValidator(\"duration\", (scopeContainer, caption, parameters) => {\n      const durationPeriodTypeParameter = parameters.find((p) => p.name === \"durationPeriodType\");\n      const durationPeriodType = durationPeriodTypeParameter\n        ? parseInt(durationPeriodTypeParameter.value)\n        : 0;\n\n      let message = null;\n      switch (durationPeriodType) {\n        case 0: {\n          message = this._localizationService.translateOnce(\"forms.validator_duration_seconds_and_more\");\n          break;\n        }\n        case 1: {\n          message = this._localizationService.translateOnce(\"forms.validator_duration_minutes_and_more\");\n          break;\n        }\n        case 2: {\n          message = this._localizationService.translateOnce(\"forms.validator_duration_days_and_more\");\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: message,\n        validationCallback: (e) => {\n          if (e.value == void (0) || e.value == \"\") {\n            return true;\n          }\n\n          let index = 0;\n          for (const i of e.value) {\n            const code = i.charCodeAt(0);\n            if (code < 48 || code > 57) {\n              break;\n            }\n\n            index++;\n          }\n\n          if (index == 0) {\n            return false;\n          }\n\n          const period = e.value.substr(index);\n          switch (period) {\n            case \"J\":\n            case \"H\":\n            case \"Q\":\n            case \"M\":\n            case \"W\":\n            case \"T\":\n            case \"AT\": {\n              return durationPeriodType <= 2;\n            }\n            case \"S\":\n            case \"MI\": {\n              return durationPeriodType <= 1;\n            }\n            case \"SE\": {\n              return durationPeriodType <= 0;\n            }\n            default: {\n              return false;\n            }\n          }\n        }\n      };\n    });\n  }\n  private registerEmail() {\n    this.registerValidator(\"email\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: this._localizationService.translateOnce(\n          \"forms.validator_email\",\n          [this._localizationService.translateOnce(caption)]),\n        validationCallback: (e) => {\n          if (e.value == void (0) || e.value == \"\") {\n            return true;\n          }\n\n          const value: string = e.value;\n\n          const isValid = /^[\\d\\w\\._\\-]+@([\\d\\w\\._\\-üäö]+\\.)+[\\w]+$/i.test(value);\n          if (!isValid) {\n            return false;\n          }\n\n          return true;\n        }\n      };\n    });\n  }\n  private registerEmailMultiple() {\n    this.registerValidator(\"emailMultiple\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"custom\",\n        reevaluate: true,\n        message: this._localizationService.translateOnce(\n          \"forms.validator_email\",\n          [this._localizationService.translateOnce(caption)]),\n        validationCallback: (e) => {\n          if (e.value == void (0) || e.value == \"\") {\n            return true;\n          }\n\n          const value: string = e.value;\n          const tokens = value.split(\";\");\n\n          for (let token of tokens) {\n            token = token.trim();\n\n            const isValid = /^[\\d\\w\\._\\-]+@([\\d\\w\\._\\-üäö]+\\.)+[\\w]+$/i.test(token);\n            if (!isValid) {\n              return false;\n            }\n          }\n\n          return true;\n        }\n      };\n    });\n  }\n  private registerStringLength() {\n    this.registerValidator(\"stringLength\", (scopeContainer, caption, parameters) => {\n      const min = parameters.find((p) => p.name === \"min\");\n      const max = parameters.find((p) => p.name === \"max\");\n\n      if (min && max) {\n        return {\n          type: \"stringLength\",\n          max: max.value,\n          min: min.value,\n          message: this._localizationService.translateOnce(\n            \"forms.validator_stringLengthMinMax\",\n            [this._localizationService.translateOnce(caption), min.value, max.value])\n        };\n      } else if (min) {\n        return {\n          type: \"stringLength\",\n          min: min.value,\n          message: this._localizationService.translateOnce(\n            \"forms.validator_stringLengthMin\",\n            [this._localizationService.translateOnce(caption), min.value])\n        };\n      } else if (max) {\n        return {\n          type: \"stringLength\",\n          max: max.value,\n          message: this._localizationService.translateOnce(\n            \"forms.validator_stringLengthMax\",\n            [this._localizationService.translateOnce(caption), max.value])\n        };\n      } else {\n        throw new Error(\"No min/max specified\");\n      }\n    });\n  }\n  private registerSVNr() {\n    this.registerValidator(\"svnr\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"pattern\",\n        pattern: \"^[0-9]{4}$\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_svnr\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n  private registerAHVNr() {\n    this.registerValidator(\"ahvnr\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"pattern\",\n        pattern: \"^[0-9\\\\.]{5,20}$\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_ahvnr\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n  private registerTelefonLandvorwahl() {\n    this.registerValidator(\"telefonlandvorwahl\", (scopeContainer, caption, parameters) => {\n      return {\n        type: \"pattern\",\n        pattern: \"^\\\\+[0-9]{1,3}$\",\n        message: this._localizationService.translateOnce(\n          \"forms.validator_telefonlandvorwahl\",\n          [this._localizationService.translateOnce(caption)])\n      };\n    });\n  }\n}\n","import { DynFeldLogikTyp } from './../../../enumerations/dyn-feld-logik-typ';\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { OnAuftragIntercompanyErstellen, OnAuftragIntercompanyErstellenEvent, OnBestellungBestaetigt, OnBestellungBestaetigtEvent, OnBestellungKondAktualisieren, OnBestellungKondAktualisierenEvent, OnBestellungPositionenSortierenEvent, OnBestellungspositionenInNeueBestellungUebernehmen, OnBestellungspositionenInNeueBestellungUebernehmenEvent, OnDeleteIdBestellungspositionListEvent, OnErstelleWarenuebernahmeAusBestellung, OnErstelleWarenuebernahmeAusBestellungEvent, OnKopierenRequest, OnKopierenRequestEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { ContextMenu, FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { BelegExportService } from \"../../../services/beleg-export-service\";\nimport { DynFelderDataService, DynFelderService, FilialeService, FirmaService, GeschaeftspartnerService, LagerService, StartupService, ValidationExService } from \"../../../services/export\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { AsyncService } from \"./../../../../framework/base/services/async-service\";\n\n@autoinject\n@transient()\nexport class BestellungEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _dynFelderService: DynFelderService,\n    private _filialeService: FilialeService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _lagerService: LagerService,\n    private _locationService: LocationService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 1,\n    isVisibleExpression: \"functions.$f_BestellungEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_BestellungEditUtils.isBelegExportMandantAktiv && models.data.$m_Bestellung.Id > 0\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Bestellung.Id;\n      this._belegExportService.export(BelegImportTyp.Bestellung, [id]);\n    }\n  };\n  bestaetigenCommand: ICommandData = {\n    id: \"bestaetigen\",\n    idCategory: \"bestellung\",\n    title: \"\",\n    icon: \"\",\n    sortIndex: 10,\n    isVisibleExpression: \"models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const args: OnBestellungBestaetigt = {\n        IdBestellung: this.form.models.data.$m_Bestellung.Id,\n        IsBestaetigt: false\n      };\n\n      if (!this.form.models.data.$m_Bestellung.IsBestaetigt) {\n        args.IsBestaetigt = true;\n      }\n\n      const webEventResult: OnBestellungBestaetigt = await this._webEventService.execute(new OnBestellungBestaetigtEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n  icAuftragErstellenCommand: ICommandData = {\n    id: \"doICAuftragErstellen\",\n    idCategory: \"bestellung\",\n    icon: \"plus-circle\",\n    title: \"bestellung.ic_auftrag_erstellen\",\n    sortIndex: 999,\n    isEnabledExpression: \"!models.data.$m_Bestellung.IdIcAuftrag\",\n    isVisibleExpression: \"functions.$f_BestellungEditUtils.startupService.startupInfo.Lizenz.HasIntercompany && models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0 && models.data.$m_Bestellung.IsIntercompany\",\n    execute: async (e: any) => {\n      const webEvent = new OnAuftragIntercompanyErstellenEvent({\n        IdBestellung: this.form.models.data.$m_Bestellung.Id\n      });\n\n      const webEventResult: OnAuftragIntercompanyErstellen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdBestellung) {\n        return;\n      }\n\n      const navigationUrl = `ERP/Verkauf/Auftrag/${webEventResult.IdAuftrag}`;\n\n      this._locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  };\n  doWarenuebernahmeErstellenCommand: ICommandData = {\n    id: \"doWarenuebernahmeErstellen\",\n    idCategory: \"bestellung\",\n    icon: \"plus-circle\",\n    title: \"bestellung.warenuebernahme_erstellen\",\n    sortIndex: 999,\n    isEnabledExpression: \"models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0 && !models.data.$m_Bestellung.HasStreckengeschaeftAuftrag && !models.data.$m_Bestellung.IsIntercompany \",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Bestellung.TypeName,\n        this.form.models.data.$m_Bestellung.Id,\n        \"WARENUEBERNAHME_ERSTELLEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnErstelleWarenuebernahmeAusBestellungEvent({\n        IdBestellung: this.form.models.data.$m_Bestellung.Id,\n        UebernehmeAllePositionen: selectedKeys.length === 0,\n        IdBestellungPosList: selectedKeys\n      });\n\n      const webEventResult: OnErstelleWarenuebernahmeAusBestellung = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdWarenuebernahme) {\n        return;\n      }\n\n      const navigationUrl = `ERP/Einkauf/Warenuebernahme/${webEventResult.IdWarenuebernahme}`;\n\n      if (ctrlKeyPressed) {\n        this._locationService.openWindow(navigationUrl);\n        this.form.models.reloadAll();\n      } else {\n        this._locationService.goTo({\n          url: navigationUrl,\n          clearStack: false\n        });\n      }\n    }\n  };\n  bestellungKopieErstellenCommand: ICommandData = {\n    id: \"bestellungKopieErstellen\",\n    idCategory: \"split\",\n    icon: \"plus-circle\",\n    title: \"bestellung.bestellung_erstellen\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0 && !models.data.$m_Bestellung.IsIntercompany\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnBestellungspositionenInNeueBestellungUebernehmenEvent({\n        IdBestellung: this.form.models.data.$m_Bestellung.Id,\n        IdBestellungPosList: selectedKeys\n      });\n\n      const webEventResult: OnBestellungspositionenInNeueBestellungUebernehmen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdBestellung) {\n        return;\n      }\n\n      this._locationService.goTo({\n        url: `ERP/Einkauf/Bestellung/${webEventResult.IdBestellungKopie}`,\n        clearStack: false\n      });\n\n      this.form.models.reloadAll();\n    }\n  };\n  neueKonditionenLaden: ICommandData = {\n    id: \"neueKonditionenLaden\",\n    idCategory: \"konditionen\",\n    icon: \"refresh\",\n    title: \"bestellung.konditionen_laden\",\n    sortIndex: 1,\n    isEnabledExpression: \"models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const args: OnBestellungKondAktualisieren = {\n        IdBestellung: this.form.models.data.$m_Bestellung.Id,\n        AllePositionen: selectedKeys.length === 0,\n        IdBestellungPosList: selectedKeys\n      };\n\n      await this._webEventService.execute(new OnBestellungKondAktualisierenEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n  positionenSortierenCommand: ICommandData = {\n    id: \"positionenSortieren\",\n    idCategory: \"positionen\",\n    icon: \"sort-alpha-asc\",\n    title: \"erp.positionen-sortieren\",\n    sortIndex: 10,\n    isEnabledExpression: \"models.data.$m_Bestellung.CanSave && models.data.$m_Bestellung.Id > 0\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const sort = async (typ) => {\n        const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n        await this._webEventService.execute(new OnBestellungPositionenSortierenEvent({\n          IdBestellung: this.form.models.data.$m_Bestellung.Id,\n          Typ: typ\n        }), true);\n\n        grid.instance.refresh();\n      };\n\n      const contextMenu = new ContextMenu();\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelnr\"),\n        execute: () => {\n          sort(0);\n        }\n      }, {\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelbezeichnung\"),\n        execute: () => {\n          sort(1);\n        }\n      });\n\n      contextMenu.show(e.event.target);\n    }\n  };\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Bestellung.CanSave && !models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      const bestellungPosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (bestellungPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"bestellung.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const bestellungsposition of bestellungPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          bestellungsposition.TypeName,\n          bestellungsposition.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const bestellungsposition of bestellungPosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: bestellungsposition.Id,\n          CustomData: { \"PosNrUeberschreiben\": true }\n        }),\n          true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Bestellung.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_bestellungspositionGrid\"];\n      const bestellungPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (bestellungPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"bestellung.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (bestellungPosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"bestellung.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const bestellungsposition of bestellungPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          bestellungsposition.TypeName,\n          bestellungsposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = bestellungPosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdBestellungspositionListEvent({\n        IdBestellungspositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const lieferant = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_lieferant'] .dx-searchbox input\");\n      if (!lieferant) {\n        return;\n      }\n\n      lieferant.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Bestellung\",\n      idArtPropertyName: \"IdBestellungsart\",\n      idVorgEntitaetPropertyName: \"IdLieferant\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Bestellung\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"bestellungspositionEditPopup\", \"bestellungsgruppeEditPopup\"]\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"bestellungspositionEditPopup\") {\n        form[\"r_bestellungsgruppeGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"bestellungsgruppeEditPopup\") {\n        form[\"r_bestellungspositionGrid\"].instance.refresh();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Bestellung\") {\n        return;\n      }\n\n      this.bestaetigenCommand.isVisible = this.form.models.data.$m_Bestellung.CanSave\n        && this.form.models.data.$m_Bestellung.Id > 0;\n\n      if (this.form.models.data.$m_Bestellung.IsBestaetigt) {\n        this.bestaetigenCommand.title = \"bestellung.nicht_bestaetigen\";\n        this.bestaetigenCommand.icon = \"star\";\n      } else {\n        this.bestaetigenCommand.title = \"bestellung.bestaetigen\";\n        this.bestaetigenCommand.icon = \"star-o\";\n      }\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Bestellung);\n      return Promise.resolve();\n    });\n    form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        if (this.startupService.startupInfo.Lizenz.HasIntercompany && this.form.models.data.$m_Bestellung.IdIcAuftrag) {\n          const dynFeldIntercompany = this.dynFelderData.dynFeldList\n            .filter(c => c.LogikTyp == DynFeldLogikTyp.Intercompany)[0] || null;\n\n          if (dynFeldIntercompany == null) {\n            return Promise.resolve();\n          }\n\n          const dynFeldEintragIntercompany = this.form.models.data.$m_Bestellung.DynamischesFeldContainer.DynamischesFeldEintraege\n            .filter(c => c.IdDynamischesFeld == dynFeldIntercompany.Id)[0] || null;\n\n          if (!dynFeldEintragIntercompany || !dynFeldEintragIntercompany.IsGeaendert) {\n            return Promise.resolve();\n          }\n\n          if (dynFeldEintragIntercompany.WertNummer == 0) {\n            const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n              this._localizationService.translateOnce(\"bestellung.sure_intercompany\"),\n              this._localizationService.translateOnce(\"base.question\")));\n\n            if (!doExecute) {\n              return Promise.reject();\n            }\n            return Promise.resolve();\n          }\n        }\n      }\n      return Promise.resolve();\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_BestellungspositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Bestellung\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Bestellung\"];\n          if (model) {\n            model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Bestellung\",\n                bindTo: \"IdLieferfiliale\"\n              },\n              value: model.IdLieferfiliale\n            });\n          }\n        }\n\n        if (args.binding.bindTo === \"IdLieferfiliale\") {\n          const model = form.models.data[\"$m_Bestellung\"];\n          if (model) {\n            model.IdLieferlager = await this._lagerService.getIdLagerVorbelegung(args.value);\n\n            const idWaehrung = await this._filialeService.getWaehrungIdOfFiliale(args.value);\n            if (idWaehrung != null) {\n              model.IdWaehrung = idWaehrung;\n            } else {\n              model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Bestellung.IdFirma);\n            }\n          }\n        }\n      }\n    });\n  }\n\n  async onLieferantChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Bestellung.CanSave && this.form.models.data.$m_Bestellung.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Bestellung.IdLieferant);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Bestellung.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Bestellung\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import { autoinject, elementConfig } from 'aurelia-framework';\nimport { CustomEditPopupService } from '../services/export';\nimport { CustomEditPopup } from '../../framework/forms/export';\n\n@autoinject\nexport class OpenEditCustomAttribute {\n  private _onElementClicked: any;\n  private _isClickRegistered: boolean = false;\n\n  constructor(\n    private customEditPopup: CustomEditPopupService,\n    private element: Element\n  ) {\n    this._onElementClicked = this.onElementClicked.bind(this);\n  }\n\n  value: any;\n  bind() {\n    const el: HTMLElement = <any>this.element;\n\n    const canOpen = this.value\n      && (this.value.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Person\"\n      || this.value.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\");\n\n    if (canOpen) {\n      el.style.display = null;\n      this._isClickRegistered = true;\n      this.element.addEventListener(\"click\", this._onElementClicked);\n    } else {\n      el.style.display = \"none\";\n      this._isClickRegistered = false;\n    }\n  }\n  unbind() {\n    if (this._isClickRegistered) {\n      this.element.removeEventListener(\"click\", this._onElementClicked);\n    }\n  }\n\n  onElementClicked(e: MouseEvent) {\n    if (!this.value || !this.value.TypeName) {\n      return;\n    }\n\n    const editPopup = this.getEditPopup();\n    if (!editPopup) {\n      return;\n    }\n\n    e.stopPropagation();\n\n    this.openEditPopup(editPopup);\n  }\n\n  private getEditPopup(): CustomEditPopup {\n    switch (this.value.TypeName) {\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Person\":\n        return this.customEditPopup.personEditPopup;\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\":\n        return this.customEditPopup.geschaeftspartnerEditPopup\n      default:\n        return null;\n    }\n  }\n  private openEditPopup(editPopup: CustomEditPopup) {\n    editPopup.show({\n      mappings: {\n        $id: this.value.Id\n      }\n    });\n  }\n}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dashboard .au-grid-cell__content {\\n  background-color: #FBFBFB;\\n  border: 1px solid #ddd;\\n  padding: 10px;\\n  overflow: auto;\\n}\\n.dashboard .au-grid-cell__content .dashboard-content {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.dashboard .au-grid-cell__content .dashboard-content .dashboard-content--grow {\\n  flex-grow: 1;\\n}\\n.dashboard .au-grid-cell__content .dashboard-content .dashboard-content--abs {\\n  position: relative;\\n}\\n.dashboard .au-grid-cell__content .dashboard-content .dashboard-content--abs > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.dashboard .au-grid-cell__content .dashboard-content dx-widget[name='dxChart'] > div {\\n  height: 100%;\\n}\\n.dashboard .au-grid-cell__content .dashboard-commands {\\n  display: none;\\n  position: absolute;\\n  top: 13px;\\n  right: 13px;\\n}\\n.dashboard .au-grid-cell__content .dashboard-commands > div {\\n  margin-left: 10px;\\n  float: left;\\n}\\n.dashboard .au-grid-cell__content:hover .dashboard-commands {\\n  display: block;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { WidgetService } from '../services/widget-service';\nimport { AuGrid, IAuGridCell } from 'aurelia-dashboard-grid';\nimport { RestService } from '../../../framework/base/export';\nimport { IdxTabsComponent } from '../../interfaces/export';\n\n@autoinject\nexport class Viewer {\n  constructor(\n    private _widgetService: WidgetService,\n    private _restService: RestService\n  ) {}\n\n  @bindable typ: number;\n  @bindable @observable mainModel: any;\n  grid: AuGrid;\n  cells: IAuGridCell[] = [];\n\n  tabDataSource: any[] = [];\n  tabsOptions: DevExpress.ui.dxTabsOptions = {\n    keyExpr: \"id\",\n    onSelectionChanged: (e) => {\n      \n    },\n    bindingOptions: {\n      dataSource: \"tabDataSource\",\n      selectedIndex: \"selectedDashboardIndex\"\n    }\n  };\n  \n  @observable selectedDashboardIndex: number = null;\n  dashboardList: any[];\n  currentDashboard: any;\n\n  attached() {\n    this.loadData();\n  }\n\n  mainModelChanged() {\n    this.loadDashboard(this.currentDashboard);\n  }\n  selectedDashboardIndexChanged() {\n    if (this.selectedDashboardIndex == void(0)) {\n      return;\n    }\n\n    this.loadDashboard(this.dashboardList[this.selectedDashboardIndex]);\n  }\n\n  private async loadData() {\n    this.dashboardList = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Dashboard\"),\n      getOptions: {\n        where: [\"Typ\", this.typ],\n        customs: [{ key: \"CheckBerechtigung\", value: true }],\n        orderBy: [{columnName: \"SortNr\", sortOrder: 0}, {columnName: \"Bezeichnung\", sortOrder: 0}]\n      }\n    });\n\n    this.tabDataSource = this.dashboardList.map(i => {\n      return {\n        id: i.Id,\n        text: i.Bezeichnung\n      }\n    });\n\n    if (this.dashboardList.length > 0) {\n      this.selectedDashboardIndex = 0;\n    }\n  }\n  private async loadDashboard(dashboard: any) {\n    this.currentDashboard = dashboard;\n    this.cells = this._widgetService.getCellsFromDefinition(dashboard.Definition, this.mainModel);\n  }\n}","// Module\nvar code = \"<template> <require from=\\\"../styles.less\\\"></require> <require from=\\\"./viewer.less\\\"></require> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"tabsOptions\\\" if.bind=\\\"tabDataSource.length > 1\\\" class=\\\"dashboard-viewer__tabs\\\"></dx-widget> <div class=\\\"dashboard dashboard-viewer\\\"> <au-grid cells.bind=\\\"cells\\\" cell-height.bind=\\\"25\\\"></au-grid> </div> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dashboard-viewer__tabs {\\n  margin-bottom: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, computedFrom } from \"aurelia-framework\";\nimport { IWidgetModel } from '../interfaces/widget-model';\nimport { IWidgetSettings } from '../interfaces/widget-settings';\n\n@autoinject\nexport class WidgetToolbar {\n  private _bindingContext: any;\n\n  constructor(\n    private _element: Element\n  ) {}\n\n  @bindable widgetModel: IWidgetModel;\n\n  @computedFrom(\"widgetModel.widget.settingViewModel\")\n  get hasSettings() {\n    return this.widgetModel\n      && this.widgetModel.widget\n      && this.widgetModel.widget.settingViewModel;\n  }\n\n  bind(bindingContext) {\n    this._bindingContext = bindingContext;\n  }\n\n  onSettingClick() {\n    this._element.dispatchEvent(new CustomEvent(\n      \"widget-setting\", {\n        bubbles: true,\n        detail: <IWidgetSettings>{\n          widgetModel: this.widgetModel,\n          widgetViewModel: this._bindingContext\n        }\n      }\n    ));\n  }\n  onDeleteClick() {\n    this._element.dispatchEvent(new CustomEvent(\n      \"au-grid-cell-delete\", {\n        bubbles: true\n      }\n    ));\n  }\n}","// Module\nvar code = \"<template> <require from=\\\"./widget-toolbar.less\\\"></require> <i if.bind=\\\"hasSettings\\\" class=\\\"fa fa-cog\\\" click.delegate=\\\"onSettingClick()\\\"></i> <i class=\\\"fa fa-trash-o\\\" click.delegate=\\\"onDeleteClick()\\\"></i> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"widget-toolbar {\\n  position: absolute;\\n  top: 5px;\\n  left: 5px;\\n  display: none;\\n  z-index: 1;\\n  padding: 3px 6px;\\n  background-color: #666;\\n}\\nwidget-toolbar i + i {\\n  margin-left: 4px;\\n}\\nwidget-toolbar i {\\n  color: #ddd;\\n  cursor: pointer;\\n}\\nwidget-toolbar i:hover {\\n  color: white;\\n}\\n.dashboard-designer .au-grid-cell__content:hover widget-toolbar {\\n  display: block;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, OverrideContext, Scope } from \"aurelia-framework\";\nimport { OnAufgabeErledigenRequestEvent } from \"../../../../framework-data/events\";\nimport { DataSourceService, IViewScrollInfo, ScopeContainer, WebEventService } from \"../../../../framework/base/export\";\nimport { IListViewOptions, ListView } from \"../../../../framework/forms/elements/list-view/export\";\nimport { Statustyp } from \"../../../enumerations/export\";\nimport { CustomEditPopupService, EntitaetInfoService } from \"../../../services/export\";\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport * as moment from \"moment\";\n\n@autoinject\nexport class AufgabeTags {\n  private _aufgabeBenutzer: boolean = true;\n\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _dataSourceService: DataSourceService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _webEventService: WebEventService\n  ) { }\n\n  idVerknuepfteEntitaet: number;\n  aufgabeUrl: string;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  heute: Date;\n\n  widgetModel: IWidgetModel;\n\n  aufgabeListView: ListView;\n  aufgabeListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"100%\",\n    pageSize: 15,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const aufgabe = e.item;\n      this.showAufgabePopup(aufgabe);\n    }\n  }\n\n  aufgabeStatusAendernButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-check fa-fw\",\n    onClick: (e) => {\n      const event: Event = <any>e.event;\n      event.stopPropagation();\n\n      this.erledigenAufgabe(e.model.bindingContext.item);\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.aufgabeListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiColumns: [\"Id\", \"Betreff\", \"FaelligAm\", \"ErinnernAm\", \"IdGeschaeftspartner\", \"IdSachbearbeiter\", \"IsPrioritaet\"],\n        webApiAction: \"ERP/Stammdaten/Aufgabe\",\n        webApiWhere: [\"Status.Typ\", Statustyp.Offen],\n        webApiExpand: {\n          Geschaeftspartner: {\n            columns: [\"Id\", \"EntitaetBezeichnung\"]\n          },\n          Sachbearbeiter: {\n            columns: [\"Id\", \"Name\"]\n          }\n        },\n        filters: [{\n          webApiCustomKey: \"InklIdStatusFarbe\",\n          webApiCustomValue: \"true\"\n        }, {\n          webApiCustomKey: \"AddTags\",\n          webApiCustomValue: \"true\"\n        }]\n      },\n      {\n        getCustomFilters: () => {\n          if (!this._aufgabeBenutzer) {\n            return;\n          }\n\n          return [{ webApiCustomKey: \"AufgabeBenutzer\", webApiCustomValue: \"true\" }];\n        }\n      }\n    );\n\n    this._entitaetInfoService.getUrl(\"TIP.ERP.Business.Entitaeten.Stammdaten.Aufgabe\")\n      .then(r => {\n        this.aufgabeUrl = r;\n      });\n\n    this.heute = moment().startOf(\"day\").toDate();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n  showAufgabePopup(aufgabe) {\n    this._customEditPopupService\n      .aufgabeEditPopup\n      .show({\n        mappings: { \"$id\": aufgabe.Id },\n        viewScrollInfo: this.getViewScrollInfo(aufgabe)\n      });\n  }\n\n  private erledigenAufgabe(aufgabe: any) {\n    if (aufgabe == void 0 || aufgabe.Id == void 0) {\n      return;\n    }\n\n    const aufgabeErledigenEvent = new OnAufgabeErledigenRequestEvent({ IdAufgabe: aufgabe.Id });\n\n    this._webEventService\n      .execute(aufgabeErledigenEvent, true)\n      .then(r => {\n        this.aufgabeListViewOptions.dataSource.reload();\n      })\n  }\n  private getViewScrollInfo(aufgabe): IViewScrollInfo {\n    const dataSource = this.aufgabeListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(aufgabe);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n}\n","// Module\nvar code = \"<template class=\\\"dashboard-element\\\"> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./aufgabe-tags.less\\\"></require> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> <div class=\\\"aufgabe-tags__container\\\"> <div class=\\\"aufgabe-tags__container__header\\\"> <h2>Meine Aufgaben</h2> </div> <div class=\\\"aufgabe-tags__container__tags\\\"> <list-view options.bind=\\\"aufgabeListViewOptions\\\" view-model.ref=\\\"aufgabeListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"aufgabe-tags__container__tags__item\\\" class.one-time=\\\"item.StatusFarbe ? 'aufgabe-tags__container__tags__item__borderstatus':''\\\" css=\\\"border-color: ${item.StatusFarbe}\\\"> <div class=\\\"aufgabe-tags__container__tags__item__title\\\"> <i if.bind=\\\"item.IsPrioritaet\\\" class=\\\"fa fa-exclamation aufgabe-tags__container__tags__item__isprioritaet\\\"></i><span>${item.Betreff}</span> </div> <div class=\\\"aufgabe-tags__container__tags__item__info\\\"> <div if.bind=\\\"item.FaelligAm\\\" class.one-time=\\\"item.FaelligAm <= heute? 'aufgabe-tags__container__tags__item__abgelaufen':''\\\"> F: ${item.FaelligAm | format:\\\"e\\\"}</div> <div if.bind=\\\"item.ErinnernAm\\\" class.one-time=\\\"item.ErinnernAm <= heute? 'aufgabe-tags__container__tags__item__abgelaufen':''\\\">E: ${item.ErinnernAm | format:\\\"e\\\"}</div> </div> <div class=\\\"aufgabe-tags__container__tags__item__commands\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"aufgabeStatusAendernButtonOptions\\\"></dx-widget> </div> <div if.bind=\\\"item.Geschaeftspartner.EntitaetBezeichnung\\\" class=\\\"aufgabe-tags__container__tags__item__text aufgabe-tags__container__tags__item__text__overflowy\\\"> ${item.Geschaeftspartner.EntitaetBezeichnung} </div> <tags-list if.bind=\\\"item._Tags\\\" tags.bind=\\\"item._Tags\\\"></tags-list> </div> </custom-template> </list-view> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".aufgabe-tags__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.aufgabe-tags__container__tags {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.aufgabe-tags__container__tags > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.aufgabe-tags__container__tags__item {\\n  display: grid;\\n  grid-template-columns: 1fr auto auto;\\n  grid-column-gap: 12px;\\n  align-items: center;\\n}\\n.aufgabe-tags__container__tags__item.aufgabe-tags__container__tags__item__borderstatus {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__title {\\n  font-weight: bold;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__text {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__text__overflowy {\\n  overflow-y: hidden;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__info {\\n  text-align: right;\\n  grid-row: span 2;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__abgelaufen {\\n  color: #C1392D;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__commands {\\n  grid-row: span 2;\\n}\\n.aufgabe-tags__container__tags__item .aufgabe-tags__container__tags__item__isprioritaet {\\n  color: #C1392D;\\n  padding-right: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject } from \"aurelia-framework\";\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IAuswertungSettings } from './auswertung-settings';\nimport { Report } from '../../../../framework/reports/elements/report/report';\nimport { RestService } from '../../../../framework/base/export';\n\n@autoinject\nexport class Auswertung {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  widgetModel: IWidgetModel;\n  settings: IAuswertungSettings;\n  report: Report;\n  widgetUeberschrift: string;\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n\n    this.loadData();\n  }\n\n  async loadData() {\n    if (!this.settings.idAuswertung) {\n      return;\n    }\n\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`Framework/Report/Definition/${this.settings.idAuswertung}`),\n      getOptions: {\n        columns: [\"Id\", \"Name\"]\n      }\n    });\n\n    if (!r) {\n      return;\n    }\n    this.widgetUeberschrift = r.Name;\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\nimport { DataSourceService, ScopeContainer, RestService } from '../../../../framework/base/export';\n\n@autoinject\nexport class AuswertungSettings {\n  constructor(\n    private _dataSourceService: DataSourceService,\n    private _restService: RestService\n  ) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IAuswertungSettings;\n  scopeContainer: ScopeContainer;\n\n  dataSource: any[];\n\n  auswertungOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Name\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"dataSource\",\n      value: \"settings.idAuswertung\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.loadDataSource();\n    if (this.settings.idAuswertung) {\n      this.reloadData();\n    }\n  }\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  private async loadDataSource() {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"Framework/Report/Definition\"),\n      getOptions: {\n        where:[\"IsVisible\",true],\n        columns: [\"Id\",\"Name\"]\n      }\n    });\n    this.dataSource = r;\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n    this.widgetViewModel.loadData();\n  }\n}\n\nexport interface IAuswertungSettings {\n  idAuswertung: number;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Auswertung</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"auswertungOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./../../../../framework/reports/elements/report/report\\\"></require> <require from=\\\"./auswertung.less\\\"></require> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> <div class=\\\"auswertung__container\\\"> <div class=\\\"auswertung__container__header\\\"> <h2 if.bind=\\\"settings.idAuswertung\\\"> ${widgetUeberschrift}</h2> <h2 else>Bitte Auswertung auswählen</h2> </div> <div class=\\\"auswertung__container__content\\\"> <report if.bind=\\\"settings.idAuswertung\\\" id.bind=\\\"settings.idAuswertung\\\" view-model.ref=\\\"report\\\"> </report> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".auswertung__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.auswertung__container__content {\\n  height: 100%;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { EntitaetInfoService } from './../../../services/entitaet-info-service';\nimport { ScopeContainer } from './../../../../framework/base/classes/scope-container';\nimport { DataSourceService } from './../../../../framework/base/services/data-source-service';\nimport { autoinject } from \"aurelia-framework\";\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IEntitaetTagsSettings } from './entitaet-tags-settings';\nimport { ListView } from '../../../../framework/forms/elements/export';\nimport { IListViewOptions } from '../../../../framework/forms/elements/list-view/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\nimport { LocationService, IDataSourceOptions } from '../../../../framework/base/export';\nimport { Statustyp } from '../../../enumerations/export';\n\n@autoinject\nexport class EntitaetTags {\n  constructor(\n    private _dataSourceService: DataSourceService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService,\n    private _entitaetInfoService: EntitaetInfoService\n  ) { }\n\n  scopeContainer: ScopeContainer;\n\n  widgetModel: IWidgetModel;\n  settings: IEntitaetTagsSettings;\n  entitateTitle: string;\n\n  entitaetListView: ListView;\n  entitaetListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 20,\n    hoverStateEnabled: true,\n    height: \"100%\",\n    onItemClick: async (e) => {\n      this._entitaetInfoService\n      .getUrl(e.item.ObjektTypeName, e.item.IdObjekt)\n      .then(r => {\n        this._popupInfoService.closeAllPopups().then(async pr => {\n          if (!pr) {\n            return;\n          }\n\n          const viewScrollInfo = await this.getViewScrollInfo(e.item);\n\n          this._locationService.goTo({\n            url: r,\n            viewScrollInfo: viewScrollInfo\n          });\n        })\n      });\n    }\n  }\n\n  dataSourceOptions: IDataSourceOptions;\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.loadData();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  async loadData() {\n    let dataSource: DevExpress.data.DataSource;\n\n    if (this.settings.idTag) {\n      const where = [[\"IdTag\", this.settings.idTag]];\n\n      if (this.settings.typeNameEntitaet) {\n        where.push([\"ObjektTypeName\", this.settings.typeNameEntitaet]);\n      }\n\n      if (this.settings.nurAktiveDatensaetze) {\n        where.push([\"ObjektStatusTyp\", \"!=\", <any>Statustyp.Erledigt]);\n      }\n\n      this.dataSourceOptions = {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/Tag/TagEintrag\",\n        webApiColumns: [\"Id\", \"IdTagContainer\", \"ObjektTypeName\", \"IdObjekt\", \"ObjektBezeichnung\", \"ObjektStatusFarbe\"],\n        webApiWhere: where,\n        webApiOrderBy: [{columnName: \"Id\", sortOrder: 1}]\n      };\n\n      dataSource = this._dataSourceService.createDataSource(this.scopeContainer, this.dataSourceOptions);\n    } else {\n      dataSource = new DevExpress.data.DataSource(new DevExpress.data.ArrayStore({ data: [] }));\n    }\n\n    if (this.entitaetListView && this.entitaetListViewOptions.dataSource) {\n      this.entitaetListView.replaceDataSource(dataSource);\n    } else {\n      this.entitaetListViewOptions.dataSource = dataSource;\n    }\n  }\n\n  private async getViewScrollInfo(item): Promise<any>{\n    const viewScrollInfo = await this._entitaetInfoService.createViewScrollInfoEx(\n      \"ERP/Tag/TagEintrag\",\n      [\"IdObjekt\"],\n      [this.dataSourceOptions.webApiWhere, [\"ObjektTypeName\", item.ObjektTypeName]],\n      null,\n      this.dataSourceOptions.webApiOrderBy,\n      item.IdObjekt,\n      (item) => {\n        return item.IdObjekt;\n      }\n    );\n\n    return viewScrollInfo;\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { ScopeContainer } from '../../../../framework/base/export';\nimport { EntitaetInfoService } from '../../../services/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\nimport { TagService } from './../../../services/tag-service';\n\n@autoinject\nexport class EntitaetTagsSettings {\n  constructor(\n    private _tagService: TagService,\n    private _entitaetInfoService: EntitaetInfoService\n  ) { }\n\n  scopeContainer: ScopeContainer;\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IEntitaetTagsSettings;\n\n  dataSourceEntitaeten: any[];\n  dataSourceTags: any[];\n\n  tagBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      dataSource: \"dataSourceTags\",\n      value: \"settings.idTag\",\n    },\n    onValueChangedByUser: (e) => {\n      e.model.bindingContext.settings.typeNameEntitaet = null;\n      this.reloadData();\n      this.loadEntitaetenDataSource();\n\n    }\n  };\n\n  entitaetBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"TypeName\",\n    searchEnabled: true,\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"dataSourceEntitaeten\",\n      value: \"settings.typeNameEntitaet\",\n    },\n    onValueChangedByUser: (e) => {\n      this.reloadData();\n    }\n  };\n\n  doShowAktivBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Nur aktive anzeigen\",\n    bindingOptions: {\n      value: \"settings.nurAktiveDatensaetze\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.loadTagDataSource();\n  }\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  private async loadEntitaetenDataSource() {\n    const result = this._tagService.getEntitaetList(this.settings.idTag);\n\n    const dataSource = [];\n    result.forEach(res => {\n      dataSource.push({\n        Bezeichnung: this._entitaetInfoService.getBezeichnung(res) || res,\n        TypeName: res\n      })\n    });\n\n    dataSource.sort((a, b) => a.Bezeichnung.localeCompare(b.Bezeichnung));\n    this.dataSourceEntitaeten = dataSource;\n  }\n\n  private loadTagDataSource() {\n    const dataSource = this._tagService.getAllTagList();\n    this.dataSourceTags = dataSource;\n\n    if (this.settings.idTag) {\n      this.loadEntitaetenDataSource();\n    }\n\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n    this.widgetViewModel.loadData();\n  }\n}\n\nexport interface IEntitaetTagsSettings {\n  typeNameEntitaet?: string;\n  idTag?: number;\n  nurAktiveDatensaetze?: boolean;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Tag</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"tagBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Entität</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"entitaetBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowAktivBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./entitaet-tags.less\\\"></require> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> <div class=\\\"entitaet-tags__container\\\"> <div class=\\\"entitaet-tags__container__header\\\"> <h2 if.bind=\\\"settings.typeNameEntitaet != null\\\"> ${settings.typeNameEntitaet | entitaetFullNameZuName} mit </h2> <tags-list class=\\\"entitaet-tags__container__tag-list\\\" if.bind=\\\"settings.idTag\\\" tags.bind=\\\"settings.idTag\\\"> </tags-list> <h2 else>Bitte Tag auswählen</h2> </div> <div class=\\\"entitaet-tags__container__tags\\\"> <list-view options.bind=\\\"entitaetListViewOptions\\\" view-model.ref=\\\"entitaetListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"entitaet-tags__container__tags__bez\\\"> <div if.bind=\\\"settings.typeNameEntitaet == null\\\" class=\\\"entitaet-tags__container__tags__entitaet\\\" css=\\\"${item.ObjektStatusFarbe ? 'border-left: 4px solid ' + item.ObjektStatusFarbe : ''}\\\">${item.ObjektTypeName | entitaetFullNameZuName}</div> <div>${item.ObjektBezeichnung}</div> </div> </custom-template> </list-view> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".entitaet-tags__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.entitaet-tags__container__header {\\n  display: flex;\\n  align-items: center;\\n}\\n.entitaet-tags__container__tag-list {\\n  padding-bottom: 6px;\\n  margin-top: -2px;\\n  padding-left: 3px;\\n}\\n.entitaet-tags__container__tags {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.entitaet-tags__container__tags > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.entitaet-tags__container__tags__entitaet {\\n  background-color: #808080;\\n  color: white;\\n  display: inline-block;\\n  padding: 2px 6px;\\n  margin-right: 6px;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  overflow-x: hidden;\\n}\\n.entitaet-tags__container__tags__bez {\\n  display: flex;\\n  align-items: center;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject } from \"aurelia-framework\";\nimport { OnStatistikKennzahlen, OnStatistikKennzahlenEvent, StatistikKennzahlenTyp } from '../../../../framework-data/events';\nimport { LocationService, WebEventService } from '../../../../framework/base/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\nimport { EntitaetInfoService } from '../../../services/entitaet-info-service';\nimport { FirmaService } from \"../../../services/firma-service\";\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IKennzahlenSettings } from './kennzahlen-settings';\n\n@autoinject\nexport class Kennzahlen {\n  constructor(\n    private _firmaService: FirmaService,\n    private _webEventService: WebEventService,\n    private _locationService: LocationService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService) { }\n\n  widgetModel: IWidgetModel;\n  settings: IKennzahlenSettings;\n  firmaBezeichnung: string;\n  itemList: any[];\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.loadData();\n  }\n\n  async loadData() {\n    const typList: StatistikKennzahlenTyp[] = [];\n\n    if (this.settings.showOffeneBestellung) {\n      typList.push(StatistikKennzahlenTyp.OffeneBestellungen);\n    }\n    if (this.settings.showOffeneWarenuebernahmen) {\n      typList.push(StatistikKennzahlenTyp.OffeneWarenuebernahmen);\n    }\n    if (this.settings.showOffeneEingangsrechnungen) {\n      typList.push(StatistikKennzahlenTyp.OffeneEingangsrechnungen);\n    }\n    if (this.settings.showOffeneAngebote) {\n      typList.push(StatistikKennzahlenTyp.OffeneAngebote);\n    }\n    if (this.settings.showOffeneAuftraege) {\n      typList.push(StatistikKennzahlenTyp.OffeneAuftraege);\n    }\n    if (this.settings.showOffeneLieferscheine) {\n      typList.push(StatistikKennzahlenTyp.OffeneLieferscheine);\n    }\n    if (this.settings.showOffeneFakturen) {\n      typList.push(StatistikKennzahlenTyp.OffeneFakturen);\n    }\n    if (this.settings.showOffenePosten) {\n      typList.push(StatistikKennzahlenTyp.OffenePosten);\n    }\n    if (this.settings.showOffeneKundenreklamationen) {\n      typList.push(StatistikKennzahlenTyp.OffeneKundenreklamationen);\n    }\n    if (this.settings.showOffeneProduktionen) {\n      typList.push(StatistikKennzahlenTyp.OffeneProduktionen);\n    }\n    // if(this.settings.showAnzArtikel){\n    //   list.push(StatistikKennzahlenTyp.AnzArtikel); //Noch nicht umgesetzt\n    // }\n    // if(this.settings.showNewsletterAktivierungen){\n    //   list.push(StatistikKennzahlenTyp.AnzKunden);\n    // }\n    // if(this.settings.showNewsletterAktivierungen){\n    //   list.push(StatistikKennzahlenTyp.AnzLieferanten);\n    // }\n    if (this.settings.showNewsletterAktivierungen) {\n      typList.push(StatistikKennzahlenTyp.AnzNewsletterAnmeldung);\n    }\n    if (this.settings.showNewsletterAbmeldungen) {\n      typList.push(StatistikKennzahlenTyp.AnzNewsletterAbmeldung);\n    }\n\n    const idGeschaeftspartner = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const idArtikel = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const result: OnStatistikKennzahlen = await this._webEventService.execute(new OnStatistikKennzahlenEvent({\n      IdGeschaeftspartner: idGeschaeftspartner,\n      IdArtikel: idArtikel,\n      IdFirma: this.settings.idFirma,\n      TypList: typList\n    }));\n\n    this.getFirmaBezeichnung();\n\n    if (!result) {\n      return;\n    }\n\n    this.itemList = result.ItemList;\n    if ((this.itemList.length % 2) != 0) {\n      this.itemList.push({});\n    }\n  }\n\n  async onClick(item) {\n    const url = await this._entitaetInfoService.getUrl(item.TypeName, null);\n    if (!url) {\n      return;\n    }\n\n    const popupClosed = await this._popupInfoService.closeAllPopups();\n    if (!popupClosed) {\n      return;\n    }\n\n    const customOptions: any = {};\n\n    if (item.FilterInject) {\n      customOptions.filterInject = {\n        Bezeichnung: item.Bezeichnung,\n        Where: item.FilterInject\n      };\n    }\n\n    this._locationService.goTo({\n      url: url,\n      customOptions: customOptions\n    });\n  }\n\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class KennzahlenSettings {\n  constructor(\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IKennzahlenSettings;\n  firmaDataSource: any[];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    }\n  };\n\n  doShowOffeneBestellungCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Bestellungen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneBestellung\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneEingangsrechnungCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Eingangsrechnungen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneEingangsrechnungen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneAuftraegeCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Aufträge anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneAuftraege\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneFakturenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Fakturen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneFakturen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneKundenreklamationCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Kundenreklamationen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneKundenreklamationen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneWarenuebernahmeCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Warenübernahmen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneWarenuebernahmen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneAngeboteCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Angebote anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneAngebote\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneLieferscheineCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Lieferscheine anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneLieferscheine\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffenePostenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Posten anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffenePosten\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowOffeneProduktionenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Offene Produktionen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showOffeneProduktionen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowNewsletterAktivierungenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Newsletter-Aktivierungen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showNewsletterAktivierungen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  doShowNewsletterAbmeldungenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Newsletter-Abmeldungen anzeigen\",\n    bindingOptions: {\n      value: \"settings.showNewsletterAbmeldungen\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.loadFirmaDataSource();\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n\n    this.widgetViewModel.loadData();\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      },\n      increaseLoadingCount: true\n    });\n  }\n}\nexport interface IKennzahlenSettings {\n  ueberschrift?: string;\n  showOffeneBestellung?: boolean;\n  showOffeneEingangsrechnungen?: boolean;\n  showOffeneAuftraege?: boolean;\n  showOffeneFakturen?: boolean;\n  showOffeneKundenreklamationen?: boolean;\n  showOffeneWarenuebernahmen?: boolean;\n  showOffeneAngebote?: boolean;\n  showOffeneLieferscheine?: boolean;\n  showOffenePosten?: boolean;\n  showOffeneProduktionen?: boolean;\n  showNewsletterAktivierungen?: boolean;\n  showNewsletterAbmeldungen?: boolean;\n  idFirma?: number;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\" style=\\\"max-width:400px\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneBestellungCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneWarenuebernahmeCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneEingangsrechnungCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneAngeboteCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneAuftraegeCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneLieferscheineCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneFakturenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffenePostenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneKundenreklamationCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowOffeneProduktionenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNewsletterAktivierungenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNewsletterAbmeldungenCheckBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./kennzahlen.less\\\"></require> <div class=\\\"dashboard-content\\\"> <h2>Kennzahlen <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> <div class=\\\"kennzahlen-container\\\"> <div repeat.for=\\\"item of itemList\\\" class=\\\"kennzahlen-container__item ${item.Wert ? 'kennzahlen-container__item__3' : ''}\\\" click.delegate=\\\"onClick(item)\\\"> <div class=\\\"kennzahlen-container__item__anzahl\\\"> ${item.Anzahl | format:'n0'} </div> <div> ${item.Bezeichnung} </div> <div if.bind=\\\"item.Wert\\\"> Wert: ${startupService.startupInfo.Mandant.WaehrungCode} ${item.Wert | format:'n0'} </div> </div> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".kennzahlen-container {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n  grid-template-columns: 1fr 1fr;\\n}\\n.kennzahlen-container__item {\\n  display: grid;\\n  grid-template-columns: minmax(85px, max-content) 1fr;\\n  grid-row-gap: 4px;\\n  align-items: center;\\n  background-color: #FBFBFB;\\n  padding: 12px;\\n  cursor: pointer;\\n}\\n.kennzahlen-container__item .kennzahlen-container__item__anzahl {\\n  font-size: 2em;\\n}\\n.kennzahlen-container__item > div:not(.kennzahlen-container__item__anzahl) {\\n  white-space: nowrap;\\n  overflow-x: hidden;\\n  text-overflow: ellipsis;\\n  padding: 1px 0;\\n}\\n.kennzahlen-container__item.kennzahlen-container__item__3 {\\n  grid-template-rows: 1fr 1fr;\\n}\\n.kennzahlen-container__item.kennzahlen-container__item__3 .kennzahlen-container__item__anzahl {\\n  grid-row: span 2;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject } from \"aurelia-framework\";\nimport { IViewScrollInfo, LocationService } from '../../../../framework/base/export';\nimport { ListView } from '../../../../framework/forms/elements/export';\nimport { IListViewOptions } from '../../../../framework/forms/elements/list-view/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\nimport { Statustyp } from '../../../enumerations/export';\nimport { FirmaService } from '../../../services/firma-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { ScopeContainer } from './../../../../framework/base/classes/scope-container';\nimport { DataSourceService } from './../../../../framework/base/services/data-source-service';\nimport { EntitaetInfoService } from './../../../services/entitaet-info-service';\nimport { IOffeneAuftraegeSettings } from './offene-auftraege-settings';\n\n@autoinject\nexport class OffeneAuftraege {\n  constructor(\n    private _dataSourceService: DataSourceService,\n    private _firmaService: FirmaService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService,\n    private _entitaetInfoService: EntitaetInfoService) { }\n\n  scopeContainer: ScopeContainer;\n\n  widgetModel: IWidgetModel;\n  settings: IOffeneAuftraegeSettings;\n  entitateTitle: string;\n  firmaBezeichnung: string;\n\n  offeneAuftraegeListView: ListView;\n  offeneAuftraegeListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 20,\n    hoverStateEnabled: true,\n    height: \"100%\",\n    onItemClick: async (e) => {\n      const popupClosed = await this._popupInfoService.closeAllPopups();\n      if (!popupClosed) {\n        return;\n      }\n\n      let url = await this._entitaetInfoService.getUrl(\"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\", e.item.Id);\n      this._locationService.goTo({\n        url: url,\n        viewScrollInfo: this.getViewScrollInfo(e.item)\n      });\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.loadData();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  async loadData() {\n    let dataSource: DevExpress.data.DataSource;\n\n    const where = [[\"Status.Typ\", Statustyp.Offen], [\"Lieferdatum\", \"<=\", \"@Today()+5\"]];\n\n    if (this.settings.idFirma != null) {\n      where.push([\"IdFirma\", this.settings.idFirma]);\n    }\n\n    dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer, {\n      keyProperty: \"Id\",\n      webApiAction: \"ERP/Verkauf/Auftrag\",\n      webApiColumns: [\"Id\", \"Lieferdatum\", \"Nummer\", \"Reservierungsgrad\", \"IsBestaetigt\", \"IdKundeAdresse\", \"IdStatus\"],\n      webApiWhere: where,\n      webApiExpand: {\n        KundeAdresse: {\n          columns: [\"Id\", \"Firmenbez1\"]\n        },\n        Status: {\n          columns: [\"Id\", \"Farbe\", \"Typ\"]\n        }\n      }, filters: [\n        {\n          webApiCustomKey: \"AddTags\",\n          webApiCustomValue: \"true\"\n        }]\n    }\n    );\n\n    this.offeneAuftraegeListViewOptions.dataSource = dataSource;\n\n    this.getFirmaBezeichnung();\n  }\n\n  private getViewScrollInfo(item): IViewScrollInfo {\n    const dataSource = this.offeneAuftraegeListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(item);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n\n  getCellFormat(item) {\n    if (!item || item.IsBestaetigt == false || item.Status.Typ !== 0) {\n      return;\n    }\n\n    let returnCss = \"color:white;\";\n\n    let backgroundColor;\n    if (item.Reservierungsgrad < 1) {\n      backgroundColor = \"#C1392D;\"\n    } else {\n      if (item.HasArtikelNichtLagerfuehrendOffen) {\n        backgroundColor = \"#566473;\"\n      } else {\n        backgroundColor = \"#2DCC70;\"\n      }\n    }\n\n    if (backgroundColor) {\n      returnCss = returnCss.concat(\"background-color:\", backgroundColor);\n    }\n    return returnCss;\n  }\n\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class OffeneAuftraegeSettings {\n  constructor(\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IOffeneAuftraegeSettings;\n  firmaDataSource: any[];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.loadFirmaDataSource();\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      },\n      increaseLoadingCount: true\n    });\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n\n    this.widgetViewModel.loadData();\n  }\n}\nexport interface IOffeneAuftraegeSettings {\n  idFirma?: number;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./offene-auftraege.less\\\"></require> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> <div class=\\\"offene-auftraege__container\\\"> <div class=\\\"offene-auftraege__container__header\\\"> <h2>Zu liefernde Aufträge in 5 Tagen <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> </div> <div class=\\\"offene-auftraege__container__content\\\"> <list-view options.bind=\\\"offeneAuftraegeListViewOptions\\\" view-model.ref=\\\"offeneAuftraege\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"offene-auftraege__container__content__item\\\" class.one-time=\\\"item.Status.Farbe ? 'offene-auftraege__container__content__borderstatus':''\\\" css=\\\"border-color: ${item.Status.Farbe}\\\"> <div class=\\\"offene-auftraege__container__content__item__title\\\"> Auftrag: ${item.Nummer} </div> <div class=\\\"offene-auftraege__container__content__item__info\\\"> <div> Lieferdatum: ${item.Lieferdatum | format:\\\"d\\\"} </div> <div css=\\\"${getCellFormat(item)}\\\"> Reservierungsgrad: ${item.Reservierungsgrad | format:\\\"p0\\\"} </div> </div> <div class=\\\"offene-auftraege__container__content__item__text offene-auftraege__container__content__item__text__overflowy\\\"> Kunde: ${item.KundeAdresse.Firmenbez1} </div> <tags-list if.bind=\\\"item._Tags\\\" tags.bind=\\\"item._Tags\\\"></tags-list> </div> </custom-template> </list-view> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".offene-auftraege__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.offene-auftraege__container__header {\\n  display: flex;\\n  align-items: center;\\n}\\n.offene-auftraege__container__content {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.offene-auftraege__container__content > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.offene-auftraege__container__content__borderstatus {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.offene-auftraege__container__content__item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-column-gap: 12px;\\n  align-items: center;\\n}\\n.statistik-gruppiert__container__content__grid__item__align {\\n  text-align: right;\\n}\\n.offene-auftraege__container__content__item__title {\\n  font-weight: bold;\\n}\\n.offene-auftraege__container__content__item__text {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.offene-auftraege__container__content__item__text__overflowy {\\n  overflow-y: hidden;\\n}\\n.offene-auftraege__container__content__item__info {\\n  text-align: right;\\n  grid-row: span 2;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { autoinject } from \"aurelia-framework\";\nimport * as moment from \"moment\";\nimport { OnStatistikGruppiertDashboardEvent, StatistikVerkaufZeitraumTyp, UmsatzWhereTyp } from '../../../../framework-data/events';\nimport { GlobalizationService, WebEventService } from '../../../../framework/base/export';\nimport { IUmsatzWhereItem, StatistikVerkaufDetailViewTyp } from '../../../elements/statistik-verkauf-detail/statistik-verkauf-detail';\nimport { IdxChartComponent } from '../../../interfaces/export';\nimport { DynFelderService, FirmaService } from '../../../services/export';\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { ScopeContainer } from './../../../../framework/base/classes/scope-container';\nimport { IStatistikGruppiertSettings } from './statistik-gruppiert-settings';\n\n@autoinject\nexport class StatistikGruppiert {\n  private _windowResizeSubscription: Subscription;\n\n  constructor(\n    private _element: Element,\n    private _firmaService: FirmaService,\n    private _globalizationService: GlobalizationService,\n    private _webEventService: WebEventService,\n    private _dynFelderService: DynFelderService,\n    private _eventAggregator: EventAggregator,\n    private _statistikVerkaufService: StatistikService) { }\n\n  scopeContainer: ScopeContainer;\n\n  widgetModel: IWidgetModel;\n  settings: IStatistikGruppiertSettings;\n\n  ueberschrift: string;\n  zeitraum: string;\n  firmaBezeichnung: string;\n  dataSource: any[];\n\n  pieChart: IdxChartComponent;\n  pieChartOptions: DevExpress.viz.dxPieChartOptions = {\n    bindingOptions: {\n      dataSource: \"dataSource\"\n    },\n    legend: {\n      orientation: \"horizontal\",\n      itemTextPosition: \"right\",\n      horizontalAlignment: \"center\",\n      verticalAlignment: \"bottom\",\n      columnCount: 4\n    },\n    resolveLabelOverlapping: \"shift\",\n    series: [{\n      argumentField: \"Bezeichnung\",\n      valueField: \"Wert\",\n      label: {\n        visible: true,\n        connector: {\n          visible: true,\n          width: 1\n        },\n        position: \"columns\",\n        format: this._globalizationService.getFormatterParser(\"n0\"),\n      }\n    }],\n    onPointClick: (e) => {\n      this.showStatistikDetail(e.target.data);\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n  }\n  attached() {\n    this.loadData();\n\n    this._windowResizeSubscription = this._eventAggregator.subscribe(\"window:resize\", () => {\n      this.updateChartHeight();\n    });\n  }\n  detached() {\n    this._windowResizeSubscription.dispose();\n    this._windowResizeSubscription = null;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  onWertClick(e: Event, item) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    this.showStatistikDetail(item);\n  }\n\n  private showStatistikDetail(item) {\n    let zeitraumTypValue = moment().year();\n    if (this.settings.zeitraumTyp == StatistikVerkaufZeitraumTyp.Vorjahr) {\n      zeitraumTypValue = zeitraumTypValue - 1;\n    }\n\n    let zeitraumTyp = UmsatzWhereTyp.Jahr;\n    if (this.settings.zeitraumTyp == StatistikVerkaufZeitraumTyp.YTD) {\n      zeitraumTyp = UmsatzWhereTyp.YTD;\n    }\n\n    const where: IUmsatzWhereItem = {\n      Typ: zeitraumTyp,\n      IdGeschaeftspartner: this.getIdGeschaeftspartner(),\n      IdArtikel: this.getIdArtikel(),\n      IdFirma: this.settings.idFirma,\n      Data: {\n        Jahr: zeitraumTypValue,\n        Datum: moment(new Date())\n      }\n    }\n\n    if (this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Projekt\") {\n      where.IdProjekt = item.Id;\n    } else if (item.Id != -1) {\n      where.Data.ArtikelGeschaeftspartner = {\n        EntitaetFullName: this.settings.entitaetFullname,\n        IdIncludeList: [item.Id],\n        IdDynFeld: this.settings.idDynFeld\n      }\n    } else if (item.Id == -1) {\n      let idList = this.dataSource.map(c => c.Id);\n      where.Data.ArtikelGeschaeftspartner = {\n        EntitaetFullName: this.settings.entitaetFullname,\n        IdDynFeld: this.settings.idDynFeld,\n        IdExcludeList: idList,\n      }\n    } else {\n      return;\n    }\n\n    this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n  }\n\n  async loadData() {\n    this.setUeberschrift();\n    this.setZeitraumTypUeberschrift();\n    this.updateChartHeight();\n    this.getFirmaBezeichnung();\n\n    if (!this.settings.entitaetFullname || !this.settings.darstellungTyp) {\n      this.dataSource = [];\n      return;\n    }\n    if ((this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\" || this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\") && !this.settings.idDynFeld) {\n      this.dataSource = [];\n      return;\n    }\n\n    const result = await this._webEventService.execute(new OnStatistikGruppiertDashboardEvent({\n      EntitaetFullName: this.settings.entitaetFullname,\n      IdDynFeld: this.settings.idDynFeld,\n      IdFirma: this.settings.idFirma,\n      ZeitraumTyp: this.settings.zeitraumTyp,\n      Anzahl: this.settings.anzahl,\n      ShowRest: this.settings.showRest,\n      IdGeschaeftspartner: this.getIdGeschaeftspartner(),\n      IdArtikel: this.getIdArtikel()\n    }), true);\n\n    if (!result) {\n      return;\n    }\n    this.dataSource = result.DataList;\n  }\n\n  private setZeitraumTypUeberschrift() {\n    if (this.settings.zeitraumTyp == StatistikVerkaufZeitraumTyp.YTD) {\n      this.zeitraum = \"YTD\";\n    } else if (this.settings.zeitraumTyp == StatistikVerkaufZeitraumTyp.Jahr) {\n      this.zeitraum = \"Aktuelles Jahr\";\n    } else if (this.settings.zeitraumTyp == StatistikVerkaufZeitraumTyp.Vorjahr) {\n      this.zeitraum = \"Vorjahr\";\n    }\n  }\n\n  private async setUeberschrift() {\n    if (!this.settings.entitaetFullname) {\n      return;\n    }\n    if (this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Projekt\") {\n      this.ueberschrift = \"Statistik gruppiert nach Projekt\";\n    }\n    else if (this.settings.idDynFeld) {\n      var dynFeld = await this._dynFelderService.getDynFeldById(this.settings.idDynFeld);\n\n      if (!dynFeld) {\n        return;\n      }\n      this.ueberschrift = \"Statistik gruppiert nach \";\n      this.ueberschrift = this.ueberschrift.concat(dynFeld.Bezeichnung);\n    }\n  }\n\n  private updateChartHeight() {\n    const container = <HTMLDivElement>this._element.querySelector(\".statistik-gruppiert__container__content\");\n    const chartHeight = container.clientHeight;\n\n    this.pieChartOptions.size = {\n      height: chartHeight\n    };\n\n    if (this.pieChart && this.pieChart.instance) {\n      this.pieChart.setOption({\n        size: {\n          height: chartHeight\n        }\n      });\n    }\n  }\n\n  private getIdGeschaeftspartner() {\n    return this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n  }\n\n  private getIdArtikel() {\n    return this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n  }\n\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport { StatistikVerkaufZeitraumTyp } from '../../../../framework-data/events';\nimport { GlobalizationService, RestService } from '../../../../framework/base/export';\nimport { DynFeldTyp } from '../../../enumerations/dyn-feld-typ';\nimport { StatistikDarstellungTyp } from '../../../enumerations/statistik-darstellung-typ';\nimport { DynFelderService } from '../../../services/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class StatistikGruppiert {\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _dynFelderService: DynFelderService,\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IStatistikGruppiertSettings;\n  firmaDataSource: any[];\n\n  entitaetDataSource = [{\n    Bezeichnung: \"Artikel\",\n    Value: \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n  }, {\n    Bezeichnung: \"Kunde\",\n    Value: \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n  }, {\n    Bezeichnung: \"Projekt\",\n    Value: \"TIP.ERP.Business.Entitaeten.Stammdaten.Projekt\"\n  }];\n\n  dynFeldDataSource: any[];\n\n  zeitraumDataSource = [{\n    Bezeichnung: \"YTD\",\n    Value: StatistikVerkaufZeitraumTyp.YTD\n  }, {\n    Bezeichnung: \"aktuelles Jahr\",\n    Value: StatistikVerkaufZeitraumTyp.Jahr\n  }, {\n    Bezeichnung: \"Vorjahr\",\n    Value: StatistikVerkaufZeitraumTyp.Vorjahr\n  }];\n\n  darstellungDataSource = [{\n    Bezeichnung: \"Tabelle\",\n    Value: StatistikDarstellungTyp.Tabelle\n  }, {\n    Bezeichnung: \"Kreisdiagramm\",\n    Value: StatistikDarstellungTyp.Kreisdiagramm\n  }];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  entitaetBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    searchEnabled: true,\n    bindingOptions: {\n      dataSource: \"entitaetDataSource\",\n      value: \"settings.entitaetFullname\",\n    },\n    onValueChangedByUser: () => {\n      this.settings.idDynFeld = null;\n      this.loadDynFeldDataSource();\n      this.reloadData();\n    }\n  }\n\n  dynFeldBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      dataSource: \"dynFeldDataSource\",\n      value: \"settings.idDynFeld\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  zeitraumBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    searchEnabled: true,\n    bindingOptions: {\n      dataSource: \"zeitraumDataSource\",\n      value: \"settings.zeitraumTyp\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  numberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    min: 3,\n    bindingOptions: {\n      value: \"settings.anzahl\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  doShowRestBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Rest anzeigen\",\n    bindingOptions: {\n      value: \"settings.showRest\"\n    },\n    onValueChangedByUser: (e) => {\n      this.reloadData();\n    }\n  }\n\n  darstellungBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    searchEnabled: true,\n    bindingOptions: {\n      dataSource: \"darstellungDataSource\",\n      value: \"settings.darstellungTyp\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n\n  @computedFrom(\"settings.entitaetFullname\")\n  get isArtikelOrGeschaeftspartner() {\n    switch (this.settings.entitaetFullname) {\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\":\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\": {\n        return true;\n      }\n      default: {\n        return false;\n      }\n    }\n  }\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.entitaetBoxOptions.dataSource = this.entitaetDataSource;\n    this.loadDynFeldDataSource();\n    this.loadFirmaDataSource();\n  }\n\n  private async loadDynFeldDataSource() {\n    if (this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\" || this.settings.entitaetFullname == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\") {\n      const dynFelder = await this._dynFelderService.loadDynFelder(this.settings.entitaetFullname);\n\n      this.dynFeldDataSource = dynFelder\n        .filter(d => d.Typ == DynFeldTyp.auswahlliste);\n    }\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\", \"IsVorbelegung\"]\n      },\n      increaseLoadingCount: true\n    });\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n    if (!this.isArtikelOrGeschaeftspartner) {\n      this.settings.showRest = false;\n    }\n    this.widgetViewModel.loadData();\n  }\n}\n\nexport interface IStatistikGruppiertSettings {\n  idFirma?: number;\n  entitaetFullname: string;\n  idDynFeld: number;\n  zeitraumTyp: number;\n  anzahl: number;\n  showRest: boolean;\n  darstellungTyp: number;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\" style=\\\"max-width:600px\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Entität</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"entitaetBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\" if.bind=\\\"isArtikelOrGeschaeftspartner\\\"> <div class=\\\"t--editor-caption\\\">Dynamisches Feld</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"dynFeldBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Zeitraum</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"zeitraumBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6\\\"> <div class=\\\"t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Anzahl</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"numberBoxOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-6\\\"> <div if.bind=\\\"isArtikelOrGeschaeftspartner\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowRestBoxOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Darstellung</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"darstellungBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./statistik-gruppiert.less\\\"></require> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> <div class=\\\"statistik-gruppiert__container\\\"> <div class=\\\"statistik-gruppiert__container__header\\\"> <h2 if.bind=\\\"ueberschrift != null\\\">${ueberschrift} <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span> </h2> <h2 else>Bitte Werte auswählen</h2> <div if.bind=\\\"settings.zeitraumTyp != null\\\">Zeitraum: ${zeitraum}</div> </div> <div class=\\\"statistik-gruppiert__container__content\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <div> <div class=\\\"statistik-gruppiert__container__content__chart\\\" if.bind=\\\"settings.darstellungTyp == 2\\\"> <dx-widget name=\\\"dxPieChart\\\" options.bind=\\\"pieChartOptions\\\" view-model.ref=\\\"pieChart\\\"></dx-widget> </div> <div class=\\\"statistik-gruppiert__container__content__grid\\\" if.bind=\\\"settings.darstellungTyp == 1\\\"> <div class=\\\"statistik-gruppiert__container__content__grid__header statistik-gruppiert__container__content__grid__item\\\"> <div>Bezeichnung</div> <div class=\\\"statistik-gruppiert__container__content__grid__item__align\\\">Wert</div> </div> <div repeat.for=\\\"item of dataSource\\\" class=\\\"statistik-gruppiert__container__content__grid__item statistik-gruppiert__container__content__grid__item__hover\\\"> <div>${item.Bezeichnung}</div> <div class=\\\"statistik-gruppiert__container__content__grid__item__align\\\" click.delegate=\\\"onWertClick($event, item)\\\">${item.Wert | format:\\\"n0\\\"}</div> </div> </div> </div> </dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".statistik-gruppiert__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.statistik-gruppiert__container__content {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.statistik-gruppiert__container__content > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.statistik-gruppiert__container__content__grid__item__align {\\n  text-align: right;\\n}\\n.statistik-gruppiert__container__content__grid {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n}\\n.statistik-gruppiert__container__content__grid__item {\\n  display: grid;\\n  background-color: #FBFBFB;\\n  padding: 6px;\\n  grid-template-columns: 1fr 1fr;\\n}\\n.statistik-gruppiert__container__content__grid__header {\\n  font-weight: bold;\\n}\\n.statistik-gruppiert__container__content__grid__item__hover:hover {\\n  background-color: #ddd;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject } from \"aurelia-framework\";\nimport * as moment from \"moment\";\nimport { OnTopArtikel, OnTopArtikelEvent, StatistikVerkaufDetailViewTyp, UmsatzWhereTyp } from '../../../../framework-data/events';\nimport { LocationService, WebEventService } from '../../../../framework/base/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\nimport { IUmsatzWhereItem } from '../../../elements/statistik-verkauf-detail/statistik-verkauf-detail';\nimport { EntitaetInfoService, FirmaService } from '../../../services/export';\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { ITopArtikelSettings } from './top-artikel-settings';\n\n@autoinject\nexport class TopArtikel {\n  constructor(\n    private _firmaService: FirmaService,\n    private _webEventService: WebEventService,\n    private _locationService: LocationService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService,\n    private _statistikVerkaufService: StatistikService\n  ) {\n    this.bezWert = moment().year().toString();\n    this.bezVergl = moment().subtract(1, \"year\").year().toString();\n  }\n\n  widgetModel: IWidgetModel;\n  settings: ITopArtikelSettings;\n\n  bezWert: string;\n  bezVergl: string;\n  itemList: any[];\n  where: string;\n  firmaBezeichnung: string;\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.loadData();\n  }\n\n  async loadData() {\n    const idGeschaeftspartner = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const result: OnTopArtikel = await this._webEventService.execute(new OnTopArtikelEvent({\n      IdGeschaeftspartner: idGeschaeftspartner,\n      Anzahl: this.settings.anzahl,\n      IdFirma: this.settings.idFirma\n    }));\n    if (!result) {\n      return;\n    }\n\n    this.getFirmaBezeichnung();\n\n    this.where = result.Where;\n    this.itemList = result.ItemList;\n  }\n\n  async onClick(item) {\n    const url = await this._entitaetInfoService.getUrl(\"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\", item.Id);\n    if (!url) {\n      return;\n    }\n\n    const popupClosed = await this._popupInfoService.closeAllPopups();\n    if (!popupClosed) {\n      return;\n    }\n\n    this._locationService.goTo({\n      url: url,\n      viewScrollInfo: {\n        index: this.itemList.indexOf(item),\n        maxCount: this.itemList.length,\n        getNextKey: (index) => {\n          return this.itemList[index].Id\n        }\n      }\n    });\n  }\n  onWertClick(e: Event, item) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const where: IUmsatzWhereItem = {\n      Typ: UmsatzWhereTyp.Jahr,\n      IdArtikel: item.Id,\n      IdFirma: this.settings.idFirma,\n      Data: {\n        Jahr: moment().year()\n      }\n    }\n\n    //TODO\n    // if (this.idGeschaeftspartner) {\n    //   where.IdGeschaeftspartner = this.idGeschaeftspartner;\n    // }\n\n    this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n  }\n  onVergleichClick(e: Event, item) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const where: IUmsatzWhereItem = {\n      Typ: UmsatzWhereTyp.Jahr,\n      IdArtikel: item.Id,\n      IdFirma: this.settings.idFirma,\n      Data: {\n        Jahr: moment().subtract(1, \"year\").year()\n      }\n    }\n\n    //TODO\n    // if (this.idGeschaeftspartner) {\n    //   where.IdGeschaeftspartner = this.idGeschaeftspartner;\n    // }\n\n    this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n  }\n\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { GlobalizationService, RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class TopArtikelSettings {\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: ITopArtikelSettings;\n  firmaDataSource: any[];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  anzahlOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    min: 3,\n    max: 50,\n    bindingOptions: {\n      value: \"settings.anzahl\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.loadFirmaDataSource();\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      },\n      increaseLoadingCount: true\n    });\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n\n    this.widgetViewModel.loadData();\n  }\n}\nexport interface ITopArtikelSettings {\n  anzahl?: number;\n  idFirma?: number;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Anzahl</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"anzahlOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./top-artikel.less\\\"></require> <div class=\\\"top-artikel__container\\\"> <div class=\\\"top-artikel__container__ueberschrift\\\"> <h2>Top Artikel <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> </div> <div class=\\\"top-artikel__container__gridcontainer\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <div class=\\\"top-artikel__container__gridcontainer__grid\\\"> <div class=\\\"top-artikel__container__gridcontainer__grid__header top-artikel__container__gridcontainer__grid__item\\\"> <div></div> <div></div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\"> ${startupService.startupInfo.Mandant.WaehrungCode} ${bezWert}</div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\"> ${startupService.startupInfo.Mandant.WaehrungCode} ${bezVergl}</div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\"> <div tr=\\\"key: dashboard.menge\\\"></div> <div>${bezWert}</div> </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\"> <div tr=\\\"key: dashboard.menge\\\"></div> <div>${bezVergl}</div> </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\" tr=\\\"key: dashboard.einheit\\\">EH</div> </div> <div repeat.for=\\\"item of itemList\\\" class=\\\"top-artikel__container__gridcontainer__grid__item top-artikel__container__gridcontainer__grid__item--hover\\\" click.delegate=\\\"onClick(item)\\\"> <div> ${item.Nummer} </div> <div> ${item.Bezeichnung} </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\" click.delegate=\\\"onWertClick($event, item)\\\"> ${item.Wert | format:'n0'} </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\" click.delegate=\\\"onVergleichClick($event, item)\\\"> ${item.Vergleich | format:'n0'} </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\" click.delegate=\\\"onWertClick($event, item)\\\"> ${item.Menge | format:'n0'} </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\" click.delegate=\\\"onVergleichClick($event, item)\\\"> ${item.MengeVergleich | format:'n0'} </div> <div class=\\\"top-artikel__container__gridcontainer__grid__item__wert\\\"> ${item.Einheit} </div> </div> </div> </dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".top-artikel__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.top-artikel__container__gridcontainer {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.top-artikel__container__gridcontainer > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.top-artikel__container__gridcontainer__grid {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n}\\n.top-artikel__container__gridcontainer__grid__header {\\n  font-weight: bold;\\n}\\n.top-artikel__container__gridcontainer__grid__item {\\n  display: grid;\\n  background-color: #FBFBFB;\\n  padding: 6px;\\n  grid-template-columns: 1fr 3fr 1fr 1fr 1fr 1fr 1fr;\\n  cursor: pointer;\\n}\\n.top-artikel__container__gridcontainer__grid__item--hover:hover {\\n  background-color: #ddd;\\n}\\n.top-artikel__container__gridcontainer__grid__item__wert {\\n  text-align: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport * as moment from \"moment\";\nimport { OnTopKunde, OnTopKundeEvent, StatistikVerkaufDetailViewTyp, UmsatzWhereTyp } from '../../../../framework-data/events';\nimport { LocationService, WebEventService } from '../../../../framework/base/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\nimport { IUmsatzWhereItem } from '../../../elements/statistik-verkauf-detail/statistik-verkauf-detail';\nimport { EntitaetInfoService, FirmaService } from '../../../services/export';\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { ITopKundenSettings, TopKundenGPArt } from './top-kunden-settings';\n\n@autoinject\nexport class TopKunden {\n  constructor(\n    private _firmaService: FirmaService,\n    private _webEventService: WebEventService,\n    private _locationService: LocationService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService,\n    private _statistikService: StatistikService\n  ) {\n    this.bezWert = moment().year().toString();\n    this.bezVergl = moment().subtract(1, \"year\").year().toString();\n  }\n\n  widgetModel: IWidgetModel;\n  settings: ITopKundenSettings;\n\n  bezWert: string;\n  bezVergl: string;\n  itemList: any[];\n  where: string;\n  firmaBezeichnung: string;\n\n  @computedFrom(\"settings.art\")\n  get titel() {\n    switch (this.settings.art || TopKundenGPArt.Kunde) {\n      case TopKundenGPArt.Kunde: {\n        return \"Kunden\";\n      }\n      case TopKundenGPArt.Lieferant: {\n        return \"Lieferanten\"\n      }\n      default: {\n        return \"?\"\n      }\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n  }\n\n  bind() {\n    this.loadData();\n  }\n\n  async loadData() {\n    const result: OnTopKunde = await this._webEventService.execute(new OnTopKundeEvent({\n      Anzahl: this.settings.anzahl,\n      IdFirma: this.settings.idFirma,\n      Art: <any>this.settings.art || 0,\n      IdArtikel: this.getIdArtikel()\n    }));\n    if (!result) {\n      return;\n    }\n\n    this.getFirmaBezeichnung();\n\n    this.where = result.Where;\n    this.itemList = result.ItemList;\n  }\n\n  async onClick(item) {\n    const url = await this._entitaetInfoService.getUrl(\"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\", item.Id);\n    if (!url) {\n      return;\n    }\n\n    const popupClosed = await this._popupInfoService.closeAllPopups();\n    if (!popupClosed) {\n      return;\n    }\n\n    this._locationService.goTo({\n      url: url,\n      viewScrollInfo: {\n        index: this.itemList.indexOf(item),\n        maxCount: this.itemList.length,\n        getNextKey: (index) => {\n          return this.itemList[index].Id\n        }\n      }\n    });\n  }\n  onWertClick(e: Event, item) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const where: IUmsatzWhereItem = {\n      Typ: UmsatzWhereTyp.Jahr,\n      IdGeschaeftspartner: item.Id,\n      IdArtikel: this.getIdArtikel(),\n      IdFirma: this.settings.idFirma,\n      Data: {\n        Jahr: moment().year()\n      }\n    }\n\n    if (this.settings.art == TopKundenGPArt.Lieferant) {\n      this._statistikService.showEinkaufDetail(where);\n    } else {\n      this._statistikService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n    }\n  }\n  onVergleichClick(e: Event, item) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const where: IUmsatzWhereItem = {\n      Typ: UmsatzWhereTyp.Jahr,\n      IdGeschaeftspartner: item.Id,\n      IdArtikel: this.getIdArtikel(),\n      IdFirma: this.settings.idFirma,\n      Data: {\n        Jahr: moment().subtract(1, \"year\").year()\n      }\n    }\n\n    if (this.settings.art == TopKundenGPArt.Lieferant) {\n      this._statistikService.showEinkaufDetail(where);\n    } else {\n      this._statistikService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n    }\n  }\n\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n\n  private getIdArtikel() {\n    return this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\nimport { GlobalizationService } from './../../../../framework/base/services/globalization-service';\n\n@autoinject\nexport class TopKundenSettings {\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: ITopKundenSettings;\n  firmaDataSource: any[];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  geschaeftspartnerartOptions: DevExpress.ui.dxSelectBoxOptions = {\n    items: [\n      { id: TopKundenGPArt.Kunde, text: \"Kunde\" },\n      { id: TopKundenGPArt.Lieferant, text: \"Lieferant\" }],\n    valueExpr: \"id\",\n    displayExpr: \"text\",\n    bindingOptions: {\n      value: \"settings.art\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  }\n  anzahlOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    min: 3,\n    max: 50,\n    bindingOptions: {\n      value: \"settings.anzahl\"\n    },\n    onValueChangedByUser: () => {\n      this.reloadData();\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    if (this.settings.art == void (0)) {\n      this.settings.art = TopKundenGPArt.Kunde;\n    }\n\n    this.loadFirmaDataSource();\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      },\n      increaseLoadingCount: true\n    });\n  }\n\n  private reloadData() {\n    if (!this.widgetViewModel) {\n      return;\n    }\n    if (!this.widgetViewModel.loadData) {\n      return;\n    }\n\n    this.widgetViewModel.loadData();\n  }\n}\nexport interface ITopKundenSettings {\n  anzahl?: number;\n  art?: TopKundenGPArt;\n  idFirma?: number;\n}\nexport enum TopKundenGPArt {\n  Kunde = 0,\n  Lieferant = 1\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Geschäftspartnerart</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"geschaeftspartnerartOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Anzahl</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"anzahlOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./top-kunden.less\\\"></require> <div class=\\\"top-kunden__container\\\"> <div class=\\\"top-kunden__container__ueberschrift\\\"> <h2>Top ${titel} <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> </div> <div class=\\\"top-kunden__container__gridcontainer\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <div class=\\\"top-kunden__container__gridcontainer__grid\\\"> <div class=\\\"top-kunden__container__gridcontainer__grid__header top-kunden__container__gridcontainer__grid__item\\\"> <div></div> <div></div> <div></div> <div class=\\\"top-kunden__container__gridcontainer__grid__wert\\\"> ${startupService.startupInfo.Mandant.WaehrungCode} ${bezWert}</div> <div class=\\\"top-kunden__container__gridcontainer__grid__wert\\\"> ${startupService.startupInfo.Mandant.WaehrungCode} ${bezVergl}</div> </div> <div repeat.for=\\\"item of itemList\\\" class=\\\"top-kunden__container__gridcontainer__grid__item top-kunden__container__gridcontainer__grid__item--hover\\\" click.delegate=\\\"onClick(item)\\\"> <div> ${item.Nummer} </div> <div> ${item.Firmenbez1} </div> <div> ${item.Ort} </div> <div class=\\\"top-kunden__container__gridcontainer__grid__wert\\\" click.delegate=\\\"onWertClick($event, item)\\\"> ${item.Wert | format:'n0'} </div> <div class=\\\"top-kunden__container__gridcontainer__grid__wert\\\" click.delegate=\\\"onVergleichClick($event, item)\\\"> ${item.Vergleich | format:'n0'} </div> </div> </div> </dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".top-kunden__container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.top-kunden__container__gridcontainer {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.top-kunden__container__gridcontainer > * {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\n.top-kunden__container__gridcontainer__grid {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n}\\n.top-kunden__container__gridcontainer__grid__header {\\n  font-weight: bold;\\n}\\n.top-kunden__container__gridcontainer__grid__item {\\n  display: grid;\\n  background-color: #FBFBFB;\\n  padding: 6px;\\n  grid-template-columns: 1fr 3fr 3fr 1fr 1fr;\\n  cursor: pointer;\\n}\\n.top-kunden__container__gridcontainer__grid__item--hover:hover {\\n  background-color: #ddd;\\n}\\n.top-kunden__container__gridcontainer__grid__wert {\\n  text-align: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport { OnUmsatzAktuell, OnUmsatzAktuellEvent, StatistikVerkaufDetailViewTyp, StatistikVerkaufWertTyp } from '../../../../framework-data/events';\nimport { WebEventService } from '../../../../framework/base/export';\nimport { FirmaService } from \"../../../services/firma-service\";\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IUmsatzAktuellSettings } from './umsatz-aktuell-settings';\n\n@autoinject\nexport class UmsatzAktuell {\n  constructor(\n    private _firmaService: FirmaService,\n    private _webEventService: WebEventService,\n    private _statistikVerkaufService: StatistikService) { }\n\n  widgetModel: IWidgetModel;\n  settings: IUmsatzAktuellSettings;\n\n  itemList: any[];\n  firmaBezeichnung: string;\n  statistikWertTyp: StatistikVerkaufWertTyp = StatistikVerkaufWertTyp.Netto;\n\n  wertAuftragseingangButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Auftragseingang\",\n    hint: \"bereinigter Nettoumsatz aus Auftragseingang\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.Auftragseingang;\n      this.loadData(true);\n    }\n  }\n  wertNettoButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Umsatz\",\n    hint: \"bereinigter Nettoumsatz aus Statistik\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.Netto;\n      this.loadData(true);\n    }\n  }\n  wertDBButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"DB\",\n    hint: \"Deckungsbeitrag aus Statistik\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.DB;\n      this.loadData(true);\n    }\n  }\n\n  @computedFrom(\"statistikWertTyp\")\n  get statistikWertTypBez() {\n    switch (this.statistikWertTyp) {\n      case StatistikVerkaufWertTyp.Netto: {\n        return \"Umsatz\";\n      }\n      case StatistikVerkaufWertTyp.DB: {\n        return \"DB\";\n      }\n      case StatistikVerkaufWertTyp.Auftragseingang: {\n        return \"Auftragseingang\";\n      }\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n\n    this.statistikWertTyp = this.settings.standard;\n  }\n\n  bind() {\n    this.loadData(false);\n  }\n\n  onWertClick(item) {\n    if (this.statistikWertTyp == StatistikVerkaufWertTyp.Netto || this.statistikWertTyp == StatistikVerkaufWertTyp.DB) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, item.WhereWert);\n    } else if (this.statistikWertTyp == StatistikVerkaufWertTyp.Auftragseingang) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Auftrag, item.WhereWert);\n    }\n  }\n  onWertVergleichClick(item) {\n    if (this.statistikWertTyp == StatistikVerkaufWertTyp.Netto || this.statistikWertTyp == StatistikVerkaufWertTyp.DB) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, item.WhereVergleich);\n    } else if (this.statistikWertTyp == StatistikVerkaufWertTyp.Auftragseingang) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Auftrag, item.WhereVergleich);\n    }\n  }\n  onWertVergleich2Click(item) {\n    if (this.statistikWertTyp == StatistikVerkaufWertTyp.Netto || this.statistikWertTyp == StatistikVerkaufWertTyp.DB) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, item.WhereVergleich2);\n    } else if (this.statistikWertTyp == StatistikVerkaufWertTyp.Auftragseingang) {\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Auftrag, item.WhereVergleich2);\n    }\n  }\n\n  private async loadData(showLoading: boolean) {\n    const idGeschaeftspartner = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const idArtikel = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const result: OnUmsatzAktuell = await this._webEventService.execute(new OnUmsatzAktuellEvent({\n      IdGeschaeftspartner: idGeschaeftspartner,\n      IdArtikel: idArtikel,\n      WertTyp: this.statistikWertTyp,\n      IdFirma: this.settings.idFirma\n    }), showLoading);\n    if (!result) {\n      return;\n    }\n\n    this.getFirmaBezeichnung();\n\n    this.itemList = result.ItemList;\n  }\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { StatistikVerkaufWertTyp } from '../../../../framework-data/events';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\nimport { IWidgetModel } from './../../interfaces/widget-model';\n\n\n@autoinject\nexport class UmsatzAktuellSettings {\n  constructor(\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IUmsatzAktuellSettings;\n  firmaDataSource: any[];\n  dataSource: any[] = [];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  };\n\n  doShowNettoCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Umsatz anzeigen\",\n    bindingOptions: {\n      value: \"settings.showNetto\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n  doShowAuftragseingangCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Auftragseingang anzeigen\",\n    bindingOptions: {\n      value: \"settings.showAuftragseingang\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n\n  }\n  doShowDBBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"DB anzeigen\",\n    bindingOptions: {\n      value: \"settings.showDB\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n\n  selectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    bindingOptions: {\n      dataSource: \"dataSource\",\n      value: \"settings.standard\",\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.createDataSource();\n    this.setValueSelectBox();\n    this.loadFirmaDataSource();\n  }\n\n  private createDataSource() {\n    const dataSource = [];\n\n    if (this.settings.showNetto) {\n      dataSource.push({\n        Bezeichnung: \"Umsatz\",\n        Value: StatistikVerkaufWertTyp.Netto\n      });\n    }\n\n    if (this.settings.showAuftragseingang) {\n      dataSource.push({\n        Bezeichnung: \"Auftragseingang\",\n        Value: StatistikVerkaufWertTyp.Auftragseingang\n      });\n    }\n\n    if (this.settings.showDB) {\n      dataSource.push({\n        Bezeichnung: \"DB\",\n        Value: StatistikVerkaufWertTyp.DB\n      });\n    }\n\n    this.dataSource = dataSource;\n  }\n\n  private setValueSelectBox() {\n    if (this.dataSource.some(i => i.Value == this.settings.standard)) {\n      return;\n    }\n\n    if (this.dataSource.length == 0) {\n      this.settings.standard = null;\n    } else {\n      this.settings.standard = this.dataSource[0].Value;\n    }\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      }\n    });\n  }\n}\n\nexport interface IUmsatzAktuellSettings {\n  showNetto?: boolean;\n  showAuftragseingang?: boolean;\n  showDB?: boolean;\n  idFirma?: number;\n\n  standard?: StatistikVerkaufWertTyp;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNettoCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowAuftragseingangCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowDBBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Standard</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"selectBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <require from=\\\"./umsatz-aktuell.less\\\"></require> <h2>${statistikWertTypBez} aktuell <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> <div class=\\\"umsatz-aktuell__container\\\"> <div repeat.for=\\\"item of itemList\\\"> <div class=\\\"umsatz-aktuell__container__item umsatz-aktuell__container__wert\\\" click.delegate=\\\"onWertClick(item)\\\"> <div> ${item.Name} </div> <div> ${startupService.startupInfo.Mandant.WaehrungCode} ${item.Wert | format:'n0'} </div> </div> <div class=\\\"umsatz-aktuell__container__item umsatz-aktuell__container__vergleich\\\" if.bind=\\\"item.NameVergleich2\\\" click.delegate=\\\"onWertVergleich2Click(item)\\\"> <div> ${item.NameVergleich2} </div> <div> ${startupService.startupInfo.Mandant.WaehrungCode} ${item.Vergleich2 | format:'n0'} </div> </div> <div class=\\\"umsatz-aktuell__container__item umsatz-aktuell__container__vergleich\\\" click.delegate=\\\"onWertVergleichClick(item)\\\"> <div> ${item.NameVergleich} </div> <div> ${startupService.startupInfo.Mandant.WaehrungCode} ${item.Vergleich | format:'n0'} </div> </div> </div> </div> <div class=\\\"dashboard-commands\\\"> <div> <dx-widget show.bind=\\\"settings.showAuftragseingang\\\" name=\\\"dxButton\\\" options.bind=\\\"wertAuftragseingangButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showNetto\\\" name=\\\"dxButton\\\" options.bind=\\\"wertNettoButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showDB\\\" name=\\\"dxButton\\\" options.bind=\\\"wertDBButtonOptions\\\"></dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".umsatz-aktuell__container {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n}\\n.umsatz-aktuell__container__item {\\n  display: grid;\\n  background-color: #FBFBFB;\\n  padding: 12px;\\n  grid-template-columns: 1fr auto;\\n  grid-row-gap: 4px;\\n  cursor: pointer;\\n}\\n.umsatz-aktuell__container__item > div:nth-child(2n) {\\n  text-align: right;\\n}\\n.umsatz-aktuell__container__item.umsatz-aktuell__container__vergleich {\\n  padding: 6px 12px;\\n}\\n.umsatz-aktuell__container__wert {\\n  font-size: 2em;\\n  padding-bottom: 6px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { autoinject, computedFrom } from \"aurelia-framework\";\nimport { OnUmsatzLandEvent, StatistikVerkaufDetailViewTyp, StatistikVerkaufZeitraumTyp } from '../../../../framework-data/events';\nimport { GlobalizationService, JsonService, WebEventService } from '../../../../framework/base/export';\nimport { IdxChartComponent } from '../../../interfaces/export';\nimport { FirmaService, StartupService } from '../../../services/export';\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IUmsatzLandSettings } from './umsatz-land-settings';\n\n@autoinject\nexport class UmsatzLand {\n  private _windowResizeSubscription: Subscription;\n\n  constructor(\n    private _firmaService: FirmaService,\n    private _globalizationService: GlobalizationService,\n    private _webEventService: WebEventService,\n    private _startupService: StartupService,\n    private _statistikVerkaufService: StatistikService,\n    private _jsonService: JsonService,\n    private _eventAggregator: EventAggregator) { }\n\n  widgetModel: IWidgetModel;\n  settings: IUmsatzLandSettings;\n  firmaBezeichnung: string;\n\n  instance: IdxChartComponent;\n  options: DevExpress.viz.charts.dxChartOptions = {\n    commonSeriesSettings: {\n      type: \"stackedbar\",\n      argumentField: \"Jahr\",\n    },\n    argumentAxis: {\n      argumentType: \"string\"\n    },\n    valueAxis: [{\n      label: { format: this._globalizationService.getFormatterParser(\"n0\") }\n    }],\n    tooltip: {\n      enabled: true,\n      zIndex: 1505,\n      customizeTooltip: (e) => {\n        return {\n          text: `${e.argumentText}<br>${e.seriesName}: ${this._startupService.startupInfo.Mandant.WaehrungCode} ${this._globalizationService.format(e.value, \"n0\")} (= ${this._globalizationService.format(e.percent, \"p0\")})`\n        };\n      }\n    },\n    onPointClick: (e) => {\n      if (!e.target || !e.target.data) {\n        return;\n      }\n      if (!e.target.series.getValueFields) {\n        return;\n      }\n      if (!this.data || !this.data.Where) {\n        return;\n      }\n      if (!e.target.data.Jahr) {\n        return;\n      }\n\n      const valueFields = e.target.series.getValueFields();\n      if (valueFields.length != 1) {\n        return;\n      }\n\n      const valueField = valueFields[0];\n\n      const info = this.data.Info.find(c => c.DataField == valueField);\n      if (!info || !info.Where) {\n        return;\n      }\n\n      const where = this._jsonService.parse(this._jsonService.stringify(this.data.Where));\n      where.Data.Jahr = e.target.data.Jahr;\n      where.Data.Land = info.Where;\n\n      this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n    }\n  }\n\n  statistikZeitraumTyp: StatistikVerkaufZeitraumTyp = StatistikVerkaufZeitraumTyp.YTD;\n\n  ytdButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Umsatz YTD\",\n    hint: \"Umsatz YTD aus Statistik gruppiert nach Land\",\n    onClick: () => {\n      this.statistikZeitraumTyp = StatistikVerkaufZeitraumTyp.YTD;\n      this.loadData(true);\n    }\n  }\n  jahrButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Umsatz Jahr\",\n    hint: \"Umsatz Jahr aus Statistik gruppiert nach Land\",\n    onClick: () => {\n      this.statistikZeitraumTyp = StatistikVerkaufZeitraumTyp.Jahr;\n      this.loadData(true);\n    }\n  }\n\n  data: any;\n\n  @computedFrom(\"statistikZeitraumTyp\")\n  get statistikZeitraumTypBez() {\n    switch (this.statistikZeitraumTyp) {\n      case StatistikVerkaufZeitraumTyp.Jahr: {\n        return \"Umsatz je Land Jahr\";\n      }\n      case StatistikVerkaufZeitraumTyp.YTD: {\n        return \"Umsatz je Land YTD\";\n      }\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n\n    this.statistikZeitraumTyp = this.settings.standard;\n  }\n\n  bind() {\n    this.loadData(false);\n  }\n  attached() {\n    this._windowResizeSubscription = this._eventAggregator.subscribe(\"window:resize\", () => {\n      if (this.instance && this.instance.instance) {\n        this.instance.instance.render();\n      }\n    });\n  }\n  detached() {\n    this._windowResizeSubscription.dispose();\n    this._windowResizeSubscription = null;\n  }\n\n  private async loadData(showLoading: boolean) {\n    const idArtikel = this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n\n    const result: any = await this._webEventService.execute(\n      new OnUmsatzLandEvent({\n        ZeitraumTyp: this.statistikZeitraumTyp,\n        IdArtikel: idArtikel,\n        IdFirma: this.settings.idFirma\n      }),\n      showLoading);\n    if (!result) {\n      return;\n    }\n\n    this.data = result.Data;\n\n    const series = this.data.Info.map(c => {\n      return {\n        name: c.Bez,\n        valueField: c.DataField\n      };\n    });\n\n    if (series.length > 0) {\n      Object.assign(series[series.length - 1], {\n        label: {\n          backgroundColor: \"#ddd\",\n          font: {\n            color: \"black\"\n          },\n          position: \"outside\",\n          visible: true,\n          customizeText: (e) => {\n            return this._globalizationService.format(e.total, \"n0\");\n          }\n        }\n      });\n    }\n\n    const options = {\n      series: series,\n      dataSource: this.data.Data\n    }\n\n    if (this.instance && this.instance.instance) {\n      this.instance.instance.option(options);\n    } else {\n      Object.assign(this.options, options);\n    }\n\n    this.getFirmaBezeichnung();\n  }\n  private async getFirmaBezeichnung() {\n    if (this.settings.idFirma == null) {\n      this.firmaBezeichnung = null;\n      return;\n    }\n\n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { StatistikVerkaufZeitraumTyp } from '../../../../framework-data/events';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class UmsatzLandSettings {\n  constructor(\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IUmsatzLandSettings;\n  firmaDataSource: any[];\n  dataSource: any[] = [];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  };\n\n  doShowNettoYTDCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Umsatz YTD\",\n    bindingOptions: {\n      value: \"settings.showNettoYTD\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n\n  doShowNettoJahrCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Umsatz Jahr\",\n    bindingOptions: {\n      value: \"settings.showNettoJahr\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n\n  selectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    bindingOptions: {\n      dataSource: \"dataSource\",\n      value: \"settings.standard\",\n    }\n  }\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.createDataSource();\n    this.setValueSelectBox();\n    this.loadFirmaDataSource();\n  }\n\n  private createDataSource() {\n    const dataSource = [];\n\n    if (this.settings.showNettoYTD) {\n      dataSource.push({\n        Bezeichnung: \"YTD\",\n        Value: StatistikVerkaufZeitraumTyp.YTD\n      });\n    }\n    if (this.settings.showNettoJahr) {\n      dataSource.push({\n        Bezeichnung: \"Jahr\",\n        Value: StatistikVerkaufZeitraumTyp.Jahr\n      });\n    }\n\n    this.dataSource = dataSource;\n  }\n\n  private setValueSelectBox() {\n    if (this.dataSource.some(i => i.Value == this.settings.standard)) {\n      return;\n    }\n\n    if (this.dataSource.length == 0) {\n      this.settings.standard = null;\n    } else {\n      this.settings.standard = this.dataSource[0].Value;\n    }\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      }\n    });\n  }\n}\nexport interface IUmsatzLandSettings {\n  showNettoYTD?: boolean;\n  showNettoJahr?: boolean;\n  idFirma?: number;\n\n  standard?: StatistikVerkaufZeitraumTyp;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNettoYTDCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNettoJahrCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Standard</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"selectBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <div class=\\\"dashboard-content\\\"> <h2>${statistikZeitraumTypBez} <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> <div class=\\\"dashboard-content--grow dashboard-content--abs\\\"> <dx-widget view-model.ref=\\\"instance\\\" name=\\\"dxChart\\\" options.bind=\\\"options\\\"></dx-widget> </div> </div> <div class=\\\"dashboard-commands\\\"> <div> <dx-widget show.bind=\\\"settings.showNettoYTD\\\" name=\\\"dxButton\\\" options.bind=\\\"ytdButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showNettoJahr\\\" name=\\\"dxButton\\\" options.bind=\\\"jahrButtonOptions\\\"></dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","import { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { TaskQueue, autoinject, computedFrom } from \"aurelia-framework\";\nimport * as moment from \"moment\";\nimport { OnUmsatzMonat, OnUmsatzMonatEvent, StatistikVerkaufDetailViewTyp, StatistikVerkaufWertTyp } from '../../../../framework-data/events';\nimport { GlobalizationService, WebEventService } from '../../../../framework/base/export';\nimport { ExcelExportService } from \"../../../../framework/forms/services/excel-export-service\";\nimport { IdxChartComponent, IdxDataGridComponent } from '../../../interfaces/export';\nimport { FirmaService, StartupService } from '../../../services/export';\nimport { StatistikService } from '../../../services/statistik-service';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IUmsatzMonatSettings } from './umsatz-monat-settings';\n\n@autoinject\nexport class UmsatzMonat {\n  private _windowResizeSubscription: Subscription;\n\n  constructor(\n    private _firmaService: FirmaService,\n    private _globalizationService: GlobalizationService,\n    private _webEventService: WebEventService,\n    private _startupService: StartupService,\n    private _taskQueue: TaskQueue,\n    private _statistikVerkaufService: StatistikService,\n    private _eventAggregator: EventAggregator,\n    private _excelExportService: ExcelExportService) { }\n\n  widgetModel: IWidgetModel;\n  settings: IUmsatzMonatSettings;\n  firmaBezeichnung: string;\n  displayType: DisplayType = DisplayType.chart;\n  statistikWertTyp: StatistikVerkaufWertTyp = StatistikVerkaufWertTyp.Netto;\n\n  instance: IdxChartComponent;\n  options: DevExpress.viz.charts.dxChartOptions = {\n    commonSeriesSettings: {\n      argumentField: \"Name\",\n      type: \"bar\"\n    },\n    tooltip: {\n      format: this._globalizationService.getFormatterParser(\"n0\"),\n      zIndex: 1505,\n      customizeTooltip: (e) => {\n        return {\n          text: `${e.argumentText} ${e.seriesName}: ${this._startupService.startupInfo.Mandant.WaehrungCode} ${e.valueText}`\n        };\n      },\n      enabled: true,\n    },\n    series: [{\n      valueField: \"Vergleich2\", name: moment().subtract(2, \"year\").year().toString()\n    }, {\n      valueField: \"Vergleich\", name: moment().subtract(1, \"year\").year().toString()\n    }, {\n      valueField: \"Wert\", name: moment().year().toString()\n    }],\n    valueAxis: [{\n      label: { format: this._globalizationService.getFormatterParser(\"n0\") }\n    }],\n    onPointClick: (e) => {\n      if (!e.target || !e.target.data) {\n        return;\n      }\n      if (!e.target.series.getValueFields) {\n        return;\n      }\n\n      const valueFields = e.target.series.getValueFields();\n      if (valueFields.length != 1) {\n        return;\n      }\n\n      const valueField = valueFields[0];\n      const where = e.target.data[\"Where\".concat(valueField)];\n      if (!where) {\n        return;\n      }\n\n      if (this.statistikWertTyp == StatistikVerkaufWertTyp.Auftragseingang) {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Auftrag, where);\n      } else if (this.statistikWertTyp == StatistikVerkaufWertTyp.NettoMitForecast) {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Forecast, where);\n      } else {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n      }\n    }\n  };\n\n  gridInstance: IdxDataGridComponent\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [\n      { caption: \"Jahr\", dataField: \"Jahr\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Jan\", dataField: \"Jan\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Feb\", dataField: \"Feb\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Mrz\", dataField: \"Mär\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Apr\", dataField: \"Apr\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Mai\", dataField: \"Mai\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Jun\", dataField: \"Jun\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Jul\", dataField: \"Jul\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Aug\", dataField: \"Aug\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Sep\", dataField: \"Sep\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Okt\", dataField: \"Okt\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Nov\", dataField: \"Nov\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Dez\", dataField: \"Dez\", cellTemplate: this.getCellValue.bind(this) },\n      { caption: \"Gesamt\", dataField: \"Gesamt\", cellTemplate: this.getCellValue.bind(this) }\n    ],\n    showRowLines: true,\n    sorting: {\n      mode: \"none\"\n    },\n    export: {\n      customizeExcelCell: (e) => {\n        if (e.gridCell.rowType === \"data\") {\n          if (e.gridCell.data.IsDiff) {\n            e.fillPatternColor = \"#EEEEEE\";\n            e.fillPatternType = \"solid\";\n            e.font.bold = true;\n          }\n\n          if (e.gridCell.column.dataField == \"Jahr\") {\n            e.font.bold = true;\n            return;\n          }\n          if (e.gridCell.column.dataField == \"Gesamt\") {\n            e.font.bold = true;\n          }\n\n          if (e.gridCell.data.IsDiff) {\n            e.numberFormat = \"#,##0 %\";\n\n            if (e.value > 0) {\n              e.fillPatternColor = \"#27AE60\";\n              e.fillPatternType = \"solid\";\n              e.font.color = \"#FFFFFF\";\n            } else if (e.value < 0) {\n              e.fillPatternColor = \"#C0392B\";\n              e.fillPatternType = \"solid\";\n              e.font.color = \"#FFFFFF\";\n            } else {\n              e.numberFormat = \"#,##0 %\";\n            }\n          } else {\n            e.numberFormat = \"#,##0\";\n          }\n        }\n      }\n    },\n    onCellClick: (e) => {\n      if (!e.data) {\n        return;\n      }\n      if (e.data.IsDiff) {\n        return;\n      }\n      if (!e.column) {\n        return;\n      }\n\n      let where = null;\n      if (e.column.dataField == \"Gesamt\") {\n        where = {\n          Typ: 2,\n          Data: {\n            Jahr: e.data.Jahr\n          },\n          IdGeschaeftspartner: this.getIdGeschaeftspartner(),\n          IdArtikel: this.getIdArtikel()\n        };\n      } else {\n        where = e.data[\"Where\".concat(e.column.dataField)];\n      }\n\n      if (!where) {\n        return;\n      }\n\n      if (this.statistikWertTyp == StatistikVerkaufWertTyp.Auftragseingang) {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Auftrag, where);\n      } else if (this.statistikWertTyp == StatistikVerkaufWertTyp.NettoMitForecast) {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Forecast, where);\n      } else {\n        this._statistikVerkaufService.showVerkaufDetail(StatistikVerkaufDetailViewTyp.Statistik, where);\n      }\n    }\n  };\n\n  wertNettoMitForecastButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Umsatz mit Forecast\",\n    hint: \"Umsatz aus Statistik kombiniert mit offenen Aufträgen\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.NettoMitForecast;\n      this.loadData(true);\n    }\n  }\n  wertAuftragseingangButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Auftragseingang\",\n    hint: \"bereinigter Nettoumsatz aus Auftragseingang\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.Auftragseingang;\n      this.loadData(true);\n    }\n  }\n  wertNettoButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Umsatz\",\n    hint: \"bereinigter Nettoumsatz aus Statistik\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.Netto;\n      this.loadData(true);\n    }\n  }\n  wertEinsatzButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Einsatz\",\n    hint: \"Einstandswert aus Statistik\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.Einsatz;\n      this.loadData(true);\n    }\n  }\n  wertDBButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"DB\",\n    hint: \"Deckungsbeitrag aus Statistik\",\n    onClick: () => {\n      this.statistikWertTyp = StatistikVerkaufWertTyp.DB;\n      this.loadData(true);\n    }\n  }\n\n  diagrammButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Diagramm\",\n    onClick: () => {\n      this.displayType = DisplayType.chart;\n      this._taskQueue.queueMicroTask(() => {\n        if (this.instance && this.instance.instance) {\n          this.instance.instance.render();\n        }\n      });\n    }\n  }\n  gridButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Tabelle\",\n    onClick: () => {\n      this.displayType = DisplayType.grid;\n    }\n  }\n  exportGridButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Export\",\n    onClick: () => {\n      this._excelExportService.exportDataGrid({\n        component: this.gridInstance.instance,\n        selectedRowsOnly: false\n      });\n    }\n  }\n\n  @computedFrom(\"statistikWertTyp\")\n  get statistikWertTypBez() {\n    switch (this.statistikWertTyp) {\n      case StatistikVerkaufWertTyp.Netto: {\n        return \"Umsatz\";\n      }\n      case StatistikVerkaufWertTyp.Einsatz: {\n        return \"Einsatz\";\n      }\n      case StatistikVerkaufWertTyp.DB: {\n        return \"DB\";\n      }\n      case StatistikVerkaufWertTyp.Auftragseingang: {\n        return \"Auftragseingang\";\n      }\n      case StatistikVerkaufWertTyp.NettoMitForecast: {\n        return \"Umsatz mit Forecast\";\n      }\n    }\n  }\n\n  activate(widgetModel: IWidgetModel) {\n    this.widgetModel = widgetModel;\n    this.settings = widgetModel.settings;\n\n    this.statistikWertTyp = this.settings.standard;\n  }\n\n  bind() {\n    this.loadData(false);\n  }\n  attached() {\n    this._windowResizeSubscription = this._eventAggregator.subscribe(\"window:resize\", () => {\n      if (this.instance && this.instance.instance) {\n        this.instance.instance.render();\n      }\n    });\n  }\n  detached() {\n    this._windowResizeSubscription.dispose();\n    this._windowResizeSubscription = null;\n  }\n\n  private async loadData(showLoading: boolean) {\n    const result: OnUmsatzMonat = await this._webEventService.execute(new OnUmsatzMonatEvent({\n      IdGeschaeftspartner: this.getIdGeschaeftspartner(),\n      IdArtikel: this.getIdArtikel(),\n      WertTyp: this.statistikWertTyp,\n      IdFirma: this.settings.idFirma\n    }), showLoading);\n    if (!result) {\n      return;\n    }\n\n    const data: any = result.Data;\n\n    const chartOptions = {\n      series: [{\n        valueField: \"Vergleich2\", name: data.JahrVergleich2\n      }, {\n        valueField: \"Vergleich\", name: data.JahrVergleich\n      }, {\n        valueField: \"Wert\", name: data.Jahr\n      }],\n      dataSource: data.Data\n    };\n\n    if (this.instance && this.instance.instance) {\n      this.instance.instance.option(chartOptions);\n    } else {\n      Object.assign(this.options, chartOptions);\n    }\n\n    const gridData = [\n      { Jahr: data.JahrVergleich2 },\n      { Jahr: data.JahrVergleich },\n      { Jahr: data.Jahr }\n    ];\n\n    data.Data.forEach(c => {\n      gridData[0][c.Name] = c.Vergleich2;\n      gridData[1][c.Name] = c.Vergleich;\n      gridData[2][c.Name] = c.Wert;\n\n      gridData[0][\"Where\".concat(c.Name)] = c.WhereVergleich2;\n      gridData[1][\"Where\".concat(c.Name)] = c.WhereVergleich;\n      gridData[2][\"Where\".concat(c.Name)] = c.WhereWert;\n    });\n\n    const sum = data.Data.reduce((p, c) => {\n      return {\n        Wert: p.Wert + c.Wert,\n        Vergleich: p.Vergleich + c.Vergleich,\n        Vergleich2: p.Vergleich2 + c.Vergleich2\n      };\n    }, { Wert: 0, Vergleich: 0, Vergleich2: 0 });\n\n    gridData[0][\"Gesamt\"] = sum.Vergleich2;\n    gridData[1][\"Gesamt\"] = sum.Vergleich;\n    gridData[2][\"Gesamt\"] = sum.Wert;\n\n    //Differenzen\n    const diff1 = this.calcDiff(gridData[0], gridData[1]);\n    const diff2 = this.calcDiff(gridData[1], gridData[2]);\n    gridData.splice(2, 0, diff1);\n    gridData.splice(4, 0, diff2);\n\n    if (this.gridInstance && this.gridInstance.instance) {\n      this.gridInstance.instance.option(\"dataSource\", gridData);\n    } else {\n      this.gridOptions.dataSource = gridData;\n    }\n\n    this.getFirmaBezeichnung();\n  }\n\n  private calcDiff(obj1, obj2) {\n    const result = {\n      Jahr: `Diff ${obj1.Jahr}/${obj2.Jahr}`,\n      IsDiff: true\n    };\n\n    for (let key in obj1) {\n      if (key == \"Jahr\") {\n        continue;\n      }\n\n      if (!obj1[key]) {\n        if (obj2[key]) {\n          result[key] = 1;\n        } else {\n          result[key] = 0;\n        }\n        continue;\n      }\n\n      result[key] = ((obj2[key] / obj1[key]) - 1);\n    }\n\n    return result;\n  }\n  private getCellValue(e: HTMLElement, d) {\n    const data = d.data;\n\n    if (data.IsDiff) {\n      e.style.backgroundColor = \"#eee\";\n      e.style.fontWeight = \"bold\";\n    }\n\n    if (d.column.dataField == \"Jahr\") {\n      e.style.fontWeight = \"bold\";\n      e.innerText = d.value;\n      return;\n    }\n    if (d.column.dataField == \"Gesamt\") {\n      e.style.fontWeight = \"bold\";\n    }\n\n    if (data.IsDiff) {\n      if (d.value > 0) {\n        e.innerText = \"+\" + this._globalizationService.format(d.value, \"p0\");\n        e.style.backgroundColor = \"#27AE60\";\n        e.style.color = \"white\";\n      } else if (d.value < 0) {\n        e.innerText = \"-\" + this._globalizationService.format(Math.abs(d.value), \"p0\");\n        e.style.backgroundColor = \"#C0392B\";\n        e.style.color = \"white\";\n      } else {\n        e.innerText = this._globalizationService.format(Math.abs(d.value), \"p0\");\n      }\n    } else {\n      e.innerText = this._globalizationService.format(d.value, \"n0\");\n    }\n  }\n  private getIdGeschaeftspartner() {\n    return this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n  }\n  private getIdArtikel() {\n    return this.widgetModel\n      && this.widgetModel.mainModel\n      && this.widgetModel.mainModel.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\"\n      ? this.widgetModel.mainModel.Id\n      : null;\n  }\n  private async getFirmaBezeichnung(){\n    if(this.settings.idFirma == null){\n      this.firmaBezeichnung = null;\n      return;\n    }\n    \n    this.firmaBezeichnung = await this._firmaService.getFirmaBezeichnungById(this.settings.idFirma);\n  }\n}\n\nenum DisplayType {\n  chart = 0,\n  grid = 1\n}\n","import { autoinject } from 'aurelia-framework';\nimport { StatistikVerkaufWertTyp } from '../../../../framework-data/events';\nimport { RestService } from '../../../../framework/base/export';\nimport { IWidgetModel } from '../../interfaces/widget-model';\nimport { IWidgetSettings } from '../../interfaces/widget-settings';\n\n@autoinject\nexport class UmsatzMonatSettings {\n  constructor(\n    private _restService: RestService) { }\n\n  widgetModel: IWidgetModel;\n  widgetViewModel: any;\n  settings: IUmsatzMonatSettings;\n  firmaDataSource: any[];\n  dataSource: any[] = [];\n\n  firmaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"firmaDataSource\",\n      value: \"settings.idFirma\",\n    },\n    onValueChangedByUser: () => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  };\n\n  doShowNettoMitForecaseCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Umsatz mit Forecast anzeigen\",\n    bindingOptions: {\n      value: \"settings.showNettoMitForecast\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n  doShowAuftragseingangCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Auftragseingang anzeigen\",\n    bindingOptions: {\n      value: \"settings.showAuftragseingang\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n  doShowNettoCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Umsatz anzeigen\",\n    bindingOptions: {\n      value: \"settings.showNetto\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n  doShowEinsatzCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Einsatz anzeigen\",\n    bindingOptions: {\n      value: \"settings.showEinsatz\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n  doShowDBCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"DB anzeigen\",\n    bindingOptions: {\n      value: \"settings.showDB\"\n    },\n    onValueChangedByUser: (e) => {\n      this.createDataSource();\n      this.setValueSelectBox();\n    }\n  }\n\n  selectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Value\",\n    bindingOptions: {\n      dataSource: \"dataSource\",\n      value: \"settings.standard\",\n    }\n  };\n\n  activate(widgetSettings: IWidgetSettings) {\n    this.widgetModel = widgetSettings.widgetModel;\n    this.settings = widgetSettings.widgetModel.settings;\n    this.widgetViewModel = widgetSettings.widgetViewModel;\n\n    this.createDataSource();\n    this.setValueSelectBox();\n    this.loadFirmaDataSource();\n  }\n\n  private createDataSource() {\n    const dataSource = [];\n\n    if (this.settings.showNettoMitForecast) {\n      dataSource.push({\n        Bezeichnung: \"Umsatz mit Forecast\",\n        Value: StatistikVerkaufWertTyp.NettoMitForecast\n      });\n    }\n    if (this.settings.showAuftragseingang) {\n      dataSource.push({\n        Bezeichnung: \"Auftragseingang\",\n        Value: StatistikVerkaufWertTyp.Auftragseingang\n      });\n    }\n    if (this.settings.showNetto) {\n      dataSource.push({\n        Bezeichnung: \"Umsatz\",\n        Value: StatistikVerkaufWertTyp.Netto\n      });\n    }\n    if (this.settings.showEinsatz) {\n      dataSource.push({\n        Bezeichnung: \"Einsatz\",\n        Value: StatistikVerkaufWertTyp.Einsatz\n      });\n    }\n    if (this.settings.showDB) {\n      dataSource.push({\n        Bezeichnung: \"DB\",\n        Value: StatistikVerkaufWertTyp.DB\n      });\n    }\n\n    this.dataSource = dataSource;\n  }\n\n  private setValueSelectBox() {\n    if (this.dataSource.some(i => i.Value == this.settings.standard)) {\n      return;\n    }\n\n    if (this.dataSource.length == 0) {\n      this.settings.standard = null;\n    } else {\n      this.settings.standard = this.dataSource[0].Value;\n    }\n  }\n\n  private async loadFirmaDataSource() {\n    this.firmaDataSource = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Firma\"),\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\"]\n      }\n    });\n  }\n}\n\nexport interface IUmsatzMonatSettings {\n  showNettoMitForecast?: boolean;\n  showAuftragseingang?: boolean;\n  showNetto?: boolean;\n  showEinsatz?: boolean;\n  showDB?: boolean;\n  idFirma?: number;\n\n  standard?: StatistikVerkaufWertTyp;\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Firma</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNettoMitForecaseCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowAuftragseingangCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowNettoCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowEinsatzCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doShowDBCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Standard</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"selectBoxOptions\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"../../widget-toolbar/widget-toolbar\\\"></require> <div class=\\\"dashboard-content\\\"> <h2>${statistikWertTypBez} je Monat <span if.bind=\\\"firmaBezeichnung\\\">: ${firmaBezeichnung}</span></h2> <div class=\\\"dashboard-content--grow dashboard-content--abs\\\" if.bind=\\\"displayType == 0\\\"> <dx-widget view-model.ref=\\\"instance\\\" name=\\\"dxChart\\\" options.bind=\\\"options\\\"></dx-widget> </div> <div class=\\\"dashboard-content--grow\\\" if.bind=\\\"displayType == 1\\\"> <dx-widget view-model.ref=\\\"gridInstance\\\" name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\"></dx-widget> </div> </div> <div class=\\\"dashboard-commands\\\"> <div> <dx-widget show.bind=\\\"settings.showNettoMitForecast\\\" name=\\\"dxButton\\\" options.bind=\\\"wertNettoMitForecastButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showAuftragseingang\\\" name=\\\"dxButton\\\" options.bind=\\\"wertAuftragseingangButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showNetto\\\" name=\\\"dxButton\\\" options.bind=\\\"wertNettoButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showEinsatz\\\" name=\\\"dxButton\\\" options.bind=\\\"wertEinsatzButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"settings.showDB\\\" name=\\\"dxButton\\\" options.bind=\\\"wertDBButtonOptions\\\"></dx-widget> </div> <div> <dx-widget show.bind=\\\"displayType !== 0\\\" name=\\\"dxButton\\\" options.bind=\\\"diagrammButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"displayType !== 1\\\" name=\\\"dxButton\\\" options.bind=\\\"gridButtonOptions\\\"></dx-widget> <dx-widget show.bind=\\\"displayType === 1\\\" name=\\\"dxButton\\\" options.bind=\\\"exportGridButtonOptions\\\"></dx-widget> </div> </div> <widget-toolbar widget-model.bind=\\\"widgetModel\\\"></widget-toolbar> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  bindingMode,\n  observable,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  DataSourceService,\n  LocalizationService,\n  WebEventService\n} from \"../../../framework/base/export\";\nimport {\n  AdresseService\n} from \"../../services/export\";\n\nimport * as Interfaces from \"../../interfaces/export\";\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\nimport { ModelUtilsService } from '../../../framework/forms/export';\nimport { OnLandPlzQueryOrtEvent, OnLandPlzQueryOrt } from '../../../framework-data/events';\n\n@autoinject\nexport class Adresse {\n  constructor(\n    private adresseService: AdresseService,\n    private dataSource: DataSourceService,\n    private localization: LocalizationService,\n    private taskQueue: TaskQueue,\n    private modelUtilsService: ModelUtilsService,\n    private webEventService: WebEventService\n  ) { }\n\n  @bindable @observable mainModel: any;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) idAdresse: number;\n  @bindable isAdresseReadOnly: boolean;\n  @bindable isFirmenbezHidden: boolean;\n  @bindable isDelayed: boolean;\n\n  /** Muss leider so sein - durch mehrfaches Binding und öftere Änderung führt dies sonst zu Problemen */\n  @bindable adressePropertyName: string;\n\n  adresse: Interfaces.IAdresse;\n\n  scopeContainer: ScopeContainer;\n\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"custom\",\n        message: \"Pflichtfeld\",\n        validationCallback: (e) => {\n          return this.isAdresseReadOnly == true\n            ? true\n            : e.value ? true : false;\n        }\n      }]\n  };\n\n  firmenbez1: Interfaces.IdxTextBoxComponent;\n  firmenbez1Options: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    placeholder: this.localization.translateOnce(\"adresse.firmenbez1\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.Firmenbez1\"\n    }\n  };\n  firmenbez2: Interfaces.IdxTextBoxComponent;\n  firmenbez2Options: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    placeholder: this.localization.translateOnce(\"adresse.firmenbez2\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.Firmenbez2\"\n    }\n  };\n  firmenbez3: Interfaces.IdxTextBoxComponent;\n  firmenbez3Options: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    placeholder: this.localization.translateOnce(\"adresse.firmenbez3\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.Firmenbez3\"\n    }\n  };\n  plz: Interfaces.IdxTextBoxComponent;\n  plzOptions: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 10,\n    placeholder: this.localization.translateOnce(\"adresse.postleitzahl\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n\n      this.taskQueue.queueMicroTask(() => {\n        this.checkLandPlzOrt();\n      });\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.PLZ\"\n    }\n  };\n  ort: Interfaces.IdxTextBoxComponent;\n  ortOptions: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    placeholder: this.localization.translateOnce(\"adresse.ort\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.Ort\"\n    }\n  };\n  strasse: Interfaces.IdxTextBoxComponent;\n  strasseOptions: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    placeholder: this.localization.translateOnce(\"adresse.strasse\"),\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.Strasse\"\n    }\n  };\n  land: Interfaces.IdxSelectBoxComponent;\n  landOptions: DevExpress.ui.dxSelectBoxOptions = {\n    valueExpr: \"Id\",\n    displayExpr: \"Bezeichnung\",\n    searchEnabled: true,\n    placeholder: this.localization.translateOnce(\"adresse.land\"),\n    inputAttr: {\n      autocomplete: \"Land\"\n    },\n    onValueChangedByUser: () => {\n      this.setMainModelDirty();\n    },\n    bindingOptions: {\n      readOnly: \"isAdresseReadOnly\",\n      value: \"adresse.IdLand\",\n    }\n  };\n\n  bind(bindingContext: any) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.landOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n      webApiAction: \"ERP/Stammdaten/Land\",\n      webApiColumns: [\"Id\", \"Bezeichnung\"],\n      keyProperty: \"Id\"\n    });\n\n    if (this.isDelayed && this.mainModel) {\n      const adresse = this.mainModel[this.adressePropertyName];\n      if (adresse) {\n        this.setAdresse(adresse);\n      }\n      if (this.idAdresse) {\n        this.idAdresseChanged(this.idAdresse);\n      }\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  mainModelChanged(newVal, oldVal) {\n    if (!newVal) {\n      return;\n    }\n\n    if (this.adressePropertyName) {\n      if (newVal && oldVal && newVal.Id == oldVal.Id) {\n        this.taskQueue.queueMicroTask(() => {\n          this.adresseService\n            .getAdresseById(this.idAdresse)\n            .then(r => {\n              this.setAdresse(r);\n            });\n        })\n      } else if (!newVal.Id) {\n        this.setAdresse({});\n      }\n    }\n  }\n  idAdresseChanged(newVal) {\n    if (!newVal) {\n      return;\n    }\n\n    this.adresseService\n      .getAdresseById(newVal)\n      .then(r => {\n        this.setAdresse(r);\n      });\n  }\n\n  resetAdresse() {\n    if (this.adresse == null) {\n      this.setAdresse({});\n    }\n\n    this.adresse.Firmenbez1 = null;\n    this.adresse.Firmenbez2 = null;\n    this.adresse.Firmenbez3 = null;\n    this.adresse.Strasse = null;\n    this.adresse.IdLand = null;\n    this.adresse.PLZ = null;\n    this.adresse.Ort = null;\n  }\n  setAdresse(adresse: any) {\n    //Prüfen, dass nicht schon ein anderer Datensatz geladen wurde ...\n    if (adresse.Id && adresse.Id != this.idAdresse) {\n      return;\n    }\n\n    this.adresse = adresse;\n\n    if (this.mainModel && this.adressePropertyName) {\n      this.mainModel[this.adressePropertyName] = adresse;\n    }\n  }\n  setAdresseByGeschaeftspartner(geschaeftspartner: any) {\n    if (geschaeftspartner) {\n      if (this.adresse == null) {\n        this.setAdresse({});\n      }\n\n      const adr = geschaeftspartner.Adresse;\n\n      this.adresse.Firmenbez1 = adr.Firmenbez1;\n      this.adresse.Firmenbez2 = adr.Firmenbez2;\n      this.adresse.Firmenbez3 = adr.Firmenbez3;\n      this.adresse.Strasse = adr.Strasse;\n      this.adresse.IdLand = adr.IdLand;\n      this.adresse.PLZ = adr.PLZ;\n      this.adresse.Ort = adr.Ort;\n    } else {\n      this.resetAdresse();\n    }\n  }\n  setMainModelDirty() {\n    if (!this.mainModel) {\n      return;\n    }\n\n    this.modelUtilsService.setDirty(this.mainModel);\n  }\n  private async checkLandPlzOrt() {\n    if (!this.adresse) {\n      return;\n    }\n\n    if (!this.adresse.PLZ || !this.adresse.IdLand) {\n      return;\n    }\n\n    const r: OnLandPlzQueryOrt = await this.webEventService.execute(new OnLandPlzQueryOrtEvent({\n      IdLand: this.adresse.IdLand,\n      Plz: this.adresse.PLZ\n    }));\n\n    if (!r.Ort) {\n      return;\n    }\n\n    this.adresse.Ort = r.Ort;\n  }\n}\n","// Module\nvar code = \"<template> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption\\\" if.bind=\\\"!isFirmenbezHidden\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.firmenbez1\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"firmenbez1Options\\\" validator.bind=\\\"requiredOptions\\\" view-model.ref=\\\"firmenbez1\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption\\\" if.bind=\\\"!isFirmenbezHidden\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.firmenbez2\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"firmenbez2Options\\\" view-model.ref=\\\"firmenbez2\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption\\\" if.bind=\\\"!isFirmenbezHidden\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.firmenbez3\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"firmenbez3Options\\\" view-model.ref=\\\"firmenbez3\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.strasse\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"strasseOptions\\\" view-model.ref=\\\"strasse\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.land\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"landOptions\\\" validator.bind=\\\"requiredOptions\\\" view-model.ref=\\\"land\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 col-lg-2\\\"> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"plzOptions\\\" view-model.ref=\\\"plz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.ort\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"ortOptions\\\" view-model.ref=\\\"ort\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject } from \"aurelia-framework\";\nimport { IdxPopupComponent, IdxDataGridComponent } from '../../interfaces/export';\nimport { GlobalizationService, DataSourceService, ScopeContainer, ShortcutService } from '../../../framework/base/export';\nimport { SimpleWidgetCreatorService, PopupInfoService, RouterService, FormBase, IModel } from '../../../framework/forms/export';\nimport { EntitaetInfoService } from '../../services/export';\n\n@autoinject\nexport class Aendprot {\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _dataSourceService: DataSourceService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _shortcutService: ShortcutService,\n    private _popupInfoService: PopupInfoService,\n    private _routeService: RouterService,\n    private _entitaetInfoService: EntitaetInfoService\n  ) { }\n\n  scopeContainer: ScopeContainer;\n\n  popup: IdxPopupComponent;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"1100px\",\n    height: \"800px\"\n  };\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      dataField: \"TransactionId\",\n      caption: \"Transaktion\",\n      width: \"90px\"\n    }, {\n      dataField: \"Eigenschaft\",\n      caption: \"Eigenschaft\",\n      width: \"120px\"\n    }, {\n      dataField: \"WertAlt\",\n      caption: \"Wert alt\",\n      minWidth: 100\n    }, {\n      dataField: \"WertNeu\",\n      caption: \"Wert neu\",\n      minWidth: 100\n    }, {\n      dataField: \"AnlageDatum\",\n      caption: \"Datum\",\n      format: this._globalizationService.getFormatterParser(\"G\"),\n      width: \"130px\"\n    }, {\n      dataField: \"AnlageBenutzerName\",\n      caption: \"Benutzer\",\n      width: \"120px\"\n    }],\n    filterRow: {\n      visible: true\n    },\n    headerFilter: {\n      visible: true\n    },\n    height: \"100%\"\n  };\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"aendProtToolbar\",\n      scopeContainer: this.scopeContainer,\n      options: this.popupOptions,\n      caption: \"aendprot.aenderungsprotokoll\",\n      commands: []\n    });\n\n    this._shortcutService.bindShortcut(\"ctrl+f1\", () => {\n      if (this._popupInfoService.isPopupOpen()) {\n        const popup = this._popupInfoService.getCurrentPopup();\n        if (popup && popup.form) {\n          this.getIdAndShow(popup.form);\n        }\n      } else {\n        if (this._routeService.currentViewItem && this._routeService.currentViewItem.controller) {\n          const controller: any = this._routeService.currentViewItem.controller;\n          const viewModel = controller.currentViewModel;\n          if (viewModel && viewModel instanceof FormBase) {\n            this.getIdAndShow(viewModel);\n          }\n        }\n      }\n    }, true);\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  private getIdAndShow(formBase: FormBase) {\n    const model = formBase.models.getModelWithKeyId();\n    if (!model) {\n      return;\n    }\n\n    const data = formBase.models.data[model.id];\n    if (!data) {\n      return;\n    }\n\n    if (!data.Id) {\n      return;\n    }\n\n    const idList = [data.Id];\n    idList.push(...this.getExtendedIds(model, data));\n\n    this.show(idList);\n  }\n  private getExtendedIds(model: IModel, data: any): number[] {\n    const result = [];\n\n    if (data.IdKundeAdresse) {\n      result.push(data.IdKundeAdresse);\n    }\n    if (data.IdRechnungsortAdresse) {\n      result.push(data.IdRechnungsortAdresse);\n    }\n    if (data.IdLieferortAdresse) {\n      result.push(data.IdLieferortAdresse);\n    }\n    if (data.IdLieferantAdresse) {\n      result.push(data.IdLieferantAdresse);\n    }\n    if (data.IdAdresse) {\n      result.push(data.IdAdresse);\n    }\n    if (data.IdSteuer) {\n      result.push(data.IdSteuer);\n    }\n    if (data.DynamischesFeldContainer != null) {\n      data.DynamischesFeldContainer.DynamischesFeldEintraege.forEach((element) => {\n        if (element.Id != null) {\n          result.push(element.Id);\n        }\n      });\n    }\n\n    return result;\n  }\n\n  private show(idList: number[]) {\n    const where = [];\n    idList.forEach(v => {\n      where.push([\"IdObject\", v], \"or\");\n    });\n    where.splice(where.length - 1, 1);\n\n    const dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer, {\n      webApiAction: \"ERP/Stammdaten/AendProt\",\n      webApiWhere: where,\n      webApiOrderBy: [{ columnName: \"AnlageDatum\", sortOrder: 1 }]\n    }\n    );\n\n    if (this.grid) {\n      this.grid.instance.option(\"dataSource\", dataSource);\n    } else {\n      this.gridOptions.dataSource = dataSource;\n    }\n\n    this.popup.instance.show();\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./aendprot.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable } from \"aurelia-framework\";\nimport { GlobalizationService } from '../../../framework/base/export';\nimport { IdxNumberBoxComponent } from '../../interfaces/export';\n\n@autoinject\nexport class AnzAusdrucke {\n  constructor(\n    private globalizationService: GlobalizationService\n  ) {}\n\n  @bindable options: any;\n  anzAusdrucke: IdxNumberBoxComponent;\n\n  anzNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    min: 1,\n    max: 5,\n    value: 1,\n    showSpinButtons: true,\n    width: \"100px\",\n    format: this.globalizationService.getFormatterParser(\"n0\"),\n    onValueChanged: (e) => {\n      if (!this.options || !this.options.onValueChanged) {\n        return;\n      }\n\n      this.options.onValueChanged({\n        value: e.component.option(\"value\")\n      });\n    }\n  }\n\n  activate(e) {\n    if (e && e.options) {\n      this.options = e.options;\n    }\n  }\n  bind() {\n    if (this.options && this.options.onInitialized) {\n      this.options.onInitialized({\n        component: this,\n        options: this.options\n      });\n    }\n  }\n  unbind() {\n    if (this.options && this.options.onDisposed) {\n      this.options.onDisposed({\n        component: this\n      });\n    }\n  }\n\n  getValue(): number{\n    if (!this.anzAusdrucke) {\n      return 1;\n    }\n\n    return this.anzAusdrucke.instance.option(\"value\");\n  }\n  setValue(value) {\n    if (!this.anzAusdrucke) {\n      return;\n    }\n\n    this.anzAusdrucke.setOption({\n      value: value\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./anz-ausdrucke.less\\\"></require> <div class=\\\"anz-ausdrucke\\\"> <div class=\\\"anz-ausdrucke-label\\\" tr=\\\"key: anz-ausdrucke.anz-ausdrucke\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"anzNumberBoxOptions\\\" view-model.ref=\\\"anzAusdrucke\\\"></dx-widget> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".anz-ausdrucke {\\n  display: grid;\\n  grid-template-rows: auto 1fr;\\n  height: 100%;\\n}\\n.anz-ausdrucke-label {\\n  padding-top: 2px;\\n  padding-bottom: 4px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IAbreitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n\n  arbeitszeitmusterList: any[];\n  abrechnungsmodellList: any[];\n\n  arbeitszeitAbrechnungsmodellArbeitszeitmuster: IArbeitszeitAbrechnungsmodellArbeitszeitmuster\n\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitAbrechnungsmodellArbeitszeitmuster);\n    }\n  }];\n\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidation: any;\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitAbrechnungsmodellArbeitszeitmuster.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  arbeitszeitmusterSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"arbeitszeitmusterList\",\n      value: \"arbeitszeitAbrechnungsmodellArbeitszeitmuster.IdArbeitszeitmuster\",\n    }\n  };\n\n  abrechnungsmodellSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"abrechnungsmodellList\",\n      value: \"arbeitszeitAbrechnungsmodellArbeitszeitmuster.IdAbrechnungsmodell\",\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitMitarbeiterstatusToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.abrechnungsmodell-arbeitszeitmuster\",\n      options: this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupOptions,\n      commands: this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadArbeitszeitmusterDatasource();\n    this.loadAbrechnungsmodellDatasource();\n  }\n\n\n  async show(options: IAbreitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditOptions) {\n    this._options = options;\n    this.arbeitszeitAbrechnungsmodellArbeitszeitmuster = null;\n    this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    if (this.arbeitszeitAbrechnungsmodellArbeitszeitmuster.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n\n  private async loadArbeitszeitmusterDatasource() {\n    this.arbeitszeitmusterList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/arbeitszeitmuster\")\n    });\n  }\n  private async loadAbrechnungsmodellDatasource() {\n    this.abrechnungsmodellList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/abrechnungsmodell\")\n    });\n  }\n}\n\nexport interface IAbreitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitAbrechnungsmodellArbeitszeitmuster: IArbeitszeitAbrechnungsmodellArbeitszeitmuster): void };\n}\n\nexport interface IArbeitszeitAbrechnungsmodellArbeitszeitmuster {\n  IdAbrechnungsmodell: number;\n  IdArbeitszeitmuster: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Abrechnungsmodell</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"abrechnungsmodellSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Arbeitszeitmuster</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"arbeitszeitmusterSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit, IArbeitszeitAbrechnungsmodellArbeitszeitmuster } from \"../arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit\";\n\n@autoinject\nexport class ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit: ArbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitAbrechnungsmodellArbeitszeitmuster: IArbeitszeitAbrechnungsmodellArbeitszeitmuster) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/abrechnungsmodellarbeitszeitmuster`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            IdArbeitszeitmuster: arbeitszeitAbrechnungsmodellArbeitszeitmuster.IdArbeitszeitmuster,\n            IdAbrechnungsmodell: arbeitszeitAbrechnungsmodellArbeitszeitmuster.IdAbrechnungsmodell,\n            GueltigVon: arbeitszeitAbrechnungsmodellArbeitszeitmuster.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusAbrechnungsmodellArbeitszeitmusterZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusAbrechnungsmodellArbeitszeitmusterZuteilung();\n    }\n  }\n\n  private async loadMitarbeiterstatusAbrechnungsmodellArbeitszeitmusterZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/abrechnungsmodellarbeitszeitmuster/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit\\\"> </require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Abrechnungsmodell/Arbeitszeitmuster</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit view-model.ref=\\\"arbeitszeitAbrechnungsmodellArbeitszeitmusterZuteilungEdit\\\"></arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitAnspruchsgruppeZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitAnspruchsgruppeZuteilungEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  anspruchsgruppeList: any[];\n  arbeitszeitAnspruchsgruppe: IArbeitszeitAnspruchsgruppe;\n\n  arbeitszeitAnspruchsgruppeZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitAnspruchsgruppeZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitAnspruchsgruppeZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doarbeitszeitAnspruchsgruppeZuteilungEdit\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitAnspruchsgruppeZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitAnspruchsgruppe);\n    }\n  }];\n\n  arbeitszeitAnspruchsgruppeZuteilungEditValidation: any;\n  arbeitszeitAnspruchsgruppeZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitAnspruchsgruppe.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  anspruchsgruppeSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"anspruchsgruppeList\",\n      value: \"arbeitszeitAnspruchsgruppe.IdAnspruchsgruppe\",\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitAnspruchsgruppeZuteilungEditToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.anspruchsgruppe\",\n      options: this.arbeitszeitAnspruchsgruppeZuteilungEditPopupOptions,\n      commands: this.arbeitszeitAnspruchsgruppeZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadAnspruchsgruppeDatasource();\n  }\n\n  async show(options: IArbeitszeitAnspruchsgruppeZuteilungEditOptions) {\n    this._options = options;\n    this.arbeitszeitAnspruchsgruppe = null;\n    this.arbeitszeitAnspruchsgruppeZuteilungEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitAnspruchsgruppeZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    if (this.arbeitszeitAnspruchsgruppe.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n\n  private async loadAnspruchsgruppeDatasource() {\n    this.anspruchsgruppeList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/anspruchsgruppe\")\n    });\n  }\n}\n\nexport interface IArbeitszeitAnspruchsgruppeZuteilungEditOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitAnspruchsgruppe: IArbeitszeitAnspruchsgruppe): void };\n}\n\nexport interface IArbeitszeitAnspruchsgruppe {\n  IdAnspruchsgruppe: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitAnspruchsgruppeZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitAnspruchsgruppeZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitAnspruchsgruppeZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitAnspruchsgruppeZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Anspruchsgruppe</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"anspruchsgruppeSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitAnspruchsgruppeZuteilungEdit, IArbeitszeitAnspruchsgruppe } from \"../arbeitszeit-anspruchsgruppe-zuteilung-edit/arbeitszeit-anspruchsgruppe-zuteilung-edit\";\n\n@autoinject\nexport class ArbeitszeitAnspruchsgruppeZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitAnspruchsgruppeZuteilungEdit: ArbeitszeitAnspruchsgruppeZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitAnspruchsgruppeZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitAbspruchsgruppe: IArbeitszeitAnspruchsgruppe) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/anspruchsgruppe`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            IdAnspruchsgruppe: arbeitszeitAbspruchsgruppe.IdAnspruchsgruppe,\n            GueltigVon: arbeitszeitAbspruchsgruppe.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusAnspruchsgruppeZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusAnspruchsgruppeZuteilung();\n    }\n  }\n\n  private async loadMitarbeiterstatusAnspruchsgruppeZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/anspruchsgruppe/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-anspruchsgruppe-zuteilung-edit/arbeitszeit-anspruchsgruppe-zuteilung-edit\\\"></require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Anspruchsgruppen</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-anspruchsgruppe-zuteilung-edit view-model.ref=\\\"arbeitszeitAnspruchsgruppeZuteilungEdit\\\"></arbeitszeit-anspruchsgruppe-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitBeschaeftigungsausmassZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitBeschaeftigungsausmassZuteilungEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  arbeitszeitBeschaeftigungsausmass: IArbeitszeitBeschaeftigungsausmass;\n\n  arbeitszeitBeschaeftigungsausmassZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitBeschaeftigungsausmassZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitBeschaeftigungsausmassZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doarbeitszeitBeschaeftigungsausmassZuteilungEdit\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitBeschaeftigungsausmassZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitBeschaeftigungsausmass);\n    }\n  }];\n\n  arbeitszeitBeschaeftigungsausmassZuteilungEditValidation: any;\n  arbeitszeitBeschaeftigungsausmassZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitBeschaeftigungsausmass.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  beschaeftigungsausmassNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n4\"),\n    bindingOptions: {\n      value: \"arbeitszeitBeschaeftigungsausmass.Beschaeftigungsausmass\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitMitarbeiterstatusToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.beschaeftigungsausmass\",\n      options: this.arbeitszeitBeschaeftigungsausmassZuteilungEditPopupOptions,\n      commands: this.arbeitszeitBeschaeftigungsausmassZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  async show(options: IArbeitszeitBeschaeftigungsausmassZuteilungEditOptions) {\n    this._options = options;\n    this.arbeitszeitBeschaeftigungsausmass = null;\n    this.arbeitszeitBeschaeftigungsausmassZuteilungEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitBeschaeftigungsausmassZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    if (this.arbeitszeitBeschaeftigungsausmass.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n}\n\nexport interface IArbeitszeitBeschaeftigungsausmassZuteilungEditOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitBeschaeftigungsausmass: IArbeitszeitBeschaeftigungsausmass): void };\n}\n\nexport interface IArbeitszeitBeschaeftigungsausmass {\n  Beschaeftigungsausmass: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitBeschaeftigungsausmassZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitBeschaeftigungsausmassZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitBeschaeftigungsausmassZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitBeschaeftigungsausmassZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Beschaeftigungsausmass %</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"beschaeftigungsausmassNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitBeschaeftigungsausmassZuteilungEdit, IArbeitszeitBeschaeftigungsausmass } from './../arbeitszeit-beschaeftigungsausmass-zuteilung-edit/arbeitszeit-beschaeftigungsausmass-zuteilung-edit';\n\n@autoinject\nexport class ArbeitszeitBeschaeftigungsausmassZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitBeschaeftigungsausmassZuteilungEdit: ArbeitszeitBeschaeftigungsausmassZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"BeschaeftigungsausmassProzent\",\n      caption: \"Beschaeftigungsausmaß %\",\n      minWidth: 100,\n      format: this._globalizationService.getFormatterParser(\"n4\")\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitBeschaeftigungsausmassZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitBeschaeftigungsausmass: IArbeitszeitBeschaeftigungsausmass) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/beschaeftigungsausmass`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            BeschaeftigungsausmassProzent: arbeitszeitBeschaeftigungsausmass.Beschaeftigungsausmass,\n            GueltigVon: arbeitszeitBeschaeftigungsausmass.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusBeschaeftigungsausmassZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusBeschaeftigungsausmassZuteilung();\n    }\n  }\n\n  private async loadMitarbeiterstatusBeschaeftigungsausmassZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/beschaeftigungsausmass/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-beschaeftigungsausmass-zuteilung-edit/arbeitszeit-beschaeftigungsausmass-zuteilung-edit\\\"> </require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Beschäftigungsausmaß</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-beschaeftigungsausmass-zuteilung-edit view-model.ref=\\\"arbeitszeitBeschaeftigungsausmassZuteilungEdit\\\"></arbeitszeit-beschaeftigungsausmass-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitFreieInformationEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitFreieInformationEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  freieInformationDetailList: any[];\n  freieInformationDetail: any;\n  arbeitszeitFreieInformation: IArbeitszeitFreieInformation;\n\n  valueString: string;\n  valueBoolean: boolean;\n  valueNumber: number;\n\n  arbeitszeitFreieInformationEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitFreieInformationEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitFreieInformationEditPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitFreieInformationEdit\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (this.freieInformationDetail != null) {\n        this.arbeitszeitFreieInformation.IdFreieInformationDetail = this.freieInformationDetail.IdFreieInformationDetail;\n        switch (this.freieInformationDetail.ObjectType) {\n          case \"String\": {\n            this.arbeitszeitFreieInformation.Wert = this.valueString;\n            break;\n          }\n          case \"Boolean\": {\n            this.arbeitszeitFreieInformation.Wert = this.valueBoolean == true\n              ? \"True\"\n              : \"False\";\n            break;\n          }\n          case \"Decimal\": {\n            this.arbeitszeitFreieInformation.Wert = this.valueNumber.toString();\n            break;\n          }\n        }\n      }\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitFreieInformationEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitFreieInformation);\n    }\n  }];\n\n  arbeitszeitFreieInformationEditValidation: any;\n  arbeitszeitFreieInformationEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitFreieInformation.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n  gueltigBisDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigBisDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitFreieInformation.GueltigBis\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  freieInformationSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"IdFreieInformationDetail\",\n    bindingOptions: {\n      dataSource: \"freieInformationDetailList\",\n      value: \"arbeitszeitFreieInformation.IdFreieInformationDetail\",\n    },\n    onValueChangedByUser: (e) => {\n      if (this.arbeitszeitFreieInformation.IdFreieInformationDetail > 0) {\n        this.freieInformationDetail = this.freieInformationDetailList\n          .filter(c => c.IdFreieInformationDetail == this.arbeitszeitFreieInformation.IdFreieInformationDetail)[0] || null;\n      }\n    }\n  };\n\n  valueNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n2\"),\n    bindingOptions: {\n      value: \"valueNumber\"\n    }\n  }\n  valueTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    bindingOptions: {\n      value: \"valueString\"\n    }\n  }\n  valueCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    bindingOptions: {\n      value: \"valueBoolean\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitFreieInformationEditToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.freie-information\",\n      options: this.arbeitszeitFreieInformationEditPopupOptions,\n      commands: this.arbeitszeitFreieInformationEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadFreieInformationDetailDatasource();\n  }\n\n  async show(options: IArbeitszeitFreieInformationEditOptions) {\n    this._options = options;\n    this.freieInformationDetail = null;\n    this.arbeitszeitFreieInformation = null;\n    this.valueBoolean = false;\n    this.valueNumber = null;\n    this.valueString = null;\n    this.arbeitszeitFreieInformation = options.arbeitszeitFreieInformation;\n\n    if (this.arbeitszeitFreieInformation.IdFreieInformationDetail > 0) {\n      this.freieInformationDetail = this.freieInformationDetailList\n        .filter(c => c.IdFreieInformationDetail == this.arbeitszeitFreieInformation.IdFreieInformationDetail)[0] || null;\n\n      if (this.arbeitszeitFreieInformation.Id != null) {\n        switch (this.freieInformationDetail.ObjectType) {\n          case \"String\": {\n            this.valueString = this.arbeitszeitFreieInformation.Wert\n            break;\n          }\n          case \"Boolean\": {\n            this.valueBoolean = this.arbeitszeitFreieInformation.Wert == \"True\" ? true : false\n            break;\n          }\n          case \"Decimal\": {\n            this.valueNumber = parseFloat(this.arbeitszeitFreieInformation.Wert);\n            break;\n          }\n        }\n      }\n    }\n\n    this.arbeitszeitFreieInformationEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitFreieInformationEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    if (this.arbeitszeitFreieInformation.GueltigVon != null\n      && this.arbeitszeitFreieInformation.GueltigBis != null\n      && this.arbeitszeitFreieInformation.GueltigVon > this.arbeitszeitFreieInformation.GueltigBis) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Gültig bis sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n\n  private async loadFreieInformationDetailDatasource() {\n    this.freieInformationDetailList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/ArbeitszeitPartei/freieinformationdetail\")\n    });\n  }\n}\n\nexport interface IArbeitszeitFreieInformationEditOptions {\n  arbeitszeitFreieInformation: IArbeitszeitFreieInformation,\n  callback: { (arbeitszeitFreieInformation: IArbeitszeitFreieInformation): void };\n}\n\nexport interface IArbeitszeitFreieInformation {\n  Id?: number;\n  IdFreieInformationDetail?: number;\n  Wert?: string;\n  GueltigVon?: Date;\n  GueltigBis?: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitFreieInformationEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitFreieInformationEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitFreieInformationEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitFreieInformationEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig bis</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigBisDateBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Freie Information</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"freieInformationSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div if.bind=\\\"freieInformationDetail.ObjectType == 'Decimal'\\\" class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Wert</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"valueNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div if.bind=\\\"freieInformationDetail.ObjectType == 'String'\\\" class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Wert</div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"valueTextBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div if.bind=\\\"freieInformationDetail.ObjectType == 'Boolean'\\\" class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Wert</div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"valueCheckBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitFreieInformationEdit, IArbeitszeitFreieInformation } from \"../arbeitszeit-freie-information-edit/arbeitszeit-freie-information-edit\";\n\n\n@autoinject\nexport class ArbeitszeitFreieInformationList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable idPartei: number;\n  arbeitszeitArbeitszeitFreieInformationEdit: ArbeitszeitFreieInformationEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 50\n    },\n    {\n      dataField: \"Wert\",\n      caption: \"Wert\",\n      minWidth: 50\n    }],\n    onRowClick: (e) => {\n      this.arbeitszeitArbeitszeitFreieInformationEdit.show({\n        arbeitszeitFreieInformation: {\n          Id: e.data.Id,\n          IdFreieInformationDetail: e.data.IdFreieInformationDetail,\n          Wert: e.data.Wert,\n          GueltigVon: e.data.GueltigVon,\n          GueltigBis: e.data.GueltigBis\n        },\n        callback: async (arbeitszeitFreieInformation: IArbeitszeitFreieInformation) => {\n          this.saveFreieInformation(arbeitszeitFreieInformation);\n        }\n      });\n    },\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitArbeitszeitFreieInformationEdit.show({\n      arbeitszeitFreieInformation: {\n        GueltigVon: new Date()\n      },\n      callback: async (arbeitszeitFreieInformation: IArbeitszeitFreieInformation) => {\n        this.saveFreieInformation(arbeitszeitFreieInformation);\n      }\n    });\n  }\n\n  idParteiChanged(e) {\n    if (this.idPartei > 0) {\n      this.loadParteiFreieInformationen();\n    }\n  }\n\n  private async saveFreieInformation(arbeitszeitFreieInformation: IArbeitszeitFreieInformation) {\n    const r = await this._restService.post({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitPartei/freieinformation`),\n      data: {\n        Id: arbeitszeitFreieInformation.Id,\n        IdPartei: this.idPartei,\n        IdFreieInformationDetail: arbeitszeitFreieInformation.IdFreieInformationDetail,\n        Wert: arbeitszeitFreieInformation.Wert,\n        GueltigVon: arbeitszeitFreieInformation.GueltigVon,\n        GueltigBis: arbeitszeitFreieInformation.GueltigBis\n      }\n    });\n\n    this.loadParteiFreieInformationen();\n  }\n\n  private async loadParteiFreieInformationen() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitPartei/freieinformation/${this.idPartei}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-freie-information-edit/arbeitszeit-freie-information-edit\\\"></require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Freie Informationen</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"idPartei > 0\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-freie-information-edit view-model.ref=\\\"arbeitszeitArbeitszeitFreieInformationEdit\\\"></arbeitszeit-freie-information-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitGehaltsschemaZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitGehaltsschemaZuteilungEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  gehaltsSchemaList: any[];\n  arbeitszeitGehaltsschema: IArbeitszeitGehaltsschema;\n\n  arbeitszeitGehaltsschemaZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitGehaltsschemaZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitGehaltsschemaZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitMitarbeiterstatusDetail\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitGehaltsschemaZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitGehaltsschema);\n    }\n  }];\n\n  arbeitszeitGehaltsschemaZuteilungEditValidation: any;\n  arbeitszeitGehaltsschemaZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitGehaltsschema.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  gehaltsschemaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"gehaltsSchemaList\",\n      value: \"arbeitszeitGehaltsschema.IdGehaltsschema\"\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitGehaltsschemaZuteilungEditToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.gehaltsschema\",\n      options: this.arbeitszeitGehaltsschemaZuteilungEditPopupOptions,\n      commands: this.arbeitszeitGehaltsschemaZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadGehaltsSchemaDatasource();\n  }\n\n  async show(options: IArbeitszeitGehaltsschemaZuteilungEditOptions) {\n    this._options = options;\n    this.arbeitszeitGehaltsschema = null;\n    this.arbeitszeitGehaltsschemaZuteilungEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitGehaltsschemaZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    if (this.arbeitszeitGehaltsschema.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n\n  private async loadGehaltsSchemaDatasource() {\n    this.gehaltsSchemaList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/gehaltsschema\")\n    });\n  }\n}\n\nexport interface IArbeitszeitGehaltsschemaZuteilungEditOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitGehaltsschema: IArbeitszeitGehaltsschema): void };\n}\n\nexport interface IArbeitszeitGehaltsschema {\n  IdGehaltsschema: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitGehaltsschemaZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitGehaltsschemaZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitGehaltsschemaZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitGehaltsschemaZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gehaltsschema</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"gehaltsschemaSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitGehaltsschemaZuteilungEdit, IArbeitszeitGehaltsschema } from './../arbeitszeit-gehaltsschema-zuteilung-edit/arbeitszeit-gehaltsschema-zuteilung-edit';\n\n@autoinject\nexport class ArbeitszeitGehaltsschemaZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitGehaltsschemaZuteilungEdit: ArbeitszeitGehaltsschemaZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitGehaltsschemaZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitGehaltsschema: IArbeitszeitGehaltsschema) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/gehaltsschema`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            IdGehaltsschema: arbeitszeitGehaltsschema.IdGehaltsschema,\n            GueltigVon: arbeitszeitGehaltsschema.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusGehaltsschemaZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusGehaltsschemaZuteilung();\n    }\n  }\n\n  private async loadMitarbeiterstatusGehaltsschemaZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/gehaltsschema/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-gehaltsschema-zuteilung-edit/arbeitszeit-gehaltsschema-zuteilung-edit\\\"></require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Gehaltsschema</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-gehaltsschema-zuteilung-edit view-model.ref=\\\"arbeitszeitGehaltsschemaZuteilungEdit\\\"></arbeitszeit-gehaltsschema-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitKalenderZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitKalenderZuteilungEditOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  kalenderList: any[];\n  arbeitszeitKalender: IArbeitszeitKalender;\n\n  arbeitszeitKalenderZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitKalenderZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitKalenderZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitMitarbeiterstatusDetail\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitKalenderZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitKalender);\n    }\n  }];\n\n  arbeitszeitKalenderZuteilungEditValidation: any;\n  arbeitszeitKalenderZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitKalender.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  kalenderSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"kalenderList\",\n      value: \"arbeitszeitKalender.IdKalender\",\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitKalenderZuteilungEditToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.kalender\",\n      options: this.arbeitszeitKalenderZuteilungEditPopupOptions,\n      commands: this.arbeitszeitKalenderZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadKalenderDatasource();\n  }\n\n\n  async show(options: IArbeitszeitKalenderZuteilungEditOptions) {\n    this._options = options;\n    this.arbeitszeitKalender = null;\n    this.arbeitszeitKalenderZuteilungEditPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitKalenderZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n    if (this.arbeitszeitKalender.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n\n    return true;\n  }\n  private async loadKalenderDatasource() {\n    this.kalenderList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/kalender\")\n    });\n  }\n}\n\nexport interface IArbeitszeitKalenderZuteilungEditOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitKalender: IArbeitszeitKalender): void };\n}\n\nexport interface IArbeitszeitKalender {\n  IdKalender: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitKalenderZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitKalenderZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitKalenderZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitKalenderZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Kalender</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"kalenderSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitKalenderZuteilungEdit, IArbeitszeitKalender } from './../arbeitszeit-kalender-zuteilung-edit/arbeitszeit-kalender-zuteilung-edit';\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\n\n@autoinject\nexport class ArbeitszeitKalenderZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitKalenderZuteilungEdit: ArbeitszeitKalenderZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitKalenderZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitKalender: IArbeitszeitKalender) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/kalender`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            IdKalender: arbeitszeitKalender.IdKalender,\n            GueltigVon: arbeitszeitKalender.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusKalenderZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusKalenderZuteilung();\n    }\n  }\n\n\n  private async loadMitarbeiterstatusKalenderZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/kalender/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-kalender-zuteilung-edit/arbeitszeit-kalender-zuteilung-edit\\\"></require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Kalender</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-kalender-zuteilung-edit view-model.ref=\\\"arbeitszeitKalenderZuteilungEdit\\\"></arbeitszeit-kalender-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitKostenstelleZuteilungEdit {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitKostenstelleZuteilungOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  arbeitszeitKostenstelle: IArbeitszeitKostenstelle;\n  kostenstelleList: any[];\n\n  arbeitszeitKostenstelleZuteilungEditPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitKostenstelleZuteilungEditPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitKostenstelleZuteilungEditPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitKostenstelleZuteilungEdit\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitKostenstelleZuteilungEditPopup.instance.hide();\n      this._options.callback(this.arbeitszeitKostenstelle);\n    }\n  }];\n\n  arbeitszeitKostenstelleZuteilungEditValidation: any;\n  arbeitszeitKostenstelleZuteilungEditValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  gueltigVonDateBox: Interfaces.IdxDateBoxComponent;\n  gueltigVonDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitKostenstelle.GueltigVon\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  kostenstelleSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"kostenstelleList\",\n      value: \"arbeitszeitKostenstelle.IdKostenstelle\",\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitMitarbeiterstatusToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.kostenstelle\",\n      options: this.arbeitszeitKostenstelleZuteilungEditPopupOptions,\n      commands: this.arbeitszeitKostenstelleZuteilungEditPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.loadKostenstelleDatasource();\n  }\n\n\n  async show(options: IArbeitszeitKostenstelleZuteilungOptions) {\n    this._options = options;\n    this.arbeitszeitKostenstelle = null;\n    this.arbeitszeitKostenstelleZuteilungEditPopup.instance.show();\n  }\n\n\n  private isDataValid() {\n    const result = this.arbeitszeitKostenstelleZuteilungEditValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n    if (this.arbeitszeitKostenstelle.GueltigVon < this._options.mitarbeiterstatus.Eintrittsdatum) {\n      DevExpress.ui.notify(\n        \"Gültig von Datum darf nicht kleiner als Eintrittsdatum sein\",\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n      return false;\n    }\n    return true;\n  }\n\n  private async loadKostenstelleDatasource() {\n    this.kostenstelleList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/kostenstelle\")\n    });\n  }\n}\n\nexport interface IArbeitszeitKostenstelleZuteilungOptions {\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus,\n  callback: { (arbeitszeitKostenstelle: IArbeitszeitKostenstelle): void };\n}\n\nexport interface IArbeitszeitKostenstelle {\n  IdKostenstelle: number;\n  GueltigVon: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitKostenstelleZuteilungEditPopupOptions\\\" view-model.ref=\\\"arbeitszeitKostenstelleZuteilungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitKostenstelleZuteilungEditValidationGroup\\\" view-model.ref=\\\"arbeitszeitKostenstelleZuteilungEditValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gültig von</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"gueltigVonDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Kostenstelle</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"kostenstelleSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { IArbeitszeitMitarbeiterstatus } from \"../../interfaces/arbeitszeit-mitarbeiterstatus\";\nimport { IdxDataGridComponent } from \"../../interfaces/dx-components\";\nimport { ArbeitszeitKostenstelleZuteilungEdit, IArbeitszeitKostenstelle } from './../arbeitszeit-kostenstelle-zuteilung-edit/arbeitszeit-kostenstelle-zuteilung-edit';\n\n@autoinject\nexport class ArbeitszeitKostenstelleZuteilungList {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitKostenstellZuteilungEdit: ArbeitszeitKostenstelleZuteilungEdit;\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    allowColumnResizing: true,\n    columnResizingMode: \"widget\",\n    paging: {\n      pageSize: 20\n    },\n    hoverStateEnabled: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      dataField: \"GueltigVon\",\n      caption: \"Gültig von\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"GueltigBis\",\n      caption: \"Gültig bis\",\n      width: \"120px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }]\n  };\n\n  onNeuButtonClick() {\n    this.arbeitszeitKostenstellZuteilungEdit.show({\n      mitarbeiterstatus: this.mitarbeiterstatus,\n      callback: async (arbeitszeitKostenstelle: IArbeitszeitKostenstelle) => {\n        const r = await this._restService.post({\n          url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/kostenstelle`),\n          data: {\n            IdMitarbeiterstatus: this.mitarbeiterstatus.IdMitarbeiterstatus,\n            IdKostenstelle: arbeitszeitKostenstelle.IdKostenstelle,\n            GueltigVon: arbeitszeitKostenstelle.GueltigVon\n          }\n        });\n\n        this.loadMitarbeiterstatusKostenstelleZuteilung();\n      }\n    });\n  }\n\n  mitarbeiterstatusChanged(e) {\n    if (this.mitarbeiterstatus != null && this.mitarbeiterstatus.IdMitarbeiterstatus > 0) {\n      this.loadMitarbeiterstatusKostenstelleZuteilung();\n    }\n  }\n\n  private async loadMitarbeiterstatusKostenstelleZuteilung() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/kostenstelle/${this.mitarbeiterstatus.IdMitarbeiterstatus}`)\n    });\n\n    this.grid.instance.option(\"dataSource\", r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../arbeitszeit-kostenstelle-zuteilung-edit/arbeitszeit-kostenstelle-zuteilung-edit\\\"></require> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--ribbon-toolbar-inline\\\"> <div class=\\\"t--ribbon-toolbar t--ribbon-toolbar-small\\\"> <div class=\\\"t--ribbon-toolbar-title\\\">Kostenstellen</div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div if.bind=\\\"mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-big\\\" click.delegate=\\\"onNeuButtonClick()\\\"> <i class=\\\"fa fa-plus fa-fw\\\"></i> <div>Neu</div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> <arbeitszeit-kostenstelle-zuteilung-edit view-model.ref=\\\"arbeitszeitKostenstellZuteilungEdit\\\"></arbeitszeit-kostenstelle-zuteilung-edit> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { LocalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitLohnexportErstellen {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IArbeitszeitLohnexportErstellenOptions;\n\n  constructor(\n    private _localizationService: LocalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  arbeitszeitLohnexportInfoList: any[];\n  arbeitszeitLohnexportInfoKalkulierbarList: any[];\n  arbeitszeitLohnexportInfoNichtKalkulierbarList: any[];\n  stichtag: Date;\n  showLohnexportSettingInfo: boolean;\n  idLohnexportInfo: number;\n  jahr: number;\n  monat: any;\n  months = [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"];\n\n  arbeitszeitLohnexportErstellenPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitLohnexportErstellenPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 600,\n    height: \"auto\"\n  };\n\n  monatBox: Interfaces.IdxSelectBoxComponent;\n  monatBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    bindingOptions: {\n      dataSource: \"months\",\n      value: \"monat\"\n    },\n    onValueChangedByUser: (e) => {\n      if (this.jahr != null && this.monat != null) {\n        this.loadData();\n      }\n    }\n  }\n\n  jahrBox: Interfaces.IdxNumberBoxComponent;\n  jahrBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"####\",\n    min: 2000,\n    bindingOptions: {\n      value: \"jahr\"\n    },\n    onValueChangedByUser: () => {\n      if (this.jahr != null && this.monat != null) {\n        this.loadData();\n      }\n    }\n  }\n\n  arbeitszeitLohnexportInfoBox: Interfaces.IdxSelectBoxComponent;\n  arbeitszeitLohnexportInfoOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"arbeitszeitLohnexportInfoList\",\n      value: \"idLohnexportInfo\"\n    },\n    onValueChangedByUser: (e) => {\n      const lohnexportInfo = this.arbeitszeitLohnexportInfoList\n        .filter(c => c.Id == e.value)[0] || null;\n\n      if (lohnexportInfo == null) {\n        return;\n      }\n\n      this.showLohnexportSettingInfo = true;\n      this.arbeitszeitLohnexportInfoKalkulierbarList = lohnexportInfo.LohndatenberechnungEinstellungenKalkulierbarList;\n      this.arbeitszeitLohnexportInfoNichtKalkulierbarList = lohnexportInfo.LohndatenberechnungEinstellungenNichtKalkulierbarList;\n    }\n  }\n\n  arbeitszeitLohnexportErstellenPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitLohnexportErstellen\",\n    icon: \"save\",\n    title: \"base.save\",\n    isEnabledExpression: \"\",\n    execute: async () => {\n      if (this.jahr == null || this.monat == null) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"arbeitszeit-lohnexport-erstellen.error-datum\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n      if (this.idLohnexportInfo == null) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"arbeitszeit-lohnexport-erstellen.error-einstellung\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const datum = new Date(this.jahr, this.months.indexOf(this.monat), 1);\n      datum.setHours(0, 0, 0, 0)\n\n      const arbeitszeitLohnexportErstellen: IArbeitszeitLohnexportErstellen = {\n        Id: this.idLohnexportInfo,\n        Stichtag: datum\n      };\n      this.arbeitszeitLohnexportErstellenPopup.instance.hide();\n      this._options.callback(arbeitszeitLohnexportErstellen);\n    }\n  }];\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitLohnexportErstellenToolbar\",\n      caption: \"arbeitszeit-lohnexport-erstellen.arbeitszeit-lohnexport-erstellen\",\n      options: this.arbeitszeitLohnexportErstellenPopupOptions,\n      commands: this.arbeitszeitLohnexportErstellenPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  async show(options: IArbeitszeitLohnexportErstellenOptions) {\n    this._options = options;\n\n    this.showLohnexportSettingInfo = false;\n    this.idLohnexportInfo = null;\n    this.arbeitszeitLohnexportInfoKalkulierbarList = null;\n    this.arbeitszeitLohnexportInfoNichtKalkulierbarList = null;\n    this.arbeitszeitLohnexportErstellenPopup.instance.show();\n  }\n\n  private loadData() {\n    this.showLohnexportSettingInfo = false;\n    this.idLohnexportInfo = null;\n    this.arbeitszeitLohnexportInfoKalkulierbarList = null;\n    this.arbeitszeitLohnexportInfoNichtKalkulierbarList = null;\n\n    const datum = new Date(this.jahr, this.months.indexOf(this.monat), 1);\n    datum.setHours(0, 0, 0, 0)\n\n    this.loadLohnexportInfoLaden(datum);\n  }\n\n  private async loadLohnexportInfoLaden(datum: Date) {\n    this.arbeitszeitLohnexportInfoList = await this._restService.post({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitLohnexport/einstellung`),\n      data: {\n        Stichtag: datum\n      }\n    });\n  }\n}\n\nexport interface IArbeitszeitLohnexportErstellenOptions {\n  callback: { (arbeitszeitLohnexportErstellen: IArbeitszeitLohnexportErstellen): void };\n}\n\nexport interface IArbeitszeitLohnexportErstellen {\n  Id: number;\n  Stichtag: Date;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitLohnexportErstellenPopupOptions\\\" view-model.ref=\\\"arbeitszeitLohnexportErstellenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-6\\\"> <div class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Monat</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"monatBoxOptions\\\" view-model.ref=\\\"monatBox\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-6\\\"> <div class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Jahr</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"jahrBoxOptions\\\" view-model.ref=\\\"jahrBox\\\"></dx-widget> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Einstellungen</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"arbeitszeitLohnexportInfoOptions\\\" view-model.ref=\\\"arbeitszeitLohnexportInfo\\\"></dx-widget> </div> </div> </div> </div> </div> <div if.bind=\\\"showLohnexportSettingInfo\\\" class=\\\"col-xs-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Kalkulierbar</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div repeat.for=\\\"data of arbeitszeitLohnexportInfoKalkulierbarList\\\"> <span class=\\\"search-result-group-item-text\\\">${data.Bezeichnung} - Pers. Nr: ${data.PersonalNummer}</span> </div> </div> </div> </div> </div> <div if.bind=\\\"showLohnexportSettingInfo\\\" class=\\\"col-xs-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Nicht Kalkulierbar</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div repeat.for=\\\"data of arbeitszeitLohnexportInfoNichtKalkulierbarList\\\"> <span class=\\\"search-result-group-item-text\\\">${data.Bezeichnung} - Pers. Nr: ${data.PersonalNummer}</span> </div> </div> </div> </div> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitMitarbeiterstatusAustritt {\n  private _options: IArbeitszeitMitarbeiterstatusAustrittOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  austrittDatum: Date;\n\n  arbeitszeitMitarbeiterstatusAustrittPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitMitarbeiterstatusAustrittPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitMitarbeiterstatusAustrittPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitMitarbeiterstatusAustritt\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitMitarbeiterstatusAustrittPopup.instance.hide();\n      this._options.callback(this.austrittDatum);\n    }\n  }];\n\n  arbeitszeitMitarbeiterstatusAustrittValidation: any;\n  arbeitszeitMitarbeiterstatusAustrittValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  austrittDateBox: Interfaces.IdxDateBoxComponent;\n  austrittDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"austrittDatum\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitMitarbeiterstatusToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.austritt\",\n      options: this.arbeitszeitMitarbeiterstatusAustrittPopupOptions,\n      commands: this.arbeitszeitMitarbeiterstatusAustrittPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  async show(options: IArbeitszeitMitarbeiterstatusAustrittOptions) {\n    this._options = options;\n    this.austrittDateBox = null;\n    this.arbeitszeitMitarbeiterstatusAustrittPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitMitarbeiterstatusAustrittValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n    return true;\n  }\n}\n\nexport interface IArbeitszeitMitarbeiterstatusAustrittOptions {\n  callback: { (austrittDatum: Date): void };\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitMitarbeiterstatusAustrittPopupOptions\\\" view-model.ref=\\\"arbeitszeitMitarbeiterstatusAustrittPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitMitarbeiterstatusAustrittValidationGroup\\\" view-model.ref=\\\"arbeitszeitMitarbeiterstatusAustrittValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Austritt am</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"austrittDateBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> </div>  </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../framework/base/classes/scope-container\";\nimport { GlobalizationService, RestService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IArbeitszeitBenutzerZuteilung } from \"../../interfaces/arbeitszeit-benutzer-zuteilung\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ArbeitszeitMitarbeiterstatus {\n  private _options: IMitarbeiterstatusErstellenOptions;\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService,\n    private _simpleWidgetCreator: SimpleWidgetCreatorService) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n  arbeitszeitBenutzerzuteilung: IArbeitszeitBenutzerZuteilung;\n\n  arbeitszeitmusterList: any[];\n  abrechnungsmodellList: any[];\n  anspruchsgruppeList: any[];\n  gehaltsSchemaList: any[];\n  zeitartList: any[];\n  kalenderList: any[];\n  kostenstelleList: any[];\n\n  arbeitszeitMitarbeiterstatusPopup: Interfaces.IdxPopupComponent;\n  arbeitszeitMitarbeiterstatusPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 800,\n    height: \"auto\"\n  };\n\n  arbeitszeitMitarbeiterstatusPopupCommands: ICommandData[] = [{\n    id: \"doArbeitszeitMitarbeiterstatusDetail\",\n    icon: \"save\",\n    title: \"base.save\",\n    execute: () => {\n      if (!this.isDataValid()) {\n        return;\n      }\n      this.arbeitszeitMitarbeiterstatusPopup.instance.hide();\n      this._options.callback(this.arbeitszeitBenutzerzuteilung);\n    }\n  }];\n\n  arbeitszeitBenutzerZuteilungValidation: any;\n  arbeitszeitMitarbeiterstatusValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  personalnummerNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    bindingOptions: {\n      value: \"arbeitszeitBenutzerzuteilung.Personalnummer\"\n    }\n  }\n\n  vordienstzeitenMonateNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    bindingOptions: {\n      value: \"arbeitszeitBenutzerzuteilung.VordienstzeitenMonate\"\n    }\n  }\n\n  vordienstzeitenTageNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    bindingOptions: {\n      value: \"arbeitszeitBenutzerzuteilung.VordienstzeitenTage\"\n    }\n  }\n\n  eintrittsDatumBox: Interfaces.IdxDateBoxComponent;\n  eintrittsDatumBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    bindingOptions: {\n      value: \"arbeitszeitBenutzerzuteilung.Eintrittsdatum\",\n    },\n    displayFormat: this._globalizationService.getFormatterParser(\"d\")\n  };\n\n  arbeitszeitmusterSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"arbeitszeitmusterList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdArbeitszeitmuster\",\n    }\n  };\n\n  abrechnungsmodellSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"abrechnungsmodellList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdAbrechnungsmodell\",\n    }\n  };\n\n  beschaeftigungsausmassNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n4\"),\n    bindingOptions: {\n      value: \"arbeitszeitBenutzerzuteilung.BeschaeftigungsausmassProzent\"\n    }\n  }\n\n  anspruchsgruppeSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"anspruchsgruppeList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdAnspruchsgruppe\",\n    }\n  };\n\n  gehaltsSchemaSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"gehaltsSchemaList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdGehaltsSchema\",\n    }\n  };\n\n  kalenderSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"kalenderList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdKalender\",\n    }\n  };\n\n  kostenstelleSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      dataSource: \"kostenstelleList\",\n      value: \"arbeitszeitBenutzerzuteilung.IdKostenstelle\",\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"arbeitszeitMitarbeiterstatusToolbar\",\n      caption: \"arbeitszeit-benutzer-zuteilung.mitarbeiterstatus\",\n      options: this.arbeitszeitMitarbeiterstatusPopupOptions,\n      commands: this.arbeitszeitMitarbeiterstatusPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  async show(options: IMitarbeiterstatusErstellenOptions) {\n    this._options = options;\n    this.arbeitszeitBenutzerzuteilung = {};\n    \n    await this.loadArbeitszeitmusterDatasource();\n    await this.loadAbrechnungsmodellDatasource();\n    await this.loadAnspruchsgruppeDatasource();\n    await this.loadGehaltsSchemaDatasource();\n    await this.loadKalenderDatasource();\n    await this.loadKostenstelleDatasource();\n\n    this.arbeitszeitMitarbeiterstatusPopup.instance.show();\n  }\n\n  private isDataValid() {\n    const result = this.arbeitszeitBenutzerZuteilungValidation.instance.validate()\n    if (!result.isValid) {\n      return false;\n    }\n\n    return true;\n  }\n  private async loadArbeitszeitmusterDatasource() {\n    this.arbeitszeitmusterList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/arbeitszeitmuster\")\n    });\n  }\n  private async loadAbrechnungsmodellDatasource() {\n    this.abrechnungsmodellList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/abrechnungsmodell\")\n    });\n  }\n  private async loadAnspruchsgruppeDatasource() {\n    this.anspruchsgruppeList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/anspruchsgruppe\")\n    });\n  }\n  private async loadGehaltsSchemaDatasource() {\n    this.gehaltsSchemaList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/gehaltsschema\")\n    });\n  }\n  private async loadKalenderDatasource() {\n    this.kalenderList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/kalender\")\n    });\n  }\n  private async loadKostenstelleDatasource() {\n    this.kostenstelleList = await this._restService.get({\n      url: this._restService.getApiUrl(\"ERP/Arbeitszeit/kostenstelle\")\n    });\n  }\n}\n\nexport interface IMitarbeiterstatusErstellenOptions {\n  idArbeitszeitBenutzerZuteilung: number;\n  callback: { (arbeitszeitBenutzerZuteilung: IArbeitszeitBenutzerZuteilung): void };\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"arbeitszeitMitarbeiterstatusPopupOptions\\\" view-model.ref=\\\"arbeitszeitMitarbeiterstatusPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"arbeitszeitMitarbeiterstatusValidationGroup\\\" view-model.ref=\\\"arbeitszeitBenutzerZuteilungValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 col-md-6 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Personalnummer</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"personalnummerNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Eintrittsdatum</div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"eintrittsDatumBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Vordienstzeiten Monate</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"vordienstzeitenMonateNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Vordienstzeiten Tage</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"vordienstzeitenTageNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Beschäftigungsausmaß %</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"beschaeftigungsausmassNumberBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Arbeitszeitmuster</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"arbeitszeitmusterSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Abrechnungsmodell</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"abrechnungsmodellSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Anspruchgsgruppe</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"anspruchsgruppeSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Gehaltsschema</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"gehaltsSchemaSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Kostenstelle</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"kostenstelleSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 col-lg-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Kalender</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"kalenderSelectBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> </div> </div></dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport { OverrideContext, Scope } from '../../../../node_modules/aurelia-framework';\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\nimport { LocalizationService, RestService } from '../../../framework/base/export';\nimport { AsyncService } from '../../../framework/base/services/async-service';\nimport { IdxPopoverComponent } from '../../interfaces/dx-components';\nimport * as Interfaces from \"../../interfaces/export\";\nimport { HeaderCommandService, StartupService } from '../../services/export';\n\n@autoinject\nexport class ArbeitszeitStempelnCommand {\n\n  constructor(\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService,\n    private _headerCommandService: HeaderCommandService,\n    private _restService: RestService,\n    private _startupService: StartupService) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  benutzerStatus: any;\n  saldo: any;\n  zeitartList: any[];\n  idZeitartKommen: number;\n  idZeitartGehen: number;\n  idZeitart: number;\n  kommentar: string;\n\n  isGewaehlteZeitartVormerk: boolean;\n\n  popover: IdxPopoverComponent;\n  popoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"300\",\n    height: \"auto\",\n    maxHeight: \"75vh\"\n  };\n\n  kommenButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"arbeitszeit-stempeln-command.kommen\"),\n    width: \"100%\",\n    bindingOptions: {\n      disabled: \"idZeitart != null || (benutzerStatus != null && benutzerStatus.IdZeitart == idZeitartKommen)\"\n    },\n    onClick: (e) => {\n      this.postStempeln(this.idZeitartKommen, false, null);\n    }\n  }\n  gehenButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"arbeitszeit-stempeln-command.gehen\"),\n    width: \"100%\",\n    bindingOptions: {\n      disabled: \"idZeitart != null || benutzerStatus == null || benutzerStatus.IdZeitart == null\"\n    },\n    onClick: (e) => {\n      this.postStempeln(this.idZeitartGehen, false, null);\n    }\n  }\n\n  zeitartBox: Interfaces.IdxSelectBoxComponent;\n  zeitartBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    showClearButton: true,\n    placeholder: \"Andere Zeitart auswählen...\",\n    bindingOptions: {\n      dataSource: \"zeitartList\",\n      value: \"idZeitart\"\n    }\n  }\n\n  kommentarTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    bindingOptions: {\n      value: \"kommentar\"\n    }\n  };\n\n  jetztButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"arbeitszeit-stempeln-command.jetzt\"),\n    width: \"100%\",\n    onClick: async (e) => {\n      await this.postStempeln(this.idZeitart, false, this.kommentar);\n      this.idZeitart = null;\n      this.kommentar = null;\n    }\n  }\n  vormerkenButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"arbeitszeit-stempeln-command.vormerken\"),\n    width: \"100%\",\n    bindingOptions: {\n      disabled: \"disableVormerkButton\"\n    },\n    onClick: async (e) => {\n      await this.postStempeln(this.idZeitart, true, this.kommentar);\n      this.idZeitart = null;\n      this.kommentar = null;\n    }\n  }\n\n  @computedFrom(\"idZeitart\")\n  get disableVormerkButton() {\n    const zeitart = this.zeitartList\n      .filter(c => c.Id == this.idZeitart)[0] || null;\n\n    if (zeitart == null) {\n      return true;\n    }\n\n    if (zeitart.IsVormerk) {\n      return false;\n    }\n\n    return true;\n  }\n\n  @computedFrom(\"idZeitart\")\n  get canAddKommentar() {\n    if (this.idZeitart == null) {\n      this.kommentar = null;\n      return false;\n    }\n\n    const zeitart = this.zeitartList\n      .filter(c => c.Id == this.idZeitart)[0] || null;\n\n    if (zeitart == null) {\n      this.kommentar = null;\n      return false;\n    }\n\n    if (!zeitart.CanAddKommentar) {\n      this.kommentar = null;\n      return false;\n    }\n\n    return true;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n  attached() {\n    this._headerCommandService.arbeitszeitStempeln = this;\n  }\n  detached() {\n  }\n\n  async showPopover(targetElement: Element) {\n    await this._asyncService.convertToPromise(this.popover.instance.show(targetElement));\n\n    this.loadBenutzerStatus();\n    this.loadSaldo();\n    this.loadZeitartList();\n    this.loadZeitartKommen();\n    this.loadZeitartGehen();\n  }\n\n  private async loadBenutzerStatus() {\n    const idBenutzer = this._startupService.startupInfo.Benutzer.Id;\n\n    this.benutzerStatus = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitBenutzerstatus/benutzerstatus/${idBenutzer}`),\n      errorCallback: () => {\n        this.benutzerStatus = null;\n        return true;\n      }\n    });\n  }\n\n  private async loadSaldo() {\n    const idBenutzer = this._startupService.startupInfo.Benutzer.Id;\n\n    this.saldo = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitSaldo/${idBenutzer}`),\n      errorCallback: () => {\n        this.saldo = null;\n        return true;\n      }\n    });\n  }\n\n  private async loadZeitartList() {\n    this.zeitartList = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitBuchung/zeitartstemplen`)\n    });\n  }\n\n  private async loadZeitartKommen() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitBuchung/zeitartkommen`)\n    });\n\n    this.idZeitartKommen = r.Id;\n  }\n\n  private async loadZeitartGehen() {\n    const r = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitBuchung/zeitartgehen`)\n    });\n    this.idZeitartGehen = r.Id;\n  }\n\n  private async postStempeln(idZeitart: number, isVormerk: boolean, kommentar?: string) {\n    const r = await this._restService.post({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitBuchung/stempeln`),\n      data: {\n        IdBenutzer: this._startupService.startupInfo.Benutzer.Id,\n        IdZeitart: idZeitart,\n        IsVormerk: isVormerk,\n        Kommentar: kommentar\n      }\n    });\n\n    this.loadBenutzerStatus();\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./arbeitszeit-stempeln-command.less\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"popoverOptions\\\" view-model.ref=\\\"popover\\\"> <dx-template name=\\\"contentTemplate\\\" class=\\\"arbeitszeit-stempeln-command__container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 arbeitszeit-stempeln-command__container__benutzerstatus\\\"> ${benutzerStatus.Status} </div> <div class=\\\"col-xs-12 arbeitszeit-stempeln-command__container__kommengehen\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"kommenButtonOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"gehenButtonOptions\\\"></dx-widget> </div> </div> </div> <div class=\\\"col-xs-12 arbeitszeit-stempeln-command__container__zeitartstempeln\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"col-md-auto\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"zeitartBoxOptions\\\" view-model.ref=\\\"zeitartBox\\\"></dx-widget> </div> </div> <div if.bind=\\\"canAddKommentar\\\" class=\\\"col-xs-12\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\">Kommentar</div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"kommentarTextBoxOptions\\\"></dx-widget> </div> </div> </div> </div> <div if.bind=\\\"idZeitart != null\\\" class=\\\"col-xs-12\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"jetztButtonOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"vormerkenButtonOptions\\\"></dx-widget> </div> </div> </div> </div> </div> <div if.bind=\\\"saldo != null\\\" class=\\\"col-xs-12\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 arbeitszeit-stempeln-command__container__saldouebersicht\\\"> <div>Saldenübersicht</div> </div> <div class=\\\"col-xs-12 arbeitszeit-stempeln-command__container__saldouebersicht__saldoper\\\"> <div>Salden per ${saldo.SaldoPer | format:'d'} </div> </div> <div class=\\\"col-xs-12\\\" repeat.for=\\\"item of saldo.SaldoInfoList\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-6\\\"> <div>${item.Name}</div> </div> <div class=\\\"col-xs-6 arbeitszeit-stempeln-command__container__saldouebersicht__saldoper__alignend\\\"> <div>${item.Wert}</div> </div> </div> </div> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".arbeitszeit-stempeln-command__container__saldouebersicht {\\n  font-weight: bold;\\n  font-size: 1.1em;\\n  border-bottom: 1px solid #efefef;\\n}\\n.arbeitszeit-stempeln-command__container > div {\\n  padding: 12px;\\n  background-color: white;\\n}\\n.arbeitszeit-stempeln-command__container__benutzerstatus {\\n  border-bottom: 1px solid #efefef;\\n  padding-bottom: 12px!important;\\n}\\n.arbeitszeit-stempeln-command__container__kommengehen {\\n  padding-top: 12px!important;\\n}\\n.arbeitszeit-stempeln-command__container__zeitartstempeln {\\n  padding-bottom: 12px!important;\\n}\\n.arbeitszeit-stempeln-command__container__saldouebersicht__saldoper {\\n  font-weight: bold;\\n}\\n.arbeitszeit-stempeln-command__container__saldouebersicht__saldoper__alignend {\\n  text-align: end;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  OverrideContext,\n  Scope,\n  createOverrideContext\n} from \"aurelia-framework\";\n\nimport {\n  DataSourceService,\n  ScopeContainer,\n  LocalizationService,\n  IDataSourceOptionFilter\n} from \"../../../framework/base/export\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\n\nimport {\n  ArtikelSearchService\n} from \"../../services/export\";\n\nimport * as Interfaces from \"../../interfaces/export\";\nimport { GridLayoutService, IGridColumnExtenderResult } from '../../../framework/forms/services/grid-layout-service';\n\n@autoinject\nexport class ArtikelSearchResult {\n  private _onArtikelSelected: { (idArtikel: number): void };\n  private _onArtikelSelectedCancel: { (): void };\n\n  constructor(\n    private _element: Element,\n    private _dataSourceService: DataSourceService,\n    private _artikelSearchService: ArtikelSearchService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _localizationService: LocalizationService,\n    private _gridLayoutService: GridLayoutService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  searchValue: string = null;\n  searchListDataSource: DevExpress.data.DataSource;\n  optionsCaption: string;\n  optionsWhere: any;\n  optionsFilters: any;\n  gridColumnExtenderResult: IGridColumnExtenderResult;\n\n  searchResultDataGrid: Interfaces.IdxDataGridComponent;\n  searchResultDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    columns: [{\n      caption: this._localizationService.translateOnce(\"artikel-search-result.artikel_nr\"),\n      dataField: \"Nummer\",\n      width: \"80px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"artikel-search-result.artikelart\"),\n      dataField: \"Artikelart.Bezeichnung\",\n      width: \"120px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"artikel-search-result.bezeichnung\"),\n      dataField: \"Bezeichnung\",\n    }, {\n      caption: this._localizationService.translateOnce(\"artikel-search-result.lagereinheit\"),\n      dataField: \"Einheit.Bezeichnung\",\n      width: \"120px\"\n    }],\n    onRowClick: (e) => {\n      this._onArtikelSelected(e.key.Id);\n      this.searchResultPopup.instance.hide();\n    },\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    remoteOperations: {\n      filtering: true,\n      paging: true,\n      sorting: true\n    }\n  }\n\n  searchResultPopup: Interfaces.IdxPopupComponent;\n  searchResultPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    onHidden: () => {\n      this.searchValue = null;\n      this._onArtikelSelectedCancel();\n    }\n  };\n\n  searchTextBox: Interfaces.IdxTextBoxComponent;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this._localizationService.translateOnce(\"base.search\"),\n    onValueChanged: async (e) => {\n      this.reloadData();\n      this.focusSearchTextBox();\n    },\n    bindingOptions: {\n      value: \"searchValue\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._artikelSearchService.artikelSearchResult = this;\n\n    this.gridColumnExtenderResult = this._gridLayoutService.addGridColumnExtender({\n      webApiAction: \"ERP/Stammdaten/Artikel\",\n      gridOptions: this.searchResultDataGridOptions,\n      viewUrl: this._element[\"au\"].controller.view.resources.viewUrl,\n      id: \"searchResultDataGrid\"\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: this.optionsCaption || \"base.search\",\n      options: this.searchResultPopupOptions,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.searchListDataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Artikel\",\n        webApiExpand: {\n          Artikelart: {\n            columns: [\"Id\", \"Bezeichnung\"]\n          },\n          Einheit: {\n            columns: [\"Id\", \"Bezeichnung\"]\n          }\n        },\n        webApiColumns: [\"Id\", \"IdArtikelart\", \"IdEinheit\", \"Nummer\", \"Bezeichnung\"]\n      },\n      {\n        getSearchText: () => {\n          return this.searchValue;\n        },\n        getCustomWhere: () => {\n          return this.optionsWhere;\n        },\n        getCustomFilters: () => {\n          const filter: IDataSourceOptionFilter[] = this.optionsFilters || [];\n\n          const dynamicColumns = this.gridColumnExtenderResult.getDynamicColumns();\n          if (dynamicColumns.length > 0) {\n            filter.push({\n              webApiCustomKey: \"ExtendedLoadProperties\",\n              webApiCustomValue: JSON.stringify(dynamicColumns)\n            });\n          }\n\n          return filter;\n        }\n      }\n    )\n\n    this.searchResultDataGridOptions.dataSource = this.searchListDataSource;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showPopup(onArtikelSelected: { (idArtikel: number): void },\n    onArtikelSelectedCancel: { (): void },\n    options: Interfaces.ISearchOptions) {\n\n    this._onArtikelSelected = onArtikelSelected;\n    this._onArtikelSelectedCancel = onArtikelSelectedCancel;\n    this.searchValue = options.searchValue;\n    this.optionsCaption = options.caption;\n    this.optionsWhere = options.where;\n    this.optionsFilters = options.filters;\n\n    if (this[\"searchResultPopupToolbar\"]) {\n      this[\"searchResultPopupToolbar\"].title = this.optionsCaption || \"base.search\";\n    }\n\n    if (this.searchResultDataGrid && this.searchResultDataGrid.instance) {\n      const filter = this.searchResultDataGrid.instance.getCombinedFilter();\n      if (filter) {\n        this.searchResultDataGrid.instance.clearFilter();\n      }\n    }\n\n    this.searchResultPopup.instance.show()\n      .then(() => {\n        this.focusSearchTextBox();\n      });\n  }\n\n  private focusSearchTextBox() {\n    const element: Element = this.searchTextBox.instance.element();\n    const input = element.querySelector(\"input\");\n    \n    input.focus();\n    input.select();\n  }\n  private reloadData() {\n    if (this.searchListDataSource.pageIndex() > 0) {\n      this.searchListDataSource.pageIndex(0);\n    }\n\n    this.searchListDataSource.reload();\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"searchResultPopupOptions\\\" view-model.ref=\\\"searchResultPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"search-popup-container\\\"> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"search-popup-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"searchResultDataGridOptions\\\" view-model.ref=\\\"searchResultDataGrid\\\"> </dx-widget></div> </div></div></dx-template></dx-widget>    </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, bindingMode, computedFrom, observable, TaskQueue } from \"aurelia-framework\";\nimport { RestService } from \"../../../framework/base/export\";\nimport { IdxTextBoxComponent } from \"../../interfaces/export\";\nimport { DxCustomizeService } from \"../../services/dx-customize-service\";\nimport { ArtikelSearchService, ArtikelService, CustomEditPopupService } from \"../../services/export\";\n\n@autoinject\nexport class Artikel {\n\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _element: Element,\n    private _taskQueue: TaskQueue,\n    private _artikelService: ArtikelService,\n    private _artikelSearchService: ArtikelSearchService,\n    private _restService: RestService,\n    private _dxCustomizeService: DxCustomizeService\n  ) {\n    this.label = \"artikel.artikel\";\n  }\n\n  @bindable @observable mainModel: any;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable idArtikel: number;\n  @bindable @observable isReadOnly: boolean;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) bezeichnung: string;\n  @bindable hasOwnBezeichnung: boolean;\n  @bindable label: string;\n  @bindable isRequired: boolean = true;\n\n  @bindable where: any;\n\n  isBezeichnungEditierbar: boolean = false;\n\n  @computedFrom(\"isReadOnly\", \"mainModel.CanSave\")\n  get isReadOnlyChecked() {\n    return this.isReadOnly || (this.mainModel && this.mainModel.CanSave === false);\n  }\n  @computedFrom(\"isReadOnlyChecked\", \"isBezeichnungEditierbar\", \"hasOwnBezeichnung\")\n  get isReadOnlyBezeichnung() {\n    return (this.mainModel && this.mainModel.CanSave === false)\n      || !this.isBezeichnungEditierbar\n      || !this.hasOwnBezeichnung;\n  }\n\n  validatorOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [{\n      type: \"custom\",\n      reevaluate: true,\n      message: \"Artikel ist ein Pfichtfeld\",\n      validationCallback: (ev) => {\n        if (!this.isRequired) {\n          return true;\n        }\n\n        return !!ev.value;\n      }\n    }]\n  };\n\n  artikelNummer: IdxTextBoxComponent;\n  artikelNummerOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    onInitialized: (e) => {\n      this.updateArtikelButtons(e.component);\n    },\n    onValueChangedByUser: (e) => {\n      if (!e.value) {\n        this.resetData(false);\n      } else {\n        this.onArtikelChanged(e.value);\n      }\n    },\n    bindingOptions: {\n      readOnly: {\n        expression: \"isReadOnlyChecked\",\n        readOnly: true\n      }\n    }\n  };\n  artikelBezeichnung: IdxTextBoxComponent;\n  artikelBezeichnungOptions: DevExpress.ui.dxTextAreaOptions = {\n    tabIndex: -1,\n    height: \"100px\",\n    maxLength: 500,\n    onValueChangedByUser: (e) => {\n      this.bezeichnung = e.value;\n    },\n    bindingOptions: {\n      readOnly: {\n        expression: \"isReadOnlyBezeichnung\",\n        readOnly: true\n      }\n    }\n  };\n\n  bind() {\n    if (this.idArtikel) {\n      this.setArtikelData(this.idArtikel);\n    }\n  }\n\n  idArtikelChanged(newValue, oldValue) {\n    if (newValue == void 0 && oldValue == void 0) {\n      return;\n    }\n\n    if (newValue == void 0) {\n      this.resetData(true);\n      return;\n    }\n\n    this.setArtikelData(newValue);\n  }\n  mainModelChanged() {\n    if (!this.hasOwnBezeichnung) {\n      return;\n    }\n\n    this._taskQueue.queueMicroTask(() => {\n      this.setBezeichnung(this.bezeichnung);\n    });\n  }\n  isReadOnlyChanged(newValue) {\n    this.artikelNummerOptions.readOnly = newValue;\n\n    if (this.artikelNummer && this.artikelNummer.instance) {\n      this.artikelNummer.instance.option(\"readOnly\", newValue);\n    }\n  }\n\n  async onArtikelChanged(searchValue) {\n    const isValidNumber: boolean = /^[0-9]+$/.test(searchValue);\n\n    const r1 = await this._artikelService.getArtikelByNummer(searchValue, this.where);\n    if (r1 && r1.length === 1) {\n      this.setIdArtikel(r1[0].Id, false);\n      this.setBezeichnung(r1[0].Bezeichnung);\n      return;\n    }\n\n    const r2 = await this._artikelService.getArtikelBySearchtextEindeutig(searchValue, this.where);\n    if (r2 && r2.length === 1) {\n      this.setIdArtikel(r2[0].Id, false);\n      this.setBezeichnung(r2[0].Bezeichnung);\n      return;\n    }\n\n    this.showArtikelSearchPopup(searchValue);\n  }\n\n  showArtikelSearchPopup(searchValue) {\n    this._artikelSearchService.show(\n      (idArtikel) => {\n        this._artikelService.getArtikelById(idArtikel)\n          .then(r => {\n            this.setIdArtikel(r.Id, false);\n            this.setBezeichnung(r.Bezeichnung);\n          });\n      }, () => {\n        this.resetData(false);\n        this.artikelNummer.instance.focus();\n      },\n      { searchValue: searchValue, where: this.where });\n  }\n\n  private resetData(isResetByCode: boolean) {\n    this.setIdArtikel(null, isResetByCode);\n    this.setNummer(null);\n    this.setBezeichnung(null);\n    this.resetValidation();\n  }\n  private resetValidation() {\n    this.artikelNummer.instance.option(\"isValid\", true);\n  }\n  private setIdArtikel(id: number, isChangeByCode: boolean) {\n    this.idArtikel = id;\n\n    if (!isChangeByCode) {\n      this._taskQueue.queueMicroTask(() => {\n        const event = new CustomEvent(\"id-artikel-changed\", {\n          detail: {\n            sender: this,\n            value: id\n          },\n          bubbles: true\n        });\n\n        this._element.dispatchEvent(event);\n      });\n    }\n  }\n  private async setArtikelData(id: number, forceUpdateBezeichnung: boolean = false) {\n    if (!id) {\n      return;\n    }\n    const artikel = await this._artikelService.getArtikelById(id);\n    const bezeichnung = this.hasOwnBezeichnung && !forceUpdateBezeichnung\n      ? this.bezeichnung\n      : artikel.Bezeichnung;\n\n    this.setBezeichnung(bezeichnung);\n\n    this.isBezeichnungEditierbar = artikel.IsBezeichnungEditierbar;\n\n    this.setNummer(artikel.Nummer);\n  }\n  private setBezeichnung(bezeichnung: string) {\n    this.bezeichnung = bezeichnung;\n    if (!this.artikelBezeichnung) {\n      return;\n    }\n\n    if (this.artikelBezeichnung) {\n      this.artikelBezeichnung.setOption({ value: bezeichnung });\n    } else {\n      this.artikelBezeichnungOptions.value = bezeichnung;\n    }\n    this.updateArtikelButtons();\n  }\n  private setNummer(nummer: number | string) {\n    if (!this.artikelNummer) {\n      this.updateArtikelButtons();\n      return;\n    }\n\n    if (nummer != void 0) {\n      nummer = nummer.toString();\n    }\n\n    if (this.artikelNummer) {\n      this.artikelNummer.setOption({ value: nummer });\n    } else {\n      this.artikelNummerOptions.value = <string>nummer;\n    }\n    this.updateArtikelButtons();\n  }\n\n  private updateArtikelButtons(editor: DevExpress.ui.dxTextBox = null) {\n    if (!editor) {\n      if (this.artikelNummer && this.artikelNummer.instance) {\n        editor = this.artikelNummer.instance;\n      }\n    }\n\n    if (!editor) {\n      return;\n    }\n\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (this.idArtikel) {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-pencil\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: (e) => {\n            if (e.event && (<any>e.event).shiftKey) {\n              this.openArtikelInNewTab();\n              return;\n            }\n\n            this.openArtikelPopup();\n          }\n        }\n      });\n    } else if (!this.isReadOnlyChecked) {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            this.openArtikelPopup();\n          }\n        }\n      });\n    }\n\n    if (editor.option(\"value\")) {\n      buttons.push({\n        location: \"after\",\n        name: \"clear\"\n      });\n    }\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n  private openArtikelInNewTab() {\n    const url = this._restService.getViewUrl(\"#ERP/Stammdaten/Artikel/\".concat(this.idArtikel.toString()));\n\n    window.open(url, \"_blank\");\n  }\n  private openArtikelPopup() {\n    if (this._customEditPopupService.artikelEditPopup.isVisible) {\n      this.openArtikelInNewTab();\n      return;\n    }\n\n    this._customEditPopupService.artikelEditPopup.show({\n      mappings: { \"$id\": this.idArtikel || 0 },\n      savedCallback: async (form) => {\n        if (this.idArtikel && !this.isBezeichnungEditierbar && !this.isReadOnlyChecked) {\n          await this.setArtikelData(this.idArtikel, true);\n        }\n      },\n      closeCallback: async (form) => {\n        if (this.idArtikel && !this.isBezeichnungEditierbar && !this.isReadOnlyChecked) {\n          return;\n        }\n        const model = form.models.modelWithKeyId;\n        const data = form.models.data[model.id];\n\n        if (!data || !data.Id) {\n          return;\n        }\n\n        if (this.idArtikel != data.Id) {\n          this.setIdArtikel(data.Id, false);\n        }\n        await this.setArtikelData(data.Id, true);\n      }\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../artikel-search-result/artikel-search-result\\\"></require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key.bind: label\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"artikelNummerOptions\\\" view-model.ref=\\\"artikelNummer\\\" validator.bind=\\\"validatorOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel.bezeichnung\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"artikelBezeichnungOptions\\\" view-model.ref=\\\"artikelBezeichnung\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { IdxTreeViewComponent } from './../../interfaces/dx-components';\nimport { RestService } from './../../../framework/base/services/rest-service';\nimport { ScopeContainer } from './../../../framework/base/classes/scope-container';\nimport { autoinject, Scope, createOverrideContext, bindable, observable } from 'aurelia-framework';\n\n@autoinject\nexport class Artikelkategorie {\n  constructor(\n    private restService: RestService\n  ) { }\n\n  @bindable @observable mainModel: any;\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  treeViewDataSource: any[];\n  nodeKey: string;\n\n  artikelkategorieTreeView: IdxTreeViewComponent;\n  artikelkategorieTreeViewOptions: DevExpress.ui.dxTreeViewOptions = {\n    displayExpr: \"Bezeichnung\",\n    keyExpr: \"Id\",\n    parentIdExpr: \"IdUebergeordneteArtikelkategorie\",\n    dataStructure: \"plain\",\n    showCheckBoxesMode: \"normal\",\n    selectNodesRecursive: false,\n    width: 320,\n    onItemSelectionChanged: (e) => {\n      this.changeSelection(e.node, e.node.selected);\n    }\n  }\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.loadTreeViewDataSource();\n  }\n\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  mainModelChanged() {\n    if (!this.mainModel) {\n      return;\n    }\n\n    this.artikelkategorieTreeView.instance.unselectAll();\n\n    if (this.mainModel.Artikelkategorien && this.mainModel.Artikelkategorien.length > 0) {\n      for (let item of this.mainModel.Artikelkategorien) {\n        this.artikelkategorieTreeView.instance.selectItem(item.IdArtikelkategorie);\n      }\n    }\n\n    this.artikelkategorieTreeView.instance.expandAll();\n  }\n\n  async loadTreeViewDataSource(): Promise<any> {\n    this.treeViewDataSource = await this.restService.get({\n      url: `${this.restService.getWebApiUrl(\"ERP/Stammdaten/Artikelkategorie\")}`,\n      getOptions: {\n        columns: [\"Id\", \"Bezeichnung\", \"IdUebergeordneteArtikelkategorie\", \"SortNr\"],\n        orderBy: [{ columnName: \"SortNr\", sortOrder: 0 }]\n      }\n    });\n\n    if (this.artikelkategorieTreeView) {\n      this.artikelkategorieTreeView.setOption({\n        dataSource: this.treeViewDataSource\n      });\n    } else {\n      this.artikelkategorieTreeViewOptions.dataSource = this.treeViewDataSource;\n    }\n  }\n\n  private changeSelection(node: DevExpress.ui.dxTreeViewNode, isSelected: boolean) {\n    if (!this.mainModel.Artikelkategorien) {\n      this.mainModel.Artikelkategorien = [];\n    }\n\n    const artKatList: any[] = this.mainModel.Artikelkategorien;\n\n    let selectedKeysList = {\n      IdArtikel: this.mainModel.Id,\n      IdArtikelkategorie: node.key\n    }\n\n    if (isSelected) {\n      const idArtikelkategorie = artKatList.some(c => c.IdArtikelkategorie == node.key);\n      if (!idArtikelkategorie) {\n        artKatList.push(selectedKeysList);\n      }\n    } else {\n      artKatList.splice(artKatList.findIndex(c => c.IdArtikelkategorie == node.key), 1);\n    }\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTreeView\\\" options.bind=\\\"artikelkategorieTreeViewOptions\\\" view-model.ref=\\\"artikelkategorieTreeView\\\"></dx-widget> </div> </div> </div> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { WebEventService, GlobalizationService, LocationService } from '../../../framework/base/export';\nimport { OnArtikelverleihVerfuegbar, OnArtikelverleihVerfuegbarEvent } from '../../../framework-data/events';\n\nimport * as moment from \"moment\";\n\n@autoinject\nexport class ArtikelverleihVerfuegbar {\n  private _refreshTimeout;\n\n  constructor(\n    private _webEventService: WebEventService,\n    private _globalizationService: GlobalizationService,\n    private _locationService: LocationService\n  ) {}\n\n  @bindable @observable idArtikel: number;\n  @bindable @observable idLager: number;\n  @bindable @observable idArtikelverleih: number;\n  @bindable @observable datumVon: Date;\n  @bindable @observable datumBis: Date;\n  @bindable menge: number;\n\n  verfuegbarList: IVerfuegbar[];\n  reserviertList: IReserviert[];\n\n  reserviertGridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      dataField: \"Abholung\",\n      caption: \"Abholung\",\n      format: this._globalizationService.getFormatterParser(\"g\"),\n      width: \"120px\"\n    }, {\n      dataField: \"Rueckgabe\",\n      caption: \"Rückgabe\",\n      format: this._globalizationService.getFormatterParser(\"g\"),\n      width: \"120px\"\n    }, {\n      dataField: \"Firmenbez1\",\n      caption: \"Firmenbez. 1\",\n      minWidth: 100\n    }, {\n      dataField: \"Ort\",\n      caption: \"Ort\",\n      width: \"120px\"\n    }, {\n      dataField: \"MengeLagEH\",\n      caption: \"Mge. LE\",\n      format: this._globalizationService.getFormatterParser(\"n2\"),\n      width: \"80px\"\n    }, {\n      dataField: \"Einheit\",\n      caption: \"Einheit\",\n      width: \"120px\"\n    }],\n    hoverStateEnabled: true,\n    onRowPrepared: (e) => {\n      if (e.rowType != \"data\") {\n        return;\n      }\n\n      if (!e.data.IsGleichzeitig) {\n        const el: any = e.rowElement;\n        el.style.color = \"#888\";\n        el.style.fontStyle = \"italic\";\n      }\n    },\n    onRowClick: (e) => {\n      this._locationService.goTo({\n        url: \"ERP/Lager/Artikelverleih/\".concat(e.data.IdArtikelverleih),\n        viewScrollInfo: {\n          index: this.reserviertList.indexOf(e.data),\n          maxCount: this.reserviertList.length,\n          getNextKey: (index) => {\n            return this.reserviertList[index].IdArtikelverleih;\n          }\n        }\n      })\n    },\n    bindingOptions: {\n      dataSource: \"reserviertList\"\n    }\n  }\n\n  bind() {\n    this.refreshNow();\n  }\n\n  idArtikelChanged() {\n    this.refresh();\n  }\n  idLagerChanged() {\n    this.refresh();\n  }\n  idArtikelverleihChanged() {\n    this.refresh();\n  }\n  datumVonChanged() {\n    this.refresh();\n  }\n  datumBisChanged() {\n    this.refresh();\n  }\n\n  private refresh() {\n    if (this._refreshTimeout) {\n      clearTimeout(this._refreshTimeout);\n      this._refreshTimeout = null;\n    }\n\n    this._refreshTimeout = setTimeout(() => {\n      this.refreshNow();\n    }, 100)\n  }\n  private async refreshNow() {\n    if (!this.idArtikel || !this.idLager) {\n      this.verfuegbarList = [];\n      this.reserviertList = [];\n      return;\n    }\n\n    const r: OnArtikelverleihVerfuegbar = await this._webEventService.execute(new OnArtikelverleihVerfuegbarEvent({\n      IdArtikel: this.idArtikel,\n      IdLager: this.idLager,\n      IdArtikelverleih: this.idArtikelverleih || null,\n      DatumVon: this.datumVon || moment().startOf(\"day\").toDate(),\n      DatumBis: this.datumBis || moment().startOf(\"day\").add(20, \"day\").toDate()\n    }));\n\n    this.verfuegbarList = r.VerfuegbarList;\n    this.reserviertList = r.ReserviertList;\n  }\n}\n\ninterface IVerfuegbar {\n  Datum: Date;\n  VerfuegbarLagEH: number;\n}\ninterface IReserviert {\n  IdArtikelverleih: number;\n  Firmenbez1?: string;\n  Ort?: string;\n  MengeLagEH?: number;\n  Einheit?: string;\n  Abholung?: Date;\n  Rueckgabe?: Date;\n}","// Module\nvar code = \"<template> <require from=\\\"./artikelverleih-verfuegbar.less\\\"></require> <div class=\\\"artikelverleih-verfuegbar\\\"> <h2 tr=\\\"key: artikelverleih-verfuegbar.verfuegbarkeit\\\"></h2> <div class=\\\"artikelverleih-verfuegbar__container\\\"> <div class=\\\"artikelverleih-verfuegbar__item\\\" repeat.for=\\\"item of verfuegbarList\\\"> <div class=\\\"artikelverleih-verfuegbar__item__datum ${(item.VerfuegbarLagEH - (menge || 0)) >= 0 ? 'artikelverleih-verfuegbar__item--frei': ''}\\\"> ${item.Datum | format:'d'} </div> <div> ${item.VerfuegbarLagEH | format:'n2'} </div> </div> </div> </div> <div class=\\\"artikelverleih-verfuegbar\\\" show.bind=\\\"reserviertList.length > 0\\\"> <h2 tr=\\\"key: artikelverleih-verfuegbar.weitere-reservierungen\\\"></h2> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"reserviertGridOptions\\\"></dx-widget> </div> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".artikelverleih-verfuegbar {\\n  display: block;\\n  margin-top: 12px;\\n}\\n.artikelverleih-verfuegbar__container {\\n  display: flex;\\n  flex-wrap: wrap;\\n}\\n.artikelverleih-verfuegbar__container > div {\\n  margin-left: 1px;\\n  margin-bottom: 1px;\\n  border: 1px solid #ddd;\\n}\\n.artikelverleih-verfuegbar__item {\\n  display: grid;\\n  grid-template-rows: 1fr 1fr;\\n}\\n.artikelverleih-verfuegbar__item > div {\\n  padding: 6px;\\n  text-align: center;\\n}\\n.artikelverleih-verfuegbar__item__datum {\\n  color: white;\\n  background-color: #C0392B;\\n}\\n.artikelverleih-verfuegbar__item--frei {\\n  background-color: #27AE60;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  EventAggregator,\n  Subscription\n} from 'aurelia-event-aggregator';\n\nimport {\n  DataSourceService,\n  ScopeContainer,\n  LocalizationService,\n  WebEventService,\n  IViewScrollInfo\n} from \"../../../framework/base/export\";\nimport {\n  OnAufgabeAnzahlRequestEvent,\n  OnAufgabeErledigenRequestEvent,\n  OnAufgabeAnzahlRequest\n} from \"../../../framework-data/events\";\nimport {\n  PopupInfoService\n} from \"../../../framework/forms/services/export\";\nimport {\n  ListView,\n  IListViewOptions\n} from \"../../../framework/forms/elements/list-view/export\";\nimport {\n  ICommandData\n} from \"../../../framework/forms/interfaces/export\";\nimport {\n  EntitaetInfoService,\n  HeaderCommandService,\n  CustomEditPopupService,\n  StartupService\n} from \"../../services/export\";\nimport {\n  IdxPopoverComponent,\n} from \"../../interfaces/export\";\nimport {\n  Statustyp,\n  HeaderCommandEvent,\n  NotificationTyp\n} from \"../../enumerations/export\";\n\nimport * as moment from \"moment\";\nimport { LocationService } from '../../../framework/base/services/location-service';\n\n@autoinject\nexport class AufgabeCommand {\n  private _commandShowingSubscription: Subscription;\n  private _anzahlChangedSubscription: Subscription;\n  private _idProjekt: number;\n  private _aufgabeBenutzer: boolean;\n\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _dataSourceService: DataSourceService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _eventAggregator: EventAggregator,\n    private _headerCommandService: HeaderCommandService,\n    private _localizationService: LocalizationService,\n    private _popupInfoService: PopupInfoService,\n    private _startupService: StartupService,\n    private _webEventService: WebEventService,\n    private _locationService: LocationService\n  ) { }\n\n  idVerknuepfteEntitaet: number;\n  aufgabeUrl: string;\n  isHeaderCommand: boolean;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  needsReload: boolean = false;\n  heute: Date;\n\n  aufgabe: IdxPopoverComponent;\n  aufgabeOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400,\n    onShowing: (e) => {\n      (<DevExpress.ui.dxPopover>e.component).repaint();\n      if (this.needsReload) {\n        this.aufgabeListView.refresh();\n      }\n    }\n  };\n\n  aufgabeListView: ListView;\n  aufgabeListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    pageSize: 15,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const aufgabe = e.item;\n      this.showAufgabePopup(aufgabe);\n    }\n  };\n\n  aufgabeStatusAendernButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-check fa-fw\",\n    onClick: (e) => {\n      //TODO\n      const event: Event = <any>e.event;\n      event.stopPropagation();\n\n      this.erledigenAufgabe(e.model.bindingContext.item);\n    }\n  };\n  newAufgabeButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"form-command.aufgabe-command-neu\"),\n    width: \"100%\",\n    onClick: this.onNewAufgabeClicked.bind(this)\n  };\n  showAllAufgabeButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"form-command.aufgabe-command-alle-anzeigen\"),\n    width: \"100%\",\n    onClick: this.onAlleAnzeigenClicked.bind(this)\n  };\n\n  attached() {\n    this._headerCommandService.aufgabe = this;\n    this._anzahlChangedSubscription = this._eventAggregator\n      .subscribe(\n        NotificationTyp.aufgabeAnzahlChanged,\n        this.loadAnzahl.bind(this)\n      );\n\n    this._commandShowingSubscription = this._eventAggregator\n      .subscribe(\n        HeaderCommandEvent.onShowingPopover,\n        (command: ICommandData) => {\n          if (this._headerCommandService.aufgabeCommand.id != command.id) {\n            this.aufgabe.instance.hide();\n          }\n        }\n      );\n  }\n  detached() {\n    this._commandShowingSubscription.dispose();\n    this._anzahlChangedSubscription.dispose();\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.aufgabeListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiColumns: [\"Id\", \"Betreff\", \"FaelligAm\", \"ErinnernAm\", \"IdGeschaeftspartner\", \"IdSachbearbeiter\", \"IsPrioritaet\"],\n        webApiAction: \"ERP/Stammdaten/Aufgabe\",\n        webApiWhere: [\"Status.Typ\", Statustyp.Offen],\n        webApiExpand: {\n          Geschaeftspartner: {\n            columns: [\"Id\", \"EntitaetBezeichnung\"]\n          },\n          Sachbearbeiter: {\n            columns: [\"Id\", \"Name\"]\n          }\n        },\n        filters: [{\n          webApiCustomKey: \"InklIdStatusFarbe\",\n          webApiCustomValue: \"true\"\n        }, {\n          webApiCustomKey: \"AddTags\",\n          webApiCustomValue: \"true\"\n        }]\n      },\n      {\n        getCustomWhere: () => {\n          if (this.idVerknuepfteEntitaet == void 0) {\n            return null;\n          }\n\n          return [\"IdVerknuepfteEntitaet\", this.idVerknuepfteEntitaet];\n        },\n        getCustomFilters: () => {\n          if (!this._aufgabeBenutzer) {\n            return;\n          }\n\n          return [{ webApiCustomKey: \"AufgabeBenutzer\", webApiCustomValue: \"true\" }];\n        }\n      }\n    );\n\n    this.loadAnzahl();\n\n    this._entitaetInfoService.getUrl(\"TIP.ERP.Business.Entitaeten.Stammdaten.Aufgabe\")\n      .then(r => {\n        this.aufgabeUrl = r;\n      });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  showPopover(targetElement: Element, modelData: any) {\n    if (this._headerCommandService.aufgabeCommand.isEnabled === false) {\n      return;\n    }\n\n    this.setModelData(modelData);\n    this.heute = moment().startOf(\"day\").toDate();\n\n    this.isHeaderCommand = targetElement.firstElementChild.className === \"t--header-command\";\n\n    this.aufgabe.instance\n      .show(targetElement)\n      .done(() => {\n        if (!this.needsReload) {\n          this.needsReload = true;\n        }\n      });\n  }\n  goToAufgabeList() {\n    this._locationService.goTo({\n      url: \"ERP/Stammdaten/Aufgabe\",\n      clearStack: false\n    });\n  }\n  showAufgabePopup(aufgabe) {\n    this._customEditPopupService\n      .aufgabeEditPopup\n      .show({\n        mappings: { \"$id\": aufgabe.Id },\n        viewScrollInfo: this.getViewScrollInfo(aufgabe)\n      });\n    this.aufgabe.instance.hide();\n  }\n\n  private erledigenAufgabe(aufgabe: any) {\n    if (aufgabe == void 0 || aufgabe.Id == void 0) {\n      return;\n    }\n\n    const aufgabeErledigenEvent = new OnAufgabeErledigenRequestEvent({ IdAufgabe: aufgabe.Id });\n\n    this._webEventService\n      .execute(aufgabeErledigenEvent, true)\n      .then(r => {\n        this.aufgabeListViewOptions.dataSource.reload();\n        this.loadAnzahl();\n      });\n  }\n  private getViewScrollInfo(aufgabe): IViewScrollInfo {\n    const dataSource = this.aufgabeListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(aufgabe);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n  private loadAnzahl() {\n    if (this._startupService.startupInfo.Benutzer.IsCloudAdministrator) {\n      return;\n    }\n    const aufgabeAnzahlEvent = new OnAufgabeAnzahlRequestEvent({\n      AufgabeBenutzer: true\n    });\n\n    this._webEventService\n      .execute(aufgabeAnzahlEvent)\n      .then((r: OnAufgabeAnzahlRequest) => {\n        if (r == void 0 || r.Anzahl == 0) {\n          this._headerCommandService.aufgabeCommand.badgeText = null;\n          return;\n        }\n\n        let color = \"white\";\n        let textColor = \"black\";\n        let borderColor = \"#C1392D\";\n\n        let anzahl = \"\";\n        if (r.AnzahlErinnernFaellig) {\n          anzahl += r.AnzahlErinnernFaellig + \"/\";\n\n          color = \"#C1392D\";\n          textColor = \"white\";\n          borderColor = \"transparent\";\n        }\n        anzahl += r.Anzahl;\n\n        this._headerCommandService.aufgabeCommand.isEnabled = true;\n        this._headerCommandService.aufgabeCommand.badgeColor = color;\n        this._headerCommandService.aufgabeCommand.badgeTextColor = textColor;\n        this._headerCommandService.aufgabeCommand.badgeBorderColor = borderColor;\n\n        this._headerCommandService.aufgabeCommand.badgeText = {\n          key: \"base.param_1\",\n          parameters: [anzahl]\n        };\n      });\n\n  }\n  private onAlleAnzeigenClicked() {\n    this.goToAufgabeList();\n    this.aufgabe.instance.hide();\n    this._popupInfoService.closeAllPopups();\n  }\n  private onNewAufgabeClicked() {\n    this._customEditPopupService\n      .aufgabeEditPopup\n      .show({\n        mappings: {\n          \"$id\": 0\n        }\n      });\n\n    this.aufgabe.instance.hide();\n  }\n  private setModelData(modelData: any) {\n    if (modelData == void 0) {\n      this._idProjekt = null;\n      this.idVerknuepfteEntitaet = null;\n      this._aufgabeBenutzer = true;\n    } else {\n      this.idVerknuepfteEntitaet = modelData.Id;\n      this._idProjekt = modelData.IdProjekt;\n      this._aufgabeBenutzer = false;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../../framework/forms/elements/list-view/list-view\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"aufgabeOptions\\\" view-model.ref=\\\"aufgabe\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content\\\"> <div class=\\\"col-xs-12\\\" if.bind=\\\"isHeaderCommand\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"showAllAufgabeButtonOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"newAufgabeButtonOptions\\\"></dx-widget> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"aufgabeListViewOptions\\\" view-model.ref=\\\"aufgabeListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"aufgabe-list-item\\\" class.one-time=\\\"item.StatusFarbe ? 'aufgabe-list-item-border-status':''\\\" css=\\\"border-color: ${item.StatusFarbe}\\\"> <div class=\\\"aufgabe-list-item-title\\\"> <i if.bind=\\\"item.IsPrioritaet\\\" class=\\\"fa fa-exclamation aufgabe-list-item-is-prioritaet\\\"></i><span>${item.Betreff}</span> </div> <div class=\\\"aufgabe-list-item-info\\\"> <div if.bind=\\\"item.FaelligAm\\\" class.one-time=\\\"item.FaelligAm <= heute? 'aufgabe-list-item-abgelaufen':''\\\">F: ${item.FaelligAm | format:\\\"e\\\"}</div> <div if.bind=\\\"item.ErinnernAm\\\" class.one-time=\\\"item.ErinnernAm <= heute? 'aufgabe-list-item-abgelaufen':''\\\">E: ${item.ErinnernAm | format:\\\"e\\\"}</div> </div> <div class=\\\"aufgabe-list-item-commands\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"aufgabeStatusAendernButtonOptions\\\"></dx-widget> </div> <div if.bind=\\\"item.Geschaeftspartner.EntitaetBezeichnung\\\" class=\\\"aufgabe-list-item-text\\\"> ${item.Geschaeftspartner.EntitaetBezeichnung} </div> <div if.bind=\\\"idVerknuepfteEntitaet && item.Sachbearbeiter.Name\\\" class=\\\"aufgabe-list-item-text\\\"> <i class=\\\"fa fa-user fa-fw\\\"></i><span>${item.Sachbearbeiter.Name}</span> </div> <tags-list if.bind=\\\"item._Tags\\\" tags.bind=\\\"item._Tags\\\"></tags-list> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { CustomEditPopup } from './../../../framework/forms/elements/custom-edit-popup/custom-edit-popup';\nimport { ICommand } from './../../../framework/forms/interfaces/command';\nimport {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EventAggregator,\n  Subscription\n} from 'aurelia-event-aggregator';\nimport {\n  WebEventService\n} from \"../../../framework/base/export\";\nimport {\n  OnAufgabeAnzahlRequestEvent, OnAufgabeAnzahlRequest\n} from \"../../../framework-data/events\";\nimport {\n  FormBase\n} from \"../../../framework/forms/export\";\nimport {\n  ICommandData\n} from \"../../../framework/forms/interfaces/export\";\n\nimport {\n  FormCommandService\n} from \"../../services/export\";\n\nimport {\n  CustomEditPopupService,\n  HeaderCommandService\n} from \"../../services/export\";\nimport {\n  NotificationTyp\n} from \"../../enumerations/export\";\n\n@autoinject\nexport class AufgabeFormCommand {\n  private _aufgabeFormCommandSubscription: Subscription;\n  private _availableForms: FormBase[] = [];\n  private _detachedAddCommand: { (): void };\n  private _detachedShowCommand: { (): void };\n  constructor(\n    private customEditPopup: CustomEditPopupService,\n    private formCommand: FormCommandService,\n    private eventAggregator: EventAggregator,\n    private headerCommand: HeaderCommandService,\n    private webEvent: WebEventService\n  ) { }\n\n  showAufgabeFormCommand: ICommandData = {\n    id: \"showAufgabeFormCommand\",\n    idCategory: \"aufgaben\",\n    title: \"form-command.aufgabe-command-icon-text\",\n    icon: \"tasks\",\n    isEnabled: false,\n    badgeText: null,\n    badgeColor: \"#C1392D\",\n    sortIndex: 8000\n  }\n\n  addAufgabeFormCommand: ICommandData = {\n    id: \"$addAufgabe\",\n    idCategory: \"aufgaben\",\n    icon: \"plus\",\n    title: \"form-command.aufgabe-command-neu\",\n    isEnabled: false,\n    sortIndex: 8001\n  }\n\n  attached() {\n    this._aufgabeFormCommandSubscription = this.eventAggregator\n      .subscribe(\n        NotificationTyp.aufgabeAnzahlChanged,\n        (data) => {\n          if (data == null) {\n            return;\n          }\n          this.loadAufgabeBadge({ Id: data.IdVerknuepfteEntitaet });\n        }\n      );\n\n    this._detachedShowCommand = this.formCommand.attachFormCommand(\n      this.showAufgabeFormCommand,\n      {\n        isCommandVisibleModelProperty: \"SupportsAufgabe\",\n        execute: (e) => {\n          const element = this.formCommand.getCommandTarget(e.options.event);\n\n          this.headerCommand.aufgabe.showPopover(element, e.modelData);\n        },\n        onFormModelLoaded: this.loadAufgabeBadge.bind(this),\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.deleteAvailableForm.bind(this)\n      });\n    this._detachedAddCommand = this.formCommand.attachFormCommand(\n      this.addAufgabeFormCommand,\n      {\n        isCommandVisibleModelProperty: \"SupportsAufgabe\",\n        execute: (e) => {\n          let idProjekt = e.modelData.IdProjekt;\n          if (!idProjekt && e.modelData.TypeName === \"TIP.ERP.Business.Entitaeten.Stammdaten.Projekt\") {\n            idProjekt = e.modelData.Id;\n          }\n\n          this.customEditPopup.aufgabeEditPopup.show({\n            mappings: { \"$id\": 0 },\n            setValuesOnModelWithKeyIdLoaded: { IdVerknuepfteEntitaet: e.modelData.Id, IdProjekt: idProjekt }\n          });\n        }\n      }\n    )\n  }\n  detached() {\n    this._aufgabeFormCommandSubscription.dispose();\n    this._detachedAddCommand();\n    this._detachedShowCommand();\n  }\n\n  private loadAufgabeBadge(data, command?: ICommandData) {\n    if (data == void 0 || data.Id == void 0) {\n      return;\n    }\n\n    const commandToReload = command || this.formCommand.getReloadCommand(this.showAufgabeFormCommand, this._availableForms, {\n      modelPropertyName: \"Id\",\n      modelPropertyValue: data.Id\n    })\n\n    if (!commandToReload) {\n      return;\n    }\n\n    const aufgabeAnzahlEvent = new OnAufgabeAnzahlRequestEvent({\n      IdVerknuepfteEntitaet: data.Id,\n      AufgabeBenutzer: false\n    });\n    this.webEvent\n      .execute(aufgabeAnzahlEvent)\n      .then((r: OnAufgabeAnzahlRequest) => {\n        if (r == void 0 || r.IdVerknuepfteEntitaet == void 0) {\n          return;\n        }\n        if (r.Anzahl == 0 || r.Anzahl == void 0) {\n          commandToReload.isEnabled = false;\n          commandToReload.badgeText = null;\n          return;\n        }\n\n        let color = \"white\";\n        let textColor = \"black\";\n        let borderColor = \"#C1392D\";\n\n        let anzahl = \"\";\n        if (r.AnzahlErinnernFaellig) {\n          anzahl += r.AnzahlErinnernFaellig + \"/\";\n\n          color = \"#C1392D\";\n          textColor = \"white\";\n          borderColor = \"transparent\";\n        }\n        anzahl += r.Anzahl;\n\n        commandToReload.isEnabled = true;\n        commandToReload.badgeColor = color;\n        commandToReload.badgeTextColor = textColor;\n        commandToReload.badgeBorderColor = borderColor;\n        commandToReload.badgeText = {\n          key: \"base.param_1\",\n          parameters: [anzahl]\n        };\n      });\n\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private deleteAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1)\n  }\n}\n","// Module\nvar code = \"<template> </template>\";\n// Exports\nmodule.exports = code;","import { AsyncService } from './../../../framework/base/services/async-service';\nimport { StartupService } from './../../services/startup-service';\nimport {\n  autoinject,\n  bindable,\n  observable\n} from \"aurelia-framework\";\n\nimport {\n  LocalizationService,\n  RestService\n} from \"../../../framework/base/export\";\nimport { IdxButtonComponent } from '../../interfaces/export';\n\n@autoinject\nexport class AufgabeKommentar {\n  constructor(\n    private localizationService: LocalizationService,\n    private restService: RestService,\n    private startupService: StartupService,\n    private asyncService: AsyncService,\n    private element: Element\n  ) {\n    this.isCloudAdministrator = this.startupService.startupInfo.Benutzer.IsCloudAdministrator;\n  }\n\n  @bindable @observable idAufgabe: number;\n\n  kommentar: string;\n  kommentarList: any[];\n  isCloudAdministrator: boolean;\n  showKommentareButtonVisible = false;\n  showKommentareAbIndex = 0;\n  showKommentareStandard = 5;\n\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n  showKommentarButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"\",\n    onClick: () => {\n      if (this.showKommentareAbIndex) {\n        this.showKommentareAbIndex = 0;\n      } else {\n        this.showKommentareAbIndex = this.kommentarList.length - this.showKommentareStandard;\n      }\n      this.showKommentarButtonText();\n    }\n  }\n  showKommentarButton: IdxButtonComponent;\n  saveAufgabeKommentarButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"aufgabe_kommentar.senden\"),\n    type: \"default\",\n    onClick: () => {\n      this.save();\n    },\n    bindingOptions: {\n      disabled: \"!kommentar\"\n    }\n  };\n\n  bind() {\n    this.loadKommentar();\n  }\n\n  idAufgabeChanged() {\n    this.kommentar = null;\n    this.loadKommentar();\n  }\n\n  async delete(kommentar: any) {\n    const doDelete = await this.asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n      this.localizationService.translateOnce(\"base.sure_delete_question\"),\n      this.localizationService.translateOnce(\"base.question\")));\n\n    if (!doDelete) {\n      return;\n    }\n\n    await this.restService.delete({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/AufgabeKommentar\"),\n      id: kommentar.Id\n    });\n\n    this.loadKommentar();\n    this.dispatchKommentarChanged();\n  }\n\n  private async loadKommentar() {\n    this.kommentarList = await this.restService.get({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/AufgabeKommentar\"),\n      getOptions: {\n        where: [\"IdAufgabe\", this.idAufgabe || -1],\n        orderBy: [{ columnName: \"AnlageDatum\", sortOrder: 0 }],\n        customs: [{ key: \"AenderungInfo\", value: true }]\n      }\n    });\n\n    this.showKommentareButtonVisible = this.kommentarList.length > this.showKommentareStandard;\n    this.showKommentareAbIndex = this.kommentarList.length - this.showKommentareStandard;\n    this.showKommentarButtonText();\n  }\n  private dispatchKommentarChanged() {\n    const event = new CustomEvent('aufgabe-kommentar-changed', {\n      detail: {\n        sender: this,\n        value: this.kommentar\n      },\n      bubbles: true\n    });\n\n    this.element.dispatchEvent(event);\n  }\n  private reset() {\n    this.kommentar = null;\n  }\n  private async save() {\n    if (!this.idAufgabe) {\n      return;\n    }\n\n    if (!this.kommentar) {\n      return;\n    }\n\n    await this.restService.post({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/AufgabeKommentar\"),\n      data: {\n        IdAufgabe: this.idAufgabe,\n        KommentarHtml: this.kommentar\n      },\n      increaseLoadingCount: true\n    });\n\n    this.loadKommentar();\n    this.reset();\n    DevExpress.ui.notify(this.localizationService.translateOnce(\"base.save_success\"), \"SUCCESS\", 3000);\n    this.dispatchKommentarChanged();\n\n  }\n  private showKommentarButtonText() {\n    const anzahl = this.kommentarList.length - this.showKommentareStandard;\n\n    const text = this.showKommentareAbIndex <= 0\n      ? `Verstecke alte Kommentar (${anzahl})`\n      : `Alte Kommentare anzeigen (${anzahl})`;\n\n    if (this.showKommentarButton && this.showKommentarButton.instance) {\n      this.showKommentarButton.setOption({ text: text });\n    } else {\n      this.showKommentarButtonOptions.text = text;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./aufgabe-kommentar.less\\\"></require> <div if.bind=\\\"idAufgabe\\\"> <h2 class=\\\"aufgabe-kommentar-header\\\">Kommentare</h2> <div class=\\\"aufgabe-kommentar-items\\\" if.bind=\\\"kommentarList.length > 0\\\"> <div class=\\\"aufgabe-kommentar-show-kommentar\\\" show.bind=\\\"showKommentareButtonVisible\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"showKommentarButtonOptions\\\" view-model.ref=\\\"showKommentarButton\\\"></dx-widget> </div> <div repeat.for=\\\"kommentar of kommentarList\\\" if.bind=\\\"$index >= showKommentareAbIndex\\\" class=\\\"aufgabe-kommentar-item ${kommentar.IdAnlageBenutzer == startupService.startupInfo.Benutzer.Id ? 'aufgabe-kommentar-item-me' : ''}\\\"> <avatar class=\\\"aufgabe-kommentar-avatar\\\" data.bind=\\\"kommentar\\\" margin-right=\\\"10\\\" width=\\\"40\\\"></avatar> <div class=\\\"aufgabe-kommentar-benutzer\\\">${kommentar.AnlageBenutzer}</div> <div class=\\\"aufgabe-kommentar-datum\\\">${kommentar.AnlageDatum | format: \\\"f\\\"}</div> <div class=\\\"aufgabe-kommentar-value t--html-text\\\" innerhtml.bind=\\\"kommentar.KommentarHtml\\\"></div> <div class=\\\"aufgabe-kommentar-delete\\\" click.delegate=\\\"delete(kommentar)\\\"> <i class=\\\"fa fa-fw fa-times\\\"></i> </div> </div> </div> <html-editor value.bind=\\\"kommentar\\\" options.bind=\\\"{showToolbar: true, height: '200px', showToolbar: true, allowColors: true, allowImages: true, mentionKey: 'benutzer'}\\\"> <div slot=\\\"bottomToolbar\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"saveAufgabeKommentarButtonOptions\\\"></dx-widget> </div> </html-editor> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".aufgabe-kommentar-header {\\n  padding-bottom: 10px;\\n}\\n.aufgabe-kommentar-items {\\n  border-top: 1px solid #ddd;\\n  border-left: 1px solid #ddd;\\n  border-right: 1px solid #ddd;\\n  padding-bottom: 15px;\\n}\\n.aufgabe-kommentar-show-kommentar {\\n  padding: 15px 0 0 15px;\\n}\\n.aufgabe-kommentar-item {\\n  position: relative;\\n  padding: 15px 0 0 15px;\\n  display: grid;\\n  grid-template-columns: auto 1fr;\\n  grid-template-rows: auto auto auto;\\n  grid-gap: 5px;\\n}\\n.aufgabe-kommentar-item .aufgabe-kommentar-benutzer {\\n  font-weight: bold;\\n}\\n.aufgabe-kommentar-item .aufgabe-kommentar-datum {\\n  color: #888;\\n}\\n.aufgabe-kommentar-item .aufgabe-kommentar-avatar {\\n  grid-row: span 3;\\n}\\n.aufgabe-kommentar-item .aufgabe-kommentar-value {\\n  margin-top: 5px;\\n}\\n.aufgabe-kommentar-item .aufgabe-kommentar-delete {\\n  display: none;\\n  position: absolute;\\n  top: 18px;\\n  right: 3px;\\n  color: #C0392B;\\n  cursor: pointer;\\n}\\n.aufgabe-kommentar-item.aufgabe-kommentar-item-me:hover .aufgabe-kommentar-delete {\\n  display: block;\\n}\\n.aufgabe-kommentar-kommentar {\\n  display: grid;\\n  grid-template-columns: 70px 170px 70px;\\n  grid-gap: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, computedFrom } from \"aurelia-framework\";\nimport { StartupService } from '../../services/export';\nimport { FileService } from '../../../framework/base/export';\n\n@autoinject\nexport class Avatar {\n  private _currentAvatarDownloadKey: string;\n\n  constructor(\n    private startupService: StartupService,\n    private fileService: FileService\n  ) {\n  }\n\n  @bindable @observable data: any;\n  @bindable width: number;\n  @bindable marginRight: number;\n  @bindable marginLeft: number;\n  @bindable highlight: boolean;\n\n  avatarStyle: any = {};\n  content: string;\n\n  @computedFrom(\"data\", \"data.AnlageBenutzer\")\n  get isVisible() {\n    if (!this.data) {\n      return false;\n    }\n    if (!this.data.AnlageBenutzer && !this.data.IdAnlageBenutzer && !this.data.AnlageBenutzerInitiale) {\n      return false;\n    }\n\n    return true;\n  }\n\n  bind() {\n    this.avatarStyle = {\n      \"width\": (this.width || 40) + \"px\",\n      \"height\": (this.width || 40) + \"px\",\n      \"border-radius\": (this.width || 40) + \"px\",\n      \"margin-right\": (this.marginRight || 0) + \"px\",\n      \"margin-left\": (this.marginLeft || 0) + \"px\",\n      \"font-size\": ((this.width || 40) / 2 - 6) + \"px\"\n    };\n\n    this.setContent();\n  }\n  unbind() {\n    this._currentAvatarDownloadKey = null;\n    this.content = null;\n    this.avatarStyle = {};\n  }\n\n  dataChanged() {\n    this.setContent();\n  }\n\n  private setContent() {\n    let content = \"\";\n    let avatarDownloadKey: string;\n    let farbe = \"gray\";\n\n    if (this.data && this.data.AvatarUrl)  {\n      avatarDownloadKey = this.data.AvatarUrl;\n    } else if (this.data && this.data.IdAnlageBenutzer) {\n      const benutzer = this.startupService\n        .startupInfo\n        .BenutzerList\n        .find(benutzer => benutzer.Id == this.data.IdAnlageBenutzer);\n\n      if (benutzer) {\n        if (benutzer.AvatarDownloadKey) {\n          avatarDownloadKey = benutzer.AvatarDownloadKey;\n        } else {\n          content = benutzer.Initiale;\n        }\n\n        farbe = benutzer.Farbe;\n      }\n    } else if (this.data && this.data.AnlageBenutzerInitiale) {\n      content = this.data.AnlageBenutzerInitiale;\n    } else if (this.data && this.data.AnlageBenutzer) {\n      const tokens = this.data.AnlageBenutzer.split(' ');\n      for (let token of tokens) {\n        if (!token) {\n          continue;\n        }\n\n        content += token[0];\n      }\n\n      content = content.toUpperCase().substr(0, 2);\n    }\n\n    if (this._currentAvatarDownloadKey != avatarDownloadKey) {\n      this._currentAvatarDownloadKey = avatarDownloadKey;\n\n      const url = avatarDownloadKey.toLowerCase().startsWith(\"http\")\n        ? avatarDownloadKey\n        : this.fileService.getInlineUrl(avatarDownloadKey);\n\n      this.avatarStyle[\"background-image\"] = \"url(\".concat(url).concat(\")\");\n      delete this.avatarStyle[\"background-color\"];\n    }\n    if (this.content != content) {\n      this.content = content;\n    }\n    if (!this._currentAvatarDownloadKey && farbe != this.avatarStyle[\"background-color\"]) {\n      this.avatarStyle[\"background-color\"] = farbe;\n    }\n\n    if (this.highlight) {\n      this.avatarStyle[\"box-shadow\"] = \"0px 0px 10px 5px rgba(39,174,96,1)\";\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./avatar.less\\\"></require> <div class=\\\"avatar-container\\\" css.bind=\\\"avatarStyle\\\" if.bind=\\\"isVisible\\\" title.bind=\\\"data.AnlageBenutzer\\\"> ${content} </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".avatar-container {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  border: 1px solid #404040;\\n  color: white;\\n  user-select: none;\\n  background-size: contain;\\n  background-repeat: no-repeat;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport { autoinject, OverrideContext, Scope } from \"aurelia-framework\";\nimport { OnBenachrichtigungAnzahlRequestEvent, OnBenachrichtigungGelesenEvent } from \"../../../framework-data/events\";\nimport { DataSourceService, IViewScrollInfo, ScopeContainer, WebEventService } from \"../../../framework/base/export\";\nimport { IListViewOptions } from \"../../../framework/forms/elements/list-view/list-view-options\";\nimport { ICommandData } from \"../../../framework/forms/export\";\nimport { HeaderCommandEvent, NotificationTyp } from \"../../enumerations/export\";\nimport { IdxPopoverComponent } from \"../../interfaces/export\";\nimport { CustomEditPopupService, HeaderCommandService, StartupService, VerknuepfteEntitaetService } from \"../../services/export\";\n\n@autoinject\nexport class BenachrichtigungCommand {\n  private _commandShowingSubscription: Subscription;\n  private _anzahlChangedSubscription: Subscription;\n\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _dataSourceService: DataSourceService,\n    private _eventAggregator: EventAggregator,\n    private _headerCommandService: HeaderCommandService,\n    private _verknuepfteEntitaetService: VerknuepfteEntitaetService,\n    private _startupService: StartupService,\n    private _webEventService: WebEventService) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  benachrichtigung: IdxPopoverComponent;\n  benachrichtigungOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400\n  };\n\n  benachrichtigungListviewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const benachrichtigung = e.item;\n      this.goToBenachrichtigung(benachrichtigung);\n    }\n  };\n\n  gelesenBenachrichtigungButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-check fa-fw\",\n    onClick: (e) => {\n      this.onBenachrichtigungGelesen(e.model.bindingContext.item);\n      const event: Event = <any>e.event;\n      event.stopPropagation();\n    }\n  };\n  verknuepfteEntitaetButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-link fa-fw\",\n    onClick: (e) => {\n      this.onVerknuepfteEntitaetCommandClicked(e.model.bindingContext.item);\n      const event: Event = <any>e.event;\n      event.stopPropagation();\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.benachrichtigungListviewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Benachrichtigung\",\n        webApiExpand: {\n          \"BenutzerVon\": {\n            columns: [\"Id\", \"Name\"]\n          }\n        }\n      },\n      {\n        getCustomFilters: () => {\n          return [{\n            webApiCustomKey: \"BenachrichtigungBenutzer\",\n            webApiCustomValue: \"true\"\n          }];\n        }\n      }\n    );\n\n    this.loadAnzahl();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    this._headerCommandService.benachrichtigung = this;\n\n    this._anzahlChangedSubscription = this._eventAggregator\n      .subscribe(\n        NotificationTyp.benachrichtigungAnzahlChanged,\n        this.loadAnzahl.bind(this)\n      );\n\n    this._commandShowingSubscription = this._eventAggregator\n      .subscribe(\n        HeaderCommandEvent.onShowingPopover,\n        (command: ICommandData) => {\n          if (this._headerCommandService.benachrichtigungCommand.id != command.id) {\n            this.benachrichtigung.instance.hide();\n          }\n        }\n      );\n  }\n  detached() {\n    this._anzahlChangedSubscription.dispose();\n    this._commandShowingSubscription.dispose();\n  }\n\n  goToBenachrichtigung(benachrichtigung) {\n    this._customEditPopupService.benachrichtigungEditPopup.show({\n      mappings: { \"$id\": benachrichtigung.Id },\n      viewScrollInfo: this.getViewScrollInfo(benachrichtigung)\n    });\n\n    this.benachrichtigung.instance.hide();\n  }\n\n  onBenachrichtigungGelesen(benachrichtigung: any) {\n    if (benachrichtigung == void 0 || benachrichtigung.Id == void 0) {\n      return;\n    }\n\n    const webEvent = new OnBenachrichtigungGelesenEvent({ IdBenachrichtigung: benachrichtigung.Id });\n    this._webEventService\n      .execute(webEvent, true)\n      .then(() => {\n        this._webEventService\n          .execute(new OnBenachrichtigungAnzahlRequestEvent({}), true)\n          .then((r) => {\n            if (r.Anzahl == 0) {\n\n              this.benachrichtigung.instance.hide();\n            } else {\n\n              this.benachrichtigungListviewOptions.dataSource.reload();\n            }\n\n            this.loadAnzahl();\n          });\n\n      });\n  }\n  async onVerknuepfteEntitaetCommandClicked(benachrichtigung: any) {\n    if (benachrichtigung.IdVerknuepfteEntitaet == void 0) {\n      return;\n    }\n\n    this.benachrichtigung.instance.hide();\n\n    this._verknuepfteEntitaetService\n      .goTo(benachrichtigung.IdVerknuepfteEntitaet);\n  }\n\n  showPopover(targetElement: Element) {\n    if (this._headerCommandService.benachrichtigungCommand.isEnabled === false) {\n      return;\n    }\n    this.benachrichtigungListviewOptions\n      .dataSource\n      .reload()\n      .done((r) => {\n        if (r == void 0 || r.length == 0) {\n          return;\n        }\n\n        this.benachrichtigung.instance\n          .show(targetElement);\n      });\n  }\n\n  private loadAnzahl() {\n    if (this._startupService.startupInfo.Benutzer.IsCloudAdministrator) {\n      return;\n    }\n\n    const benachrichtigungEvent = new OnBenachrichtigungAnzahlRequestEvent({ Anzahl: 0 });\n    this._webEventService\n      .execute(benachrichtigungEvent)\n      .then((r) => {\n        if (r == void 0 || r.Anzahl == 0) {\n          this._headerCommandService.benachrichtigungCommand.isEnabled = false;\n          this._headerCommandService.benachrichtigungCommand.badgeText = null;\n          return;\n        }\n\n        this._headerCommandService.benachrichtigungCommand.isEnabled = true;\n        this._headerCommandService.benachrichtigungCommand.badgeText = {\n          key: \"base.param_1\",\n          parameters: [r.Anzahl]\n        };\n      });\n  }\n\n  private getViewScrollInfo(benachrichtigung): IViewScrollInfo {\n    const dataSource = this.benachrichtigungListviewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(benachrichtigung);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../../framework/forms/elements/list-view/list-view\\\"></require> <require from=\\\"./benachrichtigung-command.less\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"benachrichtigungOptions\\\" view-model.ref=\\\"benachrichtigung\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content benachrichtigung-popup\\\"> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"benachrichtigungListviewOptions\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"benachrichtigung-item\\\"> <div class=\\\"benachrichtigung-item-content\\\"> <div class=\\\"benachrichtigung-kopf\\\"> <div class=\\\"benachrichtigung-benutzer-von\\\"> ${item.BenutzerVon.Name} </div> <div class=\\\"benachrichtigung-datum\\\"> ${item.AnlageDatum | format:'g'} </div> </div> <div class=\\\"benachrichtigung-betreff\\\"> <i if.bind=\\\"item.IsPrioritaet\\\" class=\\\"fa fa-exclamation benachrichtigung-list-item-is-prioritaet\\\"></i><span>${item.Betreff}</span> </div> </div> <div class=\\\"benachrichtigung-actions\\\"> <dx-widget name=\\\"dxButton\\\" if.bind=\\\"item.IdVerknuepfteEntitaet\\\" options.bind=\\\"verknuepfteEntitaetButtonOptions\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"gelesenBenachrichtigungButtonOptions\\\"></dx-widget> </div> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".benachrichtigung-popup .benachrichtigung-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-gap: 12px;\\n  align-items: center;\\n}\\n.benachrichtigung-popup .benachrichtigung-kopf {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  justify-content: start;\\n  font-weight: bold;\\n}\\n.benachrichtigung-popup .benachrichtigung-item-content {\\n  flex-grow: 1;\\n}\\n.benachrichtigung-popup .benachrichtigung-actions {\\n  display: flex;\\n}\\n.benachrichtigung-popup .benachrichtigung-list-item-is-prioritaet {\\n  color: #C1392D;\\n  padding-right: 5px;\\n}\\n.benachrichtigung-popup .benachrichtigung-datum {\\n  text-align: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  EventAggregator,\n  Subscription\n} from 'aurelia-event-aggregator';\nimport {\n  DataSourceService,\n  WebEventService,\n  IViewScrollInfo\n} from \"../../../framework/base/export\";\nimport {\n  OnBriefAnzahlRequestEvent\n} from \"../../../framework-data/events\";\nimport {\n  FormBase,\n  ICommandData\n} from \"../../../framework/forms/export\";\nimport {\n  ListView,\n  IListViewOptions\n} from \"../../../framework/forms/elements/list-view/export\";\nimport {\n  BriefService,\n  FormCommandService\n} from \"../../services/export\";\nimport {\n  NotificationTyp\n} from \"../../enumerations/export\";\nimport {\n  IdxPopoverComponent\n} from \"../../interfaces/export\";\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\n\n@autoinject\nexport class BriefFormCommand {\n  private _availableForms: FormBase[] = [];\n  private _briefFormCommandSubscription: Subscription;\n  private _detachedAddCommand: { (): void };\n  private _detachedShowCommand: { (): void };\n  private _idVerknuepfteEntitaet: number;\n\n  constructor(\n    private _briefService: BriefService,\n    private _dataSourceService: DataSourceService,\n    private _eventAggregator: EventAggregator,\n    private _formCommandService: FormCommandService,\n    private _webEventService: WebEventService\n  ) { }\n\n  showBriefFormCommand: ICommandData = {\n    id: \"showBriefFormCommand\",\n    idCategory: \"brief\",\n    title: \"form-command.brief-command-icon-text\",\n    icon: \"envelope-open-o\",\n    isEnabled: false,\n    badgeText: null,\n    badgeColor: \"#E77E22\",\n    sortIndex: 7000\n  }\n\n  addBriefFormCommand: ICommandData = {\n    id: \"$addBrief\",\n    idCategory: \"brief\",\n    title: \"form-command.brief-command-neu\",\n    icon: \"plus\",\n    isEnabled: false,\n    badgeText: null,\n    sortIndex: 7000\n  }\n\n  briefPopover: IdxPopoverComponent;\n  briefPopoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400,\n    onShowing: (e) => {\n      this.briefListView.refresh();\n    }\n  };\n\n  briefListView: ListView;\n  briefListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    pageSize: 15,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this._briefService.goToBrief(\n        e.item.Id,\n        this.getViewScrollInfo(e.item));\n\n      this.briefPopover.instance.hide();\n    }\n  }\n\n  scopeContainer: ScopeContainer;\n\n  showPopover(idVerknuepfteEntitaet: number, target: Element) {\n    this._idVerknuepfteEntitaet = idVerknuepfteEntitaet;\n    this.briefPopover.instance.show(target);\n  }\n\n  attached() {\n    this._briefFormCommandSubscription = this._eventAggregator\n      .subscribe(\n        NotificationTyp.briefAnzahlChanged,\n        (data) => {\n          if (data == null) {\n            return;\n          }\n          this.loadBriefBadge({ Id: data.IdVerknuepfteEntitaet });\n        });\n\n    this._detachedShowCommand = this._formCommandService.attachFormCommand(\n      this.showBriefFormCommand,\n      {\n        execute: (e) => {\n          const element = this._formCommandService.getCommandTarget(e.options.event);\n\n          this.showPopover(e.modelData.Id, element);\n        },\n        isCommandVisibleModelProperty: \"HasBriefEmpfaenger\",\n        onFormModelLoaded: this.loadBriefBadge.bind(this),\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.deleteAvailableForm.bind(this)\n      });\n\n    this._detachedAddCommand = this._formCommandService.attachFormCommand(\n      this.addBriefFormCommand,\n      {\n        saveModelOnExecute: true,\n        execute: (e) => {\n          this._idVerknuepfteEntitaet = e.modelData.Id;\n          this._briefService.createAndGoToBrief(this._idVerknuepfteEntitaet)\n            .then(r => {\n              this.briefPopover.instance.hide();\n            });\n        },\n        isCommandVisibleModelProperty: \"HasBriefEmpfaenger\"\n      }\n    )\n  }\n  detached() {\n    this._briefFormCommandSubscription.dispose();\n    this._detachedAddCommand();\n    this._detachedShowCommand();\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.briefListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Brief\",\n        webApiExpand: {\n          Sachbearbeiter: {\n            columns: [\"Id\", \"Name\"]\n          }\n        },\n        filters: [{\n          webApiCustomKey: \"AddTags\",\n          webApiCustomValue: \"true\"\n        }]\n      },\n      {\n        getCustomWhere: () => {\n          if (this._idVerknuepfteEntitaet == void 0) {\n            return null;\n          }\n\n          return [\"IdVerknuepfteEntitaet\", this._idVerknuepfteEntitaet];\n        }\n      }\n    );\n\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  private loadBriefBadge(data, command?: ICommandData) {\n    if (data == void 0 || data.Id == void 0) {\n      return;\n    }\n\n    const commandToReload = command || this._formCommandService.getReloadCommand(this.showBriefFormCommand, this._availableForms, {\n      modelPropertyName: \"Id\",\n      modelPropertyValue: data.Id\n    })\n\n    if (!commandToReload) {\n      return;\n    }\n\n    const aufgabeAnzahlEvent = new OnBriefAnzahlRequestEvent({\n      IdVerknuepfteEntitaet: data.Id\n    });\n    this._webEventService\n      .execute(aufgabeAnzahlEvent)\n      .then(r => {\n        if (r == void 0 || r.IdVerknuepfteEntitaet == void 0) {\n          return;\n        }\n        if (r.Anzahl == 0 || r.Anzahl == void 0) {\n          commandToReload.isEnabled = false;\n          commandToReload.badgeText = null;\n          return;\n        }\n\n        commandToReload.isEnabled = true;\n        commandToReload.badgeText = {\n          key: \"base.param_1\",\n          parameters: [r.Anzahl]\n        };\n      });\n\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private deleteAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1)\n  }\n  private getViewScrollInfo(brief): IViewScrollInfo {\n    const dataSource = this.briefListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(brief);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"briefPopoverOptions\\\" view-model.ref=\\\"briefPopover\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content\\\"> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"briefListViewOptions\\\" view-model.ref=\\\"briefListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"brief-list-item\\\" class.one-time=\\\"item.StatusFarbe ? 'brief-list-item-border-status':''\\\" css=\\\"border-color: ${item.StatusFarbe}\\\"> <div class=\\\"brief-list-item-title\\\"> Von: ${item.Sachbearbeiter.Name} </div> <div class=\\\"brief-list-item-anlage\\\"> ${item.AnlageDatum | format:\\\"E\\\"} </div> <div class=\\\"brief-list-item-info\\\"> An: ${item.EmpfaengerDisplayText} </div> <div class=\\\"brief-list-item-info\\\"> <span if.bind=\\\"item.AnzAnhaenge > 0\\\"><i class=\\\"fa fa-paperclip\\\"></i> </span> ${item.Betreff} </div> <tags-list class=\\\"brief-list-item-info\\\" if.bind=\\\"item._Tags\\\" tags.bind=\\\"item._Tags\\\"></tags-list> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable, Scope, computedFrom } from \"aurelia-framework\";\nimport { WebEventService, GlobalizationService, ScopeContainer, DataSourceService } from '../../../framework/base/export';\nimport { OnCalcLieferterminEvent, OnCalcLiefertermin } from '../../../framework-data/events';\nimport { IdxPopupComponent } from '../../interfaces/export';\nimport { SimpleWidgetCreatorService } from '../../../framework/forms/export';\nimport { LagerService, FilialeService, FirmaService, ArtikelService, StartupService } from '../../services/export';\n\n@autoinject\nexport class CalcLiefertermin {\n  private _idStandardlager: number;\n  \n  constructor(\n    private _startupService: StartupService,\n    private _webEventService: WebEventService,\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _firmaService: FirmaService,\n    private _filialeService: FilialeService,\n    private _lagerService: LagerService,\n    private _dataSourceService: DataSourceService,\n    private _artikelService: ArtikelService\n  ) {}\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  idArtikel: number;\n  idLager: number;\n  mengeLagEH: number = 1;\n  lieferdatum: Date;\n  bereitstelldatum: Date;\n  hasFehlendeBeschaffungsperiode: boolean;\n\n  showLager: boolean;\n  showMenge: boolean;\n  openTree: boolean;\n\n  detailList: any[];\n  bestandList: any[];\n\n  popup: IdxPopupComponent;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    width: \"1080px\",\n    height: \"75vh\"\n  }\n  scrollViewOptions: DevExpress.ui.dxScrollViewOptions = {\n    height: \"100%\"\n  };\n  lagerSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"BezeichnungFQ\",\n    valueExpr: \"Id\",\n    width: \"350px\",\n    bindingOptions: {\n      value: \"idLager\"\n    }\n  };\n  mengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    min: 1,\n    format: this._globalizationService.getNumberFormat(\"n2\"),\n    bindingOptions: {\n      value: \"mengeLagEH\"\n    }\n  };\n  refreshButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Aktualisieren\",\n    onClick: () => {\n      this.refresh();\n    }\n  };\n  detailTreeListOptions: DevExpress.ui.dxTreeListOptions = {\n    keyExpr: \"Id\",\n    parentIdExpr: \"IdParent\",\n    columns: [{\n      dataField: \"Nummer\",\n      caption: \"Artikel-Nr.\",\n      width: \"150px\"\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }, {\n      dataField: \"Bedarf\",\n      caption: \"Bedarf LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Bestand\",\n      caption: \"aus Bestand LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Reserviert\",\n      caption: \"Reserviert LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Bestellt\",\n      caption: \"Bestellt LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Produziert\",\n      caption: \"Prod. LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"BedarfRest\",\n      caption: \"Bedarf Rest LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Beschaffungsperiode\",\n      caption: \"Beschaffungsperiode\",\n      width: \"100px\"\n    }, {\n      dataField: \"Lieferdatum\",\n      caption: \"Lieferdatum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }],\n    bindingOptions: {\n      dataSource: \"detailList\"\n    },\n    onContentReady: (e) => {\n      this.openTree = false;\n\n      if (!this.detailList) {\n        return;\n      }\n\n      this.detailList\n        .forEach(k => e.component.expandRow(k.Id));\n    }\n  }\n  bestandDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      dataField: \"Nummer\",\n      caption: \"Artikel-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }, {\n      dataField: \"Lager\",\n      caption: \"Lager\",\n      width: \"160px\"\n    }, {\n      dataField: \"Bestand\",\n      caption: \"Bestand LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Auftrag\",\n      caption: \"Auftrag LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"AuftragBeistell\",\n      caption: \"Auftrag Beistell. LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }],\n    bindingOptions: {\n      dataSource: \"bestandList\"\n    }\n  }\n\n  @computedFrom(\"_startupService.startupInfo.Mandant.PufferPeriodeZwischenProduktion\")\n  get pufferInfo() {\n    const puffer = this._startupService.startupInfo.Mandant.PufferPeriodeZwischenProduktion;\n\n    if (puffer) {\n      return `sowie einen Puffer von ${puffer}`;\n    } else {\n      return \"ohne zusätzliche Puffer\";\n    }\n  }\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n    this.scopeContainer = new ScopeContainer(this.scope, null);\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"calcLieferterminToolbar\",\n      caption: \"calc-liefertermin.lieferdatum-berechnen\",\n      options: this.popupOptions,\n      commands: [],\n      scopeContainer: this.scopeContainer\n    });\n\n    this.lagerSelectBoxOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Lager\",\n        webApiColumns: [\"Id\", \"BezeichnungFQ\"],\n        webApiWhere: [\"IsSchwebelager\", false]\n      }\n    );\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  async show(idArtikel: number, idLager?: number, menge?: number, idArtikelEinheit?: number) {\n    this.idArtikel = idArtikel;\n    this.idLager = idLager;\n\n    if (idArtikelEinheit) {\n      const umrechner = await this._artikelService.getUmrechner(idArtikelEinheit);\n      menge = menge * umrechner;\n    }\n\n    this.mengeLagEH = menge || 1;\n\n    this.showLager = !idLager;\n    this.showMenge = !menge;\n    this.openTree = true;\n\n    if (this.showLager) {\n      await this.setStandardLager();\n    }\n\n    this.popup.instance.show();\n    this.refresh();\n  }\n\n  private async setStandardLager() {\n    if (!this._idStandardlager) {\n      const idFirma = await this._firmaService.getIdFirmaVorbelegung();\n      const idFiliale = await this._filialeService.getIdFilialeVorbelegung(idFirma);\n      this._idStandardlager = await this._lagerService.getIdLagerVorbelegung(idFiliale);\n    }\n\n    this.idLager = this._idStandardlager;\n  }\n  private async refresh() {\n    this.detailList = [];\n    this.bestandList = [];\n    this.lieferdatum = null;\n    this.bereitstelldatum = null;\n    this.hasFehlendeBeschaffungsperiode = false;\n\n    if (!this.idArtikel || !this.idLager) {\n      return;\n    }\n\n    const r: OnCalcLiefertermin = await this._webEventService.execute(new OnCalcLieferterminEvent({\n      IdArtikel: this.idArtikel,\n      IdLager: this.idLager,\n      MengeLagEH: this.mengeLagEH || 1,\n      HasFehlendeBeschaffungsperiode: false\n    }), true);\n\n    this.bereitstelldatum = r.Bereitstelldatum;\n    this.lieferdatum = r.Lieferdatum;\n    this.hasFehlendeBeschaffungsperiode = r.HasFehlendeBeschaffungsperiode;\n    this.detailList = <any>r.DetailList;\n    this.bestandList = <any>r.BestandList;\n  }\n}","// Module\nvar code = \"<template> <require from=\\\"./calc-liefertermin.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"scrollViewOptions\\\"> <div class=\\\"calc-liefertermin__menge\\\"> <div class=\\\"calc-liefertermin__filter\\\"> <div if.bind=\\\"showLager\\\"> <div>Lager</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"lagerSelectBoxOptions\\\"></dx-widget> </div> <div if.bind=\\\"showMenge\\\"> <div>Menge</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mengeNumberBoxOptions\\\"></dx-widget> </div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"refreshButtonOptions\\\"></dx-widget> </div> <div class=\\\"calc-liefertermin__info\\\" if.bind=\\\"lieferdatum\\\"> <div> <span>Das früheste Lieferdatum für diesen Artikel ist der </span><span class=\\\"calc-liefertermin__lieferdatum\\\">${lieferdatum | format:'d'}</span><span>.</span> </div> <div> <span>Dieses Datum berücksichtigt die erfassten Lieferzeiten beim Lieferanten ${pufferInfo} zwischen den einzelnen Produktionsschritten. Zur Berechnung des Lieferdatums (vom Bereitstelldatum) wird die Standardeinstellung verwendet (= nicht Empfänger-Land-spezifisch). Als Auftragsmenge aus Beistellartikeln wird nur für die Differenz aus offener Menge abzgl. bereits reservierter Menge verwendet.</span> </div> <div if.bind=\\\"hasFehlendeBeschaffungsperiode\\\"> <span class=\\\"calc-liefertermin__achtung\\\">Achtung, nicht bei allen benötigten Artikeln wurde eine Beschaffungsperiode angegeben!</span> </div> </div> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Detail</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTreeList\\\" options.bind=\\\"detailTreeListOptions\\\"></dx-widget> </div> </div> </div> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Detail zu Bestand</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"bestandDataGridOptions\\\"></dx-widget> </div> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".calc-liefertermin__menge {\\n  margin: 12px;\\n}\\n.calc-liefertermin__menge > * + *:not(:first-child) {\\n  margin-top: 12px;\\n}\\n.calc-liefertermin__filter {\\n  display: flex;\\n  align-items: center;\\n}\\n.calc-liefertermin__filter > * + * {\\n  margin-left: 12px;\\n}\\n.calc-liefertermin__filter > *:not(:last-child) {\\n  display: flex;\\n  align-items: center;\\n}\\n.calc-liefertermin__filter > *:not(:last-child) > * + *:not(:first-child) {\\n  margin-left: 6px;\\n}\\n.calc-liefertermin__lieferdatum {\\n  font-weight: bold;\\n}\\n.calc-liefertermin__achtung {\\n  color: #C0392B;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  CustomEditPopup\n} from \"../../../framework/forms/elements/custom-edit-popup/custom-edit-popup\";\n\nimport {\n  CustomEditPopupService\n} from \"../../services/export\";\n\n@autoinject\nexport class CustomEditPopupContainer {\n  constructor(\n    private customEditPopup: CustomEditPopupService\n  ) { }\n\n  artikelEditPopup: CustomEditPopup;\n  aufgabeEditPopup: CustomEditPopup;\n  benachrichtigungEditPopup: CustomEditPopup;\n  briefEditPopup: CustomEditPopup;\n  benutzerEinstellungenEditPopup: CustomEditPopup;\n  geschaeftspartnerEditPopup: CustomEditPopup;\n  mandantWechselnPopup: CustomEditPopup;\n  notizEditPopup: CustomEditPopup;\n  personEditPopup: CustomEditPopup;\n  prodAuftragEditPopup: CustomEditPopup;\n  projektEditPopup: CustomEditPopup;\n  impressumEditPopup: CustomEditPopup;\n\n  attached() {\n    this.customEditPopup.artikelEditPopup = this.artikelEditPopup;\n    this.customEditPopup.aufgabeEditPopup = this.aufgabeEditPopup;\n    this.customEditPopup.benachrichtigungEditPopup = this.benachrichtigungEditPopup;\n    this.customEditPopup.briefEditPopup = this.briefEditPopup;\n    this.customEditPopup.benutzerEinstellungenEditPopup = this.benutzerEinstellungenEditPopup;\n    this.customEditPopup.geschaeftspartnerEditPopup = this.geschaeftspartnerEditPopup;\n    this.customEditPopup.personEditPopup = this.personEditPopup;\n    this.customEditPopup.projektEditPopup = this.projektEditPopup;\n    this.customEditPopup.notizEditPopup = this.notizEditPopup;\n    this.customEditPopup.mandantWechselnPopup = this.mandantWechselnPopup;\n    this.customEditPopup.prodAuftragEditPopup = this.prodAuftragEditPopup;\n    this.customEditPopup.impressumEditPopup = this.impressumEditPopup;\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../../framework/forms/elements/custom-edit-popup/custom-edit-popup\\\"></require> <custom-edit-popup view-model.ref=\\\"artikelEditPopup\\\" id-form=\\\"erp/views/stammdaten/artikel/artikel-edit-form\\\" max-width=\\\"90vw\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"aufgabeEditPopup\\\" id-form=\\\"erp/views/stammdaten/aufgabe/aufgabe-edit-form\\\" max-width=\\\"90vw\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"benachrichtigungEditPopup\\\" id-form=\\\"erp/views/stammdaten/benachrichtigung/benachrichtigung-edit-form\\\" max-width=\\\"90vw\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"briefEditPopup\\\" id-form=\\\"erp/views/stammdaten/brief/brief-edit-form\\\" max-width=\\\"1000px\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"benutzerEinstellungenEditPopup\\\" id-form=\\\"erp/views/stammdaten/benutzer/benutzer-einstellungen-edit-form\\\" height=\\\"auto\\\" max-width=\\\"800px\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"geschaeftspartnerEditPopup\\\" id-form=\\\"erp/views/stammdaten/geschaeftspartner/geschaeftspartner-edit-form\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"mandantWechselnPopup\\\" id-form=\\\"erp/views/stammdaten/mandant/mandant-wechseln-form\\\" height=\\\"auto\\\" max-width=\\\"450px\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"notizEditPopup\\\" id-form=\\\"erp/views/stammdaten/notiz/notiz-edit-form\\\" height=\\\"450px\\\" max-width=\\\"800px\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"personEditPopup\\\" id-form=\\\"erp/views/stammdaten/person/person-edit-form\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"projektEditPopup\\\" id-form=\\\"erp/views/stammdaten/projekt/projekt-edit-form\\\" height=\\\"90vh\\\" max-width=\\\"90vw\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"prodAuftragEditPopup\\\" id-form=\\\"erp/views/produktion/produktionsauftrag/produktionsauftrag-edit-form\\\" height=\\\"90vh\\\" max-width=\\\"90vw\\\"></custom-edit-popup> <custom-edit-popup view-model.ref=\\\"impressumEditPopup\\\" id-form=\\\"erp/views/diverse/impressum/impressum-form\\\" height=\\\"auto\\\" max-width=\\\"500px\\\"></custom-edit-popup> </template> \";\n// Exports\nmodule.exports = code;","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject, computedFrom, OverrideContext, PLATFORM, Scope } from \"aurelia-framework\";\nimport { DataSourceService, FileService, ILocalizationItem, ScopeContainer } from \"../../../framework/base/export\";\nimport { AsyncService } from \"../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../framework/forms/export\";\nimport { ICommandData } from \"../../../framework/forms/interfaces/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { NotificationTyp } from \"../../enumerations/notification-typ\";\nimport { IDmsViewerShowOptions } from \"../../interfaces/dms-viewer-show-options\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport { BriefService, DmsViewerService, DruckenService, FormCommandService, StartupService } from \"../../services/export\";\nimport { AnzAusdrucke } from \"../anz-ausdrucke/anz-ausdrucke\";\nimport { GlobalizationService } from \"./../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class DmsViewer {\n  private _detachedCommand: { (): void };\n  private _availableForms: FormBase[] = [];\n  private _isDokumentVersion: boolean = false;\n  private _selectAfterContentReady: boolean = false;\n\n  constructor(\n    private _briefService: BriefService,\n    private _dataSourceService: DataSourceService,\n    private _dmsViewerService: DmsViewerService,\n    private _fileService: FileService,\n    private _formCommandService: FormCommandService,\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _druckenService: DruckenService,\n    private _startupService: StartupService,\n    private _eventAggregator: EventAggregator,\n    private _asyncService: AsyncService) { }\n\n  @computedFrom(\"_isDokumentVersion\")\n  get currentGrid() {\n    return this._isDokumentVersion\n      ? this.versionGrid\n      : this.dokumentGrid;\n  }\n\n  options: IDmsViewerShowOptions;\n\n  currentDokument: Interfaces.IDMSDokument = { DMSLink: null, MimeType: \"application/pdf\" };\n  currentVersionDokument: Interfaces.IDMSDokument = { DMSLink: null, MimeType: \"application/pdf\" };\n\n  hasSelectedDokument: boolean = false;\n  anzAusdrucke: AnzAusdrucke;\n\n  dmsViewerPopupCommands: ICommandData[] = [\n    {\n      id: \"deleteDocument\",\n      title: \"dms-viewer.delete-dokument\",\n      icon: \"times\",\n      isVisibleExpression: \"!_isDokumentVersion\",\n      isEnabledExpression: \"hasSelectedDokument && !currentDokument.IsGesichert\",\n      execute: this.deleteSelectedDokumente.bind(this)\n    }, {\n      id: \"downloadDocument\",\n      title: \"dms-viewer.download-dokument\",\n      icon: \"download\",\n      isEnabledExpression: \"hasSelectedDokument\",\n      execute: this.downloadSelectedDokumente.bind(this)\n    }, {\n      id: \"sendDocument\",\n      title: \"dms-viewer.send-dokument\",\n      icon: \"share-alt\",\n      badgeText: null,\n      isEnabled: false,\n      isVisibleExpression: \"!_isDokumentVersion\",\n      execute: this.sendSelectedDokumente.bind(this)\n    }, {\n      id: \"anzAusdrucke\",\n      title: \"dms-viewer.anzahl-ausdrucke\",\n      isVisible: this.isDruckJobAktiv(),\n      template: {\n        moduleId: PLATFORM.moduleName(\"erp/elements/anz-ausdrucke/anz-ausdrucke\"),\n        options: {\n          options: {\n            onInitialized: (e) => {\n              this.anzAusdrucke = e.component;\n              e.options.value = 1;\n            }\n          }\n        }\n      }\n    }, {\n      id: \"sendDruckJob\",\n      title: \"dms-viewer.send-druck-job\",\n      icon: \"print\",\n      isEnabledExpression: \"hasSelectedDokument\",\n      isVisible: this.isDruckJobAktiv(),\n      execute: this.onSendDruckJob.bind(this)\n    }, {\n      id: \"versionHochladen\",\n      idCategory: \"versionierung\",\n      title: \"dms-viewer.version-hochladen\",\n      icon: \"cloud-upload\",\n      isEnabledExpression: \"hasSelectedDokument && !currentDokument.IsGesichert\",\n      execute: () => {\n        this.neueVersionPopup.instance.show();\n      }\n    }, {\n      id: \"versionenAnzeigen\",\n      idCategory: \"versionierung\",\n      title: \"dms-viewer.version-anzeigen\",\n      icon: \"external-link\",\n      isEnabledExpression: \"hasSelectedDokument && currentDokument.AnzahlVersionen > 1\",\n      isVisibleExpression: \"!_isDokumentVersion\",\n      execute: () => {\n        this.versionPopup.instance.show();\n      }\n    }\n  ];\n\n  dmsViewerPopup: Interfaces.IdxPopupComponent;\n  dmsViewerPopupOptions: DevExpress.ui.dxPopupOptions = {\n    onHidden: () => {\n      this.dokumentGrid.instance.deselectAll();\n\n      if (this.options.callback) {\n        this.options.callback(this.options.idDokumentContainer);\n      }\n\n      this.options = null;\n    }\n  };\n\n  neueVersionPopup: Interfaces.IdxPopupComponent;\n  neueVersionPopupOptions: DevExpress.ui.dxPopupOptions = {\n    maxWidth: 500,\n    height: \"auto\"\n  };\n\n  versionPopup: Interfaces.IdxPopupComponent;\n  versionPopupOptions: DevExpress.ui.dxPopupOptions = {\n    onShowing: () => {\n      this._isDokumentVersion = true;\n      this.selectCurrentDokument(this.currentDokument);\n    },\n    onHiding: () => {\n      this._isDokumentVersion = false;\n      const needsReload = this.currentDokument && this.currentVersionDokument && this.currentDokument.DMSLink != this.currentVersionDokument.DMSLink;\n\n      if (needsReload) {\n        this.selectCurrentDokument(this.currentDokument);\n      }\n    }\n  };\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  dokumentGridDataSource: DevExpress.data.DataSource;\n  dokumentGrid: Interfaces.IdxDataGridComponent;\n  dokumentGridOptions = this.getDmsGridOptions([\n    { dataField: \"AnlageDatum\", caption: \"Anlagedatum\", width: \"90px\", format: this._globalizationService.getFormatterParser(\"d\") },\n    { dataField: \"BezeichnungDateiname\", caption: \"Bezeichnung\" },\n    { dataField: \"Dokumentenart.Bezeichnung\", caption: \"Dokumentenart\" },\n    { dataField: \"AnzahlVersionen\", caption: \"V\", width: \"30px\" }\n  ]);\n\n  versionGridDataSource: DevExpress.data.DataSource;\n  versionGrid: Interfaces.IdxDataGridComponent;\n  versionGridOptions = this.getDmsGridOptions([\n    { dataField: \"AnlageDatum\", caption: \"Anlagedatum\", width: \"90px\", format: this._globalizationService.getFormatterParser(\"d\") },\n    { dataField: \"VersionNr\", width: \"80px\" },\n    { dataField: \"Dateiname\" }\n  ]);\n\n  fileUploaderOptions: any = {\n    clearCurrentValueAfterUpload: true,\n    showViewer: false,\n    onFileKeyChanged: this.onFileKeyChanged.bind(this)\n  };\n  neueVersionUploaderOptions: any = {\n    clearCurrentValueAfterUpload: true,\n    showViewer: false,\n    onFileKeyChanged: (value) => {\n      this.onFileKeyChanged(value, true);\n    }\n  };\n\n  dokumentenartSelectBox: Interfaces.IdxSelectBoxComponent;\n  dokumentenartSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    onValueChanged: (e) => {\n      if (this.currentDokument == void 0) {\n        return;\n      }\n\n      this._dmsViewerService.saveDokument(this.currentDokument)\n        .then((r) => {\n          this.currentGrid.instance.refresh();\n        });\n    },\n    bindingOptions: {\n      value: \"currentDokument.IdDokumentenart\",\n      readOnly: \"!currentDokument\"\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this._dmsViewerService.dmsViewer = this;\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._eventAggregator.subscribe(NotificationTyp.startupInfoLoaded, async () => {\n      this.dmsViewerPopupCommands.forEach((cmd) => {\n        if (cmd.id == \"anzAusdrucke\" || cmd.id == \"sendDruckJob\") {\n          cmd.isVisible = this.isDruckJobAktiv();\n        }\n      });\n    });\n\n    this.setDataSources();\n    this.updatePopupOptions();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n  attached() {\n    const dokumentCommand: ICommandData = {\n      id: \"addDokument\",\n      idCategory: \"dms\",\n      title: \"dms-viewer.button-text\",\n      tooltip: \"dms-viewer.button-text-tooltip\",\n      icon: \"file\",\n      isEnabled: false,\n      badgeText: null,\n      badgeColor: \"#8D44AD\",\n      sortIndex: 6000\n    };\n    const updateAddDokumentCommandBadge = async (containerOrIdDokumentContainer: any) => {\n      if (!containerOrIdDokumentContainer) {\n        return;\n      }\n\n      const idDokumentContainer = typeof containerOrIdDokumentContainer == \"number\"\n        ? containerOrIdDokumentContainer\n        : containerOrIdDokumentContainer?.IdDokumentContainer;\n\n      if (idDokumentContainer == void 0) {\n        dokumentCommand.badgeText = null;\n        return;\n      }\n\n      const commandToReload = this._formCommandService.getReloadCommand(\n        dokumentCommand,\n        this._availableForms,\n        {\n          modelPropertyName: \"IdDokumentContainer\",\n          modelPropertyValue: idDokumentContainer\n        }\n      );\n\n      if (commandToReload == null) {\n        return;\n      }\n\n      const anzahl = await this._dmsViewerService.getAnzahlDokumente(idDokumentContainer);\n      const localizationAnzahl = commandToReload.badgeText as ILocalizationItem;\n\n      if (localizationAnzahl && anzahl == localizationAnzahl.parameters[0]) {\n        return;\n      }\n\n      if (anzahl) {\n        commandToReload.badgeText = {\n          key: \"base.param_1\",\n          parameters: [anzahl]\n        };\n      } else {\n        if (commandToReload.badgeText) {\n          commandToReload.badgeText = null;\n        }\n      }\n    };\n    this._detachedCommand = this._formCommandService.attachFormCommand(\n      dokumentCommand,\n      {\n        isCommandVisibleModelProperty: \"HasDokumentContainer\",\n        execute: this._dmsViewerService.showDmsViewerPopupFromFormCommand.bind(this._dmsViewerService),\n        onFormModelLoaded: updateAddDokumentCommandBadge.bind(this),\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.deleteAvailableForm.bind(this)\n      });\n  }\n  detached() {\n    this._detachedCommand();\n  }\n\n  show(options: IDmsViewerShowOptions) {\n    this._selectAfterContentReady = true;\n    this.options = options;\n\n    this.dmsViewerPopup.instance.show();\n  }\n\n  private getDokumentToSave(dmsLinkValue: string, setVersion: boolean) {\n    return setVersion\n      ? Object.assign({}, this.currentDokument, { DMSLink: dmsLinkValue })\n      : {\n        IdDokumentContainer: this.options.idDokumentContainer,\n        DMSLink: dmsLinkValue\n      };\n  }\n  private async onFileKeyChanged(value: string, setVersion: boolean = false) {\n    if (value == void 0) {\n      return;\n    }\n\n    const toSave = this.getDokumentToSave(value, setVersion);\n    const savedDokument = await this._dmsViewerService.saveDokument(toSave);\n\n    this.onNewDokumentSaved(savedDokument, setVersion);\n  }\n  private async onNewDokumentSaved(savedDokument: Interfaces.IDMSDokument, setVersion: boolean = false) {\n    if (savedDokument == void 0) {\n      return;\n    }\n\n    if (setVersion) {\n      this.neueVersionPopup.instance.hide();\n    }\n\n    this.setCurrentDokument(savedDokument);\n    this.selectCurrentDokument(savedDokument);\n  }\n\n  private onSelectionChanged(e) {\n    const length = e.selectedRowKeys.length;\n    const currentDokument = length === 1\n      ? e.selectedRowsData[0]\n      : null;\n\n    this.hasSelectedDokument = length > 0;\n\n    this.setCurrentDokument(currentDokument);\n    this.updateSendDokumentCommand(length);\n  }\n  private async selectCurrentDokument(dokument: Interfaces.IDMSDokument) {\n    this.currentGrid.instance.deselectAll();\n    await this._asyncService.convertToPromise(this.currentGrid.instance.refresh());\n\n    if (dokument == void 0 || dokument.Id == void 0) {\n      this.currentGrid.instance.selectRowsByIndexes([0]);\n      return;\n    }\n\n    const dokumentKey = this._isDokumentVersion\n      ? this.getDokumentKeyByAnzahlVersion(dokument.AnzahlVersionen)\n      : dokument.Id;\n    this.currentGrid.instance.selectRows([dokumentKey], false);\n  }\n  private deleteSelectedDokumente() {\n    const dokumentKeyList = this.dokumentGrid.instance.getSelectedRowKeys();\n\n    const toDelete: Promise<any>[] = dokumentKeyList\n      .map((id, index) => {\n        return this._dmsViewerService.deleteDokument(id, index == 0);\n      });\n\n    Promise.all(toDelete)\n      .then(() => {\n        this.dokumentGrid.instance.refresh();\n      });\n  }\n  private downloadSelectedDokumente() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n    dmsLinkList\n      .forEach((dmsLInk, index) => {\n        const url = this._fileService.getDownloadUrl(dmsLInk);\n        window.open(url, \"_blank\");\n      });\n  }\n  private async sendSelectedDokumente() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n    if (dmsLinkList == void 0) {\n      return;\n    }\n    await this._briefService.createAndGoToBrief(this.options.id, dmsLinkList);\n\n    const popup = this._isDokumentVersion ? this.neueVersionPopup : this.dmsViewerPopup;\n    popup.instance.hide();\n  }\n\n  private getSelectedDMSLinkList(): string[] {\n    const dmsLinkList: any[] = this.currentGrid.instance.getSelectedRowsData();\n\n    return dmsLinkList.length\n      ? dmsLinkList.map((dokument) => {\n        return dokument.DMSLink;\n      })\n      : null;\n  }\n  private getDokumentKeyByAnzahlVersion(versionNr: number): number {\n    if (versionNr == void 0) {\n      return;\n    }\n    const dokument = this.versionGridDataSource\n      .items()\n      .find((d) => d.VersionNr == versionNr);\n\n    return dokument\n      ? dokument.Id\n      : null;\n  }\n\n  private updateSendDokumentCommand(count: number) {\n    const cmdId = this._isDokumentVersion ? \"sendVersionDocument\" : \"sendDocument\";\n    const cmd = this.dmsViewerPopupCommands.find((cmd) => cmd.id == cmdId);\n\n    if (cmd == void 0) {\n      return;\n    }\n\n    if (count == 0) {\n      cmd.badgeText = null;\n      cmd.isEnabled = false;\n      return;\n    }\n\n    cmd.isEnabled = true;\n\n    cmd.badgeText = {\n      key: \"base.param_1\",\n      parameters: [count.toString()]\n    };\n  }\n\n  private setCurrentDokument(dokument: any) {\n    if (this._isDokumentVersion) {\n      this.currentVersionDokument = dokument;\n    } else {\n      this.currentDokument = dokument;\n    }\n  }\n  private setDataSources() {\n    this.dokumentGridDataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/DMS/Dokument\",\n        webApiWhere: [\"IdDokumentContainer\", { expression: \"options.idDokumentContainer\", isBound: true }],\n        webApiExpand: { Dokumentenart: null }\n      }\n    );\n    this.dokumentenartSelectBoxOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/Stammdaten/Dokumentenart\",\n        webApiWhere: [\"DokumentenartZuEntitaeten\", [\"TypeName\", { expression: \"options.typeName\", isBound: true }]]\n      }\n    );\n    this.versionGridDataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/DMS/DokumentVersion\",\n        webApiWhere: [\"IdDokument\", { expression: \"currentDokument.Id\", isBound: true }]\n      }\n    );\n\n    this.dokumentGridOptions.dataSource = this.dokumentGridDataSource;\n    this.versionGridOptions.dataSource = this.versionGridDataSource;\n  }\n  private updatePopupOptions() {\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"dmsViewerPopupToolbar\",\n      caption: \"dms-viewer.popup-titel\",\n      options: this.dmsViewerPopupOptions,\n      commands: this.dmsViewerPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"dmsViewerVersionHochladenPopupToolbar\",\n      caption: \"dms-viewer.version-hochladen-popup-titel\",\n      options: this.neueVersionPopupOptions,\n      commands: [],\n      scopeContainer: this.scopeContainer\n    });\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"dmsViewerVersionPopupToolbar\",\n      caption: \"dms-viewer.version-popup-titel\",\n      options: this.versionPopupOptions,\n      commands: this.dmsViewerPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  private getDmsGridOptions(columns: DevExpress.ui.dxDataGridColumn[]): DevExpress.ui.dxDataGridOptions {\n    return {\n      allowColumnReordering: true,\n      allowColumnResizing: true,\n      height: \"100%\",\n      columns: columns,\n      selection: {\n        mode: \"multiple\"\n      },\n      searchPanel: {\n        visible: true,\n        width: 350,\n        placeholder: \"Suchen...\",\n      },\n      onContentReady: () => {\n        if (!this._selectAfterContentReady) {\n          return;\n        }\n        this._selectAfterContentReady = false;\n\n        const items = this.dokumentGridDataSource.items();\n        if (items.length == 0) {\n          return;\n        }\n\n        this.dokumentGrid.instance.selectRowsByIndexes([0]);\n      },\n      onSelectionChanged: this.onSelectionChanged.bind(this),\n      remoteOperations: {\n        filtering: true,\n        paging: true,\n        sorting: true\n      }\n    };\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private deleteAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1);\n  }\n\n  private isDruckJobAktiv() {\n    return this._startupService.startupInfo.Mandant.IsDruckJobAktiv;\n  }\n\n  private async onSendDruckJob() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n\n    for (const dmsLink of dmsLinkList) {\n      await this._druckenService.executeDruckJob(dmsLink, this.anzAusdrucke.getValue());\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./dms-viewer.less\\\"></require> <require from=\\\"../../../framework/forms/elements/file-uploader-with-viewer/tip-file-uploader-with-viewer\\\"></require> <require from=\\\"../dokument-viewer/dokument-viewer\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"dmsViewerPopupOptions\\\" view-model.ref=\\\"dmsViewerPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"dms-viewer-container\\\"> <div class=\\\"dms-viewer-container-columns\\\"> <div class=\\\"dms-viewer-list\\\"> <div class=\\\"dms-viewer-grid-container\\\"> <div class=\\\"dms-viewer-grid\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"dokumentGridOptions\\\" view-model.ref=\\\"dokumentGrid\\\"></dx-widget> </div> </div> <tip-file-uploader-with-viewer options.bind=\\\"fileUploaderOptions\\\"></tip-file-uploader-with-viewer> </div> <div class=\\\"dms-viewer-content\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"dokumentenartSelectBoxOptions\\\" view-model.ref=\\\"dokumentenartSelectBox\\\"></dx-widget> <dokument-viewer dms-link.bind=\\\"currentDokument.DMSLink\\\" mime-type.bind=\\\"currentDokument.MimeType\\\"></dokument-viewer> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"neueVersionPopupOptions\\\" view-model.ref=\\\"neueVersionPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"dms-viewer-container\\\"> <tip-file-uploader-with-viewer options.bind=\\\"neueVersionUploaderOptions\\\"></tip-file-uploader-with-viewer> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"versionPopupOptions\\\" view-model.ref=\\\"versionPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"dms-viewer-container\\\"> <div class=\\\"dms-viewer-container-columns\\\"> <div class=\\\"dms-viewer-list\\\"> <div class=\\\"dms-viewer-grid-container\\\"> <div class=\\\"dms-viewer-grid\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"versionGridOptions\\\" view-model.ref=\\\"versionGrid\\\"></dx-widget> </div> </div> </div> <div class=\\\"dms-viewer-content\\\"> <dokument-viewer dms-link.bind=\\\"currentVersionDokument.DMSLink\\\" mime-type.bind=\\\"currentVersionDokument.MimeType\\\"></dokument-viewer> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dms-viewer-container {\\n  padding: 12px;\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.dms-viewer-container .dms-viewer-container-columns {\\n  display: flex;\\n  flex-grow: 1;\\n}\\n.dms-viewer-container .dms-viewer-container-columns .dms-viewer-list {\\n  flex-shrink: 0;\\n  width: 350px;\\n  display: flex;\\n  flex-direction: column;\\n}\\n.dms-viewer-container .dms-viewer-container-columns .dms-viewer-list .dms-viewer-grid-container {\\n  position: relative;\\n  flex-grow: 1;\\n}\\n.dms-viewer-container .dms-viewer-container-columns .dms-viewer-list .dms-viewer-grid-container .dms-viewer-grid {\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n}\\n.dms-viewer-container .dms-viewer-container-columns .dms-viewer-content {\\n  margin-left: 12px;\\n  flex-grow: 1;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { FileService } from './../../../framework/base/services/file-service';\nimport { bindable } from 'aurelia-templating';\nimport {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\n\n@autoinject\nexport class DokumentViewer {\n  constructor(\n    private file: FileService\n  ) { }\n\n  @bindable dmsLink: string;\n  @bindable mimeType: string;\n\n  @computedFrom(\"dmsLink\")\n  get dokumentInlineLink() {\n    if (this.dmsLink == void 0) {\n      return \"\";\n    };\n\n    return this.file.getInlineUrl(this.dmsLink);\n  }\n  @computedFrom(\"dmsLink\", \"mimeType\")\n  get showObjectViewer() {\n    return this.dmsLink\n      && (!this.mimeType || this.mimeType === \"application/pdf\");\n  }\n  @computedFrom(\"dmsLink\", \"mimeType\")\n  get showImageViewer() {\n    return this.dmsLink\n      && this.mimeType\n      && this.mimeType.substr(0, 5) === \"image\";\n  }\n  @computedFrom(\"mimeType\")\n  get dokumentMimeType() {\n    if (this.mimeType == void 0) {\n      return \"application/pdf\";\n    }\n\n    return this.mimeType;\n  }\n\n}\n","// Module\nvar code = \"<template> <require from=\\\"./dokument-viewer.less\\\"></require> <div class=\\\"dokument-viewer-container\\\" show.bind=\\\"dmsLink\\\"> <object if.bind=\\\"dokumentMimeType && showObjectViewer\\\" data.bind=\\\"dokumentInlineLink\\\" type.bind=\\\"dokumentMimeType\\\"></object> <div if.bind=\\\"dokumentMimeType && showImageViewer\\\" class=\\\"dokument-image-container\\\"> <div class=\\\"dokument-image-container--absolute\\\"> <img class=\\\"dokument-image\\\" src.bind=\\\"dokumentInlineLink\\\"> </div> </div> <p if.bind=\\\"showObjectViewer === false && showImageViewer === false\\\" tr=\\\"key: dokument-viewer.keine-vorschau\\\"></p> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dokument-viewer-container {\\n  display: flex;\\n  min-height: 500px;\\n  height: calc(100% - 12px);\\n  justify-content: center;\\n}\\n.dokument-viewer-container > object {\\n  flex-grow: 1;\\n}\\n.dokument-viewer-container .dokument-image-container {\\n  position: relative;\\n  height: 100%;\\n  width: 100%;\\n}\\n.dokument-viewer-container .dokument-image-container .dokument-image-container--absolute {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  height: 100%;\\n  width: 100%;\\n}\\n.dokument-viewer-container .dokument-image-container .dokument-image-container--absolute .dokument-image {\\n  max-height: 100%;\\n  max-width: 100%;\\n  object-fit: contain;\\n  object-position: center;\\n}\\n.drucken-command-container .dokument-viewer-container {\\n  margin: 12px 12px 0 12px;\\n  height: calc(100% - 24px);\\n}\\n.dms-viewer-container .dokument-viewer-container {\\n  padding-top: 12px;\\n  height: calc(100% - 24px);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope,\n  PLATFORM\n} from \"aurelia-framework\";\nimport {\n  FileService,\n  ScopeContainer,\n  GlobalizationService\n} from \"../../../framework/base/export\";\nimport {\n  HistoryService,\n  ICommandData,\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/export\";\nimport {\n  OnBriefErstellen,\n  OnBriefErstellenEvent\n} from \"../../../framework-data/events\";\n\nimport {\n  DruckenService,\n  FormCommandService,\n  BriefService,\n  StartupService\n} from \"../../services/export\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport { IFormCommandExecuteOptions } from '../../interfaces/export';\nimport { bindable, TemplatingEngine } from 'aurelia-templating';\nimport { AnzAusdrucke } from '../anz-ausdrucke/anz-ausdrucke';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { NotificationTyp } from '../../enumerations/notification-typ';\n\n@autoinject\nexport class DruckenCommand {\n  private _detachedCommand: { (): void };\n  constructor(\n    private briefService: BriefService,\n    private drucken: DruckenService,\n    private element: Element,\n    private file: FileService,\n    private formCommand: FormCommandService,\n    private history: HistoryService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private templating: TemplatingEngine,\n    private globalizationService: GlobalizationService,\n    private startupService: StartupService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  dmsLink: string;\n  idVerknuepfteEntitaet: number;\n  @bindable showInline: boolean;\n  anzAusdrucke: AnzAusdrucke;\n  anzAusdruckeVorb: number;\n\n  druckenPopupCommands: ICommandData[] = [\n    {\n      id: \"downloadDocument\",\n      title: \"dms-viewer.download-dokument\",\n      icon: \"download\",\n      isEnabledExpression: \"dmsLink\",\n      execute: this.downloadCurrentDokument.bind(this)\n    }, {\n      id: \"sendDocument\",\n      title: \"dms-viewer.send-dokument\",\n      icon: \"share-alt\",\n      isEnabledExpression: \"dmsLink\",\n      execute: this.onSendDokumentClick.bind(this)\n    }, {\n      id: \"anzAusdrucke\",\n      title: \"dms-viewer.anzahl-ausdrucke\",\n      isVisible: this.isDruckJobAktiv(),\n      template: {\n        moduleId: PLATFORM.moduleName(\"erp/elements/anz-ausdrucke/anz-ausdrucke\"),\n        options: {\n          options: {\n            onInitialized: (e) => {\n              this.anzAusdrucke = e.component;\n              e.options.value = this.anzAusdruckeVorb;\n            }\n          }\n        }\n      }\n    }, {\n      id: \"sendDruckJob\",\n      title: \"dms-viewer.send-druck-job\",\n      icon: \"print\",\n      isEnabledExpression: \"dmsLink\",\n      isVisible: this.isDruckJobAktiv(),\n      execute: this.onSendDruckJob.bind(this)\n    }\n  ];\n  druckenPopup: Interfaces.IdxPopupComponent;\n  druckenPopupOptions: DevExpress.ui.dxPopupOptions = {};\n\n  druckenContextMenu: Interfaces.IdxContextMenuComponent;\n  druckenContextMenuOptions: DevExpress.ui.dxContextMenuOptions = {\n    target: \"#NONSENSE\",\n    visible: false,\n    displayExpr: \"Bezeichnung\",\n    position: { my: \"top\", at: \"bottom\" },\n    onItemClick: (e) => {\n      this.drucken.getReport(this.idVerknuepfteEntitaet, e.itemData.Id)\n        .then(r => {\n          this.showPopup(r.DMSLink, r.IdObjekt);\n        });\n    }\n  }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.drucken.druckenCommand = this;\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"druckenPopupToolbar\",\n      caption: \"dms-viewer.popup-titel\",\n      options: this.druckenPopupOptions,\n      commands: this.druckenPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n    this.eventAggregator.subscribe(NotificationTyp.startupInfoLoaded, async () => {\n      this.druckenPopupCommands.forEach(cmd => {\n        if (cmd.id == \"anzAusdrucke\" || cmd.id == \"sendDruckJob\") {\n          cmd.isVisible = this.isDruckJobAktiv();\n        }\n      });\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n  attached() {\n    const druckCommand: ICommandData =\n      {\n        id: \"doDokumentDrucken\",\n        title: \"drucken-command.command-text\",\n        icon: \"print\",\n        isEnabled: false,\n        sortIndex: 500\n      };\n    this._detachedCommand = this.formCommand.attachFormCommand(\n      druckCommand,\n      {\n        isCommandVisibleModelProperty: \"HasAusdruck\",\n        saveModelOnExecute: true,\n        execute: this.drucken.executeDruckCommand.bind(this.drucken)\n      });\n  }\n  detached() {\n    this._detachedCommand();\n  }\n\n  async showPopup(dmsLink: string, idVerknuepfteEntitaet: number = null, empfaengerList?: string[]) {\n    this.dmsLink = dmsLink;\n    this.idVerknuepfteEntitaet = idVerknuepfteEntitaet;\n\n    this.anzAusdruckeVorb = await this.drucken.getAnzAusdrucke(idVerknuepfteEntitaet);\n    if (this.anzAusdrucke) {\n      this.anzAusdrucke.setValue(this.anzAusdruckeVorb);\n    }\n\n    this.druckenPopup.instance.show();\n  }\n  showContextMenu(idVerknuepfteEntitaet: number, dokumentList: any[], e: IFormCommandExecuteOptions) {\n    this.idVerknuepfteEntitaet = idVerknuepfteEntitaet;\n\n    this.druckenContextMenu.instance.option(\"dataSource\", dokumentList);\n    this.druckenContextMenu.instance.option(\"target\", this.formCommand.getCommandTarget(e.options.event))\n    this.druckenContextMenu.instance.show();\n  }\n\n  private isDruckJobAktiv() {\n    return this.startupService.startupInfo.Mandant.IsDruckJobAktiv;\n  }\n\n  private downloadCurrentDokument() {\n    const url = this.file.getDownloadUrl(this.dmsLink);\n    window.open(url, \"_blank\");\n  }\n  private async onSendDokumentClick() {\n    await this.briefService.createAndGoToBrief(this.idVerknuepfteEntitaet, [this.dmsLink], true);\n    this.druckenPopup.instance.hide();\n  }\n  private async onSendDruckJob() {\n    await this.drucken.executeDruckJob(this.dmsLink, this.anzAusdrucke.getValue());\n\n    this.druckenPopup.instance.hide();\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../dokument-viewer/dokument-viewer\\\"></require> <dx-widget name=\\\"dxContextMenu\\\" options.bind=\\\"druckenContextMenuOptions\\\" view-model.ref=\\\"druckenContextMenu\\\"></dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"druckenPopupOptions\\\" view-model.ref=\\\"druckenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dokument-viewer dms-link.bind=\\\"dmsLink\\\" mime-type=\\\"application/pdf\\\" class=\\\"drucken-command-container\\\"></dokument-viewer> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, Container } from \"aurelia-framework\";\nimport { FormBase, SimpleWidgetCreatorService, ICommandData } from \"../../../framework/forms/export\";\nimport { DynFelderDataService, IDynamischesFeldAnzeige } from \"../../services/dyn-felder-data-service\";\nimport { IDynamischesFeld } from \"../../services/dyn-felder-service\";\nimport { ScopeContainer, LocalizationService, WebEventService } from \"../../../framework/base/export\";\nimport { IdxPopupComponent, IdxValidationGroup } from \"../../interfaces/export\";\nimport { DynFeldTyp } from \"../../enumerations/export\";\nimport { OnDynamischesFeldUpdateWertEvent, OnDynamischesFeldUpdateWert } from \"../../../framework-data/events\";\n\n@autoinject\nexport class DynFeldContainer {\n  private _form: FormBase;\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _localizationService: LocalizationService,\n    private _webEventService: WebEventService\n  ) { }\n\n  scopeContainer: ScopeContainer;\n\n  @bindable dynFelderDataService: DynFelderDataService;\n  @bindable isDefault: boolean;\n  @bindable anzeigeort: string;\n\n  @bindable idMainModel: string;\n  @bindable idArtPropertyName: string;\n  @bindable idVorgEntitaetPropertyName: string;\n\n  dynFeldList: IDynamischesFeldAnzeige[];\n\n  wertAendernValidationGroup: IdxValidationGroup;\n\n  wertAendernPopup: IdxPopupComponent;\n  wertAendernPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"500px\",\n    height: \"auto\",\n    onShown: () => {\n      if (this.wertAendernOptions.wertEditor) {\n        this.wertAendernOptions.wertEditor.instance.focus();\n      }\n    },\n    onHidden: (e) => {\n      this.wertAendernOptions = null;\n    }\n  };\n  wertAendernSpeichernCommand: ICommandData = {\n    id: \"$save\",\n    icon: \"floppy-o\",\n    title: \"base.save\",\n    tooltip: \"base.save_tooltip\",\n    sortIndex: 10,\n    execute: () => {\n      this.saveWertAendern();\n    }\n  };\n  wertAendernOptions: IWertAendernOptions;\n\n  bind(bindingContext) {\n    this._form = bindingContext;\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    if (!this.dynFelderDataService) {\n      this.dynFelderDataService = Container.instance.get(DynFelderDataService);\n\n      this.dynFelderDataService.register(\n        this._form, {\n        idMainModel: this.idMainModel,\n        idArtPropertyName: this.idArtPropertyName,\n        idVorgEntitaetPropertyName: this.idVorgEntitaetPropertyName\n      });\n    }\n\n    this.dynFelderDataService.onDynFelderDataReloadRequested.register(async (r) => {\n      const dynFeldList = await this.dynFelderDataService.getDynFeldAnzeigeList(\n        this.anzeigeort,\n        this.isDefault\n      );\n     \n      dynFeldList.forEach((f) => f.options[\"DynFeldContainer\"] = this);\n      this.dynFeldList = dynFeldList;\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"updateWertToolbar\",\n      scopeContainer: this.scopeContainer,\n      options: this.wertAendernPopupOptions,\n      caption: \"dyn-feld-container.wert-aendern\",\n      commands: [this.wertAendernSpeichernCommand]\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  showWertAendern(feld: IDynamischesFeld, feldAnzeige: IDynamischesFeldAnzeige) {\n    const feldOptions = this.dynFelderDataService.getDynFeldAnzeige(feld).options;\n\n    switch (feld.Typ) {\n      case DynFeldTyp.text: {\n        feldOptions.value = feldAnzeige.eintrag.WertText;\n        break;\n      }\n      case DynFeldTyp.nummer: {\n        feldOptions.value = feldAnzeige.eintrag.WertNummer;\n        break;\n      }\n      case DynFeldTyp.datum: {\n        feldOptions.value = feldAnzeige.eintrag.WertDatum;\n        break;\n      }\n      case DynFeldTyp.auswahlliste: {\n        feldOptions.value = feldAnzeige.eintrag.IdWertAuswahlliste;\n        break;\n      }\n    }\n\n    this.wertAendernOptions = {\n      feld: feld,\n      feldAnzeige: feldAnzeige,\n\n      wertOptions: feldOptions\n    };\n\n    this.wertAendernPopup.instance.show();\n  }\n  async saveWertAendern() {\n    const validationResult = this.wertAendernValidationGroup.instance.validate();\n    if (!validationResult.isValid) {\n      return;\n    }\n\n    const wert = this.wertAendernOptions.wertEditor.instance.option(\"value\");\n\n    const eintrag = {};\n\n    switch (this.wertAendernOptions.feld.Typ) {\n      case DynFeldTyp.text: {\n        eintrag[\"WertText\"] = wert;\n        break;\n      }\n      case DynFeldTyp.nummer: {\n        eintrag[\"WertNummer\"] = wert;\n        break;\n      }\n      case DynFeldTyp.datum: {\n        eintrag[\"WertDatum\"] = wert;\n        break;\n      }\n      case DynFeldTyp.auswahlliste: {\n        eintrag[\"IdWertAuswahlliste\"] = wert;\n        break;\n      }\n    }\n\n    const args: OnDynamischesFeldUpdateWert = {\n      IdDynamischesFeldContainer: this.wertAendernOptions.feldAnzeige.eintrag.IdDynamischesFeldContainer,\n      IdDynamischesFeld: this.wertAendernOptions.feldAnzeige.eintrag.IdDynamischesFeld,\n    };\n    Object.assign(args, eintrag);\n\n    await this._webEventService.execute(new OnDynamischesFeldUpdateWertEvent(args), true);\n\n    Object.assign(this.wertAendernOptions.feldAnzeige.eintrag, eintrag);\n\n    this._form.reloadIfServerHasNewVersion();\n\n    DevExpress.ui.notify(\n      this._localizationService.translateOnce(\"base.save_success\"),\n      \"SUCCESS\",\n      this.NOTIFY_TIMEOUT);\n\n    this.wertAendernPopup.instance.hide();\n  }\n}\n\ninterface IWertAendernOptions {\n  feld: IDynamischesFeld;\n  feldAnzeige: IDynamischesFeldAnzeige;\n\n  wertOptions: DevExpress.ui.EditorOptions;\n  wertEditor?: { instance: DevExpress.ui.Editor };\n}\n","// Module\nvar code = \"<template> <div class=\\\"container small-hpad\\\"> <div repeat.for=\\\"feld of dynFeldList\\\" class=\\\"col-xs-12 t--has-editor-caption\\\" class.one-time=\\\"feld.colClass\\\"> <div class=\\\"t--editor-caption\\\"> ${feld.data.Bezeichnung} </div> <dx-widget if.bind=\\\"feld.useDxWidget\\\" name.bind=\\\"feld.name\\\" options.bind=\\\"feld.options\\\"></dx-widget> <html-editor if.bind=\\\"feld.useHtmlEditor\\\" value.bind=\\\"feld.eintrag.WertText\\\" main-model.bind=\\\"dynFelderDataService.mainModel\\\" options.bind=\\\"feld.options\\\"></html-editor> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"wertAendernPopupOptions\\\" view-model.ref=\\\"wertAendernPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"{}\\\" view-model.ref=\\\"wertAendernValidationGroup\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\" if.bind=\\\"wertAendernOptions\\\"> <div class=\\\"t--editor-caption\\\">${wertAendernOptions.feld.Bezeichnung}</div> <dx-widget name.bind=\\\"wertAendernOptions.feldAnzeige.name\\\" options.bind=\\\"wertAendernOptions.wertOptions\\\" view-model.ref=\\\"wertAendernOptions.wertEditor\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { HtmlEditor } from './../../../framework/forms/elements/html-editor/html-editor';\nimport { SimpleWidgetCreatorService } from './../../../framework/forms/widget-services/simple-widget-creator-service';\nimport { LocalizationService } from './../../../framework/base/services/localization-service';\nimport { IdxPopupComponent, IdxDataGridComponent } from './../../interfaces/dx-components';\nimport { ScopeContainer } from './../../../framework/base/classes/scope-container';\nimport { Scope, createOverrideContext } from 'aurelia-framework';\nimport { autoinject } from 'aurelia-framework';\nimport { DataSourceService } from '../../../framework/base/export';\nimport { DynFelderService } from '../../services/export';\n\n@autoinject\nexport class DynFeldWertVorlage {\n  private _centerPopup: boolean = false;\n\n  constructor(\n    private dataSourceService: DataSourceService,\n    private localizationService: LocalizationService,\n    private simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private dynFelderService: DynFelderService\n  ) {\n    this.dynFelderService.dynFeldWertVorlage = this;\n  }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  dynFeldId: number;\n  htmlEditor: DevExpress.ui.dxHtmlEditor;\n  indexCursorHtmlEditor: number;\n\n  wertVorlagePopup: IdxPopupComponent;\n  wertVorlagePopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"500px\",\n    height: \"auto\"\n  };\n\n  wertVorlageGridDataSource: DevExpress.data.DataSource;\n  wertVorlageDataGrid: IdxDataGridComponent;\n  wertVorlageDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    allowColumnResizing: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columns: [{\n      caption: this.localizationService.translateOnce(\"dyn_feld_wert_vorlage.bezeichnung\"),\n      dataField: \"Bezeichnung\",\n      minWidth: 100\n    }],\n    onContentReady: () => {\n      if (!this._centerPopup) {\n        return;\n      }\n\n      this._centerPopup = false;\n      this.wertVorlagePopup.instance.repaint();\n    },\n    onRowClick: (e) => {\n      const editor = this.htmlEditor.getQuillInstance();\n      editor.clipboard.dangerouslyPasteHTML(this.indexCursorHtmlEditor, e.data.WertText);\n\n      this.htmlEditor.focus();\n      this.htmlEditor = null;\n\n      this.wertVorlagePopup.instance.hide();\n    }\n  };\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"wertVorlagePopupToolbar\",\n      caption: \"dyn_feld_wert_vorlage.popup_titel\",\n      scopeContainer: this.scopeContainer,\n      options: this.wertVorlagePopupOptions\n    });\n  }\n\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  async showPopup(dynFeldId: number, htmlEditor: any) {\n    this.dynFeldId = dynFeldId;\n    this.htmlEditor = htmlEditor;\n\n    const index = this.htmlEditor.getSelection();\n\n    if (index == null) {\n      this.indexCursorHtmlEditor = 0;\n    }\n    else {\n      this.indexCursorHtmlEditor = index.index;\n    }\n\n    this.setGridDataSources();\n    this.wertVorlagePopup.instance.show();\n  }\n\n  private setGridDataSources() {\n    this._centerPopup = true;\n\n    this.wertVorlageGridDataSource = this.dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/DynamischesFeld/DynamischesFeldWertVorlage\",\n        webApiExpand: {\n          DynamischesFeld: {\n            columns: [\"Id\"]\n          }\n        },\n        webApiWhere: [\"DynamischesFeld.Id\", this.dynFeldId]\n      }\n    );\n\n    if (this.wertVorlageDataGrid && this.wertVorlageDataGrid.instance) {\n      this.wertVorlageDataGrid.setOption({\n        dataSource: this.wertVorlageGridDataSource\n      });\n    } else {\n      this.wertVorlageDataGridOptions.dataSource = this.wertVorlageGridDataSource;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./dyn-feld-wert-vorlage.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"wertVorlagePopupOptions\\\" view-model.ref=\\\"wertVorlagePopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"dyn-feld-wert-vorlage-container\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"wertVorlageDataGridOptions\\\" view-model.ref=\\\"wertVorlageDataGrid\\\"></dx-widget> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dyn-feld-wert-vorlage-container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n  padding: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { EventAggregator } from 'aurelia-event-aggregator';\nimport { OverrideContext, Scope, autoinject, bindable, observable } from \"aurelia-framework\";\nimport { RestService } from '../../../framework/base/export';\nimport { NotificationTyp } from '../../enumerations/notification-typ';\n\n@autoinject\nexport class EntitaetMenu {\n  constructor(\n    private eventAggregator: EventAggregator,\n    private restService: RestService) { }\n\n  @bindable @observable data: any;\n  @bindable hideAenddat: boolean;\n\n  scope: Scope;\n\n  id: any;\n  hasNotiz: boolean;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.dataChanged();\n  }\n\n  dataChanged() {\n    if (!this.data) {\n      return;\n    }\n\n    switch (this.data.TypeName) {\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.VerknuepfteEntitaet\": {\n        this.id = this.data.IdVerknuepft;\n        this.hasNotiz = this.data.HasVerknuepftNotiz;\n        break;\n      }\n      default: {\n        this.id = this.data.Id;\n        this.hasNotiz = this.data.HasNotiz;\n        break;\n      }\n    }\n  }\n\n  async showNotizListPopover(e: Event) {\n    e.stopPropagation();\n\n    const id = await this.getId();\n    if (!id) {\n      return;\n    }\n\n    this.eventAggregator.publish(\n      NotificationTyp.notizShowListPopover, {\n      id: id,\n      target: e.target\n    }\n    );\n  }\n\n  private async getId() {\n    if (this.data.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.BriefZuEmpfaenger\") {\n      const r = await this.restService.get({\n        url: this.restService.getWebApiUrl(\"ERP/Stammdaten/BriefZuEmpfaenger/\").concat(this.id),\n        getOptions: {\n          columns: [\"IdBrief\"]\n        }\n      });\n\n      if (!r) {\n        return null;\n      }\n\n      return r.IdBrief;\n    } else {\n      return this.id;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./entitaet-menu.less\\\"></require> <div class=\\\"entitaet-menu-container\\\"> <div if.bind=\\\"hasNotiz\\\" class=\\\"entitaet-menu-button\\\" click.delegate=\\\"showNotizListPopover($event)\\\"> <i class=\\\"fa fa-fw fa-comments-o\\\"></i> </div> <div if.bind=\\\"data.Aenderungsdatum && !hideAenddat\\\"> <i class=\\\"fa fa-fw fa-clock-o\\\"></i> <span>${data.Aenderungsdatum | format:'g'}</span> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".entitaet-menu-container {\\n  display: flex;\\n}\\n.entitaet-menu-container > div {\\n  margin-left: 10px;\\n}\\n.entitaet-menu-button {\\n  display: flex;\\n  justify-content: center;\\n  padding: 1px 2px;\\n  height: 17px;\\n  border: 1px solid #ccc;\\n  border-radius: 2px;\\n  cursor: pointer;\\n}\\n.entitaet-menu-button:hover {\\n  background-color: white;\\n  border-color: #bbb;\\n}\\n.entitaet-menu-button i {\\n  font-size: 11px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  bindingMode\n} from \"aurelia-framework\";\nimport {\n  LocalizationService\n} from \"../../../framework/base/export\";\nimport {\n  FilterService\n} from \"../../services/export\";\nimport { SimpleWidgetCreatorService, ICommandData } from '../../../framework/forms/export';\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\nimport { IdxPopupComponent, IdxFilterBuilderComponent } from '../../interfaces/dx-components';\nimport { WebEventService } from '../../../framework/base/services/web-event-service';\nimport { OnFilterFeldRequestEvent, OnFilterFeldRequest } from '../../../framework-data/events';\nimport { EntitaetInfoService } from '../../services/entitaet-info-service';\n\n@autoinject\nexport class Filter {\n  constructor(\n    private element: Element,\n    private filter: FilterService,\n    private localization: LocalizationService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private webEvent: WebEventService,\n    private entitaetInfo: EntitaetInfoService,\n    private filterService: FilterService\n  ) { }\n\n  @bindable webApiAction: string;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) tokens: string;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) searchtext: string;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) filterManuell: string;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) filterInject: string;\n  @bindable hasVolltext: boolean;\n  @bindable hasFilterManuell: boolean;\n\n  scopeContainer: ScopeContainer;\n  filterGruppen: any[];\n  filterManuellFeldList: any[];\n\n  filterInjectData: any;\n\n  searchtextOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this.localization.translateOnce(\"base.search\"),\n    showClearButton: true,\n    bindingOptions: {\n      value: \"searchtext\"\n    }\n  }\n  scrollViewOptions: DevExpress.ui.dxScrollViewOptions = {}\n  filterManuellButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localization.translateOnce(\"erp-divers.erweitert\"),\n    onClick: async () => {\n      if (!this.filterManuellFeldList) {\n        await this.loadFilterFeldList();\n      }\n\n      this.showFilterBuilder();\n    }\n  }\n  filterManuellPopup: IdxPopupComponent;\n  filterManuellPopupOptions: DevExpress.ui.dxPopupOptions = {\n    width: \"500px\",\n    height: \"450px\"\n  }\n  filterManuellPopupCommands: ICommandData[] = [{\n    id: \"useFilter\",\n    title: \"erp-filter.uebernehmen\",\n    icon: \"check\",\n    execute: () => {\n      document.body.click();\n\n      this.setFilter(this.filterBuilder.instance.option(\"value\"));\n      this.filterManuellPopup.instance.hide();\n    }\n  }, {\n    id: \"clearFilter\",\n    title: \"erp-filter.entfernen\",\n    icon: \"times\",\n    isEnabledExpression: \"!!currentFilter\",\n    execute: () => {\n      this.setFilter(null);\n      this.filterManuellPopup.instance.hide();\n    }\n  }];\n  filterBuilder: IdxFilterBuilderComponent;\n  filterBuilderOptions: DevExpress.ui.dxFilterBuilderOptions = {\n  }\n  currentFilter: any;\n\n  bind(bindingContext, overrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    if (bindingContext && bindingContext.viewItemInfo && bindingContext.viewItemInfo.routeInfo && bindingContext.viewItemInfo.routeInfo.customOptions && bindingContext.viewItemInfo.routeInfo.customOptions.filterInject) {\n      const filterInjectData = bindingContext.viewItemInfo.routeInfo.customOptions.filterInject;\n      filterInjectData.isAktiv = true;\n      this.filterInjectData = filterInjectData;\n      this.filterInject = filterInjectData.Where;\n    }\n\n    this.filterGruppen = this\n      .filter\n      .getFilterGruppen(this.webApiAction)\n      .map(c => {\n        return {\n          id: c.Id,\n          bezeichnung: c.Bezeichnung,\n          idElementAktiv: this.filterInjectData\n            ? null\n            : this.getIdElementAktiv(c.Id),\n          elemente: c.FilterElemente.map(d => {\n            return {\n              id: d.Id,\n              bezeichnung: d.Bezeichnung\n            }\n          })\n        }\n      });\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"filterManuellPopupToolbar\",\n      caption: \"erp-filter.erweitert\",\n      options: this.filterManuellPopupOptions,\n      commands: this.filterManuellPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  onElementClicked(gruppe, element) {\n    if (gruppe.idElementAktiv === element.id) {\n      gruppe.idElementAktiv = null;\n    } else {\n      gruppe.idElementAktiv = element.id;\n    }\n\n    this.tokens = this.filterGruppen\n      .filter(c => c.idElementAktiv)\n      .map(c => `|${c.id}=${c.idElementAktiv}|`)\n      .join(\"\");\n  }\n  onFilterInjectClicked() {\n    this.filterInjectData.isAktiv = !this.filterInjectData.isAktiv;\n\n    if (this.filterInjectData.isAktiv) {\n      this.filterInject = this.filterInjectData.Where;\n    } else {\n      this.filterInject = null;\n    }\n  }\n\n  private getIdElementAktiv(idGruppe: number): number {\n    if (!this.tokens) {\n      return null;\n    }\n\n    const prefix = `|${idGruppe}=`;\n    const indexOf = this.tokens.indexOf(prefix);\n    if (indexOf < 0) {\n      return null;\n    }\n\n    const text = this.tokens.substr(indexOf + prefix.length);\n    return parseInt(text.substr(0, text.indexOf(\"|\")));\n  }\n  private async loadFilterFeldList() {\n    const info = this.entitaetInfo.getEntitaetInfoByWebApiAction(this.webApiAction);\n\n    const result: OnFilterFeldRequest = await this.webEvent.execute(new OnFilterFeldRequestEvent({\n      TypeName: info.FullName\n    }), true);\n\n    this.filterManuellFeldList = this.filterService.getFilterBuilderFeldList(\n      this.scopeContainer,\n      result.FeldList);\n\n    this.filterBuilderOptions.fields = this.filterManuellFeldList;\n  }\n  private showFilterBuilder() {\n    if (this.filterBuilder) {\n      this.filterBuilder.setOption({\n        \"value\": this.currentFilter\n      });\n    } else {\n      this.filterBuilderOptions.value = this.currentFilter;\n    }\n\n    this.filterManuellPopup.instance.show();\n  }\n  private setFilter(value) {\n    this.currentFilter = value;\n\n    this.filterManuell = value\n      ? JSON.stringify(this.currentFilter)\n      : null;\n  }\n}\n","// Module\nvar code = \"<template class=\\\"filter-container\\\"> <require from=\\\"./filter.less\\\"></require> <div if.bind=\\\"hasVolltext\\\" class=\\\"filter-searchtext\\\"> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchtextOptions\\\"></dx-widget> </div> <div if.bind=\\\"hasFilterManuell\\\" class=\\\"filter-manuell\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"filterManuellButtonOptions\\\"></dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"filterManuellPopupOptions\\\" view-model.ref=\\\"filterManuellPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"scrollViewOptions\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxFilterBuilder\\\" options.bind=\\\"filterBuilderOptions\\\" view-model.ref=\\\"filterBuilder\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> <div class=\\\"filter-gruppen\\\"> <div class=\\\"filter-gruppe\\\" repeat.for=\\\"gruppe of filterGruppen\\\"> <div class=\\\"filter-elemente\\\"> <div class=\\\"filter-element\\\" repeat.for=\\\"element of gruppe.elemente\\\"> <div class=\\\"filter-element-bez\\\" class.bind=\\\"(gruppe.idElementAktiv == element.id) ? 'filter-element-aktiv' : ''\\\" click.delegate=\\\"onElementClicked(gruppe, element)\\\"> ${element.bezeichnung} </div> </div> </div> </div> <div if.bind=\\\"filterInjectData\\\" class=\\\"filter-gruppe\\\"> <div class=\\\"filter-elemente\\\"> <div class=\\\"filter-element\\\"> <div class=\\\"filter-element-bez ${filterInjectData.isAktiv ? 'filter-element-aktiv' : ''}\\\" click.delegate=\\\"onFilterInjectClicked()\\\"> ${filterInjectData.Bezeichnung} </div> </div> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".filter-container {\\n  display: flex;\\n  padding-bottom: 6px;\\n}\\n.filter-container .filter-gruppen {\\n  flex-grow: 1;\\n}\\n.filter-container .filter-gruppe {\\n  display: flex;\\n}\\n.filter-container .filter-gruppe-bez {\\n  width: 200px;\\n  padding-top: 6px;\\n  flex-shrink: 0;\\n  flex-grow: 0;\\n}\\n.filter-container .filter-elemente {\\n  flex-grow: 1;\\n  display: flex;\\n  flex-wrap: wrap;\\n}\\n.filter-container .filter-element {\\n  cursor: pointer;\\n  user-select: none;\\n  padding: 0 6px 6px 0;\\n}\\n.filter-container .filter-element-bez {\\n  padding: 6px 8px;\\n  border-radius: 12px;\\n  background-color: #ddd;\\n}\\n.filter-container .filter-element-bez.filter-element-aktiv {\\n  color: white;\\n}\\n.filter-container .filter-searchtext {\\n  width: 30%;\\n  padding: 0 6px 6px 0;\\n  flex-shrink: 0;\\n  flex-grow: 0;\\n}\\n.filter-container .filter-manuell {\\n  padding: 0 6px 6px 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Module\nvar code = \"<template> <require from=\\\"./form-commands.less\\\"></require> <require from=\\\"../aufgabe-form-command/aufgabe-form-command\\\"></require> <require from=\\\"../brief-form-command/brief-form-command\\\"></require> <require from=\\\"../status-form-command/status-form-command\\\"></require> <require from=\\\"../kopieren-form-command/kopieren-form-command\\\"></require> <require from=\\\"../notiz-form-command/notiz-form-command\\\"></require> <aufgabe-form-command></aufgabe-form-command> <brief-form-command></brief-form-command> <status-form-command></status-form-command> <kopieren-form-command></kopieren-form-command> <notiz-form-command></notiz-form-command> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".aufgabe-list-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto auto;\\n  grid-column-gap: 12px;\\n  align-items: center;\\n}\\n.aufgabe-list-item.aufgabe-list-item-border-status {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.aufgabe-list-item .aufgabe-list-item-title {\\n  font-weight: bold;\\n}\\n.aufgabe-list-item .aufgabe-list-item-text {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.aufgabe-list-item .aufgabe-list-item-info {\\n  text-align: right;\\n  grid-row: span 2;\\n}\\n.aufgabe-list-item .aufgabe-list-item-abgelaufen {\\n  color: #C1392D;\\n}\\n.aufgabe-list-item .aufgabe-list-item-commands {\\n  grid-row: span 2;\\n}\\n.aufgabe-list-item .aufgabe-list-item-is-prioritaet {\\n  color: #C1392D;\\n  padding-right: 5px;\\n}\\n.brief-list-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-column-gap: 12px;\\n}\\n.brief-list-item.brief-list-item-border-status {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.brief-list-item .brief-list-item-title,\\n.brief-list-item .brief-list-item-anlage {\\n  font-weight: bold;\\n}\\n.brief-list-item .brief-list-item-title,\\n.brief-list-item .brief-list-item-info {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.brief-list-item .brief-list-item-info {\\n  grid-column: span 2;\\n}\\n.notiz-list-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-column-gap: 12px;\\n}\\n.notiz-list-item .notiz-list-item-title,\\n.notiz-list-item .notiz-list-item-anlage {\\n  font-weight: bold;\\n}\\n.notiz-list-item .notiz-list-item-title,\\n.notiz-list-item .notiz-list-item-info {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.notiz-list-item .notiz-list-item-info {\\n  grid-column: span 2;\\n}\\n.mail-list-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-column-gap: 12px;\\n}\\n.mail-list-item.mail-list-item-border-status {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.mail-list-item .mail-list-item-title,\\n.mail-list-item .mail-list-item-anlage {\\n  font-weight: bold;\\n}\\n.mail-list-item .mail-list-item-title,\\n.mail-list-item .mail-list-item-info {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.mail-list-item .mail-list-item-info {\\n  grid-column: span 2;\\n}\\n.zugriff-historie-list-item {\\n  display: grid;\\n  grid-template-columns: 1fr auto;\\n  grid-column-gap: 12px;\\n}\\n.zugriff-historie-list-item.zugriff-historie-list-item-border-status {\\n  border-left: 4px solid;\\n  padding-left: 4px;\\n}\\n.zugriff-historie-list-item .zugriff-historie-list-item-type,\\n.zugriff-historie-list-item .zugriff-historie-list-item-anlage {\\n  font-weight: bold;\\n}\\n.zugriff-historie-list-item .zugriff-historie-list-item-bezeichnung {\\n  grid-column: span 2;\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope,\n  createOverrideContext\n} from \"aurelia-framework\";\nimport {\n  DataSourceService,\n  ScopeContainer,\n  LocalizationService,\n  IDataSourceOptionFilter\n} from \"../../../framework/base/export\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\n\nimport {\n  GeschaeftspartnerSearchService\n} from \"../../services/export\";\n\nimport * as Interfaces from \"../../interfaces/export\";\nimport { GridLayoutService, IGridColumnExtenderResult } from '../../../framework/forms/services/grid-layout-service';\n\n@autoinject\nexport class GeschaeftspartnerSearchResult {\n  private _onGeschaeftspartnerSelected: { (idGeschaeftspartner: number): void };\n  private _onGeschaeftspartnerSelectedCancel: { (): void };\n\n  constructor (\n    private _element: Element,\n    private _dataSourceService: DataSourceService,\n    private _localizationService: LocalizationService,\n    private _geschaeftspartnerSearchService: GeschaeftspartnerSearchService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _gridLayoutService: GridLayoutService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  searchValue: string = null;\n  searchListDataSource: DevExpress.data.DataSource;\n  optionsCaption: string;\n  optionsWhere: any;\n  optionsFilters: any;\n  gridColumnExtenderResult: IGridColumnExtenderResult;\n\n  searchResultDataGrid: Interfaces.IdxDataGridComponent;\n  searchResultDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    columns: [{\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.nummer\"),\n      dataField: \"Nummer\",\n      width: \"80px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.geschaeftspartner_art\"),\n      dataField: \"Geschaeftspartnerart.Bezeichnung\",\n      width: \"120px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.firmenbez1\"),\n      dataField: \"Adresse.Firmenbez1\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.firmenbez2\"),\n      dataField: \"Adresse.Firmenbez2\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.strasse\"),\n      dataField: \"Adresse.Strasse\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.land\"),\n      dataField: \"Adresse.Land.Bezeichnung\",\n      width: \"120px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.plz\"),\n      dataField: \"Adresse.PLZ\"\n    }, {\n      caption: this._localizationService.translateOnce(\"geschaeftspartner_search_result.ort\"),\n      dataField: \"Adresse.Ort\",\n      width: \"120px\"\n    }],\n    onRowClick: (e) => {\n      this._onGeschaeftspartnerSelected(e.key.Id);\n      this.searchResultPopup.instance.hide();\n    },\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    remoteOperations: {\n      filtering: true,\n      paging: true,\n      sorting: true\n    }\n  }\n\n  searchResultPopup: Interfaces.IdxPopupComponent;\n  searchResultPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    onHidden: () => {\n      this.searchValue = null;\n      this._onGeschaeftspartnerSelectedCancel();\n    }\n  };\n\n  searchTextBox: Interfaces.IdxTextBoxComponent;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this._localizationService.translateOnce(\"base.search\"),\n    onValueChanged: async (e) => {\n      this.reloadData();\n      this.focusSearchTextBox();\n    },\n    bindingOptions: {\n      value: \"searchValue\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._geschaeftspartnerSearchService.geschaeftspartnerSearchResult = this;\n\n    this.gridColumnExtenderResult = this._gridLayoutService.addGridColumnExtender({\n      webApiAction: \"ERP/Stammdaten/Geschaeftspartner\",\n      gridOptions: this.searchResultDataGridOptions,\n      viewUrl: this._element[\"au\"].controller.view.resources.viewUrl,\n      id: \"searchResultDataGrid\"\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: this.optionsCaption || \"base.search\",\n      scopeContainer: this.scopeContainer,\n      options: this.searchResultPopupOptions\n    });\n\n    this.searchListDataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Geschaeftspartner\",\n        webApiExpand: {\n          Adresse: {\n            expand: { Land: null }\n          },\n          Geschaeftspartnerart: null\n        }\n      },\n      {\n        getSearchText: () => {\n          return this.searchValue;\n        },\n        getCustomWhere: () => {\n          return this.optionsWhere;\n        },\n        getCustomFilters: () => {\n          const filter: IDataSourceOptionFilter[] = this.optionsFilters || [];\n\n          const dynamicColumns = this.gridColumnExtenderResult.getDynamicColumns();\n          if (dynamicColumns.length > 0) {\n            filter.push({\n              webApiCustomKey: \"ExtendedLoadProperties\",\n              webApiCustomValue: JSON.stringify(dynamicColumns)\n            });\n          }\n\n          return filter;\n        }\n      }\n    );\n\n    this.searchResultDataGridOptions.dataSource = this.searchListDataSource;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showPopup(onGeschaeftspartnerSelected: { (idGeschaeftspartner: number): void },\n    onGeschaeftspartnerSelectedCancel: { (): void },\n    options: Interfaces.ISearchOptions) {\n\n    this._onGeschaeftspartnerSelected = onGeschaeftspartnerSelected;\n    this._onGeschaeftspartnerSelectedCancel = onGeschaeftspartnerSelectedCancel;\n    this.searchValue = options.searchValue;\n    this.optionsCaption = options.caption;\n    this.optionsWhere = options.where;\n    this.optionsFilters = options.filters;\n\n    if (this[\"searchResultPopupToolbar\"]) {\n      this[\"searchResultPopupToolbar\"].title = this.optionsCaption || \"base.search\";\n    }\n\n    if (this.searchResultDataGrid && this.searchResultDataGrid.instance) {\n      const filter = this.searchResultDataGrid.instance.getCombinedFilter();\n      if (filter) {\n        this.searchResultDataGrid.instance.clearFilter();\n      }\n    }\n\n    this.searchResultPopup.instance.show()\n      .then(() => {\n        this.focusSearchTextBox();\n      });\n  }\n\n  private focusSearchTextBox() {\n    const element: Element = this.searchTextBox.instance.element();\n    const input = element.querySelector(\"input\");\n    \n    input.focus();\n    input.select();\n  }\n  private reloadData() {\n    if (this.searchResultDataGrid.instance.pageIndex() > 0) {\n      this.searchResultDataGrid.instance.pageIndex(0);\n    }\n\n    this.searchResultDataGrid.instance.refresh();\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"searchResultPopupOptions\\\" view-model.ref=\\\"searchResultPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"search-popup-container\\\"> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"search-popup-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"searchResultDataGridOptions\\\" view-model.ref=\\\"searchResultDataGrid\\\"></dx-widget> </div> </div> </div></dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  bindingMode,\n  computedFrom,\n  OverrideContext,\n  observable,\n  Scope,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  DataSourceService,\n  LocalizationService,\n  ScopeContainer,\n  WebEventService,\n  RestService\n} from \"../../../framework/base/export\";\nimport {\n  FormBase,\n  ModelUtilsService\n} from \"../../../framework/forms/export\";\nimport {\n  CustomEditPopupService,\n  GeschaeftspartnerService,\n  GeschaeftspartnerSearchService,\n  PersonService\n} from \"../../services/export\";\nimport {\n  Adresse\n} from \"../adresse/adresse\";\n\nimport * as Interfaces from \"../../interfaces/export\";\nimport { OnIsDiverserGeschaeftspartner, OnIsDiverserGeschaeftspartnerEvent, PersonRequestTyp } from \"../../../framework-data/events\";\nimport { DxCustomizeService } from \"../../services/dx-customize-service\";\n\n@autoinject\nexport class Geschaeftspartner {\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _element: Element,\n    private _dataSourceService: DataSourceService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _personService: PersonService,\n    private _geschaeftspartnerSearchService: GeschaeftspartnerSearchService,\n    private _localizationService: LocalizationService,\n    private _taskQueueService: TaskQueue,\n    private _modelUtilsService: ModelUtilsService,\n    private _webEventService: WebEventService,\n    private _restService: RestService,\n    private _dxCustomizeService: DxCustomizeService\n  ) { }\n\n  @bindable mainModel: any;\n  @bindable showAnsprechperson: boolean;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) idAdresse: number;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable idAnsprechperson: number;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable idGeschaeftspartner: number;\n  @bindable isReadOnly: boolean;\n  @bindable isRequired: boolean = true;\n  @bindable validationFieldName: string = \"Geschäftspartner\";\n\n  /** Muss leider so sein - durch mehrfaches Binding und öftere Änderung führt dies sonst zu Problemen */\n  @bindable adressePropertyName: string;\n\n  @bindable where: any;\n  @bindable personTyp: PersonRequestTyp;\n\n  @computedFrom(\"isReadOnly\", \"mainModel.CanSave\")\n  get isReadOnlyChecked() {\n    return this.isReadOnly || !this.mainModel || this.mainModel.CanSave === false;\n  }\n  @computedFrom(\"isReadOnlyChecked\", \"idGeschaeftspartner\")\n  get isReadOnlyAnsprechperson() {\n    return this.isReadOnlyChecked || !this.idGeschaeftspartner;\n  }\n  @computedFrom(\"isReadOnlyChecked\", \"isDiverserGeschaeftspartner\")\n  get isAdresseReadOnly() {\n    return this.isReadOnlyChecked || !this.isDiverserGeschaeftspartner;\n  }\n\n  form: FormBase;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  adresseElement: Adresse;\n  telefon: string;\n  telefonAnsprechperson: string;\n  isDiverserGeschaeftspartner: boolean;\n\n  geschaeftspartnerValidationOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"custom\",\n        reevaluate: true,\n        validationCallback: (e) => {\n          e.rule.message = `${this.validationFieldName} ist ein Pflichtfeld`;\n          return this.isRequired\n            ? !!e.value\n            : true;\n        }\n      }\n    ]\n  };\n\n  geschaeftspartnerNummer: Interfaces.IdxTextBoxComponent;\n  geschaeftspartnerNummerOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    onInitialized: (e) => {\n      this.updateGeschaeftspartnerButtons(e.component);\n    },\n    onValueChangedByUser: (e) => {\n      if (!e.value) {\n        this.resetGeschaeftspartner();\n        return;\n      }\n\n      const isValidNumber: boolean = /^[0-9]+$/.test(e.value);\n\n      if (isValidNumber) {\n        this.onGeschaeftspartnerChangedNummer(e.value);\n      } else {\n        this.onGeschaeftspartnerChangedText(e.value);\n      }\n    },\n    bindingOptions: {\n      readOnly: {\n        expression: \"isReadOnlyChecked\",\n        readOnly: true\n      }\n    }\n  };\n  \n  ansprechperson: Interfaces.IdxSelectBoxComponent;\n  ansprechpersonOptions: DevExpress.ui.dxSelectBoxOptions = {\n    valueExpr: \"Id\",\n    displayExpr: \"Name\",\n    searchEnabled: true,\n    showClearButton: true,\n    placeholder: this._localizationService.translateOnce(\"adresse.ansprechperson\"),\n    onInitialized: (e) => {\n      this.updateAnsprechpersonButtons(e.component);\n    },\n    onValueChanged: (e) => {\n      this.updateAnsprechpersonButtons(e.component);\n    },\n    onValueChangedByUser: (e) => {\n      this.dispatchAnsprechpersonChanged(e.value, e.previousValue);\n    },\n    bindingOptions: {\n      value: \"idAnsprechperson\",\n      readOnly: \"isReadOnlyAnsprechperson\"\n    }\n  };\n\n  bind(bindingContext: any, OverrideContext: OverrideContext) {\n    this.form = bindingContext.form || bindingContext;\n\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: OverrideContext\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.ansprechpersonOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Person\",\n        webApiColumns: [\"Id\", \"IdGeschaeftspartner\", \"Vorname\", \"Nachname\", \"Name\"],\n        keyProperty: \"Id\"\n      },\n      {\n        getCustomWhere: () => {\n          if (this.idGeschaeftspartner == void 0) {\n            return null;\n          }\n          return [\"IdGeschaeftspartner\", this.idGeschaeftspartner]\n        }\n      }\n    );\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  focus() {\n    this.geschaeftspartnerNummer.instance.focus();\n  }\n  async idGeschaeftspartnerChanged(newVal) {\n    await this.setGeschaeftspartnerDataById(newVal);\n\n    if (this.showAnsprechperson) {\n      (<DevExpress.data.DataSource>this.ansprechpersonOptions.dataSource).reload();\n    }\n    if (!this.adressePropertyName) {\n      if (newVal) {\n        this.updateAdresse(newVal);\n      } else {\n        this.adresseElement.resetAdresse();\n      }\n    }\n\n    this.updateAnsprechpersonButtons();\n  }\n  idAnsprechpersonChanged(newVal) {\n    this.setAnsprechpersonDataById(newVal);\n  }\n  onGeschaeftspartnerChangedNummer(searchValue) {\n    if (!searchValue) {\n      return;\n    }\n\n    this._geschaeftspartnerService.getGeschaeftspartnerByNummer(searchValue, true, this.where)\n      .then(r => {\n        if (!r || !r.length) {\n          this.showGeschaeftspartnerSearchPopup(searchValue);\n        } else {\n          this.setGeschaeftspartner(r[0]);\n        }\n      });\n  }\n  onGeschaeftspartnerChangedText(searchValue) {\n    if (!searchValue) {\n      return;\n    }\n\n    this._geschaeftspartnerService.getGeschaeftspartnerBySearchtextEindeutig(searchValue, true, this.where)\n      .then(r => {\n        if (r && r.length === 1) {\n          this.setGeschaeftspartner(r[0]);\n        } else {\n          this.showGeschaeftspartnerSearchPopup(searchValue);\n        }\n      });\n  }\n  showGeschaeftspartnerSearchPopup(searchValue) {\n    this._geschaeftspartnerSearchService.show((idGeschaeftspartner) => {\n      this._geschaeftspartnerService.getGeschaeftspartnerById(idGeschaeftspartner, true)\n        .then(r => {\n          this.setGeschaeftspartner(r);\n        })\n    },\n      () => {\n        this.resetGeschaeftspartner();\n        this.geschaeftspartnerNummer.instance.focus();\n      },\n      { searchValue: searchValue, where: this.where }\n    );\n  }\n  refreshGeschaeftspartnerById(idGeschaeftspartner: number = null) {\n    if (idGeschaeftspartner && idGeschaeftspartner != this.idGeschaeftspartner) {\n      return;\n    }\n    if (this.isReadOnlyChecked) {\n      return;\n    }\n    if (this.isDiverserGeschaeftspartner) {\n      return;\n    }\n\n    if (this.adressePropertyName) {\n      this.updateAdresse(this.idGeschaeftspartner);\n    } else {\n      this.setGeschaeftpartnerById(this.idGeschaeftspartner);\n    }\n  }\n  setGeschaeftpartnerById(idGeschaeftspartner: number) {\n    this._geschaeftspartnerService\n      .getGeschaeftspartnerById(idGeschaeftspartner, true)\n      .then(r => {\n        this.setGeschaeftspartner(r);\n      })\n  }\n\n  private resetGeschaeftspartner() {\n    this.idGeschaeftspartner = null;\n    this.adresseElement.resetAdresse();\n    this.idAnsprechperson = null;\n    this.telefon = null;\n    this.telefonAnsprechperson = null;\n\n    this.setGeschaeftspartnerNummer(null);\n    this.updateAnsprechpersonButtons();\n  }\n  private setGeschaeftspartner(geschaeftspartner: any) {\n    this.idGeschaeftspartner = geschaeftspartner.Id;\n    this.idAnsprechperson = null;\n\n    this.adresseElement.setAdresseByGeschaeftspartner(geschaeftspartner);\n\n    this._taskQueueService.queueMicroTask(() => {\n      const event = new CustomEvent(\"id-geschaeftspartner-changed\", {\n        detail: {\n          sender: this,\n          value: geschaeftspartner.Id\n        },\n        bubbles: true\n      });\n\n      this._element.dispatchEvent(event);\n    });\n\n    this.setMainModelDirty();\n    this.loadAnsprechperson(geschaeftspartner.Id);\n  }\n  private async updateAdresse(idGeschaeftspartner: any) {\n    const data = await this._geschaeftspartnerService.getGeschaeftspartnerById(idGeschaeftspartner);\n    this.adresseElement.setAdresseByGeschaeftspartner(data);\n  }\n  private async loadAnsprechperson(idGeschaeftspartner: number) {\n    if (!this.showAnsprechperson) {\n      return;\n    }\n\n    if (this.personTyp != void(0)) {\n      this.idAnsprechperson = await this._personService.getIdPersonVorbelegung(idGeschaeftspartner, this.personTyp);\n      this.dispatchAnsprechpersonChanged(this.idAnsprechperson, null);\n    }\n  }\n  private async setGeschaeftspartnerDataById(idGeschaeftspartner: number) {\n    this.isDiverserGeschaeftspartner = false;\n\n    if (idGeschaeftspartner == void 0) {\n      this.telefon = null;\n      this.setGeschaeftspartnerNummer(null);\n      return;\n    }\n\n    const data = await this\n      ._geschaeftspartnerService\n      .getGeschaeftspartnerBasicDataById(idGeschaeftspartner);\n\n    this.telefon = data.Telefon;\n    this.setGeschaeftspartnerNummer(data.Nummer);\n\n    const isDiversResult: OnIsDiverserGeschaeftspartner = await this._webEventService.execute(new OnIsDiverserGeschaeftspartnerEvent({\n      IdGeschaeftspartner: idGeschaeftspartner\n    }));\n\n    this.isDiverserGeschaeftspartner = isDiversResult.IsDivers;\n  }\n  private async setAnsprechpersonDataById(idAnsprechperson: number) {\n    if (idAnsprechperson == void (0)) {\n      this.telefonAnsprechperson = null;\n      this.updateAnsprechpersonButtons();\n      return;\n    }\n\n    const data = await this\n      ._personService\n      .getPersonBasicDataById(idAnsprechperson);\n\n    this.telefonAnsprechperson = data.Telefon;\n    this.updateAnsprechpersonButtons();\n  }\n  private dispatchAnsprechpersonChanged(idAnsprechperson: number, idAnsprechpersonOld?: number) {\n    this._modelUtilsService.setDirty(this.mainModel);\n\n    const event = new CustomEvent(\"id-ansprechperson-changed\", {\n      detail: {\n        sender: this,\n        value: idAnsprechperson,\n        previousValue: idAnsprechpersonOld\n      },\n      bubbles: true\n    });\n\n    this._element.dispatchEvent(event);\n  }\n  private setGeschaeftspartnerNummer(nummer: any) {\n    if (nummer) {\n      nummer = nummer.toString();\n    }\n    else {\n      nummer = \"\";\n    }\n\n    if (this.geschaeftspartnerNummer) {\n      this.geschaeftspartnerNummer.setOption({\n        value: nummer,\n        isValid: true\n      });\n    } else {\n      this.geschaeftspartnerNummerOptions.value = nummer;\n    }\n\n    this.updateGeschaeftspartnerButtons();\n  }\n  private setMainModelDirty() {\n    if (!this.mainModel) {\n      return;\n    }\n\n    this._modelUtilsService.setDirty(this.mainModel);\n  }\n\n  private updateGeschaeftspartnerButtons(editor: DevExpress.ui.dxTextBox = null) {\n    if (!editor) {\n      if (this.geschaeftspartnerNummer && this.geschaeftspartnerNummer.instance) {\n        editor = this.geschaeftspartnerNummer.instance;\n      }\n    }\n\n    if (!editor) {\n      return;\n    }\n\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (this.idGeschaeftspartner) {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-pencil\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: (e) => {\n            if (e.event && (<any>e.event).shiftKey) {\n              this.openGeschaeftspartnerInNewTab();\n              return;\n            }\n\n            this.openGeschaeftspartnerPopup();\n          }\n        }\n      });\n    } else {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            this.openGeschaeftspartnerPopup();\n          }\n        }\n      });\n    }\n\n    if (this.telefon) {\n      buttons.push({\n        location: \"after\",\n        name: \"telefon\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-phone\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            location.href = `tel:${this.telefon.replace(/[^\\+0-9.]/g, \"\")}`;\n          }\n        }\n      });\n    }\n\n    if (editor.option(\"value\")) {\n      buttons.push({\n        location: \"after\",\n        name: \"clear\"\n      });\n    }\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n  private openGeschaeftspartnerInNewTab() {\n    const url = this._restService.getViewUrl(\n      \"#ERP/Stammdaten/Geschaeftspartner/\"\n      .concat(this.idGeschaeftspartner.toString()));\n\n    window.open(url, \"_blank\");\n  }\n  private openGeschaeftspartnerPopup() {\n    if (this._customEditPopupService.geschaeftspartnerEditPopup.isVisible) {\n      this.openGeschaeftspartnerInNewTab();\n      return;\n    }\n\n    this._customEditPopupService.geschaeftspartnerEditPopup.show({\n      mappings: { \"$id\": this.idGeschaeftspartner || 0 },\n      savedCallback: async (form) => {\n        if (this.idGeschaeftspartner) {\n          await this.idGeschaeftspartnerChanged(this.idGeschaeftspartner);\n          \n          if (!this.isReadOnlyChecked && !this.isDiverserGeschaeftspartner && this.adressePropertyName) {\n            this.updateAdresse(this.idGeschaeftspartner);\n            this.setMainModelDirty();\n\n            const event = new CustomEvent(\"geschaeftspartner-data-changed\", {\n              detail: {\n                sender: this,\n                value: this.idGeschaeftspartner\n              },\n              bubbles: true\n            });\n      \n            this._element.dispatchEvent(event);\n          }\n\n          return;\n        }\n\n        const model = form.models.modelWithKeyId;\n        const data = form.models.data[model.id];\n\n        if (!data || !data.Id) {\n          return;\n        }\n\n        this.setGeschaeftpartnerById(data.Id);\n      }\n    });\n  }\n\n  private updateAnsprechpersonButtons(editor: DevExpress.ui.dxSelectBox = null) {\n    if (!editor) {\n      if (this.ansprechperson && this.ansprechperson.instance) {\n        editor = this.ansprechperson.instance;\n      }\n    }\n\n    if (!editor) {\n      return;\n    }\n\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (this.idAnsprechperson) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-pencil\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: (e) => {\n            if (e.event && (<any>e.event).shiftKey) {\n              this.openAnsprechpersonInNewTab();\n              return;\n            }\n\n            this.openAnsprechpersonPopup();\n          }\n        }\n      });\n    } else if (this.idGeschaeftspartner && !this.isReadOnlyAnsprechperson) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            this.openAnsprechpersonPopup();\n          }\n        }\n      });\n    }\n\n    if (this.telefonAnsprechperson) {\n      buttons.push({\n        location: \"after\",\n        name: \"telefon\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-phone\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            location.href = `tel:${this.telefonAnsprechperson.replace(/[^\\+0-9.]/g, \"\")}`;\n          }\n        }\n      });\n    }\n    \n    if (editor.option(\"value\")) {\n      buttons.push({\n        location: \"after\",\n        name: \"clear\"\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"dropDown\"\n    });\n    \n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n  private openAnsprechpersonInNewTab() {\n    const url = this._restService.getViewUrl(\n      \"#ERP/Stammdaten/Person/\"\n      .concat(this.idAnsprechperson.toString()));\n\n    window.open(url, \"_blank\");\n  }\n  private openAnsprechpersonPopup() {\n    if (this._customEditPopupService.personEditPopup.isVisible) {\n      this.openAnsprechpersonInNewTab();\n      return;\n    }\n\n    this._customEditPopupService.personEditPopup.show({\n      mappings: { \"$id\": this.idAnsprechperson || 0 },\n      setValuesOnModelWithKeyIdLoaded: {\n        IdGeschaeftspartner: this.idGeschaeftspartner\n      },\n      closeCallback: (form) => {\n        (<DevExpress.data.DataSource>this.ansprechpersonOptions.dataSource).reload();\n        \n        if (this.idAnsprechperson) {\n          this.idAnsprechpersonChanged(this.idAnsprechperson);\n          return;\n        }\n\n        const model = form.models.modelWithKeyId;\n        const data = form.models.data[model.id];\n\n        if (!data || !data.Id) {\n          return;\n        }\n\n        this.idAnsprechperson = data.Id;\n      }\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../adresse/adresse\\\"></require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"geschaeftspartnerNummerOptions\\\" view-model.ref=\\\"geschaeftspartnerNummer\\\" validator.bind=\\\"geschaeftspartnerValidationOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <adresse view-model.ref=\\\"adresseElement\\\" id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\" main-model.bind=\\\"mainModel\\\" id-adresse.bind=\\\"idAdresse\\\" adresse-property-name.bind=\\\"adressePropertyName\\\" is-adresse-read-only.bind=\\\"isAdresseReadOnly\\\"></adresse> </div> <div class=\\\"col-xs-12 t--has-editor-caption erp--widget-with-options-container\\\" if.bind=\\\"showAnsprechperson\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: adresse.ansprechperson\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"ansprechpersonOptions\\\" view-model.ref=\\\"ansprechperson\\\" class=\\\"erp--widget\\\"></dx-widget> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject } from \"aurelia-framework\";\nimport { StartupService } from '../../services/export';\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class HeaderCommands {\n  private _startupInfoLoaded: Subscription;\n\n  constructor(\n    private _startupService: StartupService,\n    private _eventAggregator: EventAggregator) { }\n\n  hasProjektzeiterfassung: boolean;\n  hasMailImport: boolean;\n  hasArbeitszeit: boolean;\n\n  bind() {\n    this.update();\n    this._startupInfoLoaded = this._eventAggregator.subscribe(\"startupInfo:loaded\", () => this.update());\n  }\n  unbind() {\n    this._startupInfoLoaded.dispose();\n    this._startupInfoLoaded = null;\n  }\n\n  private update() {\n    const lizenz = this._startupService.startupInfo.Lizenz;\n\n    this.hasProjektzeiterfassung = lizenz.HasProjektzeiterfassung;\n    this.hasMailImport = lizenz.HasMailImport;\n    this.hasArbeitszeit = lizenz.HasArbeitszeit;\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./header-commands.less\\\"></require> <require from=\\\"../aufgabe-command/aufgabe-command\\\"></require> <require from=\\\"../benachrichtigung-command/benachrichtigung-command\\\"></require> <require from=\\\"../passwort-aendern/passwort-aendern\\\"></require> <require from=\\\"../mail-command/mail-command\\\"></require> <require from=\\\"../zugriff-historie-command/zugriff-historie-command\\\"></require> <require from=\\\"../projekt-taetigkeit-buchung-command/projekt-taetigkeit-buchung-command\\\"></require> <require from=\\\"../arbeitszeit-stempeln-command/arbeitszeit-stempeln-command\\\"></require> <mail-command if.bind=\\\"hasMailImport\\\"></mail-command> <aufgabe-command></aufgabe-command> <benachrichtigung-command></benachrichtigung-command> <passwort-aendern></passwort-aendern> <zugriff-historie-command></zugriff-historie-command> <projekt-taetigkeit-buchung-command if.bind=\\\"hasProjektzeiterfassung\\\"></projekt-taetigkeit-buchung-command> <arbeitszeit-stempeln-command if.bind=\\\"hasArbeitszeit\\\"></arbeitszeit-stempeln-command> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".header-command-popover-content {\\n  padding: 12px;\\n}\\n.t--header-command-badge.animating,\\n.t--ribbon-toolbar-badge.animating {\\n  opacity: 0;\\n  transform: scale(1.5, 1.5);\\n  transition: transform ease-in-out 0.25s, opacity ease-in-out 0.25s;\\n}\\n.t--header-command-badge,\\n.t--ribbon-toolbar-badge {\\n  transition: transform ease-in-out 0.25s, opacity ease-in-out 0.25s;\\n}\\n.t--header-command-has-new-version i {\\n  color: #C0392B;\\n  animation: rotate-element 1s both infinite;\\n  -webkit-font-smoothing: antialiased;\\n}\\n.t--header-command-has-new-version i + div {\\n  white-space: pre;\\n  text-align: center;\\n}\\n@keyframes rotate-element {\\n  0% {\\n    transform: scale(1);\\n    opacity: 0.2;\\n  }\\n  50% {\\n    transform: scale(1.1);\\n    opacity: 1;\\n  }\\n  100% {\\n    transform: scale(1);\\n    opacity: 0.2;\\n  }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../../framework/base/export\";\nimport { RestService } from \"./../../../../framework/base/services/rest-service\";\n\n@autoinject\nexport class BestellungStreckengeschaeft {\n  constructor(\n    private _restService: RestService) { }\n\n  @bindable @observable idAuftrag: number;\n  lieferadresse: any;\n  lieferadresseAnsprechperson: any;\n  isVisible: boolean = false;\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n    if (this.idAuftrag) {\n      this.loadData();\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idAuftragChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (this.idAuftrag) {\n      const auftrag = await this._restService.get({\n        url: `${this._restService.getWebApiUrl(\"ERP/Verkauf/Auftrag\")}/${this.idAuftrag}`,\n        getOptions: {\n          expand: {\n            LieferortAdresse: {\n              columns: [\"Firmenbez1\", \"Firmenbez2\", \"Firmenbez3\", \"Strasse\", \"Ort\", \"PLZ\", \"IdLand\"],\n              expand: {\n                Land: {\n                  columns: [\"Bezeichnung\"]\n                }\n              }\n            },\n            LieferortAnsprechperson: {\n              columns: [\"IdAnrede\", \"Vorname\", \"Nachname\"],\n              expand: {\n                Anrede: {\n                  columns: [\"Bezeichnung\"]\n                }\n              }\n            }\n          }\n        }\n      });\n      if (auftrag.IsStreckengeschaeft) {\n        this.lieferadresse = auftrag.LieferortAdresse;\n        this.lieferadresseAnsprechperson = auftrag.LieferortAnsprechperson;\n      }\n    } else {\n      this.lieferadresse = null;\n      this.lieferadresseAnsprechperson = null;\n    }\n    this.isVisible = this.lieferadresse != null;\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./bestellung-streckengeschaeft.less\\\"></require> <h2 tr=\\\"key: infobar.lieferadresse_aus_auftrag\\\"></h2> <div class=\\\"erp--infobar-bestellung-streckengeschaeft-info\\\"> <div class=\\\"erp--infobar-bestellung-streckengeschaeft__lieferadresse\\\"> <div> ${lieferadresse.Firmenbez1} </div> <div if.bind=\\\"lieferadresse.Firmebez2\\\"> ${lieferadresse.Firmenbez2} </div> <div if.bind=\\\"lieferadresse.Firmebez3\\\"> ${lieferadresse.Firmenbez3} </div> <div> ${lieferadresse.Strasse} </div> <div> <span>${lieferadresse.Land.Bezeichnung}</span> <span>${lieferadresse.PLZ}</span> <span>${lieferadresse.Ort}</span> </div> <div if.bind=\\\"lieferadresseAnsprechperson\\\"> ${lieferadresseAnsprechperson.Anrede.Bezeichnung} ${lieferadresseAnsprechperson.Vorname} ${lieferadresseAnsprechperson.Nachname} </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-bestellung-streckengeschaeft__lieferadresse > div {\\n  padding-bottom: 8px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, OverrideContext, observable } from \"aurelia-framework\";\nimport { ScopeContainer } from '../../../../framework/base/export';\nimport { OnInfobarDynFeldRequestEvent, OnInfobarDynFeldRequest } from '../../../../framework-data/events';\nimport { WebEventService } from '../../../../framework/base/services/web-event-service';\n\n@autoinject\nexport class DynamischeFelder {\n  private _loadedId: number;\n\n  constructor(\n    private webEvent: WebEventService\n  ) {}\n\n  @bindable @observable id: number;\n  @bindable titel: string;\n\n  isVisible: boolean = false;\n  itemList: any[] = [];\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n  attached() {\n    this.loadData();\n  }\n  idChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (this._loadedId == this.id) {\n      return;\n    }\n\n    this._loadedId = this.id;\n    if (this.id) {\n      const result: OnInfobarDynFeldRequest = await this.webEvent.execute(new OnInfobarDynFeldRequestEvent({\n        Id: this.id\n      }));\n\n      const isVisible = result && result.ItemList.length > 0;\n      if (isVisible) {\n        this.itemList = result.ItemList;\n        this.isVisible = isVisible;\n      } else {\n        this.isVisible = isVisible;\n      }\n    } else {\n      this.isVisible = false;\n    }\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./dynamische-felder.less\\\"></require> <h2 tr=\\\"key.bind: titel\\\"></h2> <div class=\\\"erp--infobar-dynamische-felder-item\\\" repeat.for=\\\"item of itemList\\\"> <div if.bind=\\\"item.Typ == 4\\\"> <div class=\\\"erp--infobar-dynamische-felder-item-bez\\\"> ${item.Bezeichnung} </div> <div innerhtml.bind=\\\"item.Wert\\\"></div> </div> <div if.bind=\\\"item.Typ == 6\\\"> <div class=\\\"erp--infobar-dynamische-felder-item-bez\\\"> ${item.Bezeichnung} </div> <div class=\\\"erp--infobar-dynamische-felder-item-multiline-text\\\">${item.Wert}</div> </div> <div if.bind=\\\"item.Typ != 4 && item.Typ != 6\\\"> <span class=\\\"erp--infobar-dynamische-felder-item-bez\\\"> ${item.Bezeichnung}: </span> <span> ${item.Wert} </span> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-dynamische-felder-item {\\n  margin-left: 6px;\\n  max-width: 100%;\\n  overflow: hidden;\\n}\\n.erp--infobar-dynamische-felder-item .erp--infobar-dynamische-felder-item-bez {\\n  font-weight: bold;\\n}\\n.erp--infobar-dynamische-felder-item .erp--infobar-dynamische-felder-item-multiline-text {\\n  white-space: pre-line;\\n}\\n.erp--infobar-dynamische-felder-item + .erp--infobar-dynamische-felder-item {\\n  margin-top: 6px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { WebEventService } from '../../../../framework/base/export';\nimport { OnFehlerRequestEvent, OnFehlerRequest } from '../../../../framework-data/events';\n\n@autoinject\nexport class Fehler {\n  private _timeout: any;\n\n  constructor(\n    private webEventService: WebEventService\n  ) {}\n\n  @bindable @observable idGeschaeftspartner: number;\n  @bindable @observable idRechnungsort: number;\n  @bindable @observable idArtikel: number;\n\n  fehlerList: any[] = [];\n  isVisible: boolean = false;\n\n  idGeschaeftspartnerChanged() {\n    this.loadFehler();\n  }\n  idRechnungsortChanged() {\n    this.loadFehler();\n  }\n  idArtikelChanged() {\n    this.loadFehler();\n  }\n\n  private loadFehler() {\n    if (this._timeout) {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    }\n\n    this._timeout = setTimeout(async () => {\n      const result: OnFehlerRequest = await this.webEventService.execute(new OnFehlerRequestEvent({\n        IdArtikel: this.idArtikel,\n        IdGeschaeftspartner: this.idGeschaeftspartner,\n        IdRechnungsort: this.idRechnungsort\n      }));\n\n      this.fehlerList = result && result.FehlerList\n        ? result.FehlerList\n        : [];\n\n      this.isVisible = this.fehlerList.length > 0;\n    }, 100);\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./fehler.less\\\"></require> <h2 class=\\\"fehler-header\\\" tr=\\\"key: infobar.wichtige_info\\\"></h2> <ul class=\\\"fehler-list\\\"> <li repeat.for=\\\"item of fehlerList\\\"> ${item} </li> </ul> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".fehler-header {\\n  background-color: #c0392b;\\n  color: white;\\n  padding: 10px;\\n  margin-bottom: 5px;\\n}\\n.fehler-list {\\n  padding-left: 20px;\\n  list-style: square;\\n}\\n.fehler-list > li {\\n  padding-bottom: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../../framework/base/export\";\nimport { GeschaeftspartnerService } from \"./../../../services/geschaeftspartner-service\";\n\n@autoinject\nexport class GeschaeftspartnerInfo {\n  constructor(\n    private _geschaeftspartnerService: GeschaeftspartnerService) { }\n\n  @bindable @observable idGeschaeftspartner: number;\n  geschaeftspartner: any;\n  isVisible: boolean = false;\n  bankverbindungList: any[] = [];\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n    if (this.idGeschaeftspartner) {\n      this.loadData();\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idGeschaeftspartnerChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (this.idGeschaeftspartner) {\n      this.geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.idGeschaeftspartner, false);\n      const bankverbindungWhere = [[\"GueltigVon\", \"<=\", new Date()], [\"GueltigBis\", \">=\", new Date()]];\n      this.bankverbindungList = await this._geschaeftspartnerService.getGeschaeftspartnerBankverbindungList(this.idGeschaeftspartner, bankverbindungWhere);\n    } else {\n      this.bankverbindungList = [];\n    }\n    this.isVisible = this.geschaeftspartner.UIDNummer || (this.bankverbindungList && this.bankverbindungList.length > 0);\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./geschaeftspartner-info.less\\\"></require> <div class=\\\"erp--infobar-geschaeftspartner-info\\\"> <div class=\\\"erp--infobar-geschaeftspartner-info__uid\\\" if.bind=\\\"geschaeftspartner.UIDNummer\\\"> <div class=\\\"erp--infobar-geschaeftspartner-info__bold\\\" tr=\\\"key: infobar.uid_nummer\\\"></div> <div> ${geschaeftspartner.UIDNummer} </div> </div> <div class=\\\"erp--infobar-geschaeftspartner-info__bankverbindung erp--infobar-geschaeftspartner-info__bold\\\" if.bind=\\\"bankverbindungList.length > 0\\\"> <div tr=\\\"key: infobar.iban\\\"></div> <div tr=\\\"key: infobar.bic\\\"></div> </div> <div repeat.for=\\\"item of bankverbindungList\\\" class=\\\"erp--infobar-geschaeftspartner-info__bankverbindung\\\"> <div> ${item.IBAN} </div> <div> ${item.BIC} </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-geschaeftspartner-info {\\n  display: grid;\\n  grid-gap: 8px;\\n}\\n.erp--infobar-geschaeftspartner-info__bankverbindung {\\n  display: grid;\\n  grid-gap: 1px;\\n  background-color: #ddd;\\n  border-bottom: 1px solid #ddd;\\n  grid-template-columns: 1fr 1fr;\\n}\\n.erp--infobar-geschaeftspartner-info__bankverbindung > div {\\n  padding: 6px;\\n  background-color: #F5F5F5;\\n}\\n.erp--infobar-geschaeftspartner-info__uid {\\n  display: grid;\\n  grid-gap: 8px;\\n  grid-template-columns: 1fr;\\n}\\n.erp--infobar-geschaeftspartner-info__uid > div {\\n  padding-left: 6px;\\n  background-color: #F5F5F5;\\n}\\n.erp--infobar-geschaeftspartner-info__bold {\\n  font-weight: bold;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, OverrideContext } from \"aurelia-framework\";\nimport { WebEventService } from '../../../../framework/base/services/web-event-service';\nimport { OnInfoBVRohwareRequestEvent, OnInfoBVRohwareRequest } from '../../../../framework-data/events';\nimport { LocationService } from '../../../../framework/base/export';\n\n@autoinject\nexport class InfoBvRohware {\n  private _loadTimeout: any;\n\n  constructor(\n    private locationService: LocationService,\n    private webEvent: WebEventService\n  ) {}\n\n  @bindable @observable typeName: string;\n  @bindable @observable idArtikel: number;  \n  @bindable @observable idFiliale: number;\n\n  isVisible: boolean = false;\n  data: OnInfoBVRohwareRequest;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.loadData();\n  }\n\n  typeNameChanged() {\n    this.loadData();\n  }\n  idFilialeChanged() {\n    this.loadData();\n  }\n  idArtikelChanged() {\n    this.loadData();\n  }\n\n  onItemClick(list: any[], item: any) {\n    if (!item.IdArtikel) {\n      return;\n    }\n\n    this.locationService.goTo({\n      url: \"ERP/Stammdaten/Artikel/\".concat(item.IdArtikel),\n      clearStack: false,\n      viewScrollInfo: {\n        maxCount: list.length,\n        index: list.findIndex(c => c == item),\n        getNextKey: (index) => {\n          if (list.length <= index) {\n            return null;\n          }\n\n          return list[index].IdArtikel;\n        }\n      }\n    })\n  }\n\n  private loadData() {\n    this.data = null;\n\n    if (this.idArtikel && (this.idFiliale || this.typeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\")) {\n      if (this._loadTimeout) {\n        clearTimeout(this._loadTimeout);\n      }\n\n      this._loadTimeout = setTimeout(async () => {\n        this.data = await this.webEvent.execute(new OnInfoBVRohwareRequestEvent({\n          IdArtikel: this.idArtikel,\n          IdFiliale: this.idFiliale || 0\n        }));\n  \n        this.isVisible = this.data.DetailFWList.length > 0\n          || this.data.DetailRWList.length > 0\n          || this.data.DetailVerwandtList.length > 0;\n      }, 100);\n      \n    } else {\n      this.isVisible = false;\n    }\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./info-bv-rohware.less\\\"></require> <h2 tr=\\\"key: infobar.stkl_info\\\"></h2> <div class=\\\"erp--infobar-info-bv-rohware-grid-2\\\"> <div class=\\\"erp--infobar-info-bv-rohware-header\\\" tr=\\\"key: infobar.bestand_eigen\\\"></div> <div title=\\\"${data.Bestand | format:'n2'} ${data.Einheit}\\\">${data.Bestand | format:'n2'}</div> </div> <div if.bind=\\\"data.BestandFW\\\" class=\\\"erp--infobar-info-bv-rohware-grid-2\\\"> <div class=\\\"erp--infobar-info-bv-rohware-header\\\" tr=\\\"key: infobar.bestand_in_fw\\\"></div> <div title=\\\"${data.BestandFW | format:'n2'} ${data.Einheit}\\\">${data.BestandFW | format:'n2'}</div> </div> <div if.bind=\\\"data.DetailFWList.length > 0\\\"> <div class=\\\"erp--infobar-info-bv-rohware-header-table\\\" tr=\\\"key: infobar.fw_mit_artikel\\\"></div> <div class=\\\"erp--infobar-info-bv-rohware-grid-2 erp--infobar-info-bv-rohware-hover\\\" repeat.for=\\\"item of data.DetailFWList\\\" click.delegate=\\\"onItemClick(data.DetailFWList, item)\\\"> <div title=\\\"${item.Nummer}: ${item.Bezeichnung}\\\">${item.Nummer}: ${item.Bezeichnung}</div> <div title=\\\"${item.Bestand | format:'n2'} ${item.Einheit}\\\">${item.Bestand | format:'n2'}</div> </div> </div> <div if.bind=\\\"data.DetailRWList.length > 0\\\"> <div class=\\\"erp--infobar-info-bv-rohware-header-table erp--infobar-info-bv-rohware-grid-2\\\"> <div tr=\\\"key: infobar.rw_mit_artikel\\\"></div> <div tr=\\\"key: infobar.bestand\\\"></div> </div> <div class=\\\"erp--infobar-info-bv-rohware-grid-2 erp--infobar-info-bv-rohware-hover\\\" repeat.for=\\\"item of data.DetailRWList\\\" click.delegate=\\\"onItemClick(data.DetailRWList, item)\\\"> <div title=\\\"${item.Nummer}: ${item.Bezeichnung}\\\">${item.Nummer}: ${item.Bezeichnung}</div> <div title=\\\"${item.Bestand | format:'n2'} ${item.Einheit}\\\">${item.Bestand | format:'n2'}</div> </div> </div> <div if.bind=\\\"data.DetailVerwandtList.length > 0\\\"> <div class=\\\"erp--infobar-info-bv-rohware-header-table erp--infobar-info-bv-rohware-grid-2\\\"> <div tr=\\\"key: infobar.verwandte_artikel\\\"></div> <div tr=\\\"key: infobar.bestand\\\"></div> </div> <div class=\\\"erp--infobar-info-bv-rohware-grid-2 erp--infobar-info-bv-rohware-hover\\\" repeat.for=\\\"item of data.DetailVerwandtList\\\" click.delegate=\\\"onItemClick(data.DetailVerwandtList, item)\\\"> <div title=\\\"${item.Nummer}: ${item.Bezeichnung}\\\">${item.Nummer}: ${item.Bezeichnung}</div> <div title=\\\"${item.Bestand | format:'n2'} ${item.Einheit}\\\">${item.Bestand | format:'n2'}</div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-info-bv-rohware-header {\\n  font-weight: bold;\\n}\\n.erp--infobar-info-bv-rohware-header-table {\\n  margin-top: 20px;\\n  margin-bottom: 5px;\\n  font-weight: bold;\\n}\\n.erp--infobar-info-bv-rohware-grid-2 {\\n  display: grid;\\n  grid-gap: 1px;\\n  background-color: #ddd;\\n  border-bottom: 1px solid #ddd;\\n  grid-template-columns: 1fr 70px;\\n}\\n.erp--infobar-info-bv-rohware-grid-2 > div {\\n  padding: 6px;\\n  background-color: #F5F5F5;\\n}\\n.erp--infobar-info-bv-rohware-grid-2 > div:first-child {\\n  overflow-x: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.erp--infobar-info-bv-rohware-grid-2 > div:nth-child(2) {\\n  text-align: right;\\n}\\n.erp--infobar-info-bv-rohware-grid-2.erp--infobar-info-bv-rohware-hover {\\n  cursor: pointer;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, Scope, OverrideContext } from \"aurelia-framework\";\nimport { FormBase } from \"./../../../framework/forms/classes/form-base\";\nimport { RestService } from \"./../../../framework/base/services/rest-service\";\n\n@autoinject\nexport class Infobar {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  scope: Scope;\n  form: FormBase;\n\n  data: any;\n  idGeschaeftspartner: number;\n  idRechnungsort: number;\n  idArtikel: number;\n  idFiliale: number;\n  idProjekt: number;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.form = bindingContext;\n\n    this.form.callOnBind(() => {\n      if (this.form.models.modelWithKeyId) {\n        this.observe(null);\n        this.observe(\"IdKunde\");\n        this.observe(\"IdLieferant\");\n        this.observe(\"IdGeschaeftspartner\");\n        this.observe(\"IdRechnungsort\");\n        this.observe(\"IdArtikel\");\n        this.observe(\"IdLieferfiliale\");\n        this.observe(\"IdCboProjekt\");\n\n        switch (this.form.models.modelWithKeyId.webApiAction) {\n          case \"ERP/Verkauf/Angebotsposition\": {\n            this.observe(\"IdAngebot\");\n            break;\n          }\n          case \"ERP/Verkauf/Auftragsposition\": {\n            this.observe(\"IdAuftrag\");\n            break;\n          }\n          case \"ERP/Verkauf/Lieferscheinposition\": {\n            this.observe(\"IdLieferschein\");\n            break;\n          }\n          case \"ERP/Verkauf/Fakturaposition\": {\n            this.observe(\"IdFaktura\");\n            break;\n          }\n          case \"ERP/Verkauf/Kundenreklamationsposition\": {\n            this.observe(\"IdKundenreklamation\");\n            break;\n          }\n          case \"ERP/Einkauf/Bestellungsposition\": {\n            this.observe(\"IdBestellung\");\n            break;\n          }\n          case \"ERP/Einkauf/Warenuebernahmeposition\": {\n            this.observe(\"IdWarenuebernahme\");\n            break;\n          }\n          case \"ERP/Einkauf/Eingangsrechnungsposition\": {\n            this.observe(\"IdEingangsrechnung\");\n            break;\n          }\n          case \"ERP/Lager/Artikelverleih\": {\n            this.observe(\"IdFiliale\");\n            break;\n          }\n        }\n      }\n    });\n  }\n  unbind() {\n    this.scope = null;\n  }\n\n  async dataChanged(propertyName: string) {\n    if (!this.data || !propertyName) {\n      this.idGeschaeftspartner = null;\n      this.idArtikel = null;\n      this.idFiliale = null;\n      this.idProjekt = null;\n      this.idRechnungsort = null;\n    }\n\n    if (!this.data) {\n      return;\n    }\n\n    switch (this.data.TypeName) {\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Angebot\":\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\":\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferschein\":\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamation\": {\n        if (!propertyName || propertyName == \"IdKunde\") {\n          this.idGeschaeftspartner = this.data.IdKunde;\n        }\n        if (!propertyName || propertyName == \"IdLieferfiliale\") {\n          this.idFiliale = this.data.IdLieferfiliale;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        if (!propertyName || propertyName == \"IdRechnungsort\") {\n          this.idRechnungsort = this.data.IdRechnungsort;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Angebotsposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdAngebot\") && this.data.IdAngebot) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Verkauf/Angebot\", this.data.IdAngebot);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Auftragsposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdAuftrag\") && this.data.IdAuftrag) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Verkauf/Auftrag\", this.data.IdAuftrag);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferscheinposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdLieferschein\") && this.data.IdLieferschein) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Verkauf/Lieferschein\", this.data.IdLieferschein);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamationsposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdKundenreklamation\") && this.data.IdKundenreklamation) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Verkauf/Kundenreklamation\", this.data.IdKundenreklamation);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\":\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Mahnung\": {\n        if (!propertyName || propertyName == \"IdRechnungsort\") {\n          this.idGeschaeftspartner = this.data.IdRechnungsort;\n          this.idRechnungsort = this.data.IdRechnungsort;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellung\":\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahme\":\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnung\": {\n        if (!propertyName || propertyName == \"IdLieferant\") {\n          this.idGeschaeftspartner = this.data.IdLieferant;\n        }\n        if (!propertyName || propertyName == \"IdLieferfiliale\") {\n          this.idFiliale = this.data.IdLieferfiliale;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellungsposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdBestellung\") && this.data.IdBestellung) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Einkauf/Bestellung\", this.data.IdBestellung);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahmeposition\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if ((!propertyName || propertyName == \"IdWarenuebernahme\") && this.data.IdWarenuebernahme) {\n          this.idFiliale = await this.getIdLieferfiliale(\"ERP/Einkauf/Warenuebernahme\", this.data.IdWarenuebernahme);\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Produktion.ProdAuftrag\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if (!propertyName || propertyName == \"IdLieferfiliale\") {\n          this.idFiliale = this.data.IdLieferfiliale;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellvorschlag\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if (!propertyName || propertyName == \"IdLieferfiliale\") {\n          this.idFiliale = this.data.IdLieferfiliale;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Lager.Artikelverleih\": {\n        if (!propertyName || propertyName == \"IdArtikel\") {\n          this.idArtikel = this.data.IdArtikel;\n        }\n        if (!propertyName || propertyName == \"IdFiliale\") {\n          this.idFiliale = this.data.IdFiliale;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        if (!propertyName || propertyName == \"IdKunde\") {\n          this.idGeschaeftspartner = this.data.IdKunde;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Geschaeftspartner\": {\n        if (!propertyName) {\n          this.idGeschaeftspartner = this.data.Id;\n        }\n        if (!propertyName && this.data && this.data.Id && this.data.Geschaeftspartnerart && this.data.Geschaeftspartnerart.IsRechnungsadresse) {\n          this.idRechnungsort = this.data.Id;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.Artikel\": {\n        if (!propertyName) {\n          this.idArtikel = this.data.Id;\n        }\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Stammdaten.MailImportItem\": {\n        if (!propertyName || propertyName == \"IdGeschaeftspartner\") {\n          this.idGeschaeftspartner = this.data.IdGeschaeftspartner;\n        }\n        if (!propertyName || propertyName == \"IdProjekt\") {\n          this.idProjekt = this.data.IdProjekt;\n        }\n        break;\n      }\n      default: break;\n    }\n  }\n\n  private observe(propertyName: string) {\n    let property = `models.data.${this.form.models.modelWithKeyId.id}`;\n\n    if (propertyName) {\n      property += \".\".concat(propertyName);\n    }\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: property,\n      callback: (newVal) => {\n        if (!propertyName) {\n          this.data = newVal;\n        }\n\n        this.dataChanged(propertyName);\n      }\n    });\n  }\n  private async getIdLieferfiliale(action: string, id: number): Promise<number> {\n    const r = await this.rest.get({\n      url: this.rest.getWebApiUrl(`${action}/${id}`),\n      getOptions: {\n        columns: [\"IdLieferfiliale\"]\n      }\n    });\n\n    if (r && r.IdLieferfiliale) {\n      return r.IdLieferfiliale;\n    } else {\n      return null;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./verknuepfte-entitaet/verknuepfte-entitaet\\\"></require> <require from=\\\"./lagerbestand/lagerbestand\\\"></require> <require from=\\\"./notiz/notiz\\\"></require> <require from=\\\"./letzte-aktivitaeten/letzte-aktivitaeten\\\"></require> <require from=\\\"./zuletzt-gekaufte-artikel/zuletzt-gekaufte-artikel\\\"></require> <require from=\\\"./dynamische-felder/dynamische-felder\\\"></require> <require from=\\\"./offene-posten/offene-posten\\\"></require> <require from=\\\"./geschaeftspartner-info/geschaeftspartner-info\\\"></require> <require from=\\\"./bestellung-streckengeschaeft/bestellung-streckengeschaeft\\\"></require> <require from=\\\"./projekte/projekte\\\"></require> <require from=\\\"./info-bv-rohware/info-bv-rohware\\\"></require> <require from=\\\"./statistik-auftrag/statistik-auftrag\\\"></require> <require from=\\\"./statistik-projekt/statistik-projekt\\\"></require> <require from=\\\"./fehler/fehler\\\"></require> <require from=\\\"./infobar.less\\\"></require> <fehler id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\" id-artikel.bind=\\\"idArtikel\\\" id-rechnungsort.bind=\\\"idRechnungsort\\\"></fehler> <verknuepfte-entitaet data.bind=\\\"data\\\"></verknuepfte-entitaet> <geschaeftspartner-info if.bind=\\\"data && data.TypeName == 'TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnung'\\\" id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\"></geschaeftspartner-info> <notiz id.bind=\\\"data.Id\\\" id-artikel.bind=\\\"idArtikel\\\" id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\" id-projekt.bind=\\\"idProjekt\\\"></notiz> <bestellung-streckengeschaeft if.bind=\\\"data.Id > 0 && data.TypeName == 'TIP.ERP.Business.Entitaeten.Einkauf.Bestellung' && data.IdAuftrag != null\\\" id-auftrag.bind=\\\"data.IdAuftrag\\\"></bestellung-streckengeschaeft> <projekte id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\"></projekte> <offene-posten id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\"></offene-posten> <statistik-auftrag if.bind=\\\"data.Id > 0 && data.TypeName == 'TIP.ERP.Business.Entitaeten.Verkauf.Auftrag'\\\" id-auftrag.bind=\\\"data.Id\\\"></statistik-auftrag> <statistik-projekt if.bind=\\\"data.Id > 0 && data.TypeName == 'TIP.ERP.Business.Entitaeten.Stammdaten.Projekt'\\\" id-projekt.bind=\\\"data.Id\\\"></statistik-projekt> <div if.bind=\\\"idProjekt != data.Id\\\"> <dynamische-felder id.bind=\\\"idProjekt\\\" titel=\\\"infobar.dynamische-felder-projekt\\\"></dynamische-felder> </div> <div if.bind=\\\"idArtikel != data.Id\\\"> <dynamische-felder id.bind=\\\"idArtikel\\\" titel=\\\"infobar.dynamische-felder-artikel\\\"></dynamische-felder> </div> <div if.bind=\\\"idGeschaeftspartner != data.Id\\\"> <dynamische-felder id.bind=\\\"idGeschaeftspartner\\\" titel=\\\"infobar.dynamische-felder-gp\\\"></dynamische-felder> </div> <letzte-aktivitaeten id-geschaeftspartner.bind=\\\"idGeschaeftspartner\\\" id-artikel.bind=\\\"idArtikel\\\"></letzte-aktivitaeten> <zuletzt-gekaufte-artikel data.bind=\\\"data\\\" id-kunde.bind=\\\"idGeschaeftspartner\\\"></zuletzt-gekaufte-artikel> <lagerbestand id-artikel.bind=\\\"idArtikel\\\" id-filiale.bind=\\\"idFiliale\\\"></lagerbestand> <info-bv-rohware if.bind=\\\"data.TypeName == 'TIP.ERP.Business.Entitaeten.Einkauf.Bestellvorschlag' || data.TypeName == 'TIP.ERP.Business.Entitaeten.Stammdaten.Artikel'\\\" type-name.bind=\\\"data.TypeName\\\" id-artikel.bind=\\\"idArtikel\\\" id-filiale.bind=\\\"idFiliale\\\"></info-bv-rohware> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".infobar-item {\\n  display: block;\\n  margin-bottom: 18px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, OverrideContext, observable } from \"aurelia-framework\";\nimport { IListViewOptions, ListView } from \"../../../../framework/forms/elements/list-view/export\";\nimport { ScopeContainer, GlobalizationService, RestService, LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { OnLagerbestandRequestEvent, OnLagerbestandRequest } from '../../../../framework-data/events';\n\n@autoinject\nexport class Lagerbestand {\n  constructor(\n    private rest: RestService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private webEvent: WebEventService\n  ) { }\n\n  @bindable @observable idArtikel;\n  @bindable @observable idFiliale;\n\n  scopeContainer: ScopeContainer;\n\n  itemList: any[];\n\n  isVisible: boolean = false;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idFilialeChanged() {\n    this.loadData();\n  }\n  idArtikelChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (this.idArtikel) {\n      const result: OnLagerbestandRequest = await this.webEvent.execute(new OnLagerbestandRequestEvent({\n        IdArtikel: this.idArtikel,\n        IdFiliale: this.idFiliale || 0\n      }));\n\n      if (result.LagerbestandList.length > 0) {\n        result.LagerbestandList.forEach(item => {\n          const lines = [];\n          if (item.Bestand) {\n            lines.push(`${this.localization.translateOnce(\"infobar.bestand\")}: ${this.globalization.format(item.Bestand, \"n2\")}`);\n          }\n          if (item.Bestellt) {\n            lines.push(`${this.localization.translateOnce(\"infobar.bestellt\")}: ${this.globalization.format(item.Bestellt, \"n2\")}`);\n          }\n          if (item.Produktion) {\n            lines.push(`${this.localization.translateOnce(\"infobar.produktion\")}: ${this.globalization.format(item.Produktion, \"n2\")}`);\n          }\n          if (item.Auftrag) {\n            lines.push(`${this.localization.translateOnce(\"infobar.auftrag\")}: ${this.globalization.format(item.Auftrag, \"n2\")}`);\n          }\n          if (item.Reserviert) {\n            lines.push(`${this.localization.translateOnce(\"infobar.reserviert\")}: ${this.globalization.format(item.Reserviert, \"n2\")}`);\n          }\n          if (item.Frei) {\n            lines.push(`${this.localization.translateOnce(\"infobar.frei\")}: ${this.globalization.format(item.Frei, \"n2\")}`);\n          }\n\n          item[\"_info\"] = lines.join(\"\\n\");\n        });\n\n        this.itemList = result.LagerbestandList;\n        this.isVisible = true;\n      } else {\n        this.isVisible = false;\n      }\n    } else {\n      this.isVisible = false;\n    }\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./lagerbestand.less\\\"></require> <h2 tr=\\\"key: infobar.lagerbestand\\\"></h2> <div class=\\\"erp--infobar-lagerbestand-grid erp--infobar-lagerbestand-header\\\"> <div tr=\\\"key: infobar.lager\\\"></div> <div tr=\\\"key: infobar.frei\\\"></div> <div tr=\\\"key: infobar.schwimmend\\\"></div> </div> <div class=\\\"erp--infobar-lagerbestand-grid\\\" repeat.for=\\\"item of itemList\\\" title.bind=\\\"item._info\\\"> <div>${item.Bezeichnung}</div> <div>${item.Frei | format:'n2'}</div> <div>${item.Schwimmend | format:'n2'}</div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-lagerbestand-grid {\\n  display: grid;\\n  grid-gap: 1px;\\n  grid-template-columns: 1fr 84px 70px;\\n  background-color: #ddd;\\n  border-bottom: 1px solid #ddd;\\n}\\n.erp--infobar-lagerbestand-grid > div {\\n  padding: 6px;\\n  background-color: #F5F5F5;\\n}\\n.erp--infobar-lagerbestand-grid > div:first-child {\\n  text-overflow: ellipsis;\\n  overflow-x: hidden;\\n}\\n.erp--infobar-lagerbestand-grid > div:not(:first-child) {\\n  text-align: right;\\n}\\n.erp--infobar-lagerbestand-header {\\n  font-weight: bold;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, OverrideContext } from \"aurelia-framework\";\nimport { DataSourceService, LocalizationService, LocationService, ScopeContainer, WebEventService } from \"../../../../framework/base/export\";\nimport { IListViewOptions, ListView } from \"../../../../framework/forms/elements/list-view/export\";\nimport { PopupInfoService } from \"../../../../framework/forms/export\";\nimport { IdxSelectBoxComponent } from '../../../interfaces/export';\nimport { EntitaetInfoService } from \"../../../services/entitaet-info-service\";\nimport { OnCreateLogging, OnCreateLoggingEvent } from \"../../../../framework-data/events\";\n\n@autoinject\nexport class LetzteAktivitaeten {\n  private _currentTypeFilter: string;\n\n  constructor(\n    private _dataSourceService: DataSourceService,\n    private _entitaetInfoService: EntitaetInfoService,\n    private _locationService: LocationService,\n    private _popupInfoService: PopupInfoService,\n    private _localizationService: LocalizationService,\n    private _webEventService: WebEventService) { }\n\n  @bindable @observable idGeschaeftspartner;\n  @bindable @observable idArtikel;\n  @observable showLetzteAktivitaeten: boolean;\n\n  scopeContainer: ScopeContainer;\n\n\n  letzteAktivitaetenLadenButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Letzte Aktivitäten laden\",\n    onClick: (e) => {\n      this.showLetzteAktivitaeten = true;\n\n      const args: OnCreateLogging = {\n        Beschreibung: \"Letzte Aktivitäten Button geklickt\",\n        Ausgangspunkt: this.scopeContainer.scope.bindingContext.form.id\n      };\n\n      this._webEventService.execute(new OnCreateLoggingEvent(args));\n    }\n  };\n\n  typeFilterSelectBox: IdxSelectBoxComponent;\n  typeFilterSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"TypeName\",\n    placeholder: this._localizationService.translateOnce(\"infobar.filter_auswaehlen\"),\n    showClearButton: true,\n    items: [\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Angebot\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Lieferschein\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Zahlung\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Mahnung\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamation\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Kassen.KassaBeleg\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Einkauf.Bestellung\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahme\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnung\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Lager.Artikelverleih\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Produktion.ProdAuftrag\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Stammdaten.MailImportItem\"),\n      this.getTypeInfo(\"TIP.ERP.Business.Entitaeten.Stammdaten.BriefZuEmpfaenger\")\n    ],\n    onValueChangedByUser: (e) => {\n      this._currentTypeFilter = e.value;\n      this.refreshListView(false);\n    }\n  };\n\n  letzteAktivitaetenListView: ListView;\n  letzteAktivitaetenListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this._entitaetInfoService\n        .getUrl(e.item.TypeName, e.item.Id)\n        .then(r => {\n          this._popupInfoService.closeAllPopups().then(async pr => {\n            if (!pr) {\n              return;\n            }\n\n            const viewScrollInfo = await this.getViewScrollInfo(e);\n\n            this._locationService.goTo({\n              url: r,\n              viewScrollInfo: viewScrollInfo\n            });\n          });\n        });\n    }\n  };\n\n  isVisible: boolean = false;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n\n    this.showLetzteAktivitaeten = false;\n    this.isVisible = true;\n\n    this.letzteAktivitaetenListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer, {\n      webApiAction: \"ERP/Stammdaten/Entitaet\",\n      webApiColumns: [\"Id\", \"TypeName\", \"CboBezeichnung\"],\n      filters: [\n        { webApiCustomKey: \"InklIdStatusFarbe\", webApiCustomValue: \"true\" },\n        { webApiCustomKey: \"AddCboBezeichnung\", webApiCustomValue: \"true\" },\n        { webApiCustomKey: \"AddCboGeschaeftspartner\", webApiCustomValue: \"true\" },\n        { webApiCustomKey: \"AddCboArtikel\", webApiCustomValue: \"true\" }],\n      webApiOrderBy: [{ columnName: \"Id\", sortOrder: 1 }]\n    }, {\n      canLoad: () => {\n        return this.idGeschaeftspartner\n          || this.idArtikel;\n      },\n      getCustomWhere: () => {\n        const result = [];\n        \n        if (this.idGeschaeftspartner) {\n          result.push([\"IdCboGeschaeftspartner\", this.idGeschaeftspartner]);\n        }\n        else if (this.idArtikel) {\n          result.push([\"IdCboArtikel\", this.idArtikel]);\n        }\n\n        if (this._currentTypeFilter) {\n          result.push(this.getTypeNameFilter());\n        }\n\n        return result;\n      },\n      resultInterceptor: (data) => {\n        this.isVisible = !!this._currentTypeFilter\n          || data.count > 0;\n\n        return data;\n      }\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idGeschaeftspartnerChanged() {\n    this.isVisible = true;\n    this.showLetzteAktivitaeten = false;\n  }\n  idArtikelChanged() {\n    this.isVisible = true;\n    this.showLetzteAktivitaeten = false;\n  }\n\n  showLetzteAktivitaetenChanged() {\n    if (!this.showLetzteAktivitaeten) {\n      return;\n    }\n    this.refreshListView();\n  }\n\n  private getTypeInfo(typeName: string): any {\n    const info = this._entitaetInfoService.getEntitaetInfoByTypeName(typeName);\n\n    return {\n      TypeName: info.FullName,\n      Bezeichnung: info.Bezeichnung\n    };\n  }\n  private getTypeNameFilter(): any {\n    if (!this._currentTypeFilter) {\n      return;\n    }\n\n    const arr = [this._currentTypeFilter];\n\n    switch (this._currentTypeFilter) {\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Angebot\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Angebotsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Auftragsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferschein\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Lieferscheinposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Fakturaposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Mahnung\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Mahnungsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamation\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamationsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Bestellung\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Einkauf.Bestellungsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahme\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahmeposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnung\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Einkauf.Eingangsrechnungsposition\");\n        break;\n      }\n      case \"TIP.ERP.Business.Entitaeten.Kassen.KassaBeleg\": {\n        arr.push(\"TIP.ERP.Business.Entitaeten.Kassen.KassaBelegposition\");\n        break;\n      }\n      default: {\n        break;\n      }\n    }\n\n    const r: any = arr\n      .map(i => [\"TypeName\", i]);\n\n    if (r.length == 1) {\n      return r[0];\n    }\n\n    for (let i = 0; i < r.length - 1; i = i + 2) {\n      r.splice(i + 1, 0, \"or\");\n    }\n\n    return r;\n  }\n  private async getViewScrollInfo(e): Promise<any> {\n    const id = e.item.Id;\n    const typeName = e.item.TypeName;\n    const orderBy = [{ columnName: \"Aenderungsdatum\", sortOrder: 0 }];\n    const where = [];\n\n    const viewScrollInfo = await this._entitaetInfoService.createViewScrollInfo(\n      typeName,\n      where,\n      null,\n      orderBy,\n      id\n    );\n\n    return viewScrollInfo;\n  }\n  private refreshListView(clearCurrentTypeFilter: boolean = true) {\n    if (clearCurrentTypeFilter) {\n      this._currentTypeFilter = null;\n\n      if (this.typeFilterSelectBox && this.typeFilterSelectBox.instance) {\n        this.typeFilterSelectBox.setOption({\n          value: null\n        });\n      }\n    }\n\n    if (this.letzteAktivitaetenListView) {\n      this.letzteAktivitaetenListView.refresh(false);\n    }\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./letzte-aktivitaeten.less\\\"></require> <h2 tr=\\\"key: infobar.letzte-aktivitaeten\\\"></h2> <div if.bind=\\\"!showLetzteAktivitaeten\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"letzteAktivitaetenLadenButtonOptions\\\"></dx-widget> </div> <div else> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"typeFilterSelectBoxOptions\\\" view-model.ref=\\\"typeFilterSelectBox\\\"></dx-widget> <list-view options.bind=\\\"letzteAktivitaetenListViewOptions\\\" view-model.ref=\\\"letzteAktivitaetenListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"erp--text-with-leading-label-badge\\\"> <div class=\\\"${item.TypeBezeichnung ? '' : 'erp--empty-badge'}\\\" css=\\\"${item.StatusFarbe ? 'border-left: 4px solid ' + item.StatusFarbe : ''}\\\"> ${item.TypeBezeichnung} </div> <div class=\\\"letzte-aktivitaet-text-menu\\\"> <span>${item.CboBezeichnung}</span> <entitaet-menu data.bind=\\\"item\\\" hide-aenddat=\\\"true\\\"></entitaet-menu> </div> </div> </custom-template> </list-view> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".letzte-aktivitaet-text-menu {\\n  display: flex;\\n  align-items: center;\\n}\\n.letzte-aktivitaet-text-menu > span {\\n  flex-grow: 1;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, observable, bindable, OverrideContext } from 'aurelia-framework';\nimport { RestService } from '../../../../framework/base/services/rest-service';\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { NotificationTyp } from '../../../enumerations/notification-typ';\nimport { IListViewOptions, ListView } from '../../../../framework/forms/elements/list-view/export';\nimport { DataSourceService } from '../../../../framework/base/services/data-source-service';\nimport { ScopeContainer } from '../../../../framework/base/classes/scope-container';\nimport { IViewScrollInfo } from '../../../../framework/base/interfaces/view-scroll-info';\n\n@autoinject\nexport class Notiz {\n  private _notizAnzahlChangedSubscription: Subscription;\n\n  constructor(\n    private rest: RestService,\n    private dataSource: DataSourceService,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  @bindable @observable id: number;\n  @bindable @observable idGeschaeftspartner: number;\n  @bindable @observable idArtikel: number;\n  @bindable @observable idProjekt: number;\n\n  scopeContainer: ScopeContainer;\n\n  notizListView: ListView;\n  notizListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.onNotizClicked(e.item, this.notizListViewOptions);\n    }\n  }\n  geschaeftspartnerNotizListView: ListView;\n  geschaeftspartnerNotizListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.onNotizClicked(e.item, this.geschaeftspartnerNotizListViewOptions);\n    }\n  }\n  artikelNotizListView: ListView;\n  artikelNotizListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.onNotizClicked(e.item, this.artikelNotizListViewOptions);\n    }\n  }\n  projektNotizListView: ListView;\n  projektNotizListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.onNotizClicked(e.item, this.projektNotizListViewOptions);\n    }\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.notizListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Notiz\",\n        webApiColumns: [\"Id\", \"DisplayText\", \"AnlageDatum\"],\n        webApiWhere: [[\"IdVerknuepfteEntitaet\", {\n          \"isBound\": true,\n          \"expression\": \"id\"\n        }], [[\"GueltigBis\", \"null\"], \"or\", [\"GueltigBis\", \">=\", \"@Today()\"]]],\n        webApiOrderBy: [{columnName: \"IsWichtig\", sortOrder: 1}, {columnName: \"GueltigBis\", sortOrder: 0}, {columnName: \"Id\", sortOrder: 1}]\n      }\n    );\n    this.geschaeftspartnerNotizListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Notiz\",\n        webApiColumns: [\"Id\", \"DisplayText\", \"AnlageDatum\"],\n        webApiWhere: [[\"IdVerknuepfteEntitaet\", {\n          \"isBound\": true,\n          \"expression\": \"idGeschaeftspartner\"\n        }], [[\"GueltigBis\", \"null\"], \"or\", [\"GueltigBis\", \">=\", \"@Today()\"]]],\n        webApiOrderBy: [{columnName: \"IsWichtig\", sortOrder: 1}, {columnName: \"GueltigBis\", sortOrder: 0}, {columnName: \"Id\", sortOrder: 1}]\n      }\n    );\n    this.artikelNotizListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Notiz\",\n        webApiColumns: [\"Id\", \"DisplayText\", \"AnlageDatum\"],\n        webApiWhere: [[\"IdVerknuepfteEntitaet\", {\n          \"isBound\": true,\n          \"expression\": \"idArtikel\"\n        }], [[\"GueltigBis\", \"null\"], \"or\", [\"GueltigBis\", \">=\", \"@Today()\"]]],\n        webApiOrderBy: [{columnName: \"IsWichtig\", sortOrder: 1}, {columnName: \"GueltigBis\", sortOrder: 0}, {columnName: \"Id\", sortOrder: 1}]\n      }\n    );\n    this.projektNotizListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Notiz\",\n        webApiColumns: [\"Id\", \"DisplayText\", \"AnlageDatum\"],\n        webApiWhere: [[\"IdVerknuepfteEntitaet\", {\n          \"isBound\": true,\n          \"expression\": \"idProjekt\"\n        }], [[\"GueltigBis\", \"null\"], \"or\", [\"GueltigBis\", \">=\", \"@Today()\"]]],\n        webApiOrderBy: [{columnName: \"IsWichtig\", sortOrder: 1}, {columnName: \"GueltigBis\", sortOrder: 0}, {columnName: \"Id\", sortOrder: 1}]\n      }\n    );\n    \n    this._notizAnzahlChangedSubscription = this.eventAggregator.subscribe(\n      NotificationTyp.notizAnzahlChanged,\n      this.reloadNotizen.bind(this)\n    );\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this._notizAnzahlChangedSubscription.dispose();\n  }\n\n  reloadNotizen() {\n    if (this.notizListView) {\n      this.notizListView.refresh(false);\n    }\n    if (this.geschaeftspartnerNotizListView) {\n      this.geschaeftspartnerNotizListView.refresh(false);\n    }\n    if (this.artikelNotizListView) {\n      this.artikelNotizListView.refresh(false);\n    }\n    if (this.projektNotizListView) {\n      this.projektNotizListView.refresh(false);\n    }\n  }\n  onNotizClicked(notiz, listViewOptions: IListViewOptions) {\n    this.eventAggregator.publish(\n      NotificationTyp.notizShowEditPopup, {\n        id: notiz.Id,\n        viewScrollInfo: this.getViewScrollInfo(notiz, listViewOptions)\n      }\n    )\n  }\n  \n  private getViewScrollInfo(notiz, listViewOptions: IListViewOptions): IViewScrollInfo {\n    const dataSource = listViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(notiz);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n}\n","import { autoinject, bindable } from \"aurelia-framework\";\nimport { LocalizationService } from '../../../../framework/base/services/localization-service';\nimport { GlobalizationService } from '../../../../framework/base/services/globalization-service';\n\n@autoinject\nexport class NotizItem {\n  constructor(\n    private localizationService: LocalizationService,\n    private globalizationService: GlobalizationService\n  ) {}\n\n  @bindable item: any;\n  anlageinfo: string = \"\";\n\n  bind() {\n    if (this.item && this.item.AnlageBenutzer && this.item.AnlageDatum) {\n      this.anlageinfo = this.localizationService\n        .translateOnce(\n          \"erp_aendinfo.erstellt_von\", [\n            this.item.AnlageBenutzer, \n            this.globalizationService.format(this.item.AnlageDatum, \"d\"),\n            this.globalizationService.format(this.item.AnlageDatum, \"t\")]);\n    }\n  }\n}\n","// Module\nvar code = \"<template> <div class=\\\"erp--infobar-notiz\\\" title.bind=\\\"anlageinfo\\\"> <div if.bind=\\\"item.IsWichtig\\\" class=\\\"erp--infobar-notiz-wichtig\\\"> <i class=\\\"fa fa-exclamation-circle\\\"></i> </div> <div class=\\\"erp--infobar-notiz-text\\\"> ${item.DisplayText} </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template show.bind=\\\"notizListView.itemsOptions.totalItems > 0 || geschaeftspartnerNotizListView.itemsOptions.totalItems > 0 || artikelNotizListView.itemsOptions.totalItems > 0 || projektNotizListView.itemsOptions.totalItems > 0\\\" class=\\\"infobar-item\\\"> <require from=\\\"./notiz.less\\\"></require> <require from=\\\"./notiz-item\\\"></require> <div show.bind=\\\"notizListView.itemsOptions.totalItems > 0 && id != idGeschaeftspartner && id != idArtikel\\\"> <h2 tr=\\\"key: infobar.notizen_allgemein\\\"></h2> <list-view options.bind=\\\"notizListViewOptions\\\" view-model.ref=\\\"notizListView\\\"> <custom-template name=\\\"item\\\"> <notiz-item item.bind=\\\"item\\\"></notiz-item> </custom-template> </list-view> </div> <div show.bind=\\\"geschaeftspartnerNotizListView.itemsOptions.totalItems > 0\\\"> <h2 tr=\\\"key: infobar.notizen_gp\\\"></h2> <list-view options.bind=\\\"geschaeftspartnerNotizListViewOptions\\\" view-model.ref=\\\"geschaeftspartnerNotizListView\\\"> <custom-template name=\\\"item\\\"> <notiz-item item.bind=\\\"item\\\"></notiz-item> </custom-template> </list-view> </div> <div show.bind=\\\"artikelNotizListView.itemsOptions.totalItems > 0\\\"> <h2 tr=\\\"key: infobar.notizen_artikel\\\"></h2> <list-view options.bind=\\\"artikelNotizListViewOptions\\\" view-model.ref=\\\"artikelNotizListView\\\"> <custom-template name=\\\"item\\\"> <notiz-item item.bind=\\\"item\\\"></notiz-item> </custom-template> </list-view> </div> <div show.bind=\\\"projektNotizListView.itemsOptions.totalItems > 0\\\"> <h2 tr=\\\"key: infobar.notizen_projekt\\\"></h2> <list-view options.bind=\\\"projektNotizListViewOptions\\\" view-model.ref=\\\"projektNotizListView\\\"> <custom-template name=\\\"item\\\"> <notiz-item item.bind=\\\"item\\\"></notiz-item> </custom-template> </list-view> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-notiz {\\n  cursor: pointer;\\n  display: flex;\\n  align-items: center;\\n}\\n.erp--infobar-notiz .erp--infobar-notiz-wichtig {\\n  flex-shrink: 0;\\n  padding-right: 6px;\\n}\\n.erp--infobar-notiz .erp--infobar-notiz-wichtig i {\\n  color: #C1392D;\\n  font-size: 1.5em;\\n}\\n.erp--infobar-notiz .erp--infobar-notiz-text {\\n  flex-grow: 1;\\n}\\n.erp--infobar-notiz + .erp--infobar-notiz {\\n  margin-top: 6px;\\n  padding-top: 6px;\\n  border-top: 1px dotted lightgray;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer } from \"../../../../framework/base/export\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { EntitaetInfoService } from \"../../../services/export\";\nimport { FakturaService } from \"../../../services/faktura-service\";\n\n@autoinject\nexport class OffenePosten {\n  constructor(\n    private fakturaService: FakturaService,\n    private entitaetInfoService: EntitaetInfoService,\n    private locationService: LocationService) { }\n\n  @bindable @observable idGeschaeftspartner: number;\n\n  isVisible: boolean = false;\n  itemList: any[] = [];\n  betragOffenGesamt: number;\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idGeschaeftspartnerChanged() {\n    this.loadData();\n  }\n\n  async onFakturaClick(item) {\n    const getOptions = this.fakturaService.getOffenePostenOptions(this.idGeschaeftspartner);\n\n    const viewScrollInfo = await this.entitaetInfoService.createViewScrollInfo(\n      \"TIP.ERP.Business.Entitaeten.Verkauf.Faktura\",\n      getOptions.where,\n      null,\n      getOptions.orderBy,\n      item.Id\n    );\n\n    this.locationService.goTo({\n      url: `ERP/Verkauf/Faktura/${item.Id}`,\n      viewScrollInfo: viewScrollInfo\n    });\n  }\n\n  private async loadData() {\n    if (this.idGeschaeftspartner) {\n      //TODO - Aufsplittung auf verschiedene Währungen wird vorerst ignoriert, da aktuell keine Kunden in verschiedenen Währungen verrechnen\n      this.itemList = await this.fakturaService.getOffenePosten(this.idGeschaeftspartner);\n      this.betragOffenGesamt = this.itemList.reduce((p, c) => p + c.BetragOffen, 0);\n    } else {\n      this.itemList = [];\n      this.betragOffenGesamt = 0;\n    }\n\n    this.isVisible = this.itemList && this.itemList.length > 0;\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./offene-posten.less\\\"></require> <h2 tr=\\\"key: infobar.offene-posten\\\"></h2> <div class=\\\"erp--infobar-offene-posten erp--infobar-offene-posten-summe\\\"> <div tr=\\\"key: infobar.faktura-nr\\\"> </div> <div tr=\\\"key: infobar.datum\\\"> </div> <div class=\\\"erp--infobar-offene-posten-wert\\\" tr=\\\"key: infobar.betrag_offen\\\"> </div> </div> <div repeat.for=\\\"item of itemList\\\" class=\\\"erp--infobar-offene-posten erp--infobar-offene-posten-detail ${item.IsFaellig ? 'erp--infobar-offene-posten-faellig' : ''}\\\" click.delegate=\\\"onFakturaClick(item)\\\" title.bind=\\\"item.Tooltip\\\"> <div> ${item.Nummer} </div> <div> ${item.Datum | format:'d'} </div> <div class=\\\"erp--infobar-offene-posten-wert\\\"> ${item.BetragOffen | format:'n2'} </div> </div> <div class=\\\"erp--infobar-offene-posten erp--infobar-offene-posten-summe\\\"> <div tr=\\\"key: infobar.summe\\\"> </div> <div> </div> <div class=\\\"erp--infobar-offene-posten-wert\\\"> ${betragOffenGesamt | format:'n2'} </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-offene-posten {\\n  display: grid;\\n  grid-gap: 1px;\\n  background-color: #ddd;\\n  border-bottom: 1px solid #ddd;\\n  grid-template-columns: 1fr 1fr 1fr;\\n}\\n.erp--infobar-offene-posten > div {\\n  padding: 6px;\\n  background-color: #F5F5F5;\\n}\\n.erp--infobar-offene-posten .erp--infobar-offene-posten-wert {\\n  text-align: right;\\n  flex-grow: 1;\\n}\\n.erp--infobar-offene-posten.erp--infobar-offene-posten-detail {\\n  cursor: pointer;\\n}\\n.erp--infobar-offene-posten.erp--infobar-offene-posten-summe {\\n  font-weight: bold;\\n}\\n.erp--infobar-offene-posten.erp--infobar-offene-posten-faellig > div {\\n  background-color: #C0392B;\\n  color: white;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, observable, bindable, OverrideContext } from \"aurelia-framework\";\nimport { ScopeContainer, DataSourceService, RestService } from '../../../../framework/base/export';\nimport { LocationService } from '../../../../framework/base/services/location-service';\nimport { EntitaetInfoService } from '../../../services/export';\nimport { ListView } from '../../../../framework/forms/elements/export';\nimport { IListViewOptions } from '../../../../framework/forms/elements/list-view/export';\nimport { PopupInfoService } from '../../../../framework/forms/export';\n\n@autoinject\nexport class Projekte {\n  constructor(\n    private entitaetInfoService: EntitaetInfoService,\n    private locationService: LocationService,\n    private popupInfoService: PopupInfoService,\n    private dataSourceService: DataSourceService,\n    private restService: RestService\n  ) {}\n\n  @bindable @observable idGeschaeftspartner: number;\n\n  isVisible: boolean = false;\n  scopeContainer: ScopeContainer;\n\n  projekteListView: ListView;\n  projekteListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.popupInfoService.closeAllPopups().then(async pr => {\n        if (!pr) {\n          return;\n        }\n\n        const viewScrollInfo = await this.getViewScrollInfo(e, \"TIP.ERP.Business.Entitaeten.Stammdaten.Projekt\");\n\n        this.locationService.goTo({\n          url: \"ERP/Stammdaten/Projekt/\".concat(e.item.Id),\n          viewScrollInfo: viewScrollInfo\n        });\n      });\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n\n    this.projekteListViewOptions.dataSource = this.dataSourceService.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/Projekt\",\n        webApiColumns: [\"Id\", \"Nummer\", \"Bezeichnung\", \"IdStatus\"],\n        filters: [{ webApiCustomKey: \"InklIdStatusFarbe\", webApiCustomValue: \"true\" }],\n        webApiOrderBy: [{ columnName: \"Status.Typ\", sortOrder: 0 }, { columnName: \"AnlageDatum\", sortOrder: 1 }]\n      }, {\n        canLoad: () => {\n          return !!this.idGeschaeftspartner;\n        },\n        getCustomFilters: () => {\n          return [{webApiCustomKey: \"IdGeschaeftspartner\", webApiCustomValue: <any>this.idGeschaeftspartner}];\n        },\n        resultInterceptor: (data) => {\n          this.isVisible = data.count > 0;\n          return data;\n        }\n      });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idGeschaeftspartnerChanged() {\n    if (this.projekteListView) {\n      this.projekteListView.refresh(false);\n    }\n  }\n  \n  private async getViewScrollInfo(e, typeName): Promise<any> {\n    const id = e.item.Id;\n    const orderBy = [{ columnName: \"Status.Typ\", sortOrder: 0 }, { columnName: \"AnlageDatum\", sortOrder: 1 }];\n    const customs = [{ key: \"IdGeschaeftspartner\", value: <any>this.idGeschaeftspartner}];\n\n    const viewScrollInfo = await this.entitaetInfoService.createViewScrollInfo(\n      typeName,\n      null,\n      customs,\n      orderBy,\n      id\n    );\n\n    return viewScrollInfo;\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./projekte.less\\\"></require> <h2 tr=\\\"key: infobar.projekte_des_gp\\\"></h2> <list-view options.bind=\\\"projekteListViewOptions\\\" view-model.ref=\\\"projekteListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"erp--infobar--projekt\\\" css=\\\"border-left: ${item.StatusFarbe ? '4px' : '0'} solid ${item.StatusFarbe || 'transparent'};padding-left: ${item.StatusFarbe ? '4px': '0'}\\\"> ${item.Nummer} ${item.Bezeichnung} </div> </custom-template> </list-view> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { WebEventService } from '../../../../framework/base/export';\nimport { OnAuftragRequestStatistikEvent, OnAuftragRequestStatistik } from '../../../../framework-data/events';\n\n@autoinject\nexport class StatistikAuftrag {\n  constructor(\n    private webEventService: WebEventService\n  ) {}\n\n  @bindable @observable idAuftrag: number;\n  \n  isVisible: boolean = false;\n  data: OnAuftragRequestStatistik;\n\n  bind() {\n    this.loadData();\n  }\n\n  idAuftragChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (!this.idAuftrag) {\n      this.isVisible = false;\n      return;\n    }\n\n    const r: OnAuftragRequestStatistik = await this.webEventService.execute(new OnAuftragRequestStatistikEvent({\n      IdAuftrag: this.idAuftrag\n    }));\n\n    this.isVisible = r.HasData;\n    this.data = r;\n  }\n}","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./statistik-auftrag.less\\\"></require> <h2 tr=\\\"key: infobar.statistik-auftrag\\\"></h2> <div class=\\\"erp--infobar-statistik-auftrag-grid\\\"> <div tr=\\\"key: infobar.nettoumsatz\\\"></div> <div>${data.Nettoumsatz | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.einstandswert\\\"></div> <div>${data.Einstandswert | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.db\\\"></div> <div>${data.DB | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.dbprozent\\\"></div> <div>${data.DBProzent | format:\\\"n2\\\"} %</div> <div tr=\\\"key: infobar.anzlieferscheinpos\\\"></div> <div>${data.AnzLieferscheinpositionen | format:\\\"n0\\\"}</div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-statistik-auftrag-grid {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n  grid-template-columns: 1fr 1fr;\\n  border-bottom: 1px solid #ddd;\\n}\\n.erp--infobar-statistik-auftrag-grid > div {\\n  background-color: #F5F5F5;\\n  padding: 6px;\\n}\\n.erp--infobar-statistik-auftrag-grid > div:nth-child(2n) {\\n  text-align: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { WebEventService } from '../../../../framework/base/export';\nimport { OnProjektRequestStatistik, OnProjektRequestStatistikEvent } from '../../../../framework-data/events';\n\n@autoinject\nexport class StatistikProjekt {\n  constructor(\n    private webEventService: WebEventService\n  ) {}\n\n  @bindable @observable idProjekt: number;\n  \n  isVisible: boolean = false;\n  data: OnProjektRequestStatistik;\n\n  bind() {\n    this.loadData();\n  }\n\n  idProjektChanged() {\n    this.loadData();\n  }\n\n  private async loadData() {\n    if (!this.idProjekt) {\n      this.isVisible = false;\n      return;\n    }\n\n    const r: OnProjektRequestStatistik = await this.webEventService.execute(new OnProjektRequestStatistikEvent({\n      IdProjekt: this.idProjekt\n    }));\n\n    this.isVisible = r.HasData;\n    this.data = r;\n  }\n}","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./statistik-projekt.less\\\"></require> <h2 tr=\\\"key: infobar.statistik-projekt\\\"></h2> <div class=\\\"erp--infobar-statistik-projekt-grid\\\"> <div tr=\\\"key: infobar.nettoumsatz\\\"></div> <div>${data.Nettoumsatz | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.einstandswert\\\"></div> <div>${data.Einstandswert | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.db\\\"></div> <div>${data.DB | format:\\\"n2\\\"}</div> <div tr=\\\"key: infobar.dbprozent\\\"></div> <div>${data.DBProzent | format:\\\"n2\\\"} %</div> <div tr=\\\"key: infobar.anzlieferscheinpos\\\"></div> <div>${data.AnzLieferscheinpositionen | format:\\\"n0\\\"}</div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--infobar-statistik-projekt-grid {\\n  display: grid;\\n  background-color: #ddd;\\n  grid-gap: 1px;\\n  grid-template-columns: 1fr 1fr;\\n  border-bottom: 1px solid #ddd;\\n}\\n.erp--infobar-statistik-projekt-grid > div {\\n  background-color: #F5F5F5;\\n  padding: 6px;\\n}\\n.erp--infobar-statistik-projekt-grid > div:nth-child(2n) {\\n  text-align: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, OverrideContext, observable } from \"aurelia-framework\";\nimport { IListViewOptions, ListView } from \"../../../../framework/forms/elements/list-view/export\";\nimport { DataSourceService, ScopeContainer, LocationService, RestService, IViewScrollInfo } from \"../../../../framework/base/export\";\nimport { EntitaetInfoService } from \"../../../services/entitaet-info-service\";\nimport { PopupInfoService } from \"../../../../framework/forms/export\";\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { NotificationTyp } from '../../../enumerations/notification-typ';\n\n@autoinject\nexport class VerknuepfteEntitaet {\n  private _refreshSubscription: Subscription;\n\n  constructor(\n    private dataSource: DataSourceService,\n    private entitaetInfo: EntitaetInfoService,\n    private location: LocationService,\n    private popupInfo: PopupInfoService,\n    private eventAggregator: EventAggregator,\n    private restService: RestService\n  ) {}\n\n  @bindable @observable data;\n  \n  scopeContainer: ScopeContainer;\n\n  verknEntitaetListView: ListView;\n  verknEntitaetListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 15,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.entitaetInfo\n        .getUrl(e.item.VerknuepftTypeName, e.item.IdVerknuepft)\n        .then(r => {\n          this.popupInfo.closeAllPopups().then(async pr => {\n            if (!pr) {\n              return;\n            }\n\n            const viewScrollInfo = await this.getViewScrollInfo(e);\n\n            this.location.goTo({\n              url: r,\n              viewScrollInfo: viewScrollInfo\n            });\n          })\n        });\n    }\n  }\n\n  showNotizenButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-comments-o\",\n    onClick: (e) => {\n      this.showNotizListPopover(e.event, e.model.bindingContext.item);\n    }\n  };\n\n  isVisible: boolean = false;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n\n    this.verknEntitaetListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Stammdaten/VerknuepfteEntitaet\",\n        webApiColumns: [\"Id\", \"IdVerknuepft\", \"VerknuepftTypeName\", \"VerknuepftBezeichnung\", \"HasVerknuepftNotiz\", \"TypeName\"],\n        filters: [{ webApiCustomKey: \"InklIdStatusFarbe\", webApiCustomValue: \"true\" }],\n        webApiOrderBy: [{columnName: \"AnlageDatum\", sortOrder: 0}]\n      }, {\n        canLoad: () => {\n          return this.data && this.data.Id;\n        },\n        getCustomWhere: () => {\n          return [\"IdEntitaet\", this.data.Id];\n        },\n        resultInterceptor: (data) => {\n          this.isVisible = data.count > 0;\n          return data;\n        }\n      });\n\n    this._refreshSubscription = this.eventAggregator.subscribe(\"verknuepfte-entitaet:refresh\", e => {\n      if (this.data && this.data.Id == e.id) {\n        this.dataChanged();\n      }\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this._refreshSubscription.dispose();\n  }\n\n  dataChanged() {\n    if (this.verknEntitaetListView) {\n      this.verknEntitaetListView.refresh(false);\n    }\n  }\n\n  showNotizListPopover(e: DevExpress.event, data) {\n    e.stopPropagation();\n\n    this.eventAggregator.publish(\n      NotificationTyp.notizShowListPopover, {\n        id: data.IdVerknuepft,\n        target: e.target\n      }\n    );\n  }\n  \n  private async getViewScrollInfo(e): Promise<any> {\n    const id = e.item.Id;\n    const typeName = e.item.VerknuepftTypeName;\n    const url = this.restService.getWebApiUrl(\"ERP/Stammdaten/VerknuepfteEntitaet\");\n    const orderBy = [{ columnName: \"AnlageDatum\", sortOrder: 0 }];\n    const where = [[\"IdEntitaet\", this.data.Id], [\"VerknuepftTypeName\", typeName]];\n\n    const viewScrollInfo = await this.entitaetInfo.createViewScrollInfo(\n      \"TIP.ERP.Business.Entitaeten.Stammdaten.VerknuepfteEntitaet\",\n      where,\n      null,\n      orderBy,\n      id\n    );\n\n    if (!viewScrollInfo) {\n      return null;\n    }\n\n    viewScrollInfo.columns = [\"IdVerknuepft\"];\n\n    viewScrollInfo.resultKeyResolver = (key, data) => {\n      if (this.entitaetInfo.needsParentTypeNameForUrl(typeName)) {\n        return this.entitaetInfo.getParentId(typeName, data.IdVerknuepft);\n      } else {\n        return data.IdVerknuepft;\n      }\n    };\n\n    return viewScrollInfo;\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./verknuepfte-entitaet.less\\\"></require> <h2 tr=\\\"key: infobar.verknuepfte-entitaeten\\\"></h2> <list-view options.bind=\\\"verknEntitaetListViewOptions\\\" view-model.ref=\\\"verknEntitaetListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"erp--text-with-leading-label-badge\\\"> <div class=\\\"${item.VerknuepftTypeBezeichnung ? '' : 'erp--empty-badge'}\\\" css=\\\"${item.StatusFarbe ? 'border-left: 4px solid ' + item.StatusFarbe : ''}\\\"> ${item.VerknuepftTypeBezeichnung} </div> <div class=\\\"verknuepfte-entitaet-text-menu\\\"> <span>${item.VerknuepftBezeichnung}</span> <entitaet-menu data.bind=\\\"item\\\" hide-aenddat=\\\"true\\\"></entitaet-menu> </div> </div> </custom-template> </list-view> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".verknuepfte-entitaet-text-menu {\\n  display: flex;\\n  align-items: center;\\n}\\n.verknuepfte-entitaet-text-menu > span {\\n  flex-grow: 1;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, OverrideContext, observable } from \"aurelia-framework\";\nimport { IListViewOptions, ListView } from \"../../../../framework/forms/elements/list-view/export\";\nimport { DataSourceService, ScopeContainer, LocationService } from \"../../../../framework/base/export\";\nimport { PopupInfoService } from \"../../../../framework/forms/export\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class ZuletztGekaufteArtikel {\n  private timeout: any;\n\n  constructor(\n    private dataSource: DataSourceService,\n    private location: LocationService,\n    private popupInfo: PopupInfoService,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  @bindable @observable data;\n  @bindable @observable idKunde;\n  \n  scopeContainer: ScopeContainer;\n\n  zuletztArtikelListView: ListView;\n  zuletztArtikelListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    showPagerInfo: false,\n    pageSize: 5,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.addArtikel(e.item);\n    }\n  }\n\n  isVisible: boolean = false;\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n\n    this.zuletztArtikelListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer, {\n        webApiAction: \"ERP/Verkauf/Lieferscheinposition\",\n        webApiWhere: [[\"Lieferschein.Status.Typ\", 1], [\"MengeIstVerpEH\", \">\", 0], [\"IsVariablerSetartikel\", false], [\"IsPositionStuecklistenkomponente\", false]],\n        webApiExpand: {\n          Artikel: {\n            columns: [\"Id\", \"Nummer\"]\n          },\n          Lieferschein: {\n            columns: [\"Id\", \"Versanddatum\"]\n          },\n          Einheit: {\n            columns: [\"Id\", \"IdEinheit\"],\n            expand: {\n              Einheit: {\n                columns: [\"Id\", \"Code\"]\n              }\n            }\n          }\n        },\n        webApiOrderBy: [{columnName: \"Lieferschein.Versanddatum\", sortOrder: 1}]\n      }, {\n        canLoad: () => {\n          return this.idKunde\n            && this.data\n            && (this.data.TypeName == \"TIP.ERP.Business.Entitaeten.Verkauf.Auftrag\" || this.data.TypeName == \"TIP.ERP.Business.Entitaeten.Verkauf.Angebot\");\n        },\n        getCustomWhere: () => {\n          return [\"Lieferschein.Kunde.Id\", this.idKunde];\n        },\n        resultInterceptor: (data) => {\n          this.isVisible = data.count > 0;\n          return data;\n        }\n      });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  idKundeChanged() {\n    this.refreshListView();\n  }\n  dataChanged() {\n    this.refreshListView();\n  }\n  addArtikel(item) {\n    const idData = this.data.Id;\n    const idLieferscheinposition = item.Id;\n\n    const args = {\n      idLieferscheinposition: idLieferscheinposition,\n      isHandled: false\n    };\n\n    this.eventAggregator.publish(\"infobar:zuletzt-verkaufte-artikel:addArtikel\", args);\n  }\n\n  private refreshListView() {\n    if (this.timeout) {\n      clearTimeout(this.timeout);\n      this.timeout = null;\n    }\n\n    this.timeout = setTimeout(() => {\n      if (this.zuletztArtikelListView) {\n        this.zuletztArtikelListView.refresh(false);\n      }\n    }, 100);\n  }\n}\n","// Module\nvar code = \"<template show.bind=\\\"isVisible\\\" class=\\\"infobar-item\\\"> <require from=\\\"./zuletzt-gekaufte-artikel\\\"></require> <h2 tr=\\\"key: infobar.zuletzt-verkaufte-artikel\\\"></h2> <list-view options.bind=\\\"zuletztArtikelListViewOptions\\\" view-model.ref=\\\"zuletztArtikelListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"zuletzt-gekaufte-artikel-artikel\\\"> ${item.Artikel.Nummer}: ${item.Bezeichnung} </div> <div> ${item.MengeIstVerpEH | format:'n2'} ${item.Einheit.Einheit.Code} am ${item.Lieferschein.Versanddatum | format:'d'} </div> </custom-template> </list-view> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  observable\n} from \"aurelia-framework\";\n\nimport {\n  FormBase\n} from \"../../../framework/forms/export\";\n\nimport {\n  DataSourceService,\n  GlobalizationService,\n  LocalizationService\n} from \"../../../framework/base/export\";\n\nimport {\n  KalkulationFeldTyp\n} from \"../../enumerations/export\";\n\nimport {\n  Kalkulation\n} from \"../kalkulation/kalkulation\";\n\nimport {\n  IdxDateBoxComponent,\n  IdxNumberBoxComponent\n} from \"../../interfaces/export\";\nimport { WaehrungService, StartupService, FirmaService } from \"../../services/export\";\nimport { KonditionsfeldWaehrung } from \"../../../framework-data/events\";\n\n\n@autoinject\nexport class KalkulationContainer {\n  constructor(\n    private dataSource: DataSourceService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private waehrungService: WaehrungService,\n    private startupService: StartupService,\n    private firmaService: FirmaService\n  ) { }\n\n  @bindable @observable idArtikel: number;\n  @bindable @observable idKunde: number;\n\n  kalkulation: Kalkulation;\n  kalkulationModel: any = {\n    datum: new Date(),\n    menge: 1\n  };\n\n  form: FormBase;\n\n  firmaOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"kalkulationModel.idFirma\"\n    }\n  }\n  artikelOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"kalkulationModel.idArtikel\"\n    }\n  }\n  berechnungVersionOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"BezeichnungMitDefinition\",\n    valueExpr: \"Id\",\n    bindingOptions: {\n      value: \"kalkulationModel.idBerechnungsversion\"\n    }\n  }\n  kundeOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"DisplayText\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"kalkulationModel.idKunde\"\n    }\n  }\n  mengeOptions: DevExpress.ui.dxNumberBoxOptions = {\n    bindingOptions: {\n      value: \"kalkulationModel.menge\"\n    }\n  };\n  datumOptions: DevExpress.ui.dxDateBoxOptions = {\n    displayFormat: this.globalization.getFormatterParser(\"d\"),\n    bindingOptions: {\n      value: \"kalkulationModel.datum\"\n    }\n  };\n  waehrungOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"ISO4217\",\n    valueExpr: \"Id\",\n    searchEnabled: true,\n    bindingOptions: {\n      value: \"kalkulationModel.idWaehrung\"\n    }\n  }\n  kalkulationButtonOption: DevExpress.ui.dxButtonOptions = {\n    text: this.localization.translateOnce(\"kalkulation_container.kalkulieren_aktion\"),\n    icon: \"fa fa-refresh fa-fw\",\n    width: \"100%\",\n    onClick: () => {\n      if (!this.kalkulationModel.idBerechnungsversion) {\n        DevExpress.ui.notify(this.localization.translateOnce(\"kalkulation_container.kein_schema_gewaehlt\"), \"ERROR\", 3000);\n        return;\n      }\n\n      this.kalkulation.doKalkulieren(true);\n    }\n  }\n\n  idArtikelChanged(newValue) {\n    this.kalkulationModel.idArtikel = newValue;\n    this.kalkulation.reset();\n  }\n  idKundeChanged(newValue) {\n    this.kalkulationModel.idKunde = newValue;\n  }\n\n  bind(bindingContext) {\n    this.form = bindingContext.form || bindingContext;\n\n    this.artikelOptions.dataSource = this.dataSource.createDataSource(this.form.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Artikel\",\n        webApiColumns: [\"Id\", \"Bezeichnung\"],\n        webApiSearchtextEnabled: true,\n        keyProperty: \"Id\"\n      });\n    this.berechnungVersionOptions.dataSource = this.dataSource.createDataSource(this.form.scopeContainer,\n      {\n        webApiAction: \"ERP/Kalkulation/Berechnungsversion\",\n        webApiColumns: [\"Id\", \"BezeichnungMitDefinition\"],\n        keyProperty: \"Id\"\n      });\n    this.kundeOptions.dataSource = this.dataSource.createDataSource(this.form.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Geschaeftspartner\",\n        webApiColumns: [\"Id\", \"DisplayText\", \"IdGeschaeftspartnerart\"],\n        webApiWhere: [\"Geschaeftspartnerart.IsKunde\", true],\n        webApiSearchtextEnabled: true,\n        keyProperty: \"Id\"\n      });\n    this.firmaOptions.dataSource = this.dataSource.createDataSource(this.form.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Firma\",\n        webApiColumns: [\"Id\", \"Bezeichnung\"],\n        webApiSearchtextEnabled: true,\n        keyProperty: \"Id\"\n      });\n\n    const waehrungList = this\n      .waehrungService\n      .getWaehrungList(KonditionsfeldWaehrung.Alles);\n\n    this.waehrungOptions.dataSource = waehrungList;\n\n    if (this.startupService\n      && this.startupService.startupInfo\n      && this.startupService.startupInfo.Mandant\n      && this.startupService.startupInfo.Mandant.IdWaehrung) {\n      this.kalkulationModel.idWaehrung = this.startupService.startupInfo.Mandant.IdWaehrung;\n    }\n\n    this.firmaService.getIdFirmaVorbelegung().then(r => this.kalkulationModel.idFirma = r);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../kalkulation/kalkulation\\\"></require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.berechnungsversion\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"berechnungVersionOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.firma\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"firmaOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\" if.bind=\\\"idArtikel == void(0)\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.artikel\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"artikelOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\" if.bind=\\\"idKunde == void(0)\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.kunde\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"kundeOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.datum\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"datumOptions\\\" view-model.ref=\\\"datum\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.waehrung\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"waehrungOptions\\\" view-model.ref=\\\"waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation_container.menge\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mengeOptions\\\" view-model.ref=\\\"menge\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"kalkulationButtonOption\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <kalkulation menge-verp-eh.bind=\\\"kalkulationModel.menge\\\" datum.bind=\\\"kalkulationModel.datum\\\" id-artikel.bind=\\\"kalkulationModel.idArtikel\\\" id-berechnungsversion.bind=\\\"kalkulationModel.idBerechnungsversion\\\" id-kunde.bind=\\\"kalkulationModel.idKunde\\\" id-waehrung.bind=\\\"kalkulationModel.idWaehrung\\\" id-firma.bind=\\\"kalkulationModel.idFirma\\\" view-model.ref=\\\"kalkulation\\\"></kalkulation> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  computedFrom,\n  observable,\n  OverrideContext,\n  Scope,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  KalkulationInputItem,\n  KalkulationOutputItem,\n  KonditionsfeldWaehrung,\n  OnDoKalkulieren,\n  OnDoKalkulierenEvent,\n  OnKalkulationFeldRequestEvent,\n  OnKalkulationItemRequest,\n  OnKalkulationItemRequestEvent\n} from \"../../../framework-data/events\";\nimport {\n  BindingService,\n  LocalizationService,\n  ScopeContainer,\n  WebEventService\n} from \"../../../framework/base/export\";\nimport {\n  ModelUtilsService\n} from \"../../../framework/forms/export\";\nimport {\n  KalkulationFeldTyp\n} from \"../../enumerations/export\";\nimport {\n  IKalkulationFeld\n} from \"../../interfaces/export\";\nimport {\n  KonditionService,\n  WaehrungService\n} from \"../../services/export\";\n\n@autoinject\nexport class Kalkulation {\n  private DEFAULT_ANZ_KOMMASTELLEN: number = 2;\n\n  constructor(\n    private webEvent: WebEventService,\n    private binding: BindingService,\n    private waehrung: WaehrungService,\n    private kondition: KonditionService,\n    private taskqueue: TaskQueue,\n    private modelUtils: ModelUtilsService,\n    private localizationService: LocalizationService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  kalkulationOptions: OnDoKalkulieren;\n\n  @bindable @observable mainModel: any;\n  @bindable @observable idBerechnungsversion: number;\n  @bindable idFirma: number;\n  @bindable idFiliale: number;\n  @bindable idLager: number;\n  @bindable idArtikel: number;\n  @bindable idKunde: number;\n  @bindable idLieferant: number;\n  @bindable datum: Date;\n  @bindable({ attribute: \"menge-verp-eh\" }) mengeVerpEH: number;\n  @bindable idArtikelEinheit: number;\n  @bindable idWaehrung: number;\n  @bindable steuersatz: number;\n  @bindable isGratis: boolean;\n  @bindable isFromWebshop: boolean;\n  @bindable isKalkulationKopf: boolean;\n  @bindable typeName: string;\n  @bindable idKopf: number;\n  @bindable idPos: number;\n  @bindable @observable isReadOnly: boolean;\n\n  @computedFrom(\"mainModel.IdKalkulationContainer\")\n  get idKalkulationContainer(): number {\n    if (!this.mainModel) {\n      return null;\n    }\n\n    return this.mainModel.IdKalkulationContainer;\n  }\n  @computedFrom(\"isKalkulationKopf\", \"steuersatz\")\n  get showNettoSteuerBrutto() {\n    return this.isKalkulationKopf\n      || this.steuersatz != void (0);\n  }\n\n  feldInfo: any = {};\n  kalkulationLayoutData: IKalkulationFeld[];\n\n  waehrungOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"ISO4217\",\n    valueExpr: \"ISO4217\",\n    placeholder: \"\",\n    hint: this.localizationService.translateOnce(\"kalkulation.waehrung\"),\n    onInitialized: (e) => {\n      this.taskqueue.queueMicroTask(() => {\n        const model = (<any>e).model;\n\n        if (model == void 0 || model.bindingContext == void 0 || model.bindingContext.feld == void 0) {\n          return;\n        }\n\n        const waehrung = model.bindingContext.feld._waehrung;\n        const dataSource = this.waehrung.getWaehrungList(waehrung);\n\n        e.component.option(\"dataSource\", dataSource);\n      });\n    },\n    onValueChangedByUser: (e) => {\n      this.onFeldValueChanged(e, \"WaehrungISO4217\");\n    },\n    bindingOptions: {\n      value: \"feld.waehrung\",\n      readOnly: \"feld._isReadOnly\"\n    }\n  };\n  wertOptions: DevExpress.ui.dxNumberBoxOptions = {\n    hint: this.localizationService.translateOnce(\"kalkulation.wert\"),\n    onKeyDown: (e: any) => {\n      if (!e.event) {\n        return;\n      }\n      if (!e.event.ctrlKey) {\n        return;\n      }\n      if (e.event.keyCode != 46) {\n        return;\n      }\n\n      const component: DevExpress.ui.dxNumberBox = e.component;\n      if (component.option(\"readOnly\")) {\n        return;\n      }\n      if (component.option(\"disabled\")) {\n        return;\n      }\n\n      e.component.option(\"value\", null);\n\n      if (e.event.preventDefault) {\n        e.event.preventDefault();\n      }\n      if (e.event.stopPropagation) {\n        e.event.stopPropagation();\n      }\n\n      return;\n    },\n    onValueChangedByUser: (e) => {\n      this.onFeldValueChanged(e, \"Wert\");\n    },\n    bindingOptions: {\n      format: \"feld._format\",\n      value: \"feld.wert\",\n      readOnly: \"feld._isReadOnly\"\n    }\n  };\n  nettoWertOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"#,##0.00\",\n    readOnly: true,\n    bindingOptions: {\n      value: \"kalkulationOptions.WertNetto\"\n    }\n  };\n  steuerWertOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"#,##0.00\",\n    readOnly: true,\n    bindingOptions: {\n      value: \"kalkulationOptions.WertSteuer\"\n    }\n  };\n  bruttoWertOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"#,##0.00\",\n    readOnly: true,\n    bindingOptions: {\n      value: \"kalkulationOptions.WertBrutto\"\n    }\n  };\n  customWaehrungOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"ISO4217\",\n    valueExpr: \"Id\",\n    readOnly: true,\n    placeholder: \"\",\n    onInitialized: (e) => {\n      this.taskqueue.queueMicroTask(() => {\n        const dataSource = this.waehrung.getWaehrungList(KonditionsfeldWaehrung.Alles);\n        e.component.option(\"dataSource\", dataSource);\n      });\n    },\n    bindingOptions: {\n      value: \"idWaehrung\"\n    }\n  };\n  wertPerOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"#,##0\",\n    hint: this.localizationService.translateOnce(\"kalkulation.wertper\"),\n    onValueChangedByUser: (e) => {\n      this.onFeldValueChanged(e, \"WertPer\");\n    },\n    bindingOptions: {\n      value: \"feld.wertPer\",\n      visible: \"feld._isWertPerVisible\",\n      readOnly: \"feld._isReadOnly\"\n    }\n  };\n  staffelOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: \"#,##0\",\n    hint: this.localizationService.translateOnce(\"kalkulation.staffel\"),\n    onValueChangedByUser: (e) => {\n      this.onFeldValueChanged(e, \"Staffel\");\n    },\n    bindingOptions: {\n      value: \"feld.staffel\",\n      visible: \"feld._isStaffelVisible\",\n      readOnly: \"feld._isReadOnly\"\n    }\n  };\n\n  async bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    if (this.mainModel && this.mainModel.Id) {\n      if (this.idBerechnungsversion) {\n        await this.idBerechnungsversionChanged(this.idBerechnungsversion);\n      }\n\n      this.mainModelChanged(this.mainModel);\n    }\n    this.binding.observe({\n      scopeContainer: this.scopeContainer,\n      expression: \"mainModel.CanSave\",\n      callback: () => {\n        this.checkReadOnly();\n      }\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  mainModelChanged(newValue) {\n    this.taskqueue.queueMicroTask(() => {\n      this.doLoadItemsFromContainer();\n    });\n  }\n  isReadOnlyChanged() {\n    this.checkReadOnly();\n  }\n  async idBerechnungsversionChanged(newValue) {\n    await this.loadKalkulationFelder(newValue);\n    this.restoreKalkulationLayout();\n  }\n\n  async doKalkulieren(needsLoadKonditionen: boolean) {\n    if (!this.idArtikel && !this.isKalkulationKopf) {\n      return;\n    }\n\n    const mainModel = this.mainModel;\n    const idArtikel = this.idArtikel;\n\n    const kalkulationEventOptions = this.getKalkulationEventOptions(needsLoadKonditionen);\n    const kalkulationOptions = await this.webEvent.execute(kalkulationEventOptions, true);\n\n    const hasMainModelOrArtikelChanged = mainModel != this.mainModel\n      || idArtikel != this.idArtikel;\n\n    if (this.mainModel && !hasMainModelOrArtikelChanged) {\n      const shouldSetInputItemList = needsLoadKonditionen\n        || kalkulationOptions.InputList;\n\n      if (shouldSetInputItemList) {\n        this.mainModel._InputItemList = kalkulationOptions.InputList;\n      }\n    } else if(mainModel != null) {\n      return;\n    }\n\n    if (needsLoadKonditionen) {\n      this.kalkulationOptions = kalkulationOptions;\n      this.restoreKalkulationLayout();\n    } else {\n      if (this.kalkulationOptions) {\n        this.kalkulationOptions.OutputList = kalkulationOptions.OutputList;\n        this.kalkulationOptions.WertNetto = kalkulationOptions.WertNetto;\n        this.kalkulationOptions.WertSteuer = kalkulationOptions.WertSteuer;\n        this.kalkulationOptions.WertBrutto = kalkulationOptions.WertBrutto;\n        this.updateBerechnung();\n      }\n    }\n  }\n  async doLoadItemsFromContainer() {\n    const idKalkulationContainer = this.idKalkulationContainer;\n    if (!idKalkulationContainer) {\n      this.kalkulationOptions = null;\n      this.restoreKalkulationLayout();\n      return;\n    }\n\n    const result: OnKalkulationItemRequest = await this.webEvent.execute(new OnKalkulationItemRequestEvent({\n      IdKalkulationContainer: idKalkulationContainer\n    }), true);\n\n    if (idKalkulationContainer != this.idKalkulationContainer) {\n      return;\n    }\n\n    const options = this.getKalkulationEventDataOptions(true);\n    options.WertNetto = result.WertNetto;\n    options.WertSteuer = result.WertSteuer;\n    options.WertBrutto = result.WertBrutto;\n    options.InputList = result.InputItemList;\n    options.FixList = result.FixItemList;\n    options.OutputList = result.OutputItemList;\n    options.PosList = result.PosItemList;\n    options.SteuerPosList = result.SteuerPosList;\n\n    this.kalkulationOptions = options;\n    this.restoreKalkulationLayout();\n  }\n  reset() {\n    this.kalkulationLayoutData = [];\n  }\n\n  /** Lädt die Beschreibung für die Anzeige der Kalkulation vom Server */\n  private async loadKalkulationFelder(idBerechnungsversion) {\n    if (idBerechnungsversion == void 0 || idBerechnungsversion == KalkulationFeldTyp.Konditionsfeld) {\n      return;\n    }\n\n    const kalkulationEvent = new OnKalkulationFeldRequestEvent({\n      IdBerechnungsversion: idBerechnungsversion,\n      IsKalkulationKopf: this.isKalkulationKopf,\n      FeldList: []\n    });\n\n    return this.webEvent.execute(kalkulationEvent, true)\n      .then((r) => {\n        this.feldInfo = {};\n        if (r == void 0 || r.length == 0) {\n          return;\n        }\n\n        r.FeldList.forEach(\n          (c) => {\n            this.feldInfo[c.Code] = c;\n          }\n        );\n      });\n  }\n\n  /** Erzeugt das Layout aufgrund der Felder und Inhalte */\n  private restoreKalkulationLayout() {\n    this.kalkulationLayoutData = [];\n\n    if (!this.kalkulationOptions || (!this.kalkulationOptions.IdArtikel && !this.isKalkulationKopf)) {\n      this.kalkulationLayoutData = null;\n      return;\n    }\n\n    this.addKondition(this.kalkulationOptions.InputList);\n    this.addBerechnung(this.kalkulationOptions.OutputList);\n    this.addFehlendeFelder();\n    this.checkReadOnly();\n    this.sortLayout();\n  }\n  /** Fügt die Konditionen aus der InputList in das Layout hinzu */\n  private addKondition(konditionList: KalkulationInputItem[]) {\n    konditionList.forEach((kondition) => {\n      const feld = this.createLayoutFeld(kondition.Code);\n      if (!feld) {\n        return;\n      }\n\n      feld.wert = kondition.Wert;\n      feld.waehrung = kondition.WaehrungISO4217;\n      feld.wertPer = kondition.WertPer;\n      feld.staffel = kondition.Staffel;\n\n      feld._inputKondition = kondition;\n\n      this.kalkulationLayoutData.push(feld);\n    });\n  }\n  /** Fügt die Berechnungsergebnisse aus der OutputList in das Layout hinzu */\n  private addBerechnung(berechnungList: KalkulationOutputItem[]) {\n    berechnungList.forEach((berechnung) => {\n      const feld = this.createLayoutFeld(berechnung.Code);\n      if (!feld) {\n        return;\n      }\n\n      feld.wert = berechnung.Wert;\n      feld.waehrung = berechnung.WaehrungISO4217;\n      feld.wertPer = berechnung.WertPer;\n      feld.staffel = berechnung.Staffel;\n      feld._isWertPerVisible = berechnung.WertPer != void (0);\n      feld._isStaffelVisible = berechnung.Staffel != void (0);\n\n      this.kalkulationLayoutData.push(feld);\n    });\n  }\n  /** Ergänzt das Layout um fehlende Konditionsfelder */\n  private addFehlendeFelder() {\n    for (const code in this.feldInfo) {\n      const feldInfo = this.feldInfo[code];\n\n      if (!feldInfo.IsSichtbar) {\n        continue;\n      }\n      if (feldInfo.Typ != KalkulationFeldTyp.Konditionsfeld) {\n        continue;\n      }\n\n      const exists = this.kalkulationLayoutData.some((c) => c._code == code);\n      if (exists) {\n        continue;\n      }\n\n      const feld = this.createLayoutFeld(code);\n      this.kalkulationLayoutData.push(feld);\n    }\n  }\n  /** Prüft welche Felder editierbar sind und setzt entsprechend die Eigenschaft */\n  private checkReadOnly() {\n    if (!this.kalkulationLayoutData) {\n      return;\n    }\n\n    for (const item of this.kalkulationLayoutData) {\n      item._isReadOnly = this.isReadOnly\n        || (this.mainModel && this.mainModel.CanSave === false)\n        || !item._isAenderbar;\n    }\n  }\n  /** Sortiert die Elemente im Layout */\n  private sortLayout() {\n    this.kalkulationLayoutData.sort((a, b) => {\n      if (a._sortNr < b._sortNr) {\n        return -1;\n      } else if (a._sortNr > b._sortNr) {\n        return 1;\n      } else {\n        return 0;\n      }\n    });\n  }\n  /** Erzeugt ein Feld für das Layout (ohne Wert, Wert per, Staffel und Währung) */\n  private createLayoutFeld(code: string): IKalkulationFeld {\n    const feldInfo = this.feldInfo[code];\n    if (!feldInfo || !feldInfo.IsSichtbar) {\n      return null;\n    }\n\n    return {\n      bezeichnung: feldInfo.Bezeichnung,\n      waehrung: feldInfo.VorbWaehrungISO4217 || null,\n      _waehrung: feldInfo.Waehrung,\n      _isWertPerVisible: feldInfo.HasWertPer,\n      _isStaffelVisible: feldInfo.HasStaffel,\n      _sortNr: feldInfo.SortNr,\n      _code: feldInfo.Code,\n      _typ: feldInfo.Typ,\n      _isAenderbar: feldInfo.IsAenderbar,\n      _format: this.getFormat(feldInfo.AnzKommastellen)\n    };\n  }\n\n  private getKalkulationEventOptions(needsLoadKonditionen: boolean) {\n    return new OnDoKalkulierenEvent(this.getKalkulationEventDataOptions(needsLoadKonditionen));\n  }\n  private getKalkulationEventDataOptions(needsLoadKonditionen: boolean): OnDoKalkulieren {\n    return {\n      IdFirma: this.idFirma,\n      IdFiliale: this.idFiliale,\n      IdLager: this.idLager,\n      IdWaehrung: this.idWaehrung,\n      IdArtikel: this.idArtikel,\n      IdKunde: this.idKunde,\n      IdLieferant: this.idLieferant,\n      IdBerechnungsversion: this.idBerechnungsversion,\n      MengeVerrVerpEH: this.mengeVerpEH,\n      Steuersatz: this.steuersatz,\n      IdArtikelEinheit: this.idArtikelEinheit,\n      LoadKonditionen: needsLoadKonditionen,\n      IsKalkulationKopf: !!this.isKalkulationKopf,\n      TypeName: this.typeName,\n      IdKopf: this.idKopf,\n      IdPos: this.idPos,\n      IsGratis: !!this.isGratis,\n      IsFromWebshop: !!this.isFromWebshop,\n      Datum: this.datum || new Date(),\n      PosList: this.getPosList(),\n      SteuerPosList: this.getSteuerPosList(),\n      InputList: this.getInputList(),\n      FixList: this.getFixList()\n    };\n  }\n  private getPosList(): any[] {\n    const posList = this.kalkulationOptions != void 0\n      ? this.kalkulationOptions.PosList\n      : null;\n\n    if (posList == void 0 || !posList.length) {\n      return null;\n    }\n\n    return posList;\n  }\n  private getSteuerPosList(): any[] {\n    const steuerPosList = this.kalkulationOptions != void 0\n      ? this.kalkulationOptions.SteuerPosList\n      : null;\n\n    if (steuerPosList == void 0 || !steuerPosList.length) {\n      return null;\n    }\n\n    return steuerPosList;\n  }\n  private getInputList(): any[] {\n    const inputList = this.kalkulationOptions != void 0\n      ? this.kalkulationOptions.InputList\n      : null;\n\n    if (inputList == void 0 || !inputList.length) {\n      return null;\n    }\n\n    return inputList;\n  }\n  private getFixList(): any[] {\n    const fixList = this.kalkulationOptions != void 0\n      ? this.kalkulationOptions.FixList\n      : null;\n\n    if (fixList == void 0 || !fixList.length) {\n      return null;\n    }\n\n    return fixList;\n  }\n  private getFormat(anzKommastellen: number) {\n    if (anzKommastellen == void (0)) {\n      anzKommastellen = this.DEFAULT_ANZ_KOMMASTELLEN;\n    }\n\n    let format = \"#,##0\";\n\n    if (anzKommastellen > 0) {\n      format += \".\".concat(\"0\".repeat(anzKommastellen));\n    }\n\n    return format;\n  }\n\n  private updateKalkulation(feld: IKalkulationFeld, propertyNameToUpdate: string, newFeldValue: any) {\n    this.updateFeldInputList(feld, propertyNameToUpdate, newFeldValue);\n\n    if (this.mainModel) {\n      this.mainModel._InputItemList = this.getInputList();\n      this.modelUtils.setDirty(this.mainModel);\n    }\n\n    this.doKalkulieren(false);\n  }\n  private updateBerechnung() {\n    const updatedOutput = {};\n    this.kalkulationOptions.OutputList.map((c) => updatedOutput[c.Code] = c);\n\n    this.kalkulationLayoutData.map((feld, index, arr) => {\n      if (feld._typ != KalkulationFeldTyp.Berechnungsfeld) {\n        return;\n      }\n\n      this.updateFeldWerte(feld, updatedOutput[feld._code]);\n    });\n  }\n  private updateFeldWerte(feld: IKalkulationFeld, kalkulationOutput: KalkulationOutputItem) {\n    if (kalkulationOutput == void 0 || feld == void 0) {\n      return;\n    }\n\n    if (feld.wert != kalkulationOutput.Wert) {\n      feld.wert = kalkulationOutput.Wert;\n    }\n\n    feld._isWertPerVisible = kalkulationOutput.WertPer != void (0);\n    feld._isStaffelVisible = kalkulationOutput.Staffel != void (0);\n\n    if (feld.wertPer != kalkulationOutput.WertPer) {\n      feld.wertPer = kalkulationOutput.WertPer;\n    }\n    if (feld.waehrung != kalkulationOutput.WaehrungISO4217) {\n      feld.waehrung = kalkulationOutput.WaehrungISO4217;\n    }\n    if (feld.staffel != kalkulationOutput.Staffel) {\n      feld.staffel = kalkulationOutput.Staffel;\n    }\n  }\n  private updateFeldInputList(feld: IKalkulationFeld, propertyNameToUpdate: string, newValue: any) {\n    if (feld == void 0 || propertyNameToUpdate == void 0) {\n      return;\n    }\n\n    let konditionToUpdate = this.kalkulationOptions\n      .InputList\n      .find((f, index, arr) => {\n        return f === feld._inputKondition;\n      });\n\n    if (konditionToUpdate == void 0) {\n      konditionToUpdate = {\n        Id: 0,\n        Code: feld._code,\n        Wert: feld.wert,\n        WaehrungISO4217: feld.waehrung,\n        WertPer: feld.wertPer,\n        Staffel: feld.staffel,\n        IsManuell: true\n      };\n\n      feld._inputKondition = konditionToUpdate;\n      this.kalkulationOptions.InputList.push(konditionToUpdate);\n\n    }\n\n    konditionToUpdate[propertyNameToUpdate] = newValue;\n    konditionToUpdate.IsManuell = true;\n  }\n\n  private onFeldValueChanged(e: any, propertyNameToChange: string) {\n    const feld = e.model.bindingContext.feld;\n\n    if (feld._typ == KalkulationFeldTyp.Berechnungsfeld) {\n      return;\n    }\n\n    this.updateKalkulation(feld, propertyNameToChange, e.value);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./kalkulation.less\\\"></require> <div class=\\\"container kalkulation-container small-hpad\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"container\\\" repeat.for=\\\"feld of kalkulationLayoutData\\\"> <div class=\\\"col-xs-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\"> ${feld.bezeichnung} </div> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"wertOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"waehrungOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"wertPerOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"staffelOptions\\\"></dx-widget> </div> </div> <div class=\\\"container\\\" show.bind=\\\"showNettoSteuerBrutto\\\"> <div class=\\\"col-xs-12 row-separator\\\"></div> </div> <div class=\\\"container\\\" show.bind=\\\"showNettoSteuerBrutto\\\"> <div class=\\\"col-xs-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation.netto\\\"> </div> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"nettoWertOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"customWaehrungOptions\\\"></dx-widget> </div> </div> <div class=\\\"container\\\" show.bind=\\\"showNettoSteuerBrutto\\\"> <div class=\\\"col-xs-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation.steuer\\\"> </div> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"steuerWertOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"customWaehrungOptions\\\"></dx-widget> </div> </div> <div class=\\\"container\\\" show.bind=\\\"showNettoSteuerBrutto\\\"> <div class=\\\"col-xs-4 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kalkulation.brutto\\\"> </div> </div> <div class=\\\"col-xs-2\\\"> <dx-widget class=\\\"wert-align-right\\\" name=\\\"dxNumberBox\\\" options.bind=\\\"bruttoWertOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-2\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"customWaehrungOptions\\\"></dx-widget> </div> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".kalkulation-container .wert-align-right input[type=text] {\\n  text-align: right;\\n}\\n.kalkulation-container .row-separator {\\n  margin: 6px !important;\\n  padding: 0 !important;\\n  height: 1px !important;\\n  background-color: darkgray;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { ValidationExService } from \"./../../services/validation-ex-service\";\nimport { autoinject } from \"aurelia-framework\";\nimport { HistoryService } from \"./../../../framework/forms/services/history-service\";\nimport { WebEventService } from \"./../../../framework/base/services/web-event-service\";\nimport { OnKopierenRequestEvent, OnKopierenRequest } from \"../../../framework-data/events\";\nimport { ICommandData, FormBase, IModel } from \"../../../framework/forms/export\";\nimport { FormCommandService } from \"../../services/export\";\nimport { LocalizationService } from \"../../../framework/base/export\";\n\n@autoinject\nexport class KopierenFormCommand {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _availableForms: FormBase[] = [];\n  private _detachedCommand: { (): void };\n\n  constructor(\n    private _formCommandService: FormCommandService,\n    private _historyService: HistoryService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  kopierenFormCommand: ICommandData = {\n    id: \"kopierenFormCommand\",\n    idCategory: \"$datensatz\",\n    title: \"form-command.kopieren-command-icon-text\",\n    icon: \"clone\",\n    isEnabled: false,\n    badgeText: null,\n    sortIndex: 9100\n  };\n\n  attached() {\n    this._detachedCommand = this._formCommandService.attachFormCommand(\n      this.kopierenFormCommand,\n      {\n        isCommandVisibleModelProperty: \"CanKopieren\",\n        execute: (e) => {\n          this.copyObjekt(e.form, e.modelData.Id);\n        },\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.deleteAvailableForm.bind(this)\n      });\n  }\n  detached() {\n    this._detachedCommand();\n  }\n\n  private async copyObjekt(form: FormBase, idSourceObjekt: number) {\n    if (idSourceObjekt == void 0) {\n      return;\n    }\n\n    const mainModel = form.models.getModelWithKeyId();\n\n    if (mainModel.custom == void 0\n      || mainModel.custom.copyFunc == void 0) {\n      this.doCopy(form, idSourceObjekt);\n\n      return;\n    }\n\n    const customCopyFunc = this.getCustomCopyFunc(mainModel, form);\n    customCopyFunc((customData): Promise<any> => {\n      return this.doCopy(form, idSourceObjekt, customData);\n    });\n  }\n\n  private getCustomCopyFunc(mainModel: IModel, currentForm: FormBase): Function {\n    const customOptions = mainModel.custom.copyFunc.split(\".\");\n    if (!customOptions || !customOptions[0] || !customOptions[1]) {\n      return;\n    }\n    const funcNamespace: string = customOptions[0];\n    let copyFuncName: string = customOptions[1];\n\n    const funcNameIndex = copyFuncName.indexOf(\"(\");\n    if (funcNameIndex != -1) {\n      copyFuncName = copyFuncName.substring(0, funcNameIndex);\n    }\n\n    return currentForm[funcNamespace][copyFuncName].bind(currentForm[funcNamespace]);\n  }\n\n  private async doCopy(form: FormBase, idSourceObjekt: number, customData?: any) {\n    const mainModel = form.models.modelWithKeyId;\n    if (!mainModel) {\n      return;\n    }\n\n    const data = form.models.data[mainModel.id];\n    const validationResult = await this._validationExService.executeServerValidation(\n      data.TypeName,\n      data.Id,\n      \"KOPIEREN\"\n    );\n\n    if (!validationResult) {\n      return;\n    }\n\n    const webEvent = new OnKopierenRequestEvent({ IdSourceOjekt: idSourceObjekt, CustomData: customData });\n    const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(webEvent, true);\n\n    if (!onKopierenRequest || !onKopierenRequest.IdTargetObjekt) {\n      return;\n    }\n\n    this.notifySuccess();\n    form.loadById(onKopierenRequest.IdTargetObjekt.toString());\n  }\n\n  private notifySuccess() {\n    DevExpress.ui.notify(\n      this._localizationService.translateOnce(\"base.save_success\"),\n      \"SUCCESS\",\n      this.NOTIFY_TIMEOUT);\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private deleteAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1);\n  }\n}\n","// Module\nvar code = \"<template></template>\";\n// Exports\nmodule.exports = code;","import { ListView } from './../../../framework/forms/elements/list-view/list-view';\nimport {\n  autoinject,\n  OverrideContext,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  EventAggregator, Subscription\n} from 'aurelia-event-aggregator';\n\nimport {\n  DataSourceService,\n  ScopeContainer,\n  LocalizationService,\n  WebEventService,\n  IViewScrollInfo\n} from \"../../../framework/base/export\";\nimport {\n  OnMailImportItemAnzahlRequestEvent\n} from \"../../../framework-data/events\";\nimport {\n  ICommandData\n} from \"../../../framework/forms/export\";\nimport {\n  IListViewOptions\n} from \"../../../framework/forms/elements/list-view/list-view-options\";\n\nimport {\n  HeaderCommandService\n} from \"../../services/export\";\n\nimport {\n  IdxPopoverComponent\n} from \"../../interfaces/export\";\nimport {\n  HeaderCommandEvent,\n  NotificationTyp\n} from \"../../enumerations/export\";\nimport { Statustyp } from \"../../enumerations/status-typ\";\nimport { LocationService } from '../../../framework/base/services/location-service';\n\n@autoinject\nexport class MailCommand {\n  private _commandShowingSubscription: Subscription;\n  private _anzahlChangedSubscription: Subscription;\n\n  constructor(\n    private _dataSourceService: DataSourceService,\n    private _eventAggregator: EventAggregator,\n    private _headerCommandService: HeaderCommandService,\n    private _localizationService: LocalizationService,\n    private _webEventService: WebEventService,\n    private _locationService: LocationService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  mail: IdxPopoverComponent;\n  mailOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400\n  };\n\n  mailListView: ListView;\n  mailListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const mail = e.item;\n      this.goToMail(mail);\n    }\n  }\n\n  showAllMailButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this._localizationService.translateOnce(\"form-command.mail-command-alle-anzeigen\"),\n    width: \"100%\",\n    onClick: this.onAlleAnzeigenClicked.bind(this)\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.mailListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/MailImportItem\",\n        webApiWhere: [\"Status.Typ\", Statustyp.Offen],\n        webApiOrderBy: [{\n          columnName: \"Status.SortNr\", \n          sortOrder: 0\n        }, {\n          columnName: \"Datum\", \n          sortOrder: 0\n        }],\n        filters: [{ \n          webApiCustomKey: \"InklIdStatusFarbe\", \n          webApiCustomValue: \"true\" \n        }, {\n          webApiCustomKey: \"NurEigene\", \n          webApiCustomValue: \"true\" \n        }, {\n          webApiCustomKey: \"AddTags\", \n          webApiCustomValue: \"true\" \n        }]\n      },\n    );\n\n    this.loadAnzahl();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    this._headerCommandService.mail = this;\n\n    this._anzahlChangedSubscription = this._eventAggregator\n      .subscribe(\n      NotificationTyp.mailAnzahlChanged,\n      this.loadAnzahl.bind(this)\n      );\n\n    this._commandShowingSubscription = this._eventAggregator\n      .subscribe(\n      HeaderCommandEvent.onShowingPopover,\n      (command: ICommandData) => {\n        if (this._headerCommandService.mailCommand.id != command.id) {\n          this.mail.instance.hide();\n        }\n      }\n      );\n  }\n  detached() {\n    this._anzahlChangedSubscription.dispose();\n    this._commandShowingSubscription.dispose();\n  }\n\n  showPopover(targetElement: Element) {\n    if (this.mailListView) {\n      this.mailListView.refresh(false);\n    }\n\n    this.mail.instance.show(targetElement);\n    this.mailListView.scrollToTop();\n  }\n\n  private onAlleAnzeigenClicked() {\n    this.goToMailList();\n    this.mail.instance.hide();\n  }\n  private goToMailList() {\n    this._locationService.goTo({\n      url: \"ERP/Stammdaten/MailImportItem\",\n      clearStack: false\n    });\n  }\n\n  private goToMail(mail: any) {\n    this.mail.instance.hide();\n    this._locationService.goTo({\n      url: `ERP/Stammdaten/MailImportItem/${mail.Id}`,\n      clearStack: false,\n      viewScrollInfo: this.getViewScrollInfo(mail)\n    });\n  }  \n  private getViewScrollInfo(mail): IViewScrollInfo {\n    const dataSource = this.mailListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(mail);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n  \n  private loadAnzahl() {\n    const mailEvent = new OnMailImportItemAnzahlRequestEvent({ Anzahl: 0 });\n    this._webEventService\n      .execute(mailEvent)\n      .then(r => {\n        if (r == void 0 || r.Anzahl == 0) {\n          this._headerCommandService.mailCommand.badgeText = null;\n          return;\n        } else {\n          this._headerCommandService.mailCommand.badgeText = {\n            key: \"base.param_1\",\n            parameters: [r.Anzahl]\n          };\n        }\n      });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../../framework/forms/elements/list-view/list-view\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"mailOptions\\\" view-model.ref=\\\"mail\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"showAllMailButtonOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"mailListViewOptions\\\" view-model.ref=\\\"mailListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"mail-list-item\\\" class.one-time=\\\"item.StatusFarbe ? 'mail-list-item-border-status':''\\\" css=\\\"border-color: ${item.StatusFarbe}\\\"> <div class=\\\"mail-list-item-title\\\"> ${item.Absender} </div> <div class=\\\"mail-list-item-anlage\\\"> ${item.Datum | format:\\\"E\\\"} </div> <div class=\\\"mail-list-item-info\\\"> ${item.Betreff} </div> <tags-list class=\\\"mail-list-item-info\\\" if.bind=\\\"item._Tags\\\" tags.bind=\\\"item._Tags\\\"></tags-list> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable, Scope, TaskQueue, computedFrom } from \"aurelia-framework\";\nimport { RestService, GlobalizationService, ScopeContainer, LocalizationService } from '../../../framework/base/export';\nimport { IdxPopoverComponent } from '../../interfaces/export';\nimport { ModelUtilsService, FormBase } from '../../../framework/forms/export';\n\n//TODO Check ReadOnly\n\n@autoinject\nexport class MhdChargeMengeAusw {\n  constructor(\n    private restService: RestService,\n    private globalizationService: GlobalizationService,\n    private localizationService: LocalizationService,\n    private modelUtilsService: ModelUtilsService,\n    private taskQueue: TaskQueue\n  ) {}\n\n  mhdChargeList: any[] = [];\n  mhdChargeBestandList: any[] = [];\n  bestandList: any[] = [];\n\n  @bindable @observable mainModel: any;\n  @bindable @observable idArtikel: number;\n  @bindable @observable idLager: number;\n  @bindable @observable idEinheit: number;\n  @bindable @observable isMhdChargeLagerDeaktiviert: boolean;\n  @bindable isReadOnly: boolean;\n  @bindable isRequired: boolean;\n  @bindable mengeZiel: number;\n  @bindable mengeProperty: string;\n\n  @observable artikel: any;\n  \n  mhdChargeContainer: any;\n  hasMhdCharge: boolean;\n  umrechner: number;\n  itemRowClass: string;\n  form: FormBase;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  mengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this.globalizationService.getNumberFormat(\"n2\"),\n    min: 0,\n    onValueChangedByUser: (e) => {\n      this.fireMengeEditorValueChanged(e.value);\n    },\n    bindingOptions: {\n      readOnly: \"isReadOnlyMenge\"\n    }\n  };\n  openPopupButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-pencil\",\n    onClick: (e) => {\n      const compareMHDCharge = (item1, item2) => {\n        let isEquals = true;\n\n        if (isEquals && (item1.Charge || null) != (item2.Charge || null)) {\n          isEquals = false;\n        }\n\n        if (isEquals) {\n          const mhd1 = item1.MHD ? item1.MHD.getTime() : null;\n          const mhd2 = item2.MHD ? item2.MHD.getTime() : null;\n\n          isEquals = mhd1 == mhd2;\n        }\n\n        return isEquals;\n      }\n\n      this.mhdChargeList = this.mhdChargeContainer.MHDChargeEintraege.map(c => {\n        const bestand = this.bestandList.find(d => compareMHDCharge(c, d));\n\n        return {\n          Ref: c,\n          MHD: c.MHD,\n          Charge: c.Charge,\n          MengeVerpEH: c.MengeVerpEH,\n          MaxMengeVerpEH: bestand \n            ? Math.round(bestand.Bestand / (this.umrechner || 1) * 100) / 100\n            : 0\n        };\n      });\n\n      this.mhdChargeBestandList = this.bestandList.filter(c => {\n        const exists = this.mhdChargeList.some(d => compareMHDCharge(c, d));\n        return !exists;\n      }).map(c => {\n        return {\n          MHD: c.MHD,\n          Charge: c.Charge,\n          MengeVerpEH: Math.round(c.Bestand / (this.umrechner || 1) * 100) / 100\n        };\n      });\n\n      this.popover.instance.show(e.event.currentTarget);\n    }\n  }\n  mhdChargeMengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this.globalizationService.getNumberFormat(\"n2\"),\n    min: 0,\n    width: \"100%\",\n    onValueChangedByUser: (e) => {\n      const item = e.model.bindingContext.item;\n\n      if (item.MaxMengeVerpEH < e.value) {\n        this.taskQueue.queueMicroTask(() => {\n          item.MengeVerpEH = item.MaxMengeVerpEH;\n        });\n      }\n    },\n    bindingOptions: {\n      value: \"item.MengeVerpEH\",\n      readOnly: \"isReadOnlyChecked\"\n    }\n  }\n  useButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-plus\",\n    width: \"100%\",\n    onClick: (e) => {\n      const item = e.model.bindingContext.item;\n      const index = this.mhdChargeBestandList.indexOf(item);\n\n      const maxMengeVerp = Math.round(item.MengeVerpEH / (this.umrechner || 1) * 100) / 100;\n\n      const mengeVerp = this.mhdChargeList.reduce((p, c) => {\n        return p + c.MengeVerpEH;\n      }, 0);\n      \n      let mengeRest = this.mengeZiel - mengeVerp;\n      if (mengeRest < 0) {\n        mengeRest = 0;\n      }\n      else if (mengeRest > maxMengeVerp) {\n        mengeRest = maxMengeVerp;\n      }\n\n      this.mhdChargeList.push({\n        MHD: item.MHD,\n        Charge: item.Charge,\n        MaxMengeVerpEH: maxMengeVerp,\n        MengeVerpEH: (mengeRest || null)\n      });\n\n      if (index >= 0) {\n        this.mhdChargeBestandList.splice(index, 1);\n      }\n    },\n    bindingOptions: {\n      disabled: \"isReadOnlyChecked\"\n    }\n  }\n  submitButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"mhd_charge_menge.uebernehmen\"),\n    onClick: () => {\n      let mengeVerpEH = 0;\n\n      const deleteList = [];\n      this.mhdChargeList.forEach(c => {\n        let remove = false;\n\n        if (!c.MengeVerpEH) {\n          remove = true;\n        }\n\n        if (remove) {\n          if (c.Ref) {\n            deleteList.push(c.Ref);\n          }\n        } else {\n          let ref = c.Ref;\n          if (!ref) {\n            ref = {};\n            this.mhdChargeContainer.MHDChargeEintraege.push(ref)\n          };\n\n          ref.MHD = c.MHD;\n          ref.Charge = c.Charge;\n          ref.MengeVerpEH = c.MengeVerpEH;\n\n          mengeVerpEH += c.MengeVerpEH;\n        }\n      });\n\n      deleteList.forEach(c => {\n        const index = this.mhdChargeContainer.MHDChargeEintraege.indexOf(c);\n        if (index < 0) {\n          return;\n        }\n\n        this.mhdChargeContainer.MHDChargeEintraege.splice(index, 1);\n      });\n\n      this.mainModel.MHDChargeContainer = this.mhdChargeContainer;\n\n      this.mainModel[this.mengeProperty] = mengeVerpEH;\n      this.modelUtilsService.setDirty(this.mainModel);\n      this.fireMengeEditorValueChanged(mengeVerpEH);\n\n      this.popover.instance.hide();\n    },\n    bindingOptions: {\n      disabled: \"isReadOnlyChecked\"\n    }\n  }\n  cancelButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"mhd_charge_menge.abbrechen\"),\n    onClick: () => {\n      this.popover.instance.hide();\n    }\n  }\n  popover: IdxPopoverComponent;\n  popoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"500px\"\n  }\n\n  @computedFrom(\"isReadOnly\", \"isReadOnlyInternal\")\n  get isReadOnlyChecked() {\n    if (this.isReadOnly) {\n      return true;\n    }\n    if (this.isReadOnlyInternal) {\n      return true;\n    }\n\n    return false;\n  }\n  @computedFrom(\"isReadOnlyInternal\", \"hasMhdCharge\")\n  get isReadOnlyMenge() {\n    if (this.isReadOnlyInternal) {\n      return true;\n    }\n    if (this.hasMhdCharge) {\n      return true;\n    }\n\n    return false;\n  }\n  @computedFrom(\"idArtikel\", \"mainModel\", \"mainModel.CanSave\")\n  get isReadOnlyInternal() {\n    if (!this.idArtikel) {\n      return true;\n    }\n    if (!this.mainModel) {\n      return true;\n    }\n    if (this.mainModel.CanSave != void(0) && !this.mainModel.CanSave) {\n      return true;\n    }\n\n    return false;\n  }\n\n  bind(bindingContext) {\n    this.form = bindingContext;\n\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    if (!this.mengeProperty) {\n      throw new Error(\"propertyMenge nicht definiert\");\n    }\n    if (this.isRequired) {\n      this.mengeNumberBoxOptions[\"validators\"] = [{\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }];\n    }\n\n    this.mengeNumberBoxOptions.bindingOptions.value = `mainModel.${this.mengeProperty}`;\n\n    this.loadArtikelData();\n    this.loadLagerData();\n    this.loadEinheit();\n    this.loadMHDChargeContainer();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  mainModelChanged() {\n    this.loadMHDChargeContainer();\n  }\n  idArtikelChanged() {\n    this.loadArtikelData();\n  }\n  artikelChanged() {\n    this.loadLagerData();\n  }\n  idLagerChanged() {\n    this.loadLagerData();\n  }\n  idEinheitChanged() {\n    this.loadEinheit();\n  }\n  isMhdChargeLagerDeaktiviertChanged() {\n    this.loadMHDChargeContainer();\n    this.checkIsMhdChargeLagerDeaktiviert();\n  }\n\n  private async loadMHDChargeContainer() {\n    this.mhdChargeContainer = null;    \n\n    if (!this.mainModel) {\n      return;\n    }\n\n    if (this.mainModel.MHDChargeContainer && !this.isMhdChargeLagerDeaktiviert) {\n      this.mhdChargeContainer = this.mainModel.MHDChargeContainer;\n    } else if (this.mainModel.IdMHDChargeContainer) {\n      this.mhdChargeContainer = await this.restService.get({\n        url: this.restService.getWebApiUrl(\"ERP/Lager/MHDChargeContainer/\".concat(this.mainModel.IdMHDChargeContainer)),\n        getOptions: {\n          expand: {\n            \"MHDChargeEintraege\": null\n          }\n        }\n      });\n    } else {\n      this.mhdChargeContainer = {\n        MHDChargeEintraege: []\n      };\n    }\n  }\n  private async loadArtikelData() {\n    if (!this.idArtikel) {\n      return;\n    }\n\n    this.artikel = await this.restService.get({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/Artikel/\".concat(this.idArtikel.toString())),\n      getOptions: {\n        columns: [\"Id\", \"SupportsMHD\", \"SupportsCharge\"]\n      }\n    });\n\n    this.checkIsMhdChargeLagerDeaktiviert();\n  }\n  private checkIsMhdChargeLagerDeaktiviert(){\n    if (!this.idArtikel || this.artikel == null) {\n      return;\n    }\n    \n    this.hasMhdCharge = !this.isMhdChargeLagerDeaktiviert && (this.artikel.SupportsMHD || this.artikel.SupportsCharge);\n\n    this.itemRowClass = !this.isMhdChargeLagerDeaktiviert && this.artikel.SupportsMHD && this.artikel.SupportsCharge\n      ? \"mhd-charge-menge-ausw-item-row\"\n      : \"mhd-menge-ausw-item-row\";\n  }\n  private async loadLagerData() {\n    this.bestandList = [];\n\n    if (!this.artikel || !(this.artikel.SupportsMHD || this.artikel.SupportsCharge) || !this.idLager || (this.isMhdChargeLagerDeaktiviert && !this.isMhdChargeLagerDeaktiviert)) {\n      return;\n    }\n\n    this.bestandList = await this.restService.get({\n      url: this.restService.getWebApiUrl(\"ERP/Lager/LagerbestandDetail\"),\n      getOptions: {\n        columns: [\"Id\", \"MHD\", \"Charge\", \"Bestand\"],\n        where: [[\"IdArtikel\", this.artikel.Id], [\"IdLager\", this.idLager], [\"Bestand\", \">\", 0]],\n        orderBy: [{columnName: \"MHD\", sortOrder: 0}, {columnName: \"Charge\", sortOrder: 0}]\n      }\n    });\n    this.checkIsMhdChargeLagerDeaktiviert();\n  }\n  private async loadEinheit() {\n    this.umrechner = 1;\n\n    if (!this.idEinheit) {\n      return;\n    }\n\n    const r = await this.restService.get({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/ArtikelEinheit/\".concat(this.idEinheit.toString())),\n      getOptions: {\n        columns: [\"Id\", \"Umrechner\"]\n      }\n    });\n\n    if (!r) {\n      return;\n    }\n\n    this.umrechner = r.Umrechner;\n  }\n  private fireMengeEditorValueChanged(mengeVerpEH: number) {\n    const model = this.form.models\n      .getModels()\n      .find(c => this.form.models.data[c.id] == this.mainModel);\n\n    if (!model) {\n      return;\n    }\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        bindTo: this.mengeProperty,\n        bindToFQ: this.mengeProperty,\n        dataContext: model.id\n      },\n      value: mengeVerpEH\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./mhd-charge-menge-ausw.less\\\"></require> <div class=\\\"mhd-charge-menge-ausw-container\\\"> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mengeNumberBoxOptions\\\"></dx-widget> <dx-widget if.bind=\\\"hasMhdCharge\\\" name=\\\"dxButton\\\" options.bind=\\\"openPopupButtonOptions\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"popoverOptions\\\" view-model.ref=\\\"popover\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"mhd-charge-menge-ausw-popover\\\"> <div class=\\\"mhd-charge-menge-ausw-group\\\"> <div> <h2 tr=\\\"key: mhd_charge_menge.ausgewaehlte_elemente\\\"></h2> </div> <div class=\\\"mhd-charge-menge-ausw-item-row-header\\\" class.bind=\\\"itemRowClass\\\"> <div if.bind=\\\"artikel.SupportsMHD\\\" tr=\\\"key: mhd_charge_menge.mhd\\\">MHD</div> <div if.bind=\\\"artikel.SupportsCharge\\\" tr=\\\"key: mhd_charge_menge.charge\\\">Charge</div> <div tr=\\\"key: mhd_charge_menge.max_menge_ve\\\">Max. Mge. VE</div> <div tr=\\\"key: mhd_charge_menge.mge_ve\\\">Mge. VE</div> </div> <div class.bind=\\\"itemRowClass\\\" repeat.for=\\\"item of mhdChargeList\\\"> <div if.bind=\\\"artikel.SupportsMHD\\\"> ${item.MHD | format:'d'} </div> <div if.bind=\\\"artikel.SupportsCharge\\\"> ${item.Charge} </div> <div> ${item.MaxMengeVerpEH | format:'n2'} </div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mhdChargeMengeNumberBoxOptions\\\"></dx-widget> </div> </div> <div class=\\\"mhd-charge-menge-ausw-group\\\" if.bind=\\\"idLager && !isReadOnlyChecked\\\"> <div> <h2>Verfügbare Elemente</h2> </div> <div class=\\\"mhd-charge-menge-ausw-item-row-header\\\" class.bind=\\\"itemRowClass\\\"> <div if.bind=\\\"artikel.SupportsMHD\\\">MHD</div> <div if.bind=\\\"artikel.SupportsCharge\\\">Charge</div> <div>Mge. VE</div> <div></div> </div> <div class.bind=\\\"itemRowClass\\\" repeat.for=\\\"item of mhdChargeBestandList\\\"> <div if.bind=\\\"artikel.SupportsMHD\\\"> ${item.MHD | format:'d'} </div> <div if.bind=\\\"artikel.SupportsCharge\\\"> ${item.Charge} </div> <div> ${item.MengeVerpEH | format:'n2'} </div> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"useButtonOptions\\\"></dx-widget> </div> </div> </div> <div class=\\\"mhd-charge-menge-ausw-group\\\" if.bind=\\\"!idLager\\\" tr=\\\"key: mhd_charge_menge.lager_auswaehlen\\\"> </div> <div class=\\\"mhd-charge-menge-ausw-bottom-toolbar\\\"> <div class=\\\"mhd-charge-menge-ausw-space\\\"></div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"submitButtonOptions\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"cancelButtonOptions\\\"></dx-widget> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mhd-charge-menge-ausw-container {\\n  display: flex;\\n}\\n.mhd-charge-menge-ausw-container > *:first-child {\\n  flex-grow: 1;\\n}\\n.mhd-charge-menge-ausw-popover {\\n  padding: 5px;\\n}\\n.mhd-menge-ausw-item-row {\\n  display: grid;\\n  grid-template-columns: 1fr 1fr 1fr;\\n  grid-gap: 2px;\\n  align-items: center;\\n  padding-bottom: 5px;\\n}\\n.mhd-charge-menge-ausw-item-row {\\n  display: grid;\\n  grid-template-columns: 1fr 1fr 1fr 1fr;\\n  grid-gap: 2px;\\n  align-items: center;\\n  padding-bottom: 5px;\\n}\\n.mhd-charge-menge-ausw-item-row-header {\\n  font-weight: bold;\\n  padding: 5px 0;\\n}\\n.mhd-charge-menge-ausw-bottom-toolbar {\\n  display: flex;\\n}\\n.mhd-charge-menge-ausw-bottom-toolbar .mhd-charge-menge-ausw-space {\\n  flex-grow: 1;\\n}\\n.mhd-charge-menge-ausw-group {\\n  border: 1px solid #ddd;\\n  background-color: #fbfbfb;\\n  padding: 10px;\\n  margin-bottom: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, Scope, computedFrom } from \"aurelia-framework\";\nimport { RestService, GlobalizationService, ScopeContainer, LocalizationService } from '../../../framework/base/export';\nimport { IdxPopoverComponent } from '../../interfaces/export';\nimport { ModelUtilsService, FormBase } from '../../../framework/forms/export';\n\n@autoinject\nexport class MhdChargeMengeErf {\n  constructor(\n    private restService: RestService,\n    private globalizationService: GlobalizationService,\n    private localizationService: LocalizationService,\n    private modelUtilsService: ModelUtilsService\n  ) { }\n\n  mhdChargeList: any[] = [];\n  mhdChargeDeleteList: number[] = [];\n\n  @bindable @observable mainModel: any;\n  @bindable @observable idArtikel: number;\n  @bindable @observable isArtikelStuecklistenkomponente: boolean;\n  @bindable @observable isMhdChargeLagerDeaktiviert: boolean;\n  @bindable isReadOnly: boolean;\n  @bindable isRequired: boolean;\n  @bindable mengeProperty: string;\n\n  mhdChargeContainer: any;\n  hasMhdCharge: boolean;\n  artikel: any;\n  itemRowClass: string;\n  form: FormBase;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  mengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this.globalizationService.getNumberFormat(\"n2\"),\n    min: 0,\n    onValueChangedByUser: (e) => {\n      this.fireMengeEditorValueChanged(e.value);\n    },\n    bindingOptions: {\n      readOnly: \"isReadOnlyMenge\"\n    }\n  };\n  openPopupButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-pencil\",\n    onClick: (e) => {\n      this.mhdChargeDeleteList = [];\n      this.mhdChargeList = this.mhdChargeContainer.MHDChargeEintraege.map(c => {\n        return {\n          Ref: c,\n          MHD: c.MHD,\n          Charge: c.Charge,\n          MengeVerpEH: c.MengeVerpEH\n        }\n      });\n\n      if (!this.isReadOnlyChecked && this.mhdChargeList.length == 0) {\n        this.mhdChargeList.push(...[{}, {}, {}]);\n      }\n\n      this.popover.instance.show(e.event.currentTarget);\n    }\n  }\n  mhdDateBoxOptions: DevExpress.ui.dxDateBoxOptions = {\n    displayFormat: this.globalizationService.getFormatterParser(\"d\"),\n    min: new Date(1800, 0, 1),\n    max: new Date(2099, 11, 31),\n    width: \"100%\",\n    bindingOptions: {\n      value: \"item.MHD\",\n      readOnly: \"isReadOnlyChecked\"\n    }\n  }\n  chargeTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 50,\n    width: \"100%\",\n    bindingOptions: {\n      value: \"item.Charge\",\n      readOnly: \"isReadOnlyChecked\"\n    }\n  }\n  mhdChargeMengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this.globalizationService.getNumberFormat(\"n2\"),\n    min: 0,\n    width: \"100%\",\n    bindingOptions: {\n      value: \"item.MengeVerpEH\",\n      readOnly: \"isReadOnlyChecked\"\n    }\n  }\n  deleteButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-times\",\n    tabIndex: -1,\n    width: \"100%\",\n    onClick: (e) => {\n      const item = e.model.bindingContext.item;\n      const index = this.mhdChargeList.indexOf(item);\n      if (index < 0) {\n        return;\n      }\n\n      this.mhdChargeList.splice(index, 1);\n\n      if (item.Ref) {\n        this.mhdChargeDeleteList.push(item.Ref);\n      }\n    },\n    bindingOptions: {\n      disabled: \"isReadOnlyChecked\"\n    }\n  }\n  addButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-plus\",\n    onClick: () => {\n      this.mhdChargeList.push({});\n    },\n    bindingOptions: {\n      disabled: \"isReadOnlyChecked\"\n    }\n  }\n  submitButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"mhd_charge_menge.uebernehmen\"),\n    onClick: () => {\n      let mengeVerpEH = 0;\n\n      this.mhdChargeList.forEach(c => {\n        let remove = false;\n\n        if (this.artikel.SupportsMHD && !c.MHD) {\n          remove = true;\n        } else if (this.artikel.SupportsCharge && !c.Charge) {\n          remove = true;\n        } else if (!c.MengeVerpEH) {\n          remove = true;\n        }\n\n        if (remove) {\n          if (c.Ref) {\n            this.mhdChargeDeleteList.push(c.Ref);\n          }\n        } else {\n          let ref = c.Ref;\n          if (!ref) {\n            ref = {};\n            this.mhdChargeContainer.MHDChargeEintraege.push(ref)\n          };\n\n          ref.MHD = c.MHD;\n          ref.Charge = c.Charge;\n          ref.MengeVerpEH = c.MengeVerpEH;\n\n          mengeVerpEH += c.MengeVerpEH;\n        }\n      });\n\n      this.mhdChargeDeleteList.forEach(c => {\n        const index = this.mhdChargeContainer.MHDChargeEintraege.indexOf(c);\n        if (index < 0) {\n          return;\n        }\n\n        this.mhdChargeContainer.MHDChargeEintraege.splice(index, 1);\n      });\n\n      this.mainModel.MHDChargeContainer = this.mhdChargeContainer;\n\n      this.mainModel[this.mengeProperty] = mengeVerpEH;\n      this.modelUtilsService.setDirty(this.mainModel);\n      this.fireMengeEditorValueChanged(mengeVerpEH);\n\n      this.popover.instance.hide();\n    },\n    bindingOptions: {\n      disabled: \"isReadOnlyChecked\"\n    }\n  }\n  cancelButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"mhd_charge_menge.abbrechen\"),\n    onClick: () => {\n      this.popover.instance.hide();\n    }\n  }\n  popover: IdxPopoverComponent;\n  popoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"500px\"\n  }\n\n  @computedFrom(\"isReadOnly\", \"isReadOnlyInternal\")\n  get isReadOnlyChecked() {\n    if (this.isReadOnly) {\n      return true;\n    }\n    if (this.isReadOnlyInternal) {\n      return true;\n    }\n\n    return false;\n  }\n  @computedFrom(\"isReadOnlyInternal\", \"hasMhdCharge\")\n  get isReadOnlyMenge() {\n    if (this.isReadOnlyInternal) {\n      return true;\n    }\n    if (this.hasMhdCharge) {\n      return true;\n    }\n\n    return false;\n  }\n  @computedFrom(\"idArtikel\", \"mainModel\", \"mainModel.CanSave\", \"isArtikelStuecklistenkomponente\")\n  get isReadOnlyInternal() {\n    if (!this.idArtikel) {\n      return true;\n    }\n    if (!this.mainModel) {\n      return true;\n    }\n    if (this.mainModel.CanSave != void (0) && !this.mainModel.CanSave) {\n      return true;\n    }\n\n    return false;\n  }\n\n  bind(bindingContext) {\n    this.form = bindingContext;\n\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    if (!this.mengeProperty) {\n      throw new Error(\"propertyMenge nicht definiert\");\n    }\n    if (this.isRequired) {\n      this.mengeNumberBoxOptions[\"validators\"] = [{\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }];\n    }\n\n    this.mengeNumberBoxOptions.bindingOptions.value = `mainModel.${this.mengeProperty}`;\n\n    this.loadArtikelData();\n    this.loadMHDChargeContainer();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  mainModelChanged() {\n    this.loadMHDChargeContainer();\n  }\n  idArtikelChanged() {\n    this.loadArtikelData();\n  }\n  isMhdChargeLagerDeaktiviertChanged() {\n    this.loadMHDChargeContainer();\n    this.checkIsMhdChargeLagerDeaktiviert();\n  }\n\n  private async loadMHDChargeContainer() {\n    this.mhdChargeContainer = null;\n\n    if (!this.mainModel) {\n      return;\n    }\n    \n    if (this.mainModel.MHDChargeContainer && !this.isMhdChargeLagerDeaktiviert) {\n      this.mhdChargeContainer = this.mainModel.MHDChargeContainer;\n    } else if (this.mainModel.IdMHDChargeContainer) {\n      this.mhdChargeContainer = await this.restService.get({\n        url: this.restService.getWebApiUrl(\"ERP/Lager/MHDChargeContainer/\".concat(this.mainModel.IdMHDChargeContainer)),\n        getOptions: {\n          expand: {\n            \"MHDChargeEintraege\": null\n          }\n        }\n      });\n    } else {\n      this.mhdChargeContainer = {\n        MHDChargeEintraege: []\n      };\n    }\n  }\n  private async loadArtikelData() {\n    if (!this.idArtikel) {\n      return;\n    }\n\n    this.artikel = await this.restService.get({\n      url: this.restService.getWebApiUrl(\"ERP/Stammdaten/Artikel/\".concat(this.idArtikel.toString())),\n      getOptions: {\n        columns: [\"Id\", \"SupportsMHD\", \"SupportsCharge\"]\n      }\n    });\n\n  this.checkIsMhdChargeLagerDeaktiviert();\n  }\n  private checkIsMhdChargeLagerDeaktiviert(){\n    if (!this.idArtikel || this.artikel == null) {\n      return;\n    }\n    \n    this.hasMhdCharge = !this.isMhdChargeLagerDeaktiviert && (this.artikel.SupportsMHD || this.artikel.SupportsCharge);\n\n    this.itemRowClass = !this.isMhdChargeLagerDeaktiviert && this.artikel.SupportsMHD && this.artikel.SupportsCharge\n      ? \"mhd-charge-menge-erf-item-row\"\n      : \"mhd-menge-erf-item-row\";\n  }\n  private fireMengeEditorValueChanged(mengeVerpEH: number) {\n    const model = this.form.models\n      .getModels()\n      .find(c => this.form.models.data[c.id] == this.mainModel);\n\n    if (!model) {\n      return;\n    }\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        bindTo: this.mengeProperty,\n        bindToFQ: this.mengeProperty,\n        dataContext: model.id\n      },\n      value: mengeVerpEH\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./mhd-charge-menge-erf.less\\\"></require> <div class=\\\"mhd-charge-menge-erf-container\\\"> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mengeNumberBoxOptions\\\"></dx-widget> <dx-widget if.bind=\\\"hasMhdCharge\\\" name=\\\"dxButton\\\" options.bind=\\\"openPopupButtonOptions\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"popoverOptions\\\" view-model.ref=\\\"popover\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"mhd-charge-menge-erf-popover\\\"> <div class=\\\"mhd-charge-menge-erf-group\\\"> <div> <h2 tr=\\\"key: mhd_charge_menge.elemente\\\">Elemente</h2> </div> <div class=\\\"mhd-charge-menge-erf-item-row-header\\\" class.bind=\\\"itemRowClass\\\"> <div if.bind=\\\"artikel.SupportsMHD\\\" tr=\\\"key: mhd_charge_menge.mhd\\\">MHD</div> <div if.bind=\\\"artikel.SupportsCharge\\\" tr=\\\"key: mhd_charge_menge.charge\\\">Charge</div> <div>Mge. VE</div> <div></div> </div> <div class.bind=\\\"itemRowClass\\\" repeat.for=\\\"item of mhdChargeList\\\"> <dx-widget if.bind=\\\"artikel.SupportsMHD\\\" name=\\\"dxDateBox\\\" options.bind=\\\"mhdDateBoxOptions\\\"></dx-widget> <dx-widget if.bind=\\\"artikel.SupportsCharge\\\" name=\\\"dxTextBox\\\" options.bind=\\\"chargeTextBoxOptions\\\"></dx-widget> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mhdChargeMengeNumberBoxOptions\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"deleteButtonOptions\\\"></dx-widget> </div> </div> <div class=\\\"mhd-charge-menge-erf-bottom-toolbar\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"addButtonOptions\\\"></dx-widget> <div class=\\\"mhd-charge-menge-erf-space\\\"></div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"submitButtonOptions\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"cancelButtonOptions\\\"></dx-widget> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mhd-charge-menge-erf-container {\\n  display: flex;\\n}\\n.mhd-charge-menge-erf-container > *:first-child {\\n  flex-grow: 1;\\n}\\n.mhd-charge-menge-erf-popover {\\n  padding: 5px;\\n}\\n.mhd-menge-erf-item-row {\\n  display: grid;\\n  grid-template-columns: 1fr 1fr 26px;\\n  grid-gap: 2px;\\n  align-items: center;\\n  padding-bottom: 5px;\\n}\\n.mhd-charge-menge-erf-item-row {\\n  display: grid;\\n  grid-template-columns: 1fr 1fr 1fr 26px;\\n  grid-gap: 2px;\\n  align-items: center;\\n  padding-bottom: 5px;\\n}\\n.mhd-charge-menge-erf-item-row-header {\\n  font-weight: bold;\\n  padding: 5px 0;\\n}\\n.mhd-charge-menge-erf-bottom-toolbar {\\n  display: flex;\\n}\\n.mhd-charge-menge-erf-bottom-toolbar .mhd-charge-menge-erf-space {\\n  flex-grow: 1;\\n}\\n.mhd-charge-menge-erf-group {\\n  border: 1px solid #ddd;\\n  background-color: #fbfbfb;\\n  padding: 10px;\\n  margin-bottom: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  EventAggregator,\n  Subscription\n} from 'aurelia-event-aggregator';\nimport {\n  DataSourceService,\n  ScopeContainer,\n  WebEventService,\n  IViewScrollInfo\n} from \"../../../framework/base/export\";\nimport {\n  FormBase,\n  ListView\n} from \"../../../framework/forms/export\";\nimport {\n  IListViewOptions\n} from '../../../framework/forms/elements/list-view/export';\nimport {\n  ICommandData\n} from \"../../../framework/forms/interfaces/export\";\nimport {\n  OnNotizAnzahlRequestEvent\n} from './../../../framework-data/events';\nimport {\n  FormCommandService\n} from \"../../services/export\";\nimport {\n  CustomEditPopupService,\n  HeaderCommandService\n} from \"../../services/export\";\nimport {\n  HeaderCommandEvent,\n  NotificationTyp,\n  Statustyp\n} from \"../../enumerations/export\";\nimport {\n  IdxPopoverComponent,\n  IFormCommandExecuteOptions\n} from '../../interfaces/export';\nimport { isMoment } from 'moment';\n\n@autoinject\nexport class NotizFormCommand {\n  private _availableForms: FormBase[] = [];\n  private _detachedAddCommand: { (): void };\n  private _detachedShowCommand: { (): void };\n  private _idVerknuepfteEntitaet: number;\n  private _notizFormCommandSubscription: Subscription;\n  private _notizShowEditPopupSubscription: Subscription;\n  private _notizShowListSubscription: Subscription;\n  constructor(\n    private customEditPopup: CustomEditPopupService,\n    private dataSource: DataSourceService,\n    private eventAggregator: EventAggregator,\n    private formCommand: FormCommandService,\n    private webEvent: WebEventService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  needsReload: boolean = false;\n\n  notiz: IdxPopoverComponent;\n  notizOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400,\n    onShowing: (e) => {\n      (<DevExpress.ui.dxPopover>e.component).repaint();\n      this.notizListView.refresh();\n    }\n  };\n\n  notizListView: ListView;\n  notizListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    pageSize: 15,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const notiz = e.item;\n      this.showNotizPopup(notiz.Id, this.getViewScrollInfo(e.item));\n    }\n  }\n\n  showNotizFormCommand: ICommandData = {\n    id: \"showNotizFormCommand\",\n    idCategory: \"notizen\",\n    title: \"form-command.notiz-command-icon-text\",\n    icon: \"tasks\",\n    isEnabled: false,\n    badgeText: null,\n    badgeColor: \"#297FB8\",\n    sortIndex: 8100\n  }\n  addNotizFormCommand: ICommandData = {\n    id: \"$addNotiz\",\n    idCategory: \"notizen\",\n    icon: \"plus\",\n    title: \"form-command.notiz-command-neu\",\n    isEnabled: false,\n    sortIndex: 81001\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.notizListViewOptions.dataSource = this.dataSource.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Notiz\",\n        webApiOrderBy: [{ columnName: \"GueltigBis\", sortOrder: 0 }, { columnName: \"Id\", sortOrder: 1 }]\n      },\n      {\n        getCustomWhere: () => {\n          if (this._idVerknuepfteEntitaet == void 0) {\n            return null;\n          }\n\n          return [\"IdVerknuepfteEntitaet\", this._idVerknuepfteEntitaet];\n        }\n      }\n    );\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    this._notizFormCommandSubscription = this.eventAggregator\n      .subscribe(\n        NotificationTyp.notizAnzahlChanged,\n        this.onNotizAnzahlChanged.bind(this)\n      );\n\n    this._notizShowEditPopupSubscription = this.eventAggregator\n      .subscribe(\n        NotificationTyp.notizShowEditPopup, (e) => {\n          this.showNotizPopup(e.id, e.viewScrollInfo);\n        });\n\n    this._notizShowListSubscription = this.eventAggregator\n      .subscribe(\n        NotificationTyp.notizShowListPopover, (e) => {\n          this.showNotizPopover(e.id, e.target);\n        });\n\n    this._detachedShowCommand = this.formCommand.attachFormCommand(\n      this.showNotizFormCommand,\n      {\n        isCommandVisibleModelProperty: \"SupportsNotiz\",\n        execute: this.onShowNotizenClicked.bind(this),\n        onFormModelLoaded: this.loadNotizBadge.bind(this),\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.deleteAvailableForm.bind(this)\n      });\n\n    this._detachedAddCommand = this.formCommand.attachFormCommand(\n      this.addNotizFormCommand,\n      {\n        isCommandVisibleModelProperty: \"SupportsNotiz\",\n        execute: this.onAddNotizClicked.bind(this)\n      }\n    );\n  }\n  detached() {\n    this._notizFormCommandSubscription.dispose();\n    this._notizShowEditPopupSubscription.dispose();\n    this._notizShowListSubscription.dispose();\n    this._detachedShowCommand();\n    this._detachedAddCommand();\n  }\n\n  isNotizAlt(item) {\n    if (!item.GueltigBis) {\n      return false;\n    }\n\n    return item.GueltigBis.getTime() < new Date().getTime();\n  }\n  showNotizPopup(id: number, viewScrollInfo?: IViewScrollInfo) {\n    this.customEditPopup\n      .notizEditPopup\n      .show({\n        mappings: { \"$id\": id },\n        viewScrollInfo: viewScrollInfo\n      });\n    this.notiz.instance.hide();\n  }\n  showNotizPopover(id: number, target: Element){\n    this._idVerknuepfteEntitaet = id;\n    this.notiz.instance.show(target);\n  }\n  private onAddNotizClicked(e: IFormCommandExecuteOptions) {\n    this._idVerknuepfteEntitaet = e.modelData.Id;\n    this.customEditPopup.notizEditPopup.show({\n      mappings: { \"$id\": 0 },\n      setValuesOnModelWithKeyIdLoaded: { IdVerknuepfteEntitaet: e.modelData.Id }\n    });\n  }\n  private onNotizAnzahlChanged(data) {\n    if (!data || !data.IdVerknuepfteEntitaet) {\n      return;\n    }\n\n    this.loadNotizBadge({ Id: data.IdVerknuepfteEntitaet });\n  }\n  private onShowNotizenClicked(e: IFormCommandExecuteOptions) {\n    const element = this.formCommand.getCommandTarget(e.options.event);\n\n    this.showNotizPopover(e.modelData.Id, element);\n  }\n\n  private getViewScrollInfo(notiz): IViewScrollInfo {\n    const dataSource = this.notizListViewOptions.dataSource;\n    if (!dataSource) {\n      return null;\n    }\n\n    const lastLoadInfo = (<any>dataSource).lastLoadInfo;\n    if (!lastLoadInfo) {\n      return null;\n    }\n\n    const totalCount = dataSource.totalCount();\n    const pageIndex = dataSource.pageIndex();\n    const pageSize = dataSource.pageSize();\n    const items = dataSource.items();\n    const indexOf = items.indexOf(notiz);\n\n    return {\n      lastLoadInfo: lastLoadInfo,\n      index: (pageIndex * pageSize) + indexOf,\n      maxCount: totalCount\n    };\n  }\n  private loadNotizBadge(data, command?: ICommandData) {\n    if (data == void 0 || data.Id == void 0) {\n      return;\n    }\n\n    const commandToReload = command || this.formCommand.getReloadCommand(this.showNotizFormCommand, this._availableForms, {\n      modelPropertyName: \"Id\",\n      modelPropertyValue: data.Id\n    })\n\n    if (!commandToReload) {\n      return;\n    }\n\n    const notizAnzahlEvent = new OnNotizAnzahlRequestEvent({\n      IdVerknuepfteEntitaet: data.Id\n    });\n    this.webEvent\n      .execute(notizAnzahlEvent)\n      .then(r => {\n        if (r == void 0 || r.IdVerknuepfteEntitaet == void 0) {\n          return;\n        }\n        if (r.Anzahl == 0 || r.Anzahl == void 0) {\n          commandToReload.isEnabled = false;\n          commandToReload.badgeText = null;\n          return;\n        }\n\n        commandToReload.isEnabled = true;\n        commandToReload.badgeText = {\n          key: \"base.param_1\",\n          parameters: [r.Anzahl]\n        };\n      });\n\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private deleteAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1)\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../../framework/forms/elements/list-view/list-view\\\"></require> <require from=\\\"./notiz-form-command.less\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"notizOptions\\\" view-model.ref=\\\"notiz\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content\\\"> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"notizListViewOptions\\\" view-model.ref=\\\"notizListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"notiz-list-item\\\"> <div class=\\\"notiz-list-item-title\\\"> ${item.AnlageBenutzer} </div> <div class=\\\"notiz-list-item-anlage\\\"> ${item.AnlageDatum | format:\\\"E\\\"} </div> <div class=\\\"notiz-list-item-info\\\"> ${item.DisplayText} </div> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".erp--form-command-notiz-old {\\n  color: #bbb;\\n  text-decoration: line-through;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  Scope,\n  OverrideContext\n} from \"aurelia-framework\";\nimport {\n  OnPasswortAendern,\n  OnPasswortAendernEvent\n} from \"../../../framework-data/events\";\nimport {\n  ICommandData\n} from \"../../../framework/forms/export\";\nimport {\n  WebEventService,\n  ScopeContainer,\n  LocalizationService\n} from \"../../../framework/base/export\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport {\n  IdxPopupComponent\n} from \"../../interfaces/export\";\nimport {\n  HeaderCommandService\n} from \"../../services/export\";\n\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class PasswortAendern {\n\n  constructor(\n    private headerCommand: HeaderCommandService,\n    private localization: LocalizationService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private webEvent: WebEventService\n  ) { }\n\n  scope: Scope\n  scopeContainer: ScopeContainer\n\n  passwortAendernValidation: any;\n  passwortAendernValidationGroup: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [\n      {\n        type: \"required\",\n        message: \"Pflichtfeld\",\n      }]\n  };\n\n  passwortAendernPopup: IdxPopupComponent;\n  passwortAendernPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 500,\n    height: \"auto\"\n  };\n\n  passwortAlt: Interfaces.IdxTextBoxComponent;\n  passwortAltOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"password\"\n  };\n\n  passwortNeu: Interfaces.IdxTextBoxComponent;\n  passwortNeuOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"password\"\n  };\n\n  passwortNeuRepeat: Interfaces.IdxTextBoxComponent;\n  passwortNeuRepeatOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"password\"\n  };\n\n  passwortAendernPopupCommands: ICommandData[] = [\n    {\n      id: \"doPassAenderungUebernehmen\",\n      icon: \"save\",\n      title: \"passwort-aendern.passwort_aendern\",\n      execute: () => {\n        this.doPasswortAendern();\n      }\n    }\n  ];\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"passwortAendernPopupToolbar\",\n      caption: \"passwort-aendern.popup_ueberschrift\",\n      options: this.passwortAendernPopupOptions,\n      commands: this.passwortAendernPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    this.headerCommand.passwortAendern = this;\n  }\n\n  doPasswortAendern() {\n    const result = this.passwortAendernValidation.instance.validate()\n    if (!result.isValid) {\n      return;\n    }\n    if (this.passwortNeu.instance.option(\"value\") !== this.passwortNeuRepeat.instance.option(\"value\")) {\n      DevExpress.ui.notify(this.localization.translateOnce(\"passwort-aendern.passwort_eingabe_error\"), \"error\", 3000);\n      return;\n    }\n\n    const webEvent = new OnPasswortAendernEvent({\n      PasswortAlt: this.passwortAlt.instance.option(\"value\"),\n      PasswortNeu: this.passwortNeu.instance.option(\"value\")\n\n    });\n\n    this.webEvent\n      .execute(webEvent, true)\n      .then(r => {\n        DevExpress.ui.notify(this.localization.translateOnce(\"passwort-aendern.aenderung_uebernehmen\"), \"success\", 3000);\n        this.passwortAendernPopup.instance.hide();\n        this.passwortNeuRepeat.instance.reset();\n        this.passwortAendernValidation.instance.reset();\n      });\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"passwortAendernPopupOptions\\\" view-model.ref=\\\"passwortAendernPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"passwortAendernValidationGroup\\\" view-model.ref=\\\"passwortAendernValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: passwort-aendern.passwort_alt\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"passwortAltOptions\\\" view-model.ref=\\\"passwortAlt\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: passwort-aendern.passwort_neu\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"passwortNeuOptions\\\" view-model.ref=\\\"passwortNeu\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: passwort-aendern.passwort_neu_wiederholung\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"passwortNeuRepeatOptions\\\" view-model.ref=\\\"passwortNeuRepeat\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, noView } from \"aurelia-framework\";\n\n@autoinject\n@noView\nexport class PopupHider {\n  private _onHideKeyDown: any;\n  private _onHideKeyUp: any;\n\n  private _hiddenPopups = [];\n  private _timerId: any;\n\n  constructor() {}\n\n  popupsHidden: boolean = false;\n\n  bind() {\n    this._onHideKeyDown = this.onHideKeyDown.bind(this);\n    this._onHideKeyUp = this.onHideKeyUp.bind(this);\n\n    window.addEventListener(\"keydown\", this._onHideKeyDown);\n    window.addEventListener(\"keyup\", this._onHideKeyUp);\n  }\n  unbind() {\n    window.removeEventListener(\"keydown\", this._onHideKeyDown);\n    window.removeEventListener(\"keyup\", this._onHideKeyUp);\n  }\n\n  onHideKeyDown(e) {\n    if (this._timerId) {\n      return;\n    }\n    if (e.key != \"h\") {\n      return;\n    }\n    if (this.popupsHidden) {\n      return;\n    }\n    if (!this.canHidePopups(e.target)) {\n      return;\n    }\n\n    this._timerId = setTimeout(() => {\n      this._timerId = null;\n      this.changeState(true);\n    }, 400);\n  }\n  onHideKeyUp(e) {\n    if (this._timerId) {\n      clearTimeout(this._timerId);\n      this._timerId = null;\n    }\n\n    if (e.key != \"h\") {\n      return;\n    }\n    if (!this.popupsHidden) {\n      return;\n    }\n\n    this.changeState(false);\n  }\n\n  private changeState(activate: boolean) {\n    this.popupsHidden = activate;\n\n    if (activate) {\n      this._hiddenPopups = Array.from(document.querySelectorAll(\".dx-overlay-wrapper\"));\n\n      this._hiddenPopups.forEach((popup: HTMLElement) => {\n        popup.style.opacity = \"0\";\n        \n        const firstChild = <HTMLElement>popup.firstChild;\n        firstChild.style.display = \"none\";\n      });\n    } else {\n      this._hiddenPopups.forEach((popup: HTMLElement) => {\n        popup.style.opacity = \"\";\n        \n        const firstChild = <HTMLElement>popup.firstChild;\n        firstChild.style.display = \"\";\n      });\n\n      this._hiddenPopups = [];\n    }\n  }\n  private canHidePopups(target) {\n    if (!target) {\n      return true;\n    }\n\n    const tagName = target.tagName;\n    if (!tagName) {\n      return true;\n    }\n\n    switch (tagName) {\n      case \"INPUT\":\n      case \"TEXTAREA\": {\n        return false;\n      }\n      default: {\n        return true;\n      }\n    }\n  }\n}\n","import {\n  autoinject,\n  OverrideContext,\n  Scope,\n  createOverrideContext\n} from \"aurelia-framework\";\n\nimport {\n  DataSourceService,\n  GlobalizationService,\n  ScopeContainer,\n  LocalizationService\n} from \"../../../framework/base/export\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\n\nimport {\n  ProdAuftragSearchService\n} from \"../../services/export\";\nimport * as Interfaces from \"../../interfaces/export\";\n\n@autoinject\nexport class ProdAuftragSearchResult {\n  private _onProdAuftragSelected: { (idProdAuftrag: number): void };\n  private _onProdAuftragSelectedCancel: { (): void };\n\n  constructor(\n    private dataSource: DataSourceService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private prodAuftragSearch: ProdAuftragSearchService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  searchValue: string = null;\n  searchListDataSource: DevExpress.data.DataSource;\n\n  searchResultDataGrid: Interfaces.IdxDataGridComponent;\n  searchResultDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    columns: [{\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.nummer\"),\n      dataField: \"Nummer\",\n      width: \"80px\"\n    }, {\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.datum\"),\n      dataField: \"Datum\",\n      format: this.globalization.getFormatter(\"d\"),\n      width: \"90px\"\n    }, {\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.artikel-nummer\"),\n      dataField: \"Artikel.Nummer\",\n      width: \"80px\"\n    }, {\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.artikel-bezeichnung\"),\n      dataField: \"Artikel.Bezeichnung\"\n    }, {\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.menge-verp-eh\"),\n      dataField: \"MengeVerpEH\",\n      width: \"80px\"\n    }, {\n      caption: this.localization.translateOnce(\"prod-auftrag-search-result.einheit\"),\n      dataField: \"Einheit.Einheit.Bezeichnung\",\n      width: \"120px\"\n    }],\n    onRowClick: (e) => {\n      this._onProdAuftragSelected(e.key.Id);\n      this.searchResultPopup.instance.hide();\n    },\n    filterRow: {\n      visible: true\n    },\n    remoteOperations: {\n      filtering: true,\n      paging: true,\n      sorting: true\n    }\n  }\n\n  searchResultPopup: Interfaces.IdxPopupComponent;\n  searchResultPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    onHidden: () => {\n      this.searchValue = null;\n      this._onProdAuftragSelectedCancel();\n    }\n  };\n\n  searchTextBox: Interfaces.IdxTextBoxComponent;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this.localization.translateOnce(\"base.search\"),\n    onValueChanged: (e) => {\n      this.reloadData();\n      this.focusSearchTextBox();\n    },\n    bindingOptions: {\n      value: \"searchValue\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.prodAuftragSearch.prodAuftragSearchResult = this;\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: \"base.search\",\n      scopeContainer: this.scopeContainer,\n      options: this.searchResultPopupOptions\n    });\n\n    this.searchListDataSource = this.dataSource.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Produktion/ProdAuftrag\",\n        webApiExpand: {\n          Artikel: null,\n          Einheit: { expand: { Einheit: null } }\n        }\n      },\n      {\n        getSearchText: () => {\n          this;\n          return this.searchValue;\n        }\n      }\n    );\n\n    this.searchResultDataGridOptions.dataSource = this.searchListDataSource;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showPopup(onProjektSelected: { (idProjekt: number): void },\n    onProjektSelectedCancel: { (): void },\n    options: Interfaces.ISearchOptions, ) {\n\n    this._onProdAuftragSelected = onProjektSelected;\n    this._onProdAuftragSelectedCancel = onProjektSelectedCancel;\n    this.searchValue = options.searchValue;\n\n    if (this.searchResultDataGrid && this.searchResultDataGrid.instance) {\n      const filter = this.searchResultDataGrid.instance.getCombinedFilter();\n      if (filter) {\n        this.searchResultDataGrid.instance.clearFilter();\n      }\n    }\n\n    this.searchResultPopup.instance.show()\n      .then(() => {\n        this.focusSearchTextBox();\n      });\n  }\n\n  private focusSearchTextBox() {\n    const element: Element = this.searchTextBox.instance.element();\n    const input = element.querySelector(\"input\");\n    \n    input.focus();\n    input.select();\n  }\n  private reloadData() {\n    if (this.searchListDataSource.pageIndex() > 0) {\n      this.searchListDataSource.pageIndex(0);\n    }\n\n    this.searchListDataSource.reload();\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"searchResultPopupOptions\\\" view-model.ref=\\\"searchResultPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"search-popup-container\\\"> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"search-popup-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"searchResultDataGridOptions\\\" view-model.ref=\\\"searchResultDataGrid\\\"></dx-widget> </div> </div> </div></dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  bindingMode,\n  computedFrom,\n  observable\n} from \"aurelia-framework\";\nimport {\n  DataSourceService,\n  LocalizationService,\n  ScopeContainer,\n} from \"../../../framework/base/export\";\nimport {\n  ModelUtilsService\n} from \"../../../framework/forms/export\";\n\nimport {\n  CustomEditPopupService,\n  ProjektService,\n  ProdAuftragService,\n  ProdAuftragSearchService\n} from \"../../services/export\";\nimport {\n  IdxTextBoxComponent,\n} from \"../../interfaces/export\";\n\n@autoinject\nexport class ProdAuftrag {\n  constructor(\n    private customEditPopup: CustomEditPopupService,\n    private prodAuftrag: ProdAuftragService,\n    private prodAuftragSearch: ProdAuftragSearchService,\n    private localization: LocalizationService,\n    private modelUtils: ModelUtilsService\n  ) { }\n\n  @bindable mainModel: any;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable idProdAuftrag: number;\n  @bindable isReadOnly: boolean;\n\n  @computedFrom(\"isReadOnly\", \"mainModel.CanSave\")\n  get isReadOnlyChecked() {\n    return this.isReadOnly || !this.mainModel || this.mainModel.CanSave === false;\n  }\n\n  prodAuftragNummer: IdxTextBoxComponent;\n  prodAuftragNummerOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    onValueChangedByUser: (e) => {\n      if (!e.value) {\n        this.setProdAuftragtById(null);\n        this.resetData();\n        return;\n      }\n\n      this.onProdAuftragChanged(e.value);\n    },\n    bindingOptions: {\n      readOnly: {\n        expression: \"isReadOnlyChecked\",\n        readOnly: true\n      }\n    }\n  }\n  showProdAuftragButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-pencil\",\n    tabIndex: -1,\n    onClick: async () => {\n      this.customEditPopup.prodAuftragEditPopup.show({\n        mappings: { \"$id\": this.idProdAuftrag || 0 },\n        closeCallback: (form) => {\n          if (this.idProdAuftrag) {\n            this.idProdAuftragChanged(this.idProdAuftrag);\n            return;\n          }\n\n          const model = form.models.modelWithKeyId;\n          const data = form.models.data[model.id];\n\n          if (!data || !data.Id) {\n            return;\n          }\n\n          this.setProdAuftragtById(data.Id);\n        }\n      });\n    }\n  }\n\n  prodAuftragArtikelBezeichnung: IdxTextBoxComponent;\n  prodAuftragArtikelBezeichnungOptions: DevExpress.ui.dxTextBoxOptions = {\n    readOnly: true,\n    tabIndex: -1\n  }\n\n  idProdAuftragChanged(newValue) {\n    if (newValue == void 0) {\n      this.resetData();\n      return;\n    }\n    this.prodAuftrag.getProdAuftragById(newValue)\n      .then(projekt => {\n        this.setNummer(projekt.Nummer);\n        this.setBezeichnung(projekt.Artikel.Bezeichnung);\n      })\n  }\n  onProdAuftragChanged(searchValue: string) {\n    const isValidNumber: boolean = /^[0-9]+$/.test(searchValue);\n\n    if (isValidNumber) {\n      this.prodAuftrag.getProdAuftragByNummer(searchValue)\n        .then(r => {\n          if (r == void 0 || !r.length) {\n            this.showProjektSearchPopup(searchValue);\n          } else {\n            this.setProdAuftragtById(r[0].Id);\n          }\n        });\n    } else {\n      this.prodAuftrag.getProdAuftragtBySearchtextEindeutig(searchValue)\n        .then(r => {\n          if (r && r.length === 1) {\n            this.setProdAuftragtById(r[0].Id);\n          } else {\n            this.showProjektSearchPopup(searchValue);\n          }\n        });\n    }\n  }\n\n  showProjektSearchPopup(searchValue: string) {\n    this.prodAuftragSearch.show(\n      (idProdAuftrag) => {\n        this.prodAuftrag.getProdAuftragById(idProdAuftrag)\n          .then(prodAuftrag => {\n            this.setProdAuftragtById(prodAuftrag.Id);\n          })\n      },\n      () => {\n        this.resetData();\n        this.prodAuftragNummer.instance.focus();\n      },\n      { searchValue: searchValue }\n    );\n  }\n\n  resetData() {\n    this.setNummer(null);\n    this.setBezeichnung(null);\n  }\n  setBezeichnung(bezeichnung: string) {\n    this.prodAuftragArtikelBezeichnung.setOption({ value: bezeichnung });\n  }\n  setNummer(nummer: number | string) {\n    if (nummer != void 0) {\n      nummer = nummer.toString();\n    }\n\n    this.prodAuftragNummer.setOption({ value: nummer });\n  }\n  setProdAuftragtById(idProdAuftrag: number) {\n    this.idProdAuftrag = idProdAuftrag;\n    this.modelUtils.setDirty(this.mainModel);\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../prod-auftrag-search-result/prod-auftrag-search-result\\\"></require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-6 t--has-editor-caption erp--widget-with-options-container\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: prod-auftrag-element.prod-auftrag\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"prodAuftragNummerOptions\\\" view-model.ref=\\\"prodAuftragNummer\\\" class=\\\"erp--widget\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"showProdAuftragButtonOptions\\\" class=\\\"erp--option\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: prod-auftrag-element.artikel-bezeichnung\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"prodAuftragArtikelBezeichnungOptions\\\" view-model.ref=\\\"prodAuftragArtikelBezeichnung\\\"></dx-widget> </div> </div> <prod-auftrag-search-result main-model=\\\"mainModel\\\"></prod-auftrag-search-result> </template> \";\n// Exports\nmodule.exports = code;","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject, OverrideContext, PLATFORM, Scope } from \"aurelia-framework\";\nimport { OnProjektDokumentRequest, OnProjektDokumentRequestEvent } from \"../../../framework-data/events\";\nimport { FileService, ScopeContainer, WebEventService } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/interfaces/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { NotificationTyp } from \"../../enumerations/notification-typ\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport { BriefService, DmsViewerService, DruckenService, StartupService } from \"../../services/export\";\nimport { AnzAusdrucke } from \"../anz-ausdrucke/anz-ausdrucke\";\nimport { DataSourceService } from \"./../../../framework/base/services/data-source-service\";\nimport { GlobalizationService } from \"./../../../framework/base/services/globalization-service\";\nimport { MailImportService } from \"./../../services/mail-import-service\";\n\n@autoinject\nexport class ProjektDmsViewer {\n  private _isDokumentVersion: boolean = false;\n  private _selectAfterContentReady: boolean = false;\n\n  constructor(\n    private _briefService: BriefService,\n    private _dataSourceService: DataSourceService,\n    private _dmsViewerService: DmsViewerService,\n    private _druckenService: DruckenService,\n    private _eventAggregator: EventAggregator,\n    private _fileService: FileService,\n    private _globalizationService: GlobalizationService,\n    private _mailImportService: MailImportService,\n    private _startupService: StartupService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _webEventService: WebEventService) { }\n\n  idProjekt: number;\n  dokumentList: any[] = [];\n\n  currentDokument: Interfaces.IDMSDokument = { DMSLink: null, MimeType: \"application/pdf\" };\n  currentVersionDokument: Interfaces.IDMSDokument = { DMSLink: null, MimeType: \"application/pdf\" };\n\n  hasSelectedDokument: boolean = false;\n  anzAusdrucke: AnzAusdrucke;\n\n  projektDmsViewerPopupCommands: ICommandData[] = [\n    {\n      id: \"downloadDocument\",\n      title: \"projekt-dms-viewer.download-dokument\",\n      icon: \"download\",\n      isEnabledExpression: \"hasSelectedDokument\",\n      execute: this.downloadSelectedDokumente.bind(this)\n    }, {\n      id: \"sendDocument\",\n      title: \"projekt-dms-viewer.send-dokument\",\n      icon: \"share-alt\",\n      badgeText: null,\n      isEnabled: false,\n      isVisibleExpression: \"!_isDokumentVersion\",\n      execute: this.sendSelectedDokumente.bind(this)\n    }, {\n      id: \"anzAusdrucke\",\n      title: \"projekt-dms-viewer.anzahl-ausdrucke\",\n      isVisible: this.isDruckJobAktiv(),\n      template: {\n        moduleId: PLATFORM.moduleName(\"erp/elements/anz-ausdrucke/anz-ausdrucke\"),\n        options: {\n          options: {\n            onInitialized: (e) => {\n              this.anzAusdrucke = e.component;\n              e.options.value = 1;\n            }\n          }\n        }\n      }\n    }, {\n      id: \"sendDruckJob\",\n      title: \"projekt-dms-viewer.send-druck-job\",\n      icon: \"print\",\n      isEnabledExpression: \"hasSelectedDokument\",\n      isVisible: this.isDruckJobAktiv(),\n      execute: this.onSendDruckJob.bind(this)\n    }\n  ];\n\n  projektDmsViewerPopup: Interfaces.IdxPopupComponent;\n  projektDmsViewerPopupOptions: DevExpress.ui.dxPopupOptions = {\n    onHidden: () => {\n      this.dokumentGrid.instance.deselectAll();\n\n      this.idProjekt = null;\n    }\n  };\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  dokumentGridDataSource: DevExpress.data.DataSource;\n  dokumentGrid: Interfaces.IdxDataGridComponent;\n  dokumentGridOptions = this.getDmsGridOptions([\n    { dataField: \"AnlageDatum\", caption: \"Anlagedatum\", width: \"90px\", format: this._globalizationService.getFormatterParser(\"d\") },\n    { dataField: \"Dateiname\" },\n    { dataField: \"Dokumentenart\", caption: \"Dokumentenart\" },\n    { dataField: \"Gruppe\", caption: \"Verknüpfung\", groupIndex: 0 }\n  ]);\n\n  dokumentenartSelectBox: Interfaces.IdxSelectBoxComponent;\n  dokumentenartSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    showClearButton: true,\n    onValueChanged: async (e) => {\n      if (this.currentDokument == void 0) {\n        return;\n      }\n\n      if (this.currentDokument.TypeName == \"TIP.ERP.Business.Entitaeten.Stammdaten.MailImportItem\") {\n        await this._mailImportService.saveDokumentartToMailImportItemAnhang(this.currentDokument.Id, this.currentDokument.IdDokumentenart);\n      } else {\n        await this._dmsViewerService.saveDokumentartToDokument(this.currentDokument.Id, this.currentDokument.IdDokumentenart);\n      }\n\n      this.loadData();\n    },\n    bindingOptions: {\n      value: \"currentDokument.IdDokumentenart\",\n      readOnly: \"!currentDokument\"\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._eventAggregator.subscribe(NotificationTyp.startupInfoLoaded, async () => {\n      this.projektDmsViewerPopupCommands.forEach((cmd) => {\n        if (cmd.id == \"anzAusdrucke\" || cmd.id == \"sendDruckJob\") {\n          cmd.isVisible = this.isDruckJobAktiv();\n        }\n      });\n    });\n\n    this.updatePopupOptions();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  show(idProjekt: number) {\n    this._selectAfterContentReady = true;\n    this.idProjekt = idProjekt;\n\n    this.loadData();\n    this.projektDmsViewerPopup.instance.show();\n  }\n\n  private loadDokumentartData() {\n    this.dokumentenartSelectBoxOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        keyProperty: \"Id\",\n        webApiAction: \"ERP/Stammdaten/Dokumentenart\",\n        webApiWhere: [\"DokumentenartZuEntitaeten\", [\"TypeName\", { expression: \"currentDokument.TypeName\", isBound: true }]]\n      }\n    );\n  }\n\n  private async loadData() {\n    const r: OnProjektDokumentRequest = await this._webEventService.execute(new OnProjektDokumentRequestEvent({\n      IdProjekt: this.idProjekt\n    }), true);\n\n    this.dokumentList = r.DokumentList;\n  }\n\n  private onSelectionChanged(e) {\n    const length = e.selectedRowKeys.length;\n    const currentDokument = length === 1\n      ? e.selectedRowsData[0]\n      : null;\n\n    this.hasSelectedDokument = length > 0;\n    this.setCurrentDokument(currentDokument);\n    this.updateSendDokumentCommand(length);\n    this.loadDokumentartData();\n  }\n  private downloadSelectedDokumente() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n    dmsLinkList\n      .forEach((dmsLInk, index) => {\n        const url = this._fileService.getDownloadUrl(dmsLInk);\n        window.open(url, \"_blank\");\n      });\n  }\n  private async sendSelectedDokumente() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n    if (dmsLinkList == void 0) {\n      return;\n    }\n    await this._briefService.createAndGoToBrief(this.idProjekt, dmsLinkList);\n\n    const popup = this.projektDmsViewerPopup;\n    popup.instance.hide();\n  }\n\n  private getSelectedDMSLinkList(): string[] {\n    const dmsLinkList: any[] = this.dokumentGrid.instance.getSelectedRowsData();\n\n    return dmsLinkList.length\n      ? dmsLinkList.map((dokument) => {\n        return dokument.DMSLink;\n      })\n      : null;\n  }\n\n  private updateSendDokumentCommand(count: number) {\n    const cmdId = \"sendDocument\";\n    const cmd = this.projektDmsViewerPopupCommands.find((cmd) =>\n      cmd.id == cmdId);\n\n    if (cmd == void 0) {\n      return;\n    }\n\n    if (count == 0) {\n      cmd.badgeText = null;\n      cmd.isEnabled = false;\n      return;\n    }\n\n    cmd.isEnabled = true;\n\n    cmd.badgeText = {\n      key: \"base.param_1\",\n      parameters: [count.toString()]\n    };\n  }\n\n  private setCurrentDokument(dokument: any) {\n    if (this._isDokumentVersion) {\n      this.currentVersionDokument = dokument;\n    } else {\n      this.currentDokument = dokument;\n    }\n  }\n  private updatePopupOptions() {\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"projektDmsViewerPopupToolbar\",\n      caption: \"projekt-dms-viewer.popup-titel\",\n      options: this.projektDmsViewerPopupOptions,\n      commands: this.projektDmsViewerPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  private getDmsGridOptions(columns: DevExpress.ui.dxDataGridColumn[]): DevExpress.ui.dxDataGridOptions {\n    return {\n      height: \"100%\",\n      columns: columns,\n      selection: {\n        mode: \"multiple\"\n      },\n      grouping: {\n        autoExpandAll: true,\n        allowCollapsing: false\n      },\n      searchPanel: {\n        visible: true,\n        width: 350,\n        placeholder: \"Suchen...\",\n      },\n      keyExpr: \"Id\",\n      onContentReady: () => {\n        if (!this._selectAfterContentReady) {\n          return;\n        }\n        this._selectAfterContentReady = false;\n\n        if (this.dokumentList.length == 0) {\n          return;\n        }\n\n        this.dokumentGrid.instance.selectRowsByIndexes([0]);\n      },\n      onCellPrepared: (e) => {\n        if (e.rowType != \"group\") {\n          return;\n        }\n        if (!e.column || e.column.dataField != \"Gruppe\") {\n          return;\n        }\n        if (!e.text) {\n          return;\n        }\n\n        e.cellElement.innerHTML = null;\n\n        const items = e.data.items || e.data.collapsedItems;\n        if (items.length == 0) {\n          return;\n        }\n\n        const item = items[0];\n\n        const el = document.createElement(\"div\");\n        el.innerText = item.Gruppe;\n        e.cellElement.appendChild(el);\n      },\n      onSelectionChanged: this.onSelectionChanged.bind(this),\n      bindingOptions: {\n        dataSource: \"dokumentList\"\n      }\n    };\n  }\n\n  private isDruckJobAktiv() {\n    return this._startupService.startupInfo.Mandant.IsDruckJobAktiv;\n  }\n\n  private async onSendDruckJob() {\n    const dmsLinkList = this.getSelectedDMSLinkList();\n\n    for (const dmsLink of dmsLinkList) {\n      await this._druckenService.executeDruckJob(dmsLink, this.anzAusdrucke.getValue());\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./projekt-dms-viewer.less\\\"></require> <require from=\\\"../../../framework/forms/elements/file-uploader-with-viewer/tip-file-uploader-with-viewer\\\"></require> <require from=\\\"../dokument-viewer/dokument-viewer\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"projektDmsViewerPopupOptions\\\" view-model.ref=\\\"projektDmsViewerPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"projekt-dms-viewer-container\\\"> <div class=\\\"projekt-dms-viewer-container-columns\\\"> <div class=\\\"projekt-dms-viewer-list\\\"> <div class=\\\"projekt-dms-viewer-grid-container\\\"> <div class=\\\"projekt-dms-viewer-grid\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"dokumentGridOptions\\\" view-model.ref=\\\"dokumentGrid\\\"></dx-widget> </div> </div> </div> <div class=\\\"projekt-dms-viewer-content\\\"> <dx-widget if.bind=\\\"currentDokument.DMSLink\\\" name=\\\"dxSelectBox\\\" options.bind=\\\"dokumentenartSelectBoxOptions\\\" view-model.ref=\\\"dokumentenartSelectBox\\\"></dx-widget> <dokument-viewer dms-link.bind=\\\"currentDokument.DMSLink\\\" mime-type.bind=\\\"currentDokument.MimeType\\\"></dokument-viewer> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".projekt-dms-viewer-container {\\n  padding: 12px;\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n}\\n.projekt-dms-viewer-container .projekt-dms-viewer-container-columns {\\n  display: flex;\\n  flex-grow: 1;\\n}\\n.projekt-dms-viewer-container .projekt-dms-viewer-container-columns .projekt-dms-viewer-list {\\n  flex-shrink: 0;\\n  width: 350px;\\n  display: flex;\\n  flex-direction: column;\\n}\\n.projekt-dms-viewer-container .projekt-dms-viewer-container-columns .projekt-dms-viewer-list .projekt-dms-viewer-grid-container {\\n  position: relative;\\n  flex-grow: 1;\\n}\\n.projekt-dms-viewer-container .projekt-dms-viewer-container-columns .projekt-dms-viewer-list .projekt-dms-viewer-grid-container .projekt-dms-viewer-grid {\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n}\\n.projekt-dms-viewer-container .projekt-dms-viewer-container-columns .projekt-dms-viewer-content {\\n  margin-left: 12px;\\n  flex-grow: 1;\\n}\\n.projekt-dms-viewer-container .dokument-viewer-container {\\n  padding-top: 12px;\\n  height: calc(100% - 24px);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope,\n  createOverrideContext\n} from \"aurelia-framework\";\n\nimport {\n  DataSourceService,\n  ScopeContainer,\n  LocalizationService,\n  IDataSourceOptionFilter\n} from \"../../../framework/base/export\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\n\nimport {\n  ProjektSearchService\n} from \"../../services/export\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport { GridLayoutService, IGridColumnExtenderResult } from '../../../framework/forms/services/grid-layout-service';\n\n@autoinject\nexport class ProjektSearchResult {\n  private _onProjektSelected: { (idProjekt: number): void };\n  private _onProjektSelectedCancel: { (): void };\n\n  constructor (\n    private _element: Element,\n    private _dataSourceService: DataSourceService,\n    private _localizationService: LocalizationService,\n    private _projektSearchService: ProjektSearchService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _gridLayoutService: GridLayoutService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  searchValue: string = null;\n  searchListDataSource: DevExpress.data.DataSource;\n  gridColumnExtenderResult: IGridColumnExtenderResult;\n\n  searchResultDataGrid: Interfaces.IdxDataGridComponent;\n  searchResultDataGridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    columns: [{\n      caption: this._localizationService.translateOnce(\"projekt_search_result.nummer\"),\n      dataField: \"Nummer\",\n      width: \"80px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"projekt_search_result.projekt_art\"),\n      dataField: \"Projektart.Bezeichnung\",\n      width: \"120px\"\n    }, {\n      caption: this._localizationService.translateOnce(\"projekt_search_result.bezeichnung\"),\n      dataField: \"Bezeichnung\"\n    }, {\n      caption: this._localizationService.translateOnce(\"projekt_search_result.sachbearbeiter\"),\n      dataField: \"Sachbearbeiter.Name\"\n    }, {\n      caption: this._localizationService.translateOnce(\"projekt_search_result.status\"),\n      dataField: \"Status.Bezeichnung\"\n    }],\n    onRowClick: (e) => {\n      this._onProjektSelected(e.key.Id);\n      this.searchResultPopup.instance.hide();\n    },\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    remoteOperations: {\n      filtering: true,\n      paging: true,\n      sorting: true\n    }\n  }\n\n  searchResultPopup: Interfaces.IdxPopupComponent;\n  searchResultPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    onHidden: () => {\n      this.searchValue = null;\n      this._onProjektSelectedCancel();\n    }\n  };\n\n  searchTextBox: Interfaces.IdxTextBoxComponent;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this._localizationService.translateOnce(\"base.search\"),\n    onValueChanged: (e) => {\n      this.reloadData();\n      this.focusSearchTextBox();\n    },\n    bindingOptions: {\n      value: \"searchValue\"\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._projektSearchService.projektSearchResult = this;\n\n    this.gridColumnExtenderResult = this._gridLayoutService.addGridColumnExtender({\n      webApiAction: \"ERP/Stammdaten/Projekt\",\n      gridOptions: this.searchResultDataGridOptions,\n      viewUrl: this._element[\"au\"].controller.view.resources.viewUrl,\n      id: \"searchResultDataGrid\"\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: \"base.search\",\n      scopeContainer: this.scopeContainer,\n      options: this.searchResultPopupOptions\n    });\n\n    this.searchListDataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/Projekt\",\n        webApiExpand: {\n          Projektart: null,\n          Sachbearbeiter: null,\n          Status: null\n        }\n      },\n      {\n        getSearchText: () => {\n          this;\n          return this.searchValue;\n        },\n        getCustomFilters: () => {\n          const filter: IDataSourceOptionFilter[] = [];\n\n          const dynamicColumns = this.gridColumnExtenderResult.getDynamicColumns();\n          if (dynamicColumns.length > 0) {\n            filter.push({\n              webApiCustomKey: \"ExtendedLoadProperties\",\n              webApiCustomValue: JSON.stringify(dynamicColumns)\n            });\n          }\n\n          return filter;\n        }\n      }\n    );\n\n    this.searchResultDataGridOptions.dataSource = this.searchListDataSource;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showPopup(onProjektSelected: { (idProjekt: number): void },\n    onProjektSelectedCancel: { (): void },\n    options: Interfaces.ISearchOptions, ) {\n\n    this._onProjektSelected = onProjektSelected;\n    this._onProjektSelectedCancel = onProjektSelectedCancel;\n    this.searchValue = options.searchValue;\n\n    if (this.searchResultDataGrid && this.searchResultDataGrid.instance) {\n      const filter = this.searchResultDataGrid.instance.getCombinedFilter();\n      if (filter) {\n        this.searchResultDataGrid.instance.clearFilter();\n      }\n    }\n\n    this.searchResultPopup.instance.show()\n      .then(() => {\n        this.focusSearchTextBox();\n      });\n  }\n\n  private focusSearchTextBox() {\n    const element: Element = this.searchTextBox.instance.element();\n    const input = element.querySelector(\"input\");\n    \n    input.focus();\n    input.select();\n  }\n  private reloadData() {\n    if (this.searchListDataSource.pageIndex() > 0) {\n      this.searchListDataSource.pageIndex(0);\n    }\n\n    this.searchListDataSource.reload();\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"searchResultPopupOptions\\\" view-model.ref=\\\"searchResultPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"search-popup-container\\\"> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"search-popup-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"searchResultDataGridOptions\\\" view-model.ref=\\\"searchResultDataGrid\\\"></dx-widget> </div> </div> </div></dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport { autoinject, Scope } from \"aurelia-framework\";\nimport { OnProjektTaetigkeitBuchungAnzahlAktiveBuchungen, OnProjektTaetigkeitBuchungAnzahlAktiveBuchungenEvent, OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequest, OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequestEvent } from \"../../../framework-data/events\";\nimport { DataSourceService, GlobalizationService, RestService, ScopeContainer, WebEventService } from \"../../../framework/base/export\";\nimport { AsyncService } from \"../../../framework/base/services/async-service\";\nimport { CustomEditPopup } from \"../../../framework/forms/elements/custom-edit-popup/custom-edit-popup\";\nimport { ListView } from \"../../../framework/forms/elements/list-view/list-view\";\nimport { IListViewOptions } from \"../../../framework/forms/elements/list-view/list-view-options\";\nimport { IdxPopoverComponent, IdxTextBoxComponent } from \"../../interfaces/export\";\nimport { HeaderCommandService, StartupService } from \"../../services/export\";\n\n@autoinject\nexport class ProjektTaetigkeitBuchungCommand {\n  private _buchungChangedSubscription: Subscription;\n\n  constructor(\n    private _restService: RestService,\n    private _startupService: StartupService,\n    private _headerCommandService: HeaderCommandService,\n    private _dataSourceService: DataSourceService,\n    private _webEventService: WebEventService,\n    private _globalizationService: GlobalizationService,\n    private _eventAggregator: EventAggregator,\n    private _asyncService: AsyncService) {\n    _headerCommandService.projektTaetigkeitBuchung = this;\n  }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  buchungEditPopup: CustomEditPopup;\n\n  aktuellList: IBuchung[] = [];\n  historieList: IBuchung[] = [];\n  vergangeneTageList = [];\n\n  popover: IdxPopoverComponent;\n  popoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"auto\",\n    height: \"auto\",\n    maxHeight: \"75vh\"\n  };\n  taetigkeitListView: ListView;\n  taetigkeitListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    pageSize: 15,\n    height: \"460px\",\n    useDefaultListItemStyle: false,\n    onItemClick: (e) => {\n    }\n  };\n  vergangeneTageChartOptions: DevExpress.viz.dxChartOptions = {\n    rotated: true,\n    series: {\n      argumentField: \"Datum\",\n      valueField: \"DauerStunden\",\n      type: \"bar\",\n      label: {\n        alignment: \"left\",\n        backgroundColor: \"transparent\",\n        position: \"inside\",\n        visible: true,\n        customizeText: (e) => {\n          if (!e.value) {\n            return null;\n          }\n\n          return this._globalizationService\n            .format(e.value, \"n2\")\n            .concat(\"h\");\n        }\n      }\n    },\n    legend: {\n      visible: false\n    },\n    size: {\n      height: 250\n    },\n    argumentAxis: {\n      type: \"discrete\",\n      label: {\n        format: this._globalizationService.getFormatter(\"d\"),\n        overlappingBehavior: \"none\"\n      }\n    },\n    valueAxis: {\n      allowDecimals: false,\n      tickInterval: 1,\n      visualRange: [0, 12],\n      visualRangeUpdateMode: \"keep\"\n    },\n    bindingOptions: {\n      dataSource: \"vergangeneTageList\"\n    }\n  };\n\n  startButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-play\",\n    hint: \"Start\",\n    width: \"100%\",\n    onClick: (e) => {\n      if (e.model && e.model.bindingContext && e.model.bindingContext.item) {\n        this.start(e.model.bindingContext.item);\n      }\n    }\n  };\n  endeButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-stop\",\n    hint: \"Ende\",\n    width: \"100%\",\n    onClick: (e) => {\n      if (e.model && e.model.bindingContext && e.model.bindingContext.aktuell) {\n        this.ende(e.model.bindingContext.aktuell);\n      }\n    }\n  };\n  korrButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-pencil\",\n    hint: \"Korrektur\",\n    width: \"100%\",\n    onClick: (e) => {\n      let id = null;\n\n      if (e.model && e.model.bindingContext && e.model.bindingContext.aktuell) {\n        id = e.model.bindingContext.aktuell.Id;\n      } else if (e.model && e.model.bindingContext && e.model.bindingContext.historie) {\n        id = e.model.bindingContext.historie.Id;\n      } else if (e.model && e.model.bindingContext && e.model.bindingContext.item) {\n        id = 0;\n      }\n\n      if (id == void (0)) {\n        return;\n      }\n\n      this.buchungEditPopup.show({\n        mappings: { \"$id\": id }\n      });\n    }\n  };\n  neuButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-plus\",\n    hint: \"Neu\",\n    width: \"100%\",\n    onClick: (e) => {\n      this.buchungEditPopup.show({\n        mappings: {\n          \"$id\": 0,\n          \"$v_IdBenutzer\": this._startupService.startupInfo.Benutzer.IsSupport\n            ? null\n            : this._startupService.startupInfo.Benutzer.Id,\n          \"$v_IdProjektTaetigkeit\": e.model.bindingContext.item.Id\n        }\n      });\n    }\n  };\n\n  searchTextBox: IdxTextBoxComponent;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    showClearButton: true,\n    onValueChangedByUser: () => {\n      this.taetigkeitListView.refresh(false);\n    }\n  };\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._buchungChangedSubscription = this._eventAggregator.subscribe(\"projekt-taetigkeit-buchung:changed\", async () => {\n      this.loadAnzahl();\n\n      if (!this.popover || !this.popover.instance) {\n        return;\n      }\n\n      const visible = this.popover.instance.option(\"visible\");\n      if (!visible) {\n        return;\n      }\n\n      await this.loadHistorie();\n      await this.loadAktuell();\n      await this.loadVergangeneTage();\n\n      this.popover.instance.repaint();\n    });\n\n    this.taetigkeitListViewOptions.dataSource = this._dataSourceService.createDataSource(\n      this.scopeContainer, {\n      webApiAction: \"ERP/Stammdaten/ProjektTaetigkeit\",\n      webApiColumns: [\"Id\", \"IdProjekt\", \"IdTaetigkeit\"],\n      webApiExpand: {\n        ProjektEx: {\n          columns: [\"Id\", \"Nummer\", \"Bezeichnung\"]\n        },\n        Taetigkeit: {\n          columns: [\"Id\", \"Bezeichnung\"]\n        }\n      },\n      webApiWhere: [\n        [[\"ProjektEx.GueltigVon\", \"<=\", \"@Today()\"], \"or\", [\"ProjektEx.GueltigVon\", \"null\"]],\n        [[\"ProjektEx.GueltigBis\", \">=\", \"@Today()\"], \"or\", [\"ProjektEx.GueltigBis\", \"null\"]],\n        [\"Status.Typ\", 0]\n      ],\n      webApiOrderBy: [{ columnName: \"ProjektEx.GueltigVon\", sortOrder: 0 }],\n      webApiSearchtextEnabled: true\n    }, {\n      getSearchText: () => {\n        if (!this.searchTextBox || !this.searchTextBox.instance) {\n          return null;\n        }\n\n        return this.searchTextBox.instance.option(\"value\") || null;\n      }\n    });\n\n    this.loadAnzahl();\n  }\n  unbind() {\n    this._buchungChangedSubscription.dispose();\n    this._buchungChangedSubscription = null;\n\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  async showPopover(targetElement: Element) {\n    await this.loadAktuell();\n    await this.loadHistorie();\n    this.loadVergangeneTage();\n\n    if (this.taetigkeitListView) {\n      this.taetigkeitListView.refresh(false);\n    }\n\n    await this._asyncService.convertToPromise(this.popover.instance.show(targetElement));\n    this.searchTextBox.instance.focus();\n  }\n\n  private async loadAktuell() {\n    this.aktuellList = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Zeiterfassung/ProjektTaetigkeitBuchung\"),\n      getOptions: {\n        where: [\n          [\"IdBenutzer\", this._startupService.startupInfo.Benutzer.Id],\n          [\"IsUnvollstaendig\", true]\n        ],\n        expand: {\n          ProjektTaetigkeit: {\n            columns: [\"Id\", \"IdProjekt\", \"IdTaetigkeit\"],\n            expand: {\n              ProjektEx: {\n                columns: [\"Id\", \"Nummer\", \"Bezeichnung\"]\n              },\n              Taetigkeit: {\n                columns: [\"Id\", \"Bezeichnung\"]\n              }\n            }\n          }\n        },\n        orderBy: [{ columnName: \"Start\", sortOrder: 0 }, { columnName: \"Ende\", sortOrder: 0 }]\n      }\n    });\n  }\n  private async loadHistorie() {\n    this.historieList = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Zeiterfassung/ProjektTaetigkeitBuchung\"),\n      getOptions: {\n        where: [\n          [\"IdBenutzer\", this._startupService.startupInfo.Benutzer.Id],\n          [\"IsUnvollstaendig\", false]\n        ],\n        expand: {\n          ProjektTaetigkeit: {\n            columns: [\"Id\", \"IdProjekt\", \"IdTaetigkeit\"],\n            expand: {\n              ProjektEx: {\n                columns: [\"Id\", \"Nummer\", \"Bezeichnung\"]\n              },\n              Taetigkeit: {\n                columns: [\"Id\", \"Bezeichnung\"]\n              }\n            }\n          }\n        },\n        orderBy: [{ columnName: \"Ende\", sortOrder: 1 }],\n        take: 3\n      }\n    });\n  }\n  private async loadVergangeneTage() {\n    const r: OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequest = await this._webEventService.execute(\n      new OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequestEvent({}));\n\n    this.vergangeneTageList = r.DataList;\n  }\n\n  private async start(taetigkeit: IProjektTaetigkeit) {\n    await this._restService.post({\n      url: this._restService.getWebApiUrl(\"ERP/Zeiterfassung/ProjektTaetigkeitBuchung\"),\n      data: <IBuchung>{\n        IdBenutzer: this._startupService.startupInfo.Benutzer.Id,\n        IdProjektTaetigkeit: taetigkeit.Id,\n        Start: new Date(),\n        _AndereBeenden: true\n      },\n      increaseLoadingCount: true\n    });\n\n    await this.loadHistorie();\n    await this.loadAktuell();\n    await this.loadVergangeneTage();\n\n    this.popover.instance.repaint();\n  }\n  private async ende(buchung: IBuchung) {\n    await this._restService.post({\n      url: this._restService.getWebApiUrl(\"ERP/Zeiterfassung/ProjektTaetigkeitBuchung\"),\n      data: <IBuchung>{\n        Id: buchung.Id,\n        Ende: new Date()\n      },\n      increaseLoadingCount: true\n    });\n\n    await this.loadHistorie();\n    await this.loadAktuell();\n    await this.loadVergangeneTage();\n\n    this.popover.instance.repaint();\n  }\n\n  private async loadAnzahl() {\n    const r: OnProjektTaetigkeitBuchungAnzahlAktiveBuchungen = await this._webEventService.execute(\n      new OnProjektTaetigkeitBuchungAnzahlAktiveBuchungenEvent({}));\n\n    if (!r || !r.Anzahl) {\n      this._headerCommandService.projektTaetigkeitBuchungCommand.badgeText = null;\n    } else {\n      this._headerCommandService.projektTaetigkeitBuchungCommand.badgeText = <any>{\n        key: \"base.param_1\",\n        parameters: [r.Anzahl]\n      };\n    }\n  }\n}\n\ninterface IBuchung {\n  Id?: number;\n  IdBenutzer: number;\n  IdProjektTaetigkeit: number;\n  Start?: Date;\n  Ende?: Date;\n}\ninterface IProjektTaetigkeit {\n  Id: number;\n  IdProjekt?: number;\n  IdTaetigkeit?: number;\n}\n","// Module\nvar code = \"<template> <require from=\\\"./projekt-taetigkeit-buchung-command.less\\\"></require> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"popoverOptions\\\" view-model.ref=\\\"popover\\\"> <dx-template name=\\\"contentTemplate\\\" class=\\\"projekt-taetigkeit-buchung__content\\\"> <div class=\\\"projekt-taetigkeit-buchung__blocks\\\"> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 projekt-taetigkeit-buchung__block__titel\\\"> Tätigkeiten </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <list-view view-model.ref=\\\"taetigkeitListView\\\" options.bind=\\\"taetigkeitListViewOptions\\\"> <custom-template name=\\\"item\\\" class=\\\"projekt-taetigkeit-buchung__card\\\"> <div class=\\\"projekt-taetigkeit-buchung__card__titel\\\"> <div class=\\\"projekt-taetigkeit-buchung--bold\\\">${item.ProjektEx.Nummer} ${item.ProjektEx.Bezeichnung}</div> <div>${item.Taetigkeit.Bezeichnung}</div> </div> <div class=\\\"projekt-taetigkeit-buchung__card__action-buttons\\\"> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"startButtonOptions\\\"></dx-widget> </div> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"neuButtonOptions\\\"></dx-widget> </div> </div> </custom-template> </list-view> </div> </div> </div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" if.bind=\\\"aktuellList.length > 0\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 projekt-taetigkeit-buchung__block__titel\\\"> Aktive Buchungen </div> <div class=\\\"col-xs-12\\\" repeat.for=\\\"aktuell of aktuellList\\\"> <div class=\\\"projekt-taetigkeit-buchung__card projekt-taetigkeit-buchung__card--check\\\"> <div class=\\\"projekt-taetigkeit-buchung__card__titel\\\"> <div class=\\\"projekt-taetigkeit-buchung--bold\\\">${aktuell.ProjektTaetigkeit.ProjektEx.Nummer} ${aktuell.ProjektTaetigkeit.ProjektEx.Bezeichnung}</div> <div>${aktuell.ProjektTaetigkeit.Taetigkeit.Bezeichnung}</div> </div> <div class=\\\"projekt-taetigkeit-buchung__card__zeit\\\"> <div if.bind=\\\"aktuell.Start\\\"><i class=\\\"fa fa-play-circle-o\\\"></i> ${aktuell.Start | format:\\\"g\\\"}</div> </div> <div class=\\\"projekt-taetigkeit-buchung__card__action-buttons\\\"> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"endeButtonOptions\\\"></dx-widget> </div> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"korrButtonOptions\\\"></dx-widget> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 projekt-taetigkeit-buchung__block__titel\\\"> Summe vergangene Tage </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxChart\\\" options.bind=\\\"vergangeneTageChartOptions\\\"></dx-widget> </div> </div> </div> </div> </div> <div if.bind=\\\"historieList.length > 0\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 projekt-taetigkeit-buchung__block__titel\\\"> Letzte Buchungen </div> <div class=\\\"col-xs-12\\\" repeat.for=\\\"historie of historieList\\\"> <div class=\\\"projekt-taetigkeit-buchung__card projekt-taetigkeit-buchung__card--ok\\\"> <div class=\\\"projekt-taetigkeit-buchung__card__titel\\\"> <div class=\\\"projekt-taetigkeit-buchung--bold\\\">${historie.ProjektTaetigkeit.ProjektEx.Nummer} ${historie.ProjektTaetigkeit.ProjektEx.Bezeichnung}</div> <div>${historie.ProjektTaetigkeit.Taetigkeit.Bezeichnung}</div> </div> <div class=\\\"projekt-taetigkeit-buchung__card__zeit\\\"> <div><i class=\\\"fa fa-play-circle-o\\\"></i> ${historie.Start | format:\\\"g\\\"}</div> <div><i class=\\\"fa fa-clock-o\\\"></i> ${historie.DauerStunden | industriezeitZuZeit}</div> <div><i class=\\\"fa fa-stop-circle-o\\\"></i> ${historie.Ende | format:\\\"g\\\"}</div> </div> <div class=\\\"projekt-taetigkeit-buchung__card__action-buttons\\\"> <div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"korrButtonOptions\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-template> </dx-widget> <custom-edit-popup view-model.ref=\\\"buchungEditPopup\\\" id-form=\\\"erp/views/zeiterfassung/projekt-taetigkeit-buchung/projekt-taetigkeit-buchung-edit-form\\\" height=\\\"auto\\\" max-width=\\\"750px\\\"></custom-edit-popup> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".projekt-taetigkeit-buchung__content list-view {\\n  margin: -6px;\\n}\\n.projekt-taetigkeit-buchung__blocks {\\n  display: grid;\\n  grid-gap: 1px;\\n  background-color: #efefef;\\n  grid-auto-flow: column;\\n  grid-auto-columns: 350px;\\n}\\n.projekt-taetigkeit-buchung__blocks > div {\\n  padding: 12px;\\n  background-color: white;\\n}\\n.projekt-taetigkeit-buchung__card {\\n  display: block;\\n  position: relative;\\n  border: 1px solid #efefef;\\n}\\n.projekt-taetigkeit-buchung__card:hover .projekt-taetigkeit-buchung__card__action-buttons {\\n  display: flex;\\n}\\n.projekt-taetigkeit-buchung__card.projekt-taetigkeit-buchung__card--ok::before {\\n  content: \\\"\\\";\\n  border-left: 4px solid #27AE61;\\n  position: absolute;\\n  height: 100%;\\n}\\n.projekt-taetigkeit-buchung__card.projekt-taetigkeit-buchung__card--check::before {\\n  content: \\\"\\\";\\n  border-left: 4px solid #E39560;\\n  position: absolute;\\n  top: -1px;\\n  left: -1px;\\n  bottom: -1px;\\n}\\n.projekt-taetigkeit-buchung__card__action-buttons {\\n  display: none;\\n  position: absolute;\\n  top: 6px;\\n  bottom: 0;\\n  right: 0;\\n}\\n.projekt-taetigkeit-buchung__card__action-buttons > div {\\n  margin-right: 6px;\\n}\\n.projekt-taetigkeit-buchung--bold {\\n  font-weight: bold;\\n}\\n.projekt-taetigkeit-buchung__card__titel {\\n  padding: 12px;\\n}\\n.projekt-taetigkeit-buchung__card__zeit {\\n  display: grid;\\n  grid-template-columns: 1fr 1fr;\\n  padding: 12px;\\n  background-color: #f5f5f5;\\n}\\n.projekt-taetigkeit-buchung__block__titel {\\n  font-weight: bold;\\n  font-size: 1.1em;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, bindingMode, computedFrom, observable } from \"aurelia-framework\";\nimport { RestService } from \"../../../framework/base/export\";\nimport { ModelUtilsService } from \"../../../framework/forms/export\";\nimport { IdxTextBoxComponent } from \"../../interfaces/export\";\nimport { DxCustomizeService } from '../../services/dx-customize-service';\nimport { CustomEditPopupService, ProjektSearchService, ProjektService } from \"../../services/export\";\n\n\n@autoinject\nexport class Projekt {\n  constructor(\n    private _customEditPopupService: CustomEditPopupService,\n    private _projektService: ProjektService,\n    private _projektSearchService: ProjektSearchService,\n    private _modelUtilsService: ModelUtilsService,\n    private _restService: RestService,\n    private _dxCustomizeService: DxCustomizeService) { }\n\n  @bindable @observable mainModel: any;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable idProjekt: number;\n  @bindable @observable isReadOnly: boolean;\n\n  @computedFrom(\"isReadOnly\", \"mainModel.CanSave\")\n  get isReadOnlyChecked() {\n    return this.isReadOnly || !this.mainModel || this.mainModel.CanSave === false;\n  }\n\n  projektNummer: IdxTextBoxComponent;\n  projektNummerOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    onInitialized: (e) => {\n      this.updateProjektButtons(e.component);\n    },\n    onValueChangedByUser: (e) => {\n      if (!e.value) {\n        this.setProjektById(null);\n        this.resetData();\n        return;\n      }\n\n      this.onProjektChanged(e.value);\n    },\n    bindingOptions: {\n      readOnly: {\n        expression: \"isReadOnlyChecked\",\n        readOnly: true\n      }\n    }\n  }\n\n  projektBezeichnung: IdxTextBoxComponent;\n  projektBezeichnungOptions: DevExpress.ui.dxTextBoxOptions = {\n    readOnly: true,\n    tabIndex: -1\n  }\n\n  mainModelChanged() {\n    this.updateProjektButtons();\n  }\n  isReadOnlyChanged() {\n    this.updateProjektButtons();\n  }\n  idProjektChanged(newValue) {\n    if (newValue == void 0) {\n      this.resetData();\n      return;\n    }\n    this._projektService.getProjektById(newValue)\n      .then(projekt => {\n        this.setNummer(projekt.Nummer);\n        this.setBezeichnung(projekt.Bezeichnung);\n      })\n  }\n  onProjektChanged(searchValue: string) {\n    const isValidNumber: boolean = /^[0-9]+$/.test(searchValue);\n\n    if (isValidNumber) {\n      this._projektService.getProjektByNummer(searchValue)\n        .then(r => {\n          if (r == void 0 || !r.length) {\n            this.showProjektSearchPopup(searchValue);\n          } else {\n            this.setProjektById(r[0].Id);\n          }\n        });\n    } else {\n      this._projektService.getProjektBySearchtextEindeutig(searchValue)\n        .then(r => {\n          if (r && r.length === 1) {\n            this.setProjektById(r[0].Id);\n          } else {\n            this.showProjektSearchPopup(searchValue);\n          }\n        });\n    }\n  }\n  showProjektSearchPopup(searchValue: string) {\n    this._projektSearchService.show(\n      (idProjekt) => {\n        this._projektService.getProjektById(idProjekt)\n          .then(projekt => {\n            this.setProjektById(projekt.Id);\n          })\n      },\n      () => {\n        this.resetData();\n        this.projektNummer.instance.focus();\n      },\n      { searchValue: searchValue }\n    );\n  }\n  resetData() {\n    this.setNummer(null);\n    this.setBezeichnung(null);\n  }\n  setBezeichnung(bezeichnung: string) {\n    if (this.projektBezeichnung) {\n      this.projektBezeichnung.setOption({ value: bezeichnung });\n    } else {\n      this.projektBezeichnungOptions.value = bezeichnung;\n    }\n  }\n  setNummer(nummer: number | string) {\n    if (nummer != void 0) {\n      nummer = nummer.toString();\n    }\n\n    if (this.projektNummer) {\n      this.projektNummer.setOption({ value: nummer });\n    } else {\n      this.projektNummerOptions.value = <string>nummer;\n    }\n\n    this.updateProjektButtons();\n  }\n  setProjektById(idProjekt: number) {\n    this.idProjekt = idProjekt;\n    this._modelUtilsService.setDirty(this.mainModel);\n  }\n  private updateProjektButtons(editor: DevExpress.ui.dxTextBox = null) {\n    if (!editor) {\n      if (this.projektNummer && this.projektNummer.instance) {\n        editor = this.projektNummer.instance;\n      }\n    }\n\n    if (!editor) {\n      return;\n    }\n\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (this.idProjekt) {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-pencil\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: (e) => {\n            if (e.event && (<any>e.event).shiftKey) {\n              this.openProjektInNewTab();\n              return;\n            }\n\n            this.openProjektPopup();\n          }\n        }\n      });\n    } else if (!this.isReadOnlyChecked) {\n      buttons.push({\n        location: \"after\",\n        name: \"gp\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: () => {\n            this.openProjektPopup();\n          }\n        }\n      });\n    }\n\n\n    if (editor.option(\"value\")) {\n      buttons.push({\n        location: \"after\",\n        name: \"clear\"\n      });\n    }\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n  private openProjektInNewTab() {\n    const url = this._restService.getViewUrl(\n      \"#ERP/Stammdaten/Projekt/\"\n        .concat(this.idProjekt.toString()));\n\n    window.open(url, \"_blank\");\n  }\n  private openProjektPopup() {\n    if (this._customEditPopupService.projektEditPopup.isVisible) {\n      this.openProjektInNewTab();\n      return;\n    }\n\n    this._customEditPopupService.projektEditPopup.show({\n      mappings: { \"$id\": this.idProjekt || 0 },\n      savedCallback: (form) => {\n        if (this.idProjekt) {\n          this.idProjektChanged(this.idProjekt);\n          return;\n        }\n\n        const model = form.models.modelWithKeyId;\n        const data = form.models.data[model.id];\n\n        if (!data || !data.Id) {\n          return;\n        }\n\n        this.setProjektById(data.Id);\n      }\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../projekt-search-result/projekt-search-result\\\"></require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-6 t--has-editor-caption erp--widget-with-options-container\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: project.angebotProject\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"projektNummerOptions\\\" view-model.ref=\\\"projektNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"projektBezeichnungOptions\\\" view-model.ref=\\\"projektBezeichnung\\\"></dx-widget> </div> </div> <projekt-search-result main-model=\\\"mainModel\\\"></projekt-search-result> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, observable, OverrideContext, Scope } from \"aurelia-framework\";\nimport { LocalizationService, RestService, ScopeContainer } from \"../../../framework/base/export\";\nimport { IListViewOptions, ListView } from \"../../../framework/forms/elements/list-view/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport { EntitaetInfoService, SearchResultSearchService } from \"../../services/export\";\n\n@autoinject\nexport class SearchResult {\n  private _onSearchResultSelected: { (urlToNavigate: string, customOptions?: any): void };\n  private _onSearchResultCancel: { (): void };\n\n  constructor(\n    private _entitaetInfoService: EntitaetInfoService,\n    private _localizationService: LocalizationService,\n    private _restService: RestService,\n    private _searchResultSearchService: SearchResultSearchService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n  searchValue: string;\n  searchDataSource: DevExpress.data.DataSource;\n  hasMoreData: boolean;\n  selectedTypeName: string;\n  sucheTypeNameList: any[];\n  @observable showAktiveDatensaetze: boolean = true;\n\n  showAktiveDatensaetzeCheckboxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"nur aktive Datensätze\",\n    bindingOptions: {\n      value: \"showAktiveDatensaetze\"\n    }\n  };\n\n  searchResultListView: ListView;\n  searchResultListViewOptions: IListViewOptions = {\n    height: \"100%\",\n    pageSize: 200,\n    selectionMode: \"single\",\n    showReloadButton: false,\n    showPagerInfo: false,\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      this.onSearchResultItemClick(e.item);\n    }\n  };\n  searchResultPopup: any;\n  searchResultPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    showCloseButton: false\n  };\n  searchTextBox: any;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this._localizationService.translateOnce(\"base.search\"),\n    onValueChangedByUser: (e) => {\n      this.selectedTypeName = null;\n      this.reloadData();\n      this.focusSearchTextBox();\n    },\n    bindingOptions: {\n      value: \"searchValue\"\n    }\n  };\n  goToListButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-fw fa-caret-right\",\n    onClick: async (e) => {\n      e.event.preventDefault();\n      e.event.stopPropagation();\n\n      this.openListSuche(e.model.bindingContext.item.TypeName, this.searchValue);\n      this.searchResultPopup.instance.hide();\n    }\n  };\n\n  onSucheTypeNameClick(item) {\n    this.selectedTypeName = item.TypeName;\n    this.loadSucheResult();\n  }\n\n  onSearchResultItemClick(itemData) {\n    this.openSingleItem(itemData);\n  }\n\n  showAktiveDatensaetzeChanged(e) {\n    if (this.searchResultListView == null) {\n      return;\n    }\n\n    this.reloadData();\n  }\n\n  async bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n    this._searchResultSearchService.searchResult = this;\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: \"base.search\",\n      scopeContainer: this.scopeContainer,\n      options: this.searchResultPopupOptions\n    });\n\n    this.sucheTypeNameList = [];\n    this.selectedTypeName = null;\n    this.hasMoreData = false;\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showSearchPopup(\n    onSearchResultSelected: { (urlToNavigate: string, customOptions?: any): void },\n    onSearchResultCancel: { (): void },\n    options: Interfaces.ISearchOptions) {\n    this._onSearchResultSelected = onSearchResultSelected;\n    this._onSearchResultCancel = onSearchResultCancel;\n\n    if (options) {\n      this.searchValue = options.searchValue;\n      this.selectedTypeName = null;\n      await this.reloadData();\n    } else {\n      this.showPopup();\n    }\n  }\n\n  private async reloadData() {\n    await this.loadSuchtextTypeNames();\n  }\n\n  private async loadSuchtextTypeNames() {\n    if (this.searchValue != null) {\n      const r = await this._restService.post({\n        url: this._restService.getApiUrl(\"ERP/Suche/TypeNames\"),\n        data: <ISucheTypeNameRequest>{\n          Suchtext: this.searchValue,\n          InaktiveDatensaetzeLaden: !this.showAktiveDatensaetze,\n          SelectedTypeName: this.selectedTypeName\n        }\n      });\n\n      (<any[]>r).forEach((c) => {\n        const entitaetInfo = this._entitaetInfoService.getEntitaetInfoByTypeName(c.TypeName);\n        if (!entitaetInfo) {\n          return;\n        }\n\n        c.Bezeichnung = entitaetInfo.Bezeichnung;\n      });\n\n      var sortedList = (<any[]>r).filter((c) => {\n        return !!c.Bezeichnung;\n      })\n        .sort((a: any, b: any) => {\n          const bezA: string = a.Bezeichnung;\n          const bezB: string = b.Bezeichnung;\n\n          return bezA.localeCompare(bezB);\n        });\n\n      this.sucheTypeNameList = sortedList;\n\n      if (this.sucheTypeNameList.length > 0) {\n        this.selectedTypeName = this.sucheTypeNameList[0].TypeName;\n      }\n      await this.loadSucheResult();\n    }\n  }\n\n  private async loadSucheResult() {\n    if ((this.searchResultListView == null || this.searchResultListViewOptions.dataSource == null) && this.searchValue != null) {\n      this.searchDataSource = new DevExpress.data.DataSource(new DevExpress.data.CustomStore({\n        cacheRawData: true,\n        loadMode: \"raw\",\n        load: async () => {\n          if (!this.selectedTypeName) {\n            if (!isPopupVisible) {\n              this.showPopup();\n            }\n            this.hasMoreData = false;\n            return [];\n          }\n\n          let r = await this._restService.post({\n            url: this._restService.getApiUrl(\"ERP/Suche/Suche\"),\n            data: <ISucheTypeNameRequest>{\n              Suchtext: this.searchValue,\n              InaktiveDatensaetzeLaden: !this.showAktiveDatensaetze,\n              SelectedTypeName: this.selectedTypeName\n            }\n          });\n\n          this.hasMoreData = r.ItemList.length > 100;\n\n          if (r.ItemList.length > 100) {\n            r.ItemList = r.ItemList.splice(0, 100);\n          }\n\n          (<any[]>r.ItemList).forEach((c) => {\n            c.TypeBezeichnung = this._entitaetInfoService.getBezeichnung(c.TypeName);\n          });\n\n          var isPopupVisible = this.searchResultPopup.instance.option(\"visible\");\n\n          if (!isPopupVisible && r.ItemList.length == 1 && this.sucheTypeNameList.length == 1) {\n            this.openSingleItem(r.ItemList[0]);\n          } else if (!isPopupVisible && r.TypeName != null) {\n            this.openListSuche(r.TypeName, r.SuchePlainText);\n          } else if (!isPopupVisible) {\n            this.showPopup();\n          }\n          return r.ItemList;\n        }\n      }));\n\n      this.searchResultListViewOptions.dataSource = this.searchDataSource;\n      await this.searchDataSource.reload();\n    } else {\n      if (this.searchResultListView.options.dataSource.pageIndex() > 0) {\n        this.searchResultListView.goToPage(0);\n      }\n      await this.searchDataSource.reload();\n    }\n  }\n\n  private showPopup() {\n    const instance: DevExpress.ui.dxPopup = this.searchResultPopup.instance;\n    instance.show()\n      .then((r) => {\n        this.focusSearchTextBox();\n      });\n  }\n\n  private openSingleItem(itemData) {\n    this._entitaetInfoService\n      .getUrl(itemData.TypeName, itemData.Id)\n      .then((r) => {\n        if (!r) {\n          DevExpress.ui.notify(\"Die Entität ist nicht definiert\");\n          return;\n        }\n        this.searchResultPopup.instance.hide();\n\n        this._onSearchResultSelected(r);\n      });\n  }\n\n  private async openListSuche(typeName, suchtext) {\n    const url = await this._entitaetInfoService.getUrl(typeName, null);\n    this._onSearchResultSelected(url, {\n      searchtext: suchtext\n    });\n  }\n\n  private focusSearchTextBox() {\n    const element: Element = this.searchTextBox.instance.element();\n    const input = element.querySelector(\"input\");\n\n    input.focus();\n    input.select();\n  }\n}\n\ninterface ISucheTypeNameRequest {\n  Suchtext: string;\n  InaktiveDatensaetzeLaden: boolean;\n  SelectedTypeName?: string;\n}\n","// Module\nvar code = \"<template> <require from=\\\"./search-result.less\\\"></require> <require from=\\\"../../../framework/forms/elements/list-view/list-view\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"searchResultPopupOptions\\\" view-model.ref=\\\"searchResultPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"search-popup-container\\\"> <div class=\\\"search-popup-container-search\\\"> <dx-widget class=\\\"search-popup-container-search-textbox\\\" name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> </div> <div class=\\\"search-popup-result-container\\\"> <div class=\\\"search-result-flex\\\"> <div class=\\\"search-result-filter-list\\\"> <div class=\\\"search-result-filter-list-check\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"showAktiveDatensaetzeCheckboxOptions\\\"></dx-widget> </div> <div if.bind=\\\"sucheTypeNameList.length == 0\\\" class=\\\"search-result-filter-group-item dx-item-content dx-list-item-content\\\">Keine Daten vorhanden</div> <div else class=\\\"search-result-filter-list-list\\\" repeat.for=\\\"item of sucheTypeNameList\\\" click.delegate=\\\"onSucheTypeNameClick(item)\\\"> <div class=\\\"search-result-filter-group-item dx-item-content dx-list-item-content ${item.TypeName == selectedTypeName ? 'search-result-filter-group-item-active' : 'search-result-filter-group-item-inactive'}\\\"> <div class=\\\"search-result-filter-group-item-text\\\"> ${item.Bezeichnung} </div> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"goToListButtonOptions\\\"></dx-widget> </div> </div> </div> <div class=\\\"search-result-list\\\"> <list-view class=\\\"search-result-items\\\" options.bind=\\\"searchResultListViewOptions\\\" view-model.ref=\\\"searchResultListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"search-result-item erp--text-with-leading-label-badge\\\"> <div class=\\\"${item.TypeBezeichnung ? '' : 'erp--empty-badge'}\\\" css=\\\"${item.Farbe ? 'border-left: 4px solid ' + item.Farbe : ''}\\\"> ${item.TypeBezeichnung} </div> <div> ${item.Bezeichnung} </div> </div> </custom-template> </list-view> <div if.bind=\\\"hasMoreData\\\" class=\\\"search-result-list__pageinfo\\\">Es wurden mehr als 100 Treffer gefunden. Bitte verfeinern Sie die Suche</div> </div> </div> </div> </div></dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".search-popup-container-search {\\n  display: flex;\\n}\\n.search-popup-container-search > :first-child {\\n  padding-right: 5px;\\n}\\n.search-popup-container-search .search-popup-container-search-textbox {\\n  flex-grow: 1;\\n}\\n.search-popup-container .search-result-flex {\\n  display: flex;\\n  flex-grow: 1;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-list {\\n  flex-shrink: 0;\\n  width: 350px;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-list-check {\\n  padding-bottom: 8px;\\n  padding-left: 5px;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-group-item {\\n  display: flex;\\n  align-items: center;\\n  cursor: pointer;\\n  padding: 3px 5px;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-group-item .dx-button-content {\\n  padding: 3px;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-group-item-text {\\n  padding-right: 12px;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-group-item-active {\\n  background-color: #ddd;\\n}\\n.search-popup-container .search-result-flex .search-result-filter-group-item-inactive {\\n  background-color: none;\\n}\\n.search-popup-container .search-result-flex .search-result-list {\\n  flex-grow: 1;\\n  flex-direction: column;\\n  display: flex;\\n}\\n.search-popup-container .search-result-flex .search-result-items {\\n  flex-grow: 1;\\n}\\n.search-popup-container .search-result-flex .search-result-item {\\n  display: flex;\\n  align-items: center;\\n}\\n.search-popup-container .search-result-flex .search-result-list__pageinfo {\\n  flex-shrink: 1;\\n  height: 20px;\\n  padding-top: 5px;\\n  text-align: end;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  OverrideContext,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  DataSourceService,\n  ScopeContainer,\n  WebEventService,\n  LocalizationService\n} from \"../../../framework/base/export\";\nimport {\n  ICommandData,\n  HistoryService,\n  SimpleWidgetCreatorService\n} from \"../../../framework/forms/export\";\nimport {\n  OnSpracheUebersetzen,\n  OnSpracheUebersetzenEvent,\n  SpracheItemInfo\n} from \"../../../framework-data/events\";\n\nimport {\n  FormCommandService,\n  SpracheUebersetzungService\n} from \"../../services/export\";\nimport {\n  IdxPopupComponent,\n  IdxSelectBoxComponent\n} from \"../../interfaces/export\";\n\n@autoinject\nexport class SpracheUebersetzung {\n  private _availableSprachen: any[];\n  private _detachedCommand: { (): void };\n  private _uebersetzungData: OnSpracheUebersetzen;\n\n  constructor(\n    private dataSource: DataSourceService,\n    private formCommand: FormCommandService,\n    private localization: LocalizationService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private spracheUebersetzung: SpracheUebersetzungService,\n    private webEvent: WebEventService\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  idSpracheContainer: number;\n  spracheItemList: SpracheItemInfo[];\n  currentSprache: any;\n\n  spracheUebersetzungPopupCommands: ICommandData[] = [\n    {\n      id: \"$save\",\n      title: \"base.save\",\n      icon: \"floppy-o\",\n      execute: this.setUebersetzungData.bind(this)\n    }\n  ];\n  spracheUebersetzungPopup: IdxPopupComponent;\n  spracheUebersetzungPopupOptions: DevExpress.ui.dxPopupOptions = {\n    onHidden: this.resetUebersetzungData.bind(this),\n    maxWidth: \"90%\"\n  };\n\n  spracheSelectBox: IdxSelectBoxComponent;\n  spracheSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Id\",\n    onValueChangedByUser: this.onSpracheChanged.bind(this),\n    bindingOptions: {\n      value: \"currentSprache.Id\"\n    }\n  };\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.spracheUebersetzung.spracheUebersetzung = this;\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.spracheSelectBoxOptions.dataSource = this.dataSource.createDataSource(this.scopeContainer, {\n      webApiAction: \"ERP/Stammdaten/Sprache\",\n      webApiColumns: [\"Id\", \"Bezeichnung\"],\n      webApiWhere: [\"CanUebersetzen\", true],\n      keyProperty: \"Id\"\n    });\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"spracheUebersetzungPopupToolbar\",\n      caption: \"sprache-uebersetzung.uebersetzungen\",\n      options: this.spracheUebersetzungPopupOptions,\n      commands: this.spracheUebersetzungPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    const uebersetzungCommand: ICommandData =\n      {\n        id: \"uebersetzung\",\n        idCategory: \"sprache\",\n        title: \"sprache-uebersetzung.uebersetzungen\",\n        icon: \"globe\",\n        isEnabled: false\n      };\n    this._detachedCommand = this.formCommand.attachFormCommand(\n      uebersetzungCommand,\n      {\n        isCommandVisibleModelProperty: \"HasSpracheContainer\",\n        execute: (e) => {\n          this.spracheUebersetzung.show(e.modelData);\n        }\n      });\n  }\n  detached() {\n    this._detachedCommand();\n  }\n\n  show(modelData: any) {\n    this.idSpracheContainer = modelData.IdSpracheContainer;\n    this.loadUebersetzungData()\n\n    this.spracheUebersetzungPopup.instance.show();\n  }\n  private onSpracheChanged(e) {\n    if (e.value == void 0) {\n      return;\n    }\n\n    this.spracheItemList = this._uebersetzungData.ItemList.filter(c => c.IdSprache === e.value);\n    this.currentSprache = this._availableSprachen.find(c => c.Id === e.value);\n  }\n  private async loadUebersetzungData(): Promise<any> {\n    const webEvent = new OnSpracheUebersetzenEvent({ IdSpracheContainer: this.idSpracheContainer, DoSave: false });\n    this._uebersetzungData = await this.webEvent.execute(webEvent);\n    this._availableSprachen = await this.spracheUebersetzung.loadSprachen([\"CanUebersetzen\", true]);\n\n    const vorbelegungSprache = this._availableSprachen.find(c => c.IsVorbelegungUebersetzung === true);\n\n    this.onSpracheChanged({ value: vorbelegungSprache.Id });\n  }\n\n  private setUebersetzungData(): void {\n    const webEvent = new OnSpracheUebersetzenEvent({ IdSpracheContainer: this.idSpracheContainer, DoSave: true, ItemList: this._uebersetzungData.ItemList });\n    this.webEvent.execute(webEvent, true)\n      .then(() => {\n        DevExpress.ui.notify(\n          this.localization.translateOnce(\"base.save_success\"),\n          \"SUCCESS\",\n          3000);\n      });\n  }\n\n  private resetUebersetzungData() {\n    this._uebersetzungData = undefined;\n    this.spracheItemList = undefined;\n    this.spracheSelectBox.setOption({ value: null })\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./sprache-uebersetzung.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"spracheUebersetzungPopupOptions\\\" view-model.ref=\\\"spracheUebersetzungPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <div class=\\\"container sprache-uebersetzung-container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: sprache-uebersetzung.sprache\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"spracheSelectBoxOptions\\\" view-model.ref=\\\"spracheSelectBox\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <table show.bind=\\\"currentSprache\\\"> <thead> <tr> <td></td> <td>Original</td> <td>Übersetzung</td> </tr> </thead> <tbody> <tr repeat.for=\\\"item of spracheItemList\\\"> <td>${item.Caption}</td> <td> <dx-widget if.bind=\\\"item.EditorTyp === 0\\\" name=\\\"dxTextBox\\\" options.bind=\\\"{ maxLength: item.MaxLaenge, readOnly: true, bindingOptions: { value: 'item.Original' } }\\\"></dx-widget> <dx-widget if.bind=\\\"item.EditorTyp === 1\\\" name=\\\"dxTextArea\\\" options.bind=\\\"{ maxLength: item.MaxLaenge, height: '100px', readOnly: true, bindingOptions: { value: 'item.Original' } }\\\"></dx-widget> <html-editor if.bind=\\\"item.EditorTyp === 2\\\" value.bind=\\\"item.Original\\\" options.bind=\\\"{ showToolbar: true, isReadOnly: true }\\\"></html-editor> </td> <td> <dx-widget if.bind=\\\"item.EditorTyp === 0\\\" name=\\\"dxTextBox\\\" options.bind=\\\"{ maxLength: item.MaxLaenge, bindingOptions: { value: 'item.Uebersetzung' } }\\\"></dx-widget> <dx-widget if.bind=\\\"item.EditorTyp === 1\\\" name=\\\"dxTextArea\\\" options.bind=\\\"{ maxLength: item.MaxLaenge, height: '100px', bindingOptions: { value: 'item.Uebersetzung' } }\\\"></dx-widget> <html-editor if.bind=\\\"item.EditorTyp === 2\\\" value.bind=\\\"item.Uebersetzung\\\" options.bind=\\\"{ showToolbar: true }\\\"></html-editor> </td> </tr> </tbody> </table> </div> </div> </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".sprache-uebersetzung-container {\\n  padding: 12px;\\n}\\n.sprache-uebersetzung-container table {\\n  width: 100%;\\n  margin-top: 12px;\\n  border-collapse: collapse;\\n}\\n.sprache-uebersetzung-container table thead td {\\n  text-align: center;\\n  font-weight: bold;\\n  border-bottom: 1px solid lightgray;\\n}\\n.sprache-uebersetzung-container table thead td:first-child {\\n  background-color: inherit;\\n}\\n.sprache-uebersetzung-container table td {\\n  padding: 6px;\\n  border-bottom: 1px solid lightgray;\\n  border-left: 1px solid lightgray;\\n  width: 50%;\\n}\\n.sprache-uebersetzung-container table td:first-child {\\n  width: 100px;\\n  min-width: 100px;\\n  border-left: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, createOverrideContext, Scope, TaskQueue } from \"aurelia-framework\";\nimport { OnStatistikEinkaufDetailRequestEvent, OnStatistikEinkaufDetailRequest } from '../../../framework-data/events';\nimport { GlobalizationService, LocalizationService, LocationService, ScopeContainer, WebEventService } from '../../../framework/base/export';\nimport { PopupInfoService, SimpleWidgetCreatorService } from '../../../framework/forms/export';\nimport { IdxDataGridComponent, IdxPopupComponent } from '../../interfaces/dx-components';\nimport { StatistikService } from '../../services/statistik-service';\nimport { ICommandData } from './../../../framework/forms/interfaces/command-data';\nimport { IUmsatzWhereItem } from '../statistik-verkauf-detail/statistik-verkauf-detail';\nimport { ExcelExportService } from \"../../../framework/forms/services/excel-export-service\";\n\n@autoinject\nexport class StatistikEinkaufDetail {\n  constructor(\n    private _statistikVerkaufService: StatistikService,\n    private _webEventService: WebEventService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _globalizationService: GlobalizationService,\n    private _taskQueue: TaskQueue,\n    private _locationService: LocationService,\n    private _popupInfoService: PopupInfoService,\n    private _localizationService: LocalizationService,\n    private _excelExportService: ExcelExportService\n  ) {\n    this._statistikVerkaufService.einkaufElement = this;\n  }\n\n  where: IUmsatzWhereItem;\n  doGruppieren = true;\n  data: any[];\n\n  popup: IdxPopupComponent;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\"\n  };\n\n  doGruppierenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Daten auf Warenübernahme gruppieren\",\n    bindingOptions: {\n      value: \"doGruppieren\"\n    },\n    onValueChangedByUser: () => {\n      this._taskQueue.queueMicroTask(() => {\n        this.loadDataAndSetDataSource();\n      });\n    }\n  }\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    allowColumnResizing: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columnResizingMode: \"widget\",\n    onCellClick: (e) => {\n      if (!e.data) {\n        return;\n      }\n\n      if (!e.column || !e.column.dataField) {\n        return;\n      }\n\n      const canShow = (field: string) => {\n        return e.column.dataField.indexOf(field) >= 0\n          && !!e.data[\"Id\".concat(field)];\n      };\n\n      if (canShow(\"Eingangsrechnung\")) {\n        this.open(\"Eingangsrechnung\", e.data);\n      } else if (canShow(\"Warenuebernahme\")) {\n        this.open(\"Warenuebernahme\", e.data);\n      } else if (canShow(\"Bestellung\")) {\n        this.open(\"Bestellung\", e.data);\n      }else if (canShow(\"Auftrag\")) {\n        this.open(\"Auftrag\", e.data);\n      }\n    }\n  };\n\n  doExportGridCommand: ICommandData[] = [{\n    id: \"doExportGrid\",\n    title: \"statistik_einkauf_detail.export-grid\",\n    icon: \"file-excel-o\",\n    sortIndex: 101,\n    execute: () => {\n      this._excelExportService.exportDataGrid({\n        component: this.grid.instance,\n        selectedRowsOnly: false\n      });\n    }\n  }];\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  get titel() {\n    return this._localizationService.translateOnce(\"statistik_verkauf_detail.statistik\");\n  }\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: \"statistik_einkauf_detail.detail\",\n      options: this.popupOptions,\n      commands: this.doExportGridCommand,\n      scopeContainer: this.scopeContainer\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  async show(where: IUmsatzWhereItem) {\n    this.doGruppieren = true;\n    this.where = where;\n\n    await this.loadDataAndSetDataSource();\n\n    this.popup.instance.show();\n  }\n\n  private async loadDataAndSetDataSource() {\n    const r: OnStatistikEinkaufDetailRequest = await this._webEventService.execute(new OnStatistikEinkaufDetailRequestEvent({\n      DoGruppieren: this.doGruppieren,\n      Where: this.where\n    }), true);\n\n    this.data = <any>r.Data;\n\n    const options = {\n      dataSource: this.data,\n      columns: this.getColumns(),\n      summary: this.getSummaryStatistik(),\n      paging: {\n        pageIndex: 0\n      }\n    };\n\n    if (this.grid && this.grid.instance) {\n      this.grid.setOption(options);\n    } else {\n      Object.assign(this.gridOptions, options);\n    }\n  }\n\n  private getColumns() {\n    const result: DevExpress.ui.dxDataGridColumn[] = []\n\n    result.push({\n      dataField: \"LieferantNr\",\n      caption: \"Lieferant-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"LieferantFirmenbez1\",\n      caption: \"Lieferant Firmenbez. 1\",\n      minWidth: 100\n    }, {\n      dataField: \"ArtikelNr\",\n      caption: \"Artikel-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    }, {\n      dataField: \"MengeWarenuebernahmeLagEH\",\n      caption: \"Mge. WÜ LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"MengeEingangsrechnungLagEH\",\n      caption: \"Mge. ER LE\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    }, {\n      dataField: \"Einheit\",\n      caption: \"Einheit\",\n      width: \"120px\"\n    }, {\n      dataField: \"WertNettoBereinigt\",\n      caption: \"Nettoumsatz bereinigt\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    });\n\n    if (this.doGruppieren) {\n      result.push({\n        dataField: \"AnzahlGruppiert\",\n        caption: \"Anz. gruppiert\",\n        format: this._globalizationService.getFormatterParser(\"n0\"),\n        width: \"60px\"\n      });\n    }\n\n    result.push({\n      dataField: \"BestellungNr\",\n      caption: \"Bestellung-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"BestellungDatum\",\n      caption: \"Bestellung-Datum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"WarenuebernahmeNr\",\n      caption: \"Warenübernahme-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"WarenuebernahmeDatum\",\n      caption: \"Warenuebernahme-Datum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"EingangsrechnungNr\",\n      caption: \"Eingangsrechnung-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"EingangsrechnungDatum\",\n      caption: \"Eingangsrechnung-Datum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"AuftragNr\",\n      caption: \"Auftrag-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"AuftragDatum\",\n      caption: \"Auftrag-Datum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Filiale\",\n      caption: \"Filiale\",\n      minWidth: 100\n    }, {\n      dataField: \"Projekt\",\n      caption: \"Projekt\",\n      minWidth: 100\n    });\n\n    return result;\n  }\n  private getSummaryStatistik() {\n    const result = [{\n      column: \"WertNettoBereinigt\",\n      summaryType: \"sum\",\n      displayFormat: \"{0}\",\n      valueFormat: this._globalizationService.getFormatterParser(\"n2\")\n    }];\n\n    return {\n      totalItems: result\n    };\n  }\n\n  private open(property: string, data: any) {\n    const keyProperty = \"Id\".concat(property);\n\n    const scrollList = this.data\n      .map(c => c[keyProperty])\n      .filter((c, i, a) => c && a.indexOf(c) == i);\n\n    const current = scrollList.indexOf(data[keyProperty]);\n    this._popupInfoService.closeAllPopups();\n\n    const modul = property == \"Auftrag\"\n      ? \"Verkauf\"\n      : \"Einkauf\";\n\n    this._locationService.goTo({\n      url: `ERP/${modul}/${property}/${data[keyProperty]}`,\n      viewScrollInfo: {\n        index: current,\n        maxCount: scrollList.length,\n        getNextKey: (index) => scrollList[index]\n      }\n    });\n  }\n}","// Module\nvar code = \"statistik-verkauf-detail.html<template> <require from=\\\"./statistik-einkauf-detail.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"statistik-einkauf-detail-container\\\"> <div class=\\\"statistik-einkauf-detail-filter\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doGruppierenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"statistik-einkauf-detail-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".statistik-einkauf-detail-container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n  padding: 12px;\\n}\\n.statistik-einkauf-detail-container .statistik-einkauf-detail-filter {\\n  padding-bottom: 10px;\\n}\\n.statistik-einkauf-detail-container .statistik-einkauf-detail-result-container {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.statistik-einkauf-detail-container .statistik-einkauf-detail-result-container > div {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n}\\n.statistik-einkauf-detail-container .statistik-einkauf-detail-result-container list-view {\\n  position: relative;\\n}\\n.statistik-einkauf-detail-container .statistik-einkauf-detail-result-container list-view > div {\\n  position: absolute;\\n  height: 100%;\\n  width: 100%;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, computedFrom, createOverrideContext, Scope, TaskQueue } from \"aurelia-framework\";\nimport { OnStatistikVerkaufDetailRequest, OnStatistikVerkaufDetailRequestEvent, UmsatzWhereTyp } from '../../../framework-data/events';\nimport { GlobalizationService, LocalizationService, LocationService, ScopeContainer, WebEventService } from '../../../framework/base/export';\nimport { PopupInfoService, SimpleWidgetCreatorService } from '../../../framework/forms/export';\nimport { ExcelExportService } from \"../../../framework/forms/services/excel-export-service\";\nimport { IdxDataGridComponent, IdxPopupComponent } from '../../interfaces/dx-components';\nimport { StartupService } from '../../services/export';\nimport { StatistikService } from '../../services/statistik-service';\nimport { ICommandData } from './../../../framework/forms/interfaces/command-data';\n\n@autoinject\nexport class StatistikVerkaufDetail {\n  constructor(\n    private _statistikVerkaufService: StatistikService,\n    private _webEventService: WebEventService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _globalizationService: GlobalizationService,\n    private _taskQueue: TaskQueue,\n    private _locationService: LocationService,\n    private _popupInfoService: PopupInfoService,\n    private _startupService: StartupService,\n    private _localizationService: LocalizationService,\n    private _excelExportService: ExcelExportService\n  ) {\n    this._statistikVerkaufService.verkaufElement = this;\n  }\n\n  viewTyp: StatistikVerkaufDetailViewTyp;\n  where: IUmsatzWhereItem;\n  doGruppieren = true;\n  data: any[];\n\n  popup: IdxPopupComponent;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\"\n  };\n\n  doGruppierenCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    text: \"Daten auf Auftrag/Lieferschein gruppieren\",\n    bindingOptions: {\n      value: \"doGruppieren\"\n    },\n    onValueChangedByUser: () => {\n      this._taskQueue.queueMicroTask(() => {\n        this.loadDataAndSetDataSource();\n      });\n    }\n  }\n\n  grid: IdxDataGridComponent;\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    height: \"100%\",\n    hoverStateEnabled: true,\n    allowColumnResizing: true,\n    headerFilter: {\n      visible: true\n    },\n    filterRow: {\n      visible: true\n    },\n    columnResizingMode: \"widget\",\n    onCellClick: (e) => {\n      if (!e.data) {\n        return;\n      }\n\n      if (!e.column || !e.column.dataField) {\n        return;\n      }\n\n      const canShow = (field: string) => {\n        return e.column.dataField.indexOf(field) >= 0\n          && !!e.data[\"Id\".concat(field)];\n      };\n\n      if (canShow(\"Faktura\")) {\n        this.open(\"Faktura\", e.data);\n      } else if (canShow(\"Lieferschein\")) {\n        this.open(\"Lieferschein\", e.data);\n      } else if (canShow(\"Auftrag\")) {\n        this.open(\"Auftrag\", e.data);\n      } else if (canShow(\"KassaBeleg\")) {\n        this.open(\"KassaBeleg\", e.data);\n      }\n    }\n  };\n\n  doExportGridCommand: ICommandData[] = [{\n    id: \"doExportGrid\",\n    title: \"statistik_verkauf_detail.export-grid\",\n    icon: \"file-excel-o\",\n    sortIndex: 101,\n    execute: () => {\n      this._excelExportService.exportDataGrid({\n        component: this.grid.instance,\n        selectedRowsOnly: false\n      });\n    }\n  }];\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  @computedFrom(\"viewTyp\")\n  get showGruppieren() {\n    return this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik;\n  }\n\n  @computedFrom(\"viewTyp\")\n  get titel() {\n    switch (this.viewTyp) {\n      case StatistikVerkaufDetailViewTyp.Auftrag: {\n        return this._localizationService.translateOnce(\"statistik_verkauf_detail.auftragseingang\");\n      }\n      case StatistikVerkaufDetailViewTyp.Forecast: {\n        return this._localizationService.translateOnce(\"statistik_verkauf_detail.umsatz-mit-forecast\");\n      }\n      default: {\n        return this._localizationService.translateOnce(\"statistik_verkauf_detail.statistik\");\n      }\n    }\n  }\n\n  bind() {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"searchResultPopupToolbar\",\n      caption: \"statistik_verkauf_detail.detail\",\n      options: this.popupOptions,\n      commands: this.doExportGridCommand,\n      scopeContainer: this.scopeContainer\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  async show(typ: StatistikVerkaufDetailViewTyp, where: IUmsatzWhereItem) {\n    this.viewTyp = typ;\n    this.doGruppieren = true;\n    this.where = where;\n\n    await this.loadDataAndSetDataSource();\n\n    this.popup.instance.show();\n  }\n\n  private async loadDataAndSetDataSource() {\n    const r: OnStatistikVerkaufDetailRequest = await this._webEventService.execute(new OnStatistikVerkaufDetailRequestEvent({\n      ViewTyp: this.viewTyp,\n      DoGruppieren: this.doGruppieren,\n      Where: this.where\n    }), true);\n\n    this.data = <any>r.Data;\n\n    const options = {\n      dataSource: this.data,\n      columns: this.getColumns(),\n      summary: this.getSummaryStatistik(),\n      paging: {\n        pageIndex: 0\n      }\n    };\n\n    if (this.grid && this.grid.instance) {\n      this.grid.setOption(options);\n    } else {\n      Object.assign(this.gridOptions, options);\n    }\n  }\n\n  private getColumns() {\n    const result: DevExpress.ui.dxDataGridColumn[] = []\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Forecast) {\n      result.push({\n        dataField: \"Q\",\n        caption: \"Quelle\",\n        width: \"90px\"\n      });\n    }\n\n    result.push({\n      dataField: \"KundeNr\",\n      caption: \"Kunden-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"KundeFirmenbez1\",\n      caption: \"Kunde Firmenbez. 1\",\n      minWidth: 100\n    }, {\n      dataField: \"ArtikelNr\",\n      caption: \"Artikel-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"Bezeichnung\",\n      caption: \"Bezeichnung\",\n      minWidth: 100\n    });\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Auftrag || this.viewTyp == StatistikVerkaufDetailViewTyp.Forecast) {\n      result.push({\n        dataField: \"MengeLagEH\",\n        caption: \"Mge. LE\",\n        width: \"80px\",\n        format: this._globalizationService.getFormatterParser(\"n2\")\n      });\n    }\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik || this.viewTyp == StatistikVerkaufDetailViewTyp.Forecast) {\n      result.push({\n        dataField: \"MengeLieferscheinLagEH\",\n        caption: \"Mge. LS LE\",\n        width: \"80px\",\n        format: this._globalizationService.getFormatterParser(\"n2\")\n      }, {\n        dataField: \"MengeFakturaLagEH\",\n        caption: \"Mge. FA LE\",\n        width: \"80px\",\n        format: this._globalizationService.getFormatterParser(\"n2\")\n      });\n    }\n\n    result.push({\n      dataField: \"Einheit\",\n      caption: \"Einheit\",\n      width: \"120px\"\n    }, {\n      dataField: \"WertNettoBereinigt\",\n      caption: \"Nettoumsatz bereinigt\",\n      width: \"80px\",\n      format: this._globalizationService.getFormatterParser(\"n2\")\n    });\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik) {\n      result.push({\n        dataField: \"Einstandswert\",\n        caption: \"Einstandswert\",\n        width: \"80px\",\n        format: this._globalizationService.getFormatterParser(\"n2\")\n      }, {\n        dataField: \"DB\",\n        caption: \"DB\",\n        width: \"80px\",\n        format: this._globalizationService.getFormatterParser(\"n2\")\n      });\n    }\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik && this.doGruppieren) {\n      result.push({\n        dataField: \"AnzahlGruppiert\",\n        caption: \"Anz. gruppiert\",\n        format: this._globalizationService.getFormatterParser(\"n0\"),\n        width: \"60px\"\n      });\n    }\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik || this.viewTyp == StatistikVerkaufDetailViewTyp.Forecast) {\n      result.push({\n        dataField: \"FakturaNr\",\n        caption: \"Faktura-Nr.\",\n        width: \"80px\"\n      }, {\n        dataField: \"FakturaDatum\",\n        caption: \"Faktura-Datum\",\n        width: \"90px\",\n        format: this._globalizationService.getFormatterParser(\"d\")\n      });\n\n      if (this._startupService.startupInfo.Lizenz.HasKassa) {\n        result.push({\n          dataField: \"KassaBelegNr\",\n          caption: \"Kassa-Beleg-Nr.\",\n          width: \"80px\"\n        }, {\n          dataField: \"KassaBelegDatum\",\n          caption: \"Kassa-Beleg-Datum\",\n          width: \"90px\",\n          format: this._globalizationService.getFormatterParser(\"d\")\n        });\n      }\n\n      result.push({\n        dataField: \"LieferscheinNr\",\n        caption: \"Lieferschein-Nr.\",\n        width: \"80px\"\n      }, {\n        dataField: \"LieferscheinDatum\",\n        caption: \"Lieferschein-Datum\",\n        width: \"90px\",\n        format: this._globalizationService.getFormatterParser(\"d\")\n      });\n    }\n\n    result.push({\n      dataField: \"AuftragNr\",\n      caption: \"Auftrag-Nr.\",\n      width: \"80px\"\n    }, {\n      dataField: \"AuftragDatum\",\n      caption: \"Auftrag-Datum\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Auftragsart\",\n      caption: \"Auftragsart\",\n      width: \"90px\",\n      format: this._globalizationService.getFormatterParser(\"d\")\n    }, {\n      dataField: \"Filiale\",\n      caption: \"Filiale\",\n      minWidth: 100\n    }, {\n      dataField: \"Projekt\",\n      caption: \"Projekt\",\n      minWidth: 100\n    });\n\n    return result;\n  }\n  private getSummaryStatistik() {\n    const result = [{\n      column: \"WertNettoBereinigt\",\n      summaryType: \"sum\",\n      displayFormat: \"{0}\",\n      valueFormat: this._globalizationService.getFormatterParser(\"n2\")\n    }];\n\n    if (this.viewTyp == StatistikVerkaufDetailViewTyp.Statistik) {\n      result.push({\n        column: \"Einstandswert\",\n        summaryType: \"sum\",\n        displayFormat: \"{0}\",\n        valueFormat: this._globalizationService.getFormatterParser(\"n2\")\n      }, {\n        column: \"DB\",\n        summaryType: \"sum\",\n        displayFormat: \"{0}\",\n        valueFormat: this._globalizationService.getFormatterParser(\"n2\")\n      });\n    }\n\n    return {\n      totalItems: result\n    };\n  }\n\n  private open(property: string, data: any) {\n    const keyProperty = \"Id\".concat(property);\n\n    const scrollList = this.data\n      .map(c => c[keyProperty])\n      .filter((c, i, a) => c && a.indexOf(c) == i);\n\n    const current = scrollList.indexOf(data[keyProperty]);\n    this._popupInfoService.closeAllPopups();\n\n    const modul = property == \"KassaBeleg\"\n      ? \"Kassa\"\n      : \"Verkauf\";\n\n    this._locationService.goTo({\n      url: `ERP/${modul}/${property}/${data[keyProperty]}`,\n      viewScrollInfo: {\n        index: current,\n        maxCount: scrollList.length,\n        getNextKey: (index) => scrollList[index]\n      }\n    });\n  }\n}\n\nexport interface IUmsatzWhereItem {\n  Typ: UmsatzWhereTyp,\n  Data: any;\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdProjekt?: number;\n  IdFirma?: number;\n}\nexport enum StatistikVerkaufDetailViewTyp {\n  Statistik = 0,\n  Auftrag = 1,\n  Forecast = 2\n}\n","// Module\nvar code = \"<template> <require from=\\\"./statistik-verkauf-detail.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"statistik-verkauf-detail-container\\\"> <div class=\\\"statistik-verkauf-detail-filter\\\" show.bind=\\\"showGruppieren\\\"> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doGruppierenCheckBoxOptions\\\"></dx-widget> </div> <div class=\\\"statistik-verkauf-detail-result-container\\\"> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\" view-model.ref=\\\"grid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".statistik-verkauf-detail-container {\\n  display: flex;\\n  flex-direction: column;\\n  height: 100%;\\n  padding: 12px;\\n}\\n.statistik-verkauf-detail-container .statistik-verkauf-detail-filter {\\n  padding-bottom: 10px;\\n}\\n.statistik-verkauf-detail-container .statistik-verkauf-detail-result-container {\\n  flex-grow: 1;\\n  position: relative;\\n}\\n.statistik-verkauf-detail-container .statistik-verkauf-detail-result-container > div {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n}\\n.statistik-verkauf-detail-container .statistik-verkauf-detail-result-container list-view {\\n  position: relative;\\n}\\n.statistik-verkauf-detail-container .statistik-verkauf-detail-result-container list-view > div {\\n  position: absolute;\\n  height: 100%;\\n  width: 100%;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { IFormCommandExecuteOptions } from './../../interfaces/form-command-options';\nimport { IDataSourceCustomizationOptions } from './../../../framework/base/interfaces/data-source-customization-options';\nimport { IdxContextMenuComponent, IdxColorBoxComponent, IdxPopoverComponent } from './../../interfaces/dx-components';\nimport { autoinject } from 'aurelia-framework';\nimport { WebEventService } from './../../../framework/base/services/web-event-service';\nimport {\n  OnStatusMoeglichRequestEvent,\n  OnStatusMoeglichRequest,\n  OnStatusAendernEvent,\n} from \"../../../framework-data/events\";\n\nimport { ICommandData, FormBase } from '../../../framework/forms/export';\nimport { FormCommandService, StatusService } from '../../services/export';\nimport { LocalizationService } from '../../../framework/base/export';\n\n@autoinject\nexport class StatusFormCommand {\n  private _availableForms: FormBase[] = [];\n  private _detachedCommand: {(): void};\n\n  constructor(\n    private formCommand: FormCommandService,\n    private localization: LocalizationService,\n    private status: StatusService,\n    private webEvent: WebEventService\n  ) { }\n\n  form: FormBase;\n  modelData: any;\n\n  statusFormCommand: ICommandData = {\n    id: \"statusFormCommand\",\n    idCategory: \"status\",\n    title: \"form-command.status-command-icon-text\",\n    icon: \"bullseye\",\n    isEnabled: false,\n    badgeText: null,\n    sortIndex: 9000\n  }\n\n  statusContextMenu: IdxContextMenuComponent;\n  statusContextMenuOptions: DevExpress.ui.dxContextMenuOptions = {\n    target: \"#NONSENSE\",\n    visible: false,\n    displayExpr: \"Bezeichnung\",\n    position: { my: \"top\", at: \"bottom\" },\n    onItemClick: (e) => {\n      this.setStatus(e.itemData.Id);\n    }\n  }\n\n  attached() {\n    this._detachedCommand = this.formCommand.attachFormCommand(\n      this.statusFormCommand,\n      {\n        isCommandVisibleModelProperty: \"HasStatus\",\n        execute: (e) => {\n          this.showPopover(e);\n        },\n        onCommandAttached: this.addAvailableForm.bind(this),\n        onCommandDetached: this.removeAvailableForm.bind(this)\n      });\n  }\n  detached() {\n    this._detachedCommand();\n  }\n\n  private showPopover(e: IFormCommandExecuteOptions) {\n    this.form = e.form;\n    this.modelData = e.modelData;\n    this.statusContextMenu.instance.option(\"target\", this.formCommand.getCommandTarget(e.options.event));\n\n    this.getStatusList()\n      .then((r: OnStatusMoeglichRequest) => {\n        if (!r || !r.StatusList) {\n          return;\n        }\n\n        if (r.StatusList.length == 0 ) {\n          DevExpress.ui.notify(\n            this.localization.translateOnce(\"status-form-command.keine-status-vorhanden\"),\n            \"error\",\n            3000\n          );\n        }\n\n        this.statusContextMenu.instance.option(\"dataSource\", r.StatusList);\n        this.statusContextMenu.instance.show();\n      });\n  }\n\n  private async getStatusList(): Promise<OnStatusMoeglichRequest> {\n    const webEvent = new OnStatusMoeglichRequestEvent({ IdObjekt: this.modelData.Id });\n    const result: OnStatusMoeglichRequest = await this.webEvent.execute(webEvent);\n\n    return result;\n  }\n  private setStatus(idStatus): void {\n    if (this.modelData.IdStatus == idStatus) {\n      return;\n    }\n\n    const webEvent = new OnStatusAendernEvent({ IdObjekt: this.modelData.Id, IdStatus: idStatus });\n    this.webEvent\n      .execute(webEvent, true)\n      .then(r => {\n        this.modelData.IdStatus = idStatus;\n        DevExpress.ui.notify(\n          this.localization.translateOnce(\"base.save_success\"),\n          \"SUCCESS\",\n          3000);\n\n        this.reloadForm();\n      });\n  }  \n  \n  private reloadForm() {\n    if (!this.form) {\n      return;\n    }\n\n    this.form.models.reloadAll();\n  }\n\n  private addAvailableForm(form: FormBase) {\n    this._availableForms.push(form);\n  }\n  private removeAvailableForm(form: FormBase) {\n    const position = this._availableForms.indexOf(form);\n    if (position == void 0 || position < 0) {\n      return;\n    }\n\n    this._availableForms.splice(position, 1)\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxContextMenu\\\" options.bind=\\\"statusContextMenuOptions\\\" view-model.ref=\\\"statusContextMenu\\\"></dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { TagService } from '../../services/tag-service';\n\n@autoinject\nexport class TagsList {\n  constructor(\n    private _element: Element,\n    private _tagService: TagService\n  ) {}\n\n  @bindable @observable tags: string;\n\n  bind() {\n    if (!this.tags) {\n      return;\n    }\n\n    this.renderTags();\n  }\n\n  tagsChanged() {\n    this.renderTags();\n  }\n\n  private renderTags() {\n    while (this._element.children.length > 0) {\n      this._element.removeChild(this._element.children.item(0));\n    }\n\n    const container = this._tagService.renderTagList(this.tags, true);\n    this._element.appendChild(container);\n  }\n}\n","// Module\nvar code = \"<template> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, bindable } from \"aurelia-framework\";\n\n@autoinject\nexport class TagColor {\n  constructor(\n    private _element: Element\n  ) {}\n\n  @bindable farbe: string;\n  @bindable selected: boolean;\n\n  onClick(e: Event) {\n    e.preventDefault();\n    e.stopPropagation();\n\n    this._element.dispatchEvent(new CustomEvent(\n      \"on-color-click\", {\n        bubbles: true,\n        detail: {\n          farbe: this.farbe\n        }\n      }\n    ));\n  }\n}","// Module\nvar code = \"<template css=\\\"background-color: ${farbe}\\\" click.trigger=\\\"onClick($event)\\\"> <i if.bind=\\\"selected\\\" class=\\\"fa fa-check\\\"></i> </template>\";\n// Exports\nmodule.exports = code;","import { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { autoinject, bindable, observable, TaskQueue } from \"aurelia-framework\";\nimport { RestService } from '../../../framework/base/export';\nimport { ModelUtilsService } from '../../../framework/forms/export';\nimport { IdxPopoverComponent, IdxTagboxComponent } from '../../interfaces/export';\nimport { TagService } from '../../services/tag-service';\n\n@autoinject\nexport class Tags {\n  private _tagRefreshedSubscription: Subscription;\n\n  constructor(\n    private _tagService: TagService,\n    private _modelUtilsService: ModelUtilsService,\n    private _restService: RestService,\n    private _eventAggregator: EventAggregator,\n    private _taskQueue: TaskQueue) { }\n\n  @bindable @observable mainModel: any;\n  @bindable webApiAction: string;\n\n  tagList: any[];\n  value: any[];\n\n  currentItem: any;\n\n  farben = [\"#E5213B\", \"#FD4E13\", \"#E48A00\", \"#D5AE00\",\n    \"#A4CF30\", \"#4ECC5D\", \"#31B19A\", \"#159DDC\", \"#2B78DC\",\n    \"#7A6FF0\", \"#9E4CDF\", \"#DF4CDF\", \"#E73790\", \"#FB789A\",\n    \"#7F979B\", \"#917F9B\"\n  ];\n\n  tagBox: IdxTagboxComponent;\n  tagBoxOptions: DevExpress.ui.dxTagBoxOptions = {\n    acceptCustomValue: true,\n    valueExpr: \"Id\",\n    displayExpr: \"Bezeichnung\",\n    showSelectionControls: true,\n    searchEnabled: true,\n    searchExpr: \"Bezeichnung\",\n    placeholder: \"Hier können Sie Tags auswählen\",\n    itemTemplate: \"itemTemplate\",\n    tagTemplate: \"tagTemplate\",\n    onCustomItemCreating: (e) => {\n      const promise = this._tagService.createTag(e.text, this.mainModel.TypeName);\n      e.customItem = promise;\n\n      promise.then(r => {\n        const exists = this.tagList.some(t => t.Id == r.Id);\n        if (exists) {\n          return;\n        }\n\n        this.tagList = [...this.tagList, r];\n      });\n    },\n    onValueChangedByUser: (e) => {\n      const values: number[] = e.value || [];\n      this.updateTagContainer(values);\n    },\n    bindingOptions: {\n      items: \"tagList\",\n      value: \"value\"\n    }\n  };\n\n  popover: IdxPopoverComponent;\n  popoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n  };\n  bezeichnungOptions: DevExpress.ui.dxTextBoxOptions = {\n    maxLength: 100,\n    bindingOptions: {\n      value: \"currentItem.Bezeichnung\"\n    }\n  };\n  farbeOptions: DevExpress.ui.dxColorBoxOptions = {\n    bindingOptions: {\n      value: \"currentItem.Farbe\"\n    }\n  };\n  saveSettingsOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Speichern\",\n    onClick: async () => {\n      if (!this.currentItem.Bezeichnung) {\n        DevExpress.ui.notify(\n          \"Bitte erfassen Sie eine Bezeichnung\",\n          \"error\",\n          3000\n        );\n        return;\n      }\n      if (!this.currentItem.Farbe) {\n        DevExpress.ui.notify(\n          \"Bitte wählen Sie eine Farbe aus\",\n          \"error\",\n          3000\n        );\n        return;\n      }\n\n      await this._tagService.updateTag(\n        this.currentItem.Id,\n        this.currentItem.Bezeichnung,\n        this.currentItem.Farbe\n      );\n\n      this.popover.instance.hide();\n    }\n  };\n\n  bind() {\n    this.mainModelChanged();\n\n    this._tagRefreshedSubscription = this._eventAggregator.subscribe(\"tag:refreshed\", () => {\n      //DX mit 19.2. sollte es nicht mehr notwendig sein, den value auf leer zu setzen\n      const oldValues = this.value;\n      this.value = [];\n      this.loadTags();\n\n      this._taskQueue.queueMicroTask(() => {\n        this.value = oldValues;\n      });\n    });\n  }\n  unbind() {\n    this._tagRefreshedSubscription.dispose();\n    this._tagRefreshedSubscription = null;\n  }\n\n  async mainModelChanged() {\n    await this.loadTags();\n    await this.loadData();\n  }\n\n  onContextMenu(e: any, data) {\n    e.stopPropagation();\n    e.preventDefault();\n\n    this.currentItem = Object.assign({}, data);\n    this.popover.instance.show(e.target);\n  }\n  onTagDeleteClick(e: Event, data) {\n    e.stopPropagation();\n    e.preventDefault();\n\n    const values: number[] = this.tagBox.instance.option(\"value\");\n    const indexOf = values.indexOf(data.Id);\n    if (indexOf < 0) {\n      return;\n    }\n    values.splice(indexOf, 1);\n    this.tagBox.instance.option(\"value\", values);\n\n    this.updateTagContainer(values);\n  }\n  onColorClick(e: CustomEvent) {\n    this.currentItem.Farbe = e.detail.farbe;\n  }\n\n  private loadTags() {\n    if (!this.mainModel) {\n      this.tagList = [];\n      return;\n    }\n\n    this.tagList = this._tagService.getTagList(this.mainModel.TypeName);\n  }\n  private async loadData(increaseLoadingCount: boolean = false) {\n    if (!this.mainModel) {\n      this.value = [];\n      return;\n    }\n\n    const mainModel = this.mainModel;\n    if (mainModel.IdTagContainer) {\n      mainModel.TagContainer = await this._tagService.getTagContainer(mainModel.IdTagContainer, increaseLoadingCount);\n    } else {\n      mainModel.TagContainer = {\n        TagEintraege: []\n      };\n    }\n\n    this.value = (<ITagContainer>mainModel.TagContainer).TagEintraege.map(t => t.IdTag);\n  }\n  private updateTagContainer(values: number[]) {\n    const tagContainer: ITagContainer = this.mainModel.TagContainer;\n\n    if (!tagContainer) {\n      return;\n    }\n\n    let hasChanges = false;\n    for (let v of values) {\n      const exists = tagContainer.TagEintraege.some(e => e.IdTag == v);\n      if (exists) {\n        continue;\n      }\n\n      hasChanges = true;\n      tagContainer.TagEintraege.push({\n        IdTag: v\n      });\n    }\n\n    for (let v of tagContainer.TagEintraege.map(e => e.IdTag)) {\n      const exists = values.includes(v);\n      if (exists) {\n        continue;\n      }\n\n      const indexOf = tagContainer.TagEintraege.findIndex(e => e.IdTag == v);\n      if (indexOf < 0) {\n        continue;\n      }\n\n      hasChanges = true;\n      tagContainer.TagEintraege.splice(indexOf, 1);\n    }\n\n    if (hasChanges) {\n      this.save();\n    }\n  }\n  private async save() {\n    if (!this.mainModel) {\n      return;\n    }\n\n    if (this.mainModel.CanSave) {\n      this._modelUtilsService.setDirty(this.mainModel);\n    } else if (this.webApiAction) {\n      const r = await this._restService.post({\n        url: this._restService.getWebApiUrl(this.webApiAction),\n        data: {\n          Id: this.mainModel.Id,\n          IdTagContainer: this.mainModel.IdTagContainer,\n          TagContainer: this.mainModel.TagContainer\n        },\n        increaseLoadingCount: true\n      });\n\n      this.mainModel.IdTagContainer = r.IdTagContainer;\n      this.loadData(true);\n    }\n  }\n}\n\ninterface ITagContainer {\n  IdObjekt?: number;\n  TagEintraege: ITagEintrag[];\n}\ninterface ITagEintrag {\n  IdTagContainer?: number;\n  IdTag?: number;\n}\n","// Module\nvar code = \"<template> <require from=\\\"./tags.less\\\"></require> <require from=\\\"./tag-color\\\"></require> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"tagBoxOptions\\\" view-model.ref=\\\"tagBox\\\"> <dx-template name=\\\"itemTemplate\\\"> <div class=\\\"tags__tag-item\\\" css=\\\"background-color: ${data.Farbe}\\\"> <div> ${data.Bezeichnung} </div> </div> </dx-template> <dx-template name=\\\"tagTemplate\\\"> <div class=\\\"tags__tag\\\" css=\\\"background-color: ${data.Farbe}\\\" contextmenu.delegate=\\\"onContextMenu($event, data)\\\"> <div> ${data.Bezeichnung} </div> <div class=\\\"tags__tag__commands\\\"> <i class=\\\"fa fa-times\\\" click.delegate=\\\"onTagDeleteClick($event, data)\\\"></i> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"popoverOptions\\\" view-model.ref=\\\"popover\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"tags__settings\\\"> <div> <div>Bezeichnung</div> <div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"bezeichnungOptions\\\"></dx-widget> </div> </div> <div> <div>Farbe</div> <div> <div class=\\\"tags__settings__colors\\\" on-color-click.delegate=\\\"onColorClick($event)\\\"> <template repeat.for=\\\"farbe of farben\\\"> <tag-color farbe.bind=\\\"farbe\\\" selected.bind=\\\"(farbe == currentItem.Farbe ? true : false)\\\"></tag-color> </template> </div> </div> </div> <div class=\\\"tags__settings_buttons\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"saveSettingsOptions\\\"></dx-widget> </div> </div> </dx-template> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".tags__tag {\\n  position: relative;\\n  border-radius: 10px;\\n  margin: 2px 0 2px 2px;\\n  padding: 2px 10px 2px 10px;\\n  color: white;\\n  display: grid;\\n  grid-template-columns: auto auto;\\n}\\n.tags__tag .tags__tag__commands {\\n  display: flex;\\n  align-items: center;\\n}\\n.tags__tag .tags__tag__commands > i {\\n  padding-left: 4px;\\n}\\n.tags__tag .tags__tag__commands > i:hover {\\n  color: white;\\n}\\n.tags__tag i {\\n  color: rgba(255, 255, 255, 0.5);\\n}\\n.tags__tag-item {\\n  position: relative;\\n  border-radius: 10px;\\n  padding: 2px 10px 2px 10px;\\n  color: white;\\n  display: inline-block;\\n}\\n.tags__settings {\\n  padding: 12px;\\n}\\n.tags__settings > div:not(.tags__settings_buttons) {\\n  display: grid;\\n  grid-template-columns: 100px 200px;\\n  margin-bottom: 12px;\\n  align-items: center;\\n}\\n.tags__settings__colors {\\n  display: grid;\\n  grid-template-columns: repeat(4, 20px);\\n  grid-gap: 10px;\\n}\\ntag-color {\\n  display: flex;\\n  border-radius: 2px;\\n  width: 20px;\\n  height: 20px;\\n  justify-content: center;\\n  align-items: center;\\n  cursor: pointer;\\n}\\ntag-color i {\\n  color: white;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport { WebValidationResult } from '../../../framework-data/events';\nimport { ValidationExService } from '../../services/export';\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\nimport { IdxPopupComponent } from '../../interfaces/dx-components';\nimport { SimpleWidgetCreatorService, ICommandData } from '../../../framework/forms/export';\n\n@autoinject\nexport class ValidationInfo {\n  private _callback: {(ok: boolean): void};\n  private _result: boolean;\n\n  constructor(\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService,\n    private _validationExService: ValidationExService\n  ) {\n    this._validationExService.validationInfo = this;\n  }\n\n  scopeContainer: ScopeContainer;\n  validationResultList: WebValidationResult[];\n  hasNoErrors: boolean = false;\n  \n  continueCommand: ICommandData = {\n    id: \"continueCommand\",\n    icon: \"check\",\n    sortIndex: 101,\n    isVisibleExpression: \"hasNoErrors\",\n    title: \"validation-info.continue\",\n    execute: async () => {\n      this._result = true;\n      this.popup.instance.hide();\n    }\n  };\n\n  popup: IdxPopupComponent;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"600px\",\n    height: \"auto\",\n    onHidden: () => {\n      this._callback(this._result);\n    }\n  };\n\n  bind() {    \n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"validationInfo\",\n      scopeContainer: this.scopeContainer,\n      options: this.popupOptions,\n      caption: \"validation-info.title\",\n      commands: [this.continueCommand]\n    });\n  }\n\n  showPopup(validationResultList: WebValidationResult[], callback: {(ok: boolean): void}) {\n    this.validationResultList = validationResultList;\n    this._callback = callback;\n    this._result = false;\n\n    this.hasNoErrors = !validationResultList.some(i => i.IsError);\n\n    this.popup.instance.show();\n  }\n}","// Module\nvar code = \"<template> <require from=\\\"./validation-info.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{height: '300px'}\\\"> <div> <div repeat.for=\\\"item of validationResultList\\\" class=\\\"validation-info-item\\\"> <div class=\\\"validation-info-item__icon\\\"> <i class=\\\"fa fa-info-circle\\\" css=\\\"color: ${item.IsError ? '#C23825' : '#F59D00'}\\\"></i> </div> <div class=\\\"validation-info-item__text\\\"> ${item.Text} </div> </div> </div> </dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".validation-info-item {\\n  display: grid;\\n  grid-template-columns: auto 1fr;\\n  grid-gap: 10px;\\n  padding: 10px;\\n  background-color: #fefefe;\\n  border: 1px solid #ddd;\\n}\\n.validation-info-item:not(:first-child) {\\n  border-top: 1px solid #ddd;\\n  margin-top: 10px;\\n}\\n.validation-info-item__text {\\n  white-space: normal;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { Scope, autoinject } from \"aurelia-framework\";\nimport { LocalizationService, ScopeContainer } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/interfaces/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IdxPopupComponent } from \"../../interfaces/export\";\nimport { GlobalizationService } from \"./../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class VariablerSetartikelKomponentenAuswahl {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IVariablerSetartikelKomponentenAuswahlPopupOptions;\n\n  constructor(\n    private _localizationService: LocalizationService,\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService) { }\n\n  variablerSetartikelKomponentenAuswahlPopup: IdxPopupComponent;\n  variablerSetartikelKomponentenAuswahlPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"600px\",\n    height: \"auto\",\n    minHeight: \"600px\",\n  };\n  variablerSetartikelKomponentenAuswahlPopupCommands: ICommandData[] = [{\n    id: \"uebernehmen\",\n    title: \"variabler-setartikel-komponenten-auswahl.uebernehmen\",\n    icon: \"save\",\n    execute: this.auswahlUebernehmen.bind(this)\n  }];\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  doKomponenteAuswahlCheckBoxOptions: DevExpress.ui.dxCheckBoxOptions = {\n    bindingOptions: {\n      text: \"komponente.Artikelbezeichnung\",\n      value: \"komponente.IsChecked\"\n    },\n    onContentReady: (e) => {\n      if (e.model.bindingContext.komponente.IsInaktiv) {\n        e.component.option(\"disabled\", true);\n      }\n    }\n  }\n\n  mengeNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    bindingOptions: {\n      value: \"komponente.Menge\"\n    },\n    onContentReady: (e) => {\n      if (e.model.bindingContext.komponente.IsInaktiv) {\n        e.component.option(\"disabled\", true);\n      }\n    }\n  }\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"variablerSetartikelKomponentenAuswahlPopupToolbar\",\n      caption: \"variabler-setartikel-komponenten-auswahl.popup-titel\",\n      options: this.variablerSetartikelKomponentenAuswahlPopupOptions,\n      commands: this.variablerSetartikelKomponentenAuswahlPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  show(options: IVariablerSetartikelKomponentenAuswahlPopupOptions) {\n    this._options = options;\n\n    this._options.StuecklisteList.forEach(element => {\n      if (element.IsInaktiv) {\n        element.IsChecked = false;\n      } else if (element.HasVariablerSetartikelVorbelegung) {\n        element.IsChecked = true;\n      } else {\n        element.IsChecked = false;\n      }\n    });\n\n    this.variablerSetartikelKomponentenAuswahlPopup.instance.show();\n  }\n\n\n  private auswahlUebernehmen() {\n    const result = this._options.StuecklisteList\n      .filter(c => {\n        return c.IsChecked;\n      })\n      .map(c => {\n        return {\n          IdStuecklistenkomponente: c.Id,\n          Menge: c.Menge\n        };\n      });\n\n    if (result.length == 0) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"variabler-setartikel-komponenten-auswahl.error-keine-auswahl\"),\n        \"ERROR\",\n        this.NOTIFY_TIMEOUT);\n      return;\n    }\n\n    const hasMengeKleinerGleich0 = result\n      .some(c => c.Menge <= 0);\n\n    if (hasMengeKleinerGleich0) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"variabler-setartikel-komponenten-auswahl.error-menge-null\"),\n        \"ERROR\",\n        this.NOTIFY_TIMEOUT);\n      return;\n    }\n\n    this.variablerSetartikelKomponentenAuswahlPopup.instance.hide();\n    this._options.callback(result);\n  }\n}\n\nexport interface IVariablerSetartikelKomponentenAuswahlPopupOptions {\n  StuecklisteList: IVariableSetartikelKomponentenAuswahlStueckliste[];\n  callback: {\n    (auswahl: {\n      IdStuecklistenkomponente: number;\n      Menge: number;\n    }[]): void\n  };\n}\n\nexport interface IVariableSetartikelKomponentenAuswahlStueckliste {\n  Id: number;\n  Artikelnummer?: string;\n  Artikelbezeichnung?: string;\n  Menge: number;\n  Einheit?: string;\n  Faktor?: string;\n  IsInaktiv: boolean;\n  IsChecked?: boolean;\n  HasVariablerSetartikelVorbelegung?: boolean;\n}\n","// Module\nvar code = \"<template> <require from=\\\"./variabler-setartikel-komponenten-auswahl.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"variablerSetartikelKomponentenAuswahlPopupOptions\\\" view-model.ref=\\\"variablerSetartikelKomponentenAuswahlPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"variabler-setartikel-komponenten-auswahl__container\\\"> <div class=\\\"variabler-setartikel-komponenten-auswahl__container__item\\\" repeat.for=\\\"komponente of _options.StuecklisteList\\\"> <div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"doKomponenteAuswahlCheckBoxOptions\\\"></dx-widget> </div> <div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"mengeNumberBoxOptions\\\"></dx-widget> </div> <div class.bind=\\\"komponente.IsInaktiv == true ? 'variabler-setartikel-komponenten-auswahl__container__item__disabled' : ''\\\"> ${komponente.Einheit} </div> <div class.bind=\\\" komponente.IsInaktiv==true\\n            ? 'variabler-setartikel-komponenten-auswahl__container__item__disabled' : ''\\\"> ${komponente.Faktor | stuecklisteValueConverter} </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".variabler-setartikel-komponenten-auswahl__container {\\n  padding: 12px;\\n  display: grid;\\n  grid-gap: 12px;\\n}\\n.variabler-setartikel-komponenten-auswahl__container__item {\\n  display: grid;\\n  grid-template-columns: 1fr 100px 100px 80px;\\n  grid-column-gap: 12px;\\n  align-items: center;\\n}\\n.variabler-setartikel-komponenten-auswahl__container__item__disabled {\\n  opacity: 0.5;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { Scope, autoinject } from \"aurelia-framework\";\nimport { LocalizationService, ScopeContainer } from \"../../../framework/base/export\";\nimport { ICommandData } from \"../../../framework/forms/interfaces/export\";\nimport { SimpleWidgetCreatorService } from \"../../../framework/forms/widget-services/simple-widget-creator-service\";\nimport { IdxPopupComponent } from \"../../interfaces/export\";\nimport { GlobalizationService } from \"./../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class VariablerSetartikelPreisAendern {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _options: IVariablerSetartikelPreisAendernPopupOptions;\n\n  constructor(\n    private _localizationService: LocalizationService,\n    private _globalizationService: GlobalizationService,\n    private _simpleWidgetCreatorService: SimpleWidgetCreatorService) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  variablerSetartikelPreisAendernResult: IVariablerSetartikelPreisAendernResult;\n\n  variablerSetartikelPreisAendernPopup: IdxPopupComponent;\n  variablerSetartikelPreisAendernPopupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"600px\",\n    height: \"auto\"\n  };\n  variablerSetartikelPreisAendernPopupCommands: ICommandData[] = [{\n    id: \"uebernehmen\",\n    title: \"variabler-setartikel-preis-aendern.uebernehmen\",\n    icon: \"save\",\n    execute: this.auswahlUebernehmen.bind(this)\n  }, {\n    id: \"rabattEntfernen\",\n    title: \"variabler-setartikel-preis-aendern.rabatt-entfernen\",\n    icon: \"money\",\n    execute: this.rabattEntfernen.bind(this)\n  }, {\n    id: \"manuellerPreisEntfernen\",\n    title: \"variabler-setartikel-preis-aendern.manueller-preis-entfernen\",\n    icon: \"money\",\n    execute: this.manuellerPreisEntfernen.bind(this)\n  }];\n\n  wertNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n2\"),\n    bindingOptions: {\n      value: \"variablerSetartikelPreisAendernResult.Wert\"\n    }\n  }\n\n  konditionsFeldSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"Typ\",\n    dataSource: [\n      { Typ: 0, Bezeichnung: \"Rabatt\" },\n      { Typ: 1, Bezeichnung: \"Manueller Preis pro Einheit\" }\n    ],\n    bindingOptions: {\n      value: \"variablerSetartikelPreisAendernResult.KalkulationsFeldTyp\"\n    }\n  };\n\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this._simpleWidgetCreatorService.updatePopupOptions({\n      idToolbar: \"variablerSetartikelPreisAendernPopupToolbar\",\n      caption: \"variabler-setartikel-preis-aendern.popup-titel\",\n      options: this.variablerSetartikelPreisAendernPopupOptions,\n      commands: this.variablerSetartikelPreisAendernPopupCommands,\n      scopeContainer: this.scopeContainer\n    });\n  }\n\n  show(options: IVariablerSetartikelPreisAendernPopupOptions) {\n    this._options = options;\n\n    this.modelZuruecksetzen();\n\n    this.variablerSetartikelPreisAendernPopup.instance.show();\n  }\n\n  private modelZuruecksetzen(){\n    this.variablerSetartikelPreisAendernResult = {\n      KalkulationsFeldTyp: null,\n      Wert: null,\n      RabattEntfernen: false,\n      ManuellerPreisEntfernen: false\n    };\n  }\n\n  private auswahlUebernehmen() {\n    if (this.variablerSetartikelPreisAendernResult.KalkulationsFeldTyp == null) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"variabler-setartikel-preis-aendern.error-kein-konditionsfeld\"),\n        \"ERROR\",\n        this.NOTIFY_TIMEOUT);\n      return;\n    }\n\n    if (!this.variablerSetartikelPreisAendernResult.Wert) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"variabler-setartikel-preis-aendern.error-kein-wert\"),\n        \"ERROR\",\n        this.NOTIFY_TIMEOUT);\n      return;\n    }\n\n    this.variablerSetartikelPreisAendernPopup.instance.hide();\n    this._options.callback(this.variablerSetartikelPreisAendernResult);\n  }\n  private rabattEntfernen() {\n    this.modelZuruecksetzen();\n    this.variablerSetartikelPreisAendernResult.RabattEntfernen = true;\n\n    this.variablerSetartikelPreisAendernPopup.instance.hide();\n    this._options.callback(this.variablerSetartikelPreisAendernResult);\n  }\n  private manuellerPreisEntfernen() {\n    this.modelZuruecksetzen();\n    this.variablerSetartikelPreisAendernResult.ManuellerPreisEntfernen = true;\n\n    this.variablerSetartikelPreisAendernPopup.instance.hide();\n    this._options.callback(this.variablerSetartikelPreisAendernResult);\n  }\n}\n\nexport interface IVariablerSetartikelPreisAendernPopupOptions {\n  callback: {\n    (result: IVariablerSetartikelPreisAendernResult): void\n  };\n}\n\nexport interface IVariablerSetartikelPreisAendernResult {\n  KalkulationsFeldTyp: number;\n  Wert: number;\n  RabattEntfernen: boolean;\n  ManuellerPreisEntfernen: boolean;\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"variablerSetartikelPreisAendernPopupOptions\\\" view-model.ref=\\\"variablerSetartikelPreisAendernPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Konditionsfeld</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"konditionsFeldSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Wert</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"wertNumberBoxOptions\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject } from \"aurelia-framework\";\nimport { RestService, LocalizationService } from '../../../framework/base/export';\n\n@autoinject\nexport class VersionCheck {\n  private _version: string;\n  private _timeoutId: any;\n\n  constructor(\n    private restService: RestService,\n    private localizationService: LocalizationService\n  ) { }\n\n  showVersionReload: boolean = false;\n\n  reloadButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localizationService.translateOnce(\"version_check.reload\"),\n    onClick: () => {\n      location.reload(true);\n    }\n  }\n\n  bind() {\n    this.checkVersion();\n  }\n  unbind() {\n    if (this._timeoutId) {\n      clearTimeout(this._timeoutId);\n      this._timeoutId = null;\n    }\n  }\n\n  async checkVersion() {\n    if (location.port) {\n      return;\n    }\n\n    const r = await this.restService.get({\n      url: this.restService.getUrl(\"version.json?random=\" + new Date().getTime().toString()),\n      errorCallback: (response) => {\n        return true;\n      }\n    });\n\n    if (r && r.v) {\n      if (!this._version) {\n        this._version = r.v;\n      } else if (this._version != r.v) {\n        this.showVersionReload = true;\n      }\n    }\n    \n    if (!this.showVersionReload) {\n      this._timeoutId = setTimeout(() => {\n        this.checkVersion();\n      }, 60000);\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./version-check.less\\\"></require> <div class=\\\"version-check-container\\\" if.bind=\\\"showVersionReload\\\"> <div class=\\\"version-check-center-grid\\\"> <div class=\\\"version-check-layout-grid\\\"> <div class=\\\"version-check-important-info\\\" tr=\\\"key: version_check.important_info\\\"></div> <div class=\\\"version-check-info\\\" tr=\\\"key: version_check.changed_info\\\"></div> <div class=\\\"version-check-reload\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"reloadButtonOptions\\\"></dx-widget> </div> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".version-check-container {\\n  position: fixed;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n  background-color: rgba(0, 0, 0, 0.2);\\n  color: black;\\n  z-index: 999999;\\n}\\n.version-check-center-grid {\\n  display: grid;\\n  height: 100%;\\n  justify-content: center;\\n  align-content: center;\\n}\\n.version-check-layout-grid {\\n  padding: 20px;\\n  background-color: white;\\n  grid-gap: 25px;\\n}\\n.version-check-important-info {\\n  font-size: 1.5em;\\n  font-weight: bold;\\n  margin-bottom: 20px;\\n  text-align: center;\\n}\\n.version-check-info {\\n  font-size: 1.2em;\\n  text-align: center;\\n  margin-bottom: 20px;\\n  max-width: 400px;\\n}\\n.version-check-reload {\\n  display: grid;\\n  justify-content: center;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject } from \"../../../framework/forms/form-export\";\nimport { Scope, OverrideContext } from '../../../../node_modules/aurelia-framework';\nimport { ScopeContainer } from '../../../framework/base/classes/scope-container';\nimport { IdxPopoverComponent } from '../../interfaces/dx-components';\nimport { ListView, IListViewOptions } from '../../../framework/forms/elements/list-view/export';\nimport { DataSourceService, LocationService } from '../../../framework/base/export';\nimport { HeaderCommandService, EntitaetInfoService } from '../../services/export';\nimport { AsyncService } from '../../../framework/base/services/async-service';\n\n@autoinject\nexport class ZugriffHistorieCommand {\n  constructor(\n    private headerCommandService: HeaderCommandService,\n    private dataSourceService: DataSourceService,\n    private entitaetInfoService: EntitaetInfoService,\n    private locationService: LocationService,\n    private asyncService: AsyncService\n  ) {}  \n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  zugriffHistorie: IdxPopoverComponent;\n  zugriffHistorieOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: 400\n  };\n\n  zugriffHistorieListView: ListView;\n  zugriffHistorieListViewOptions: IListViewOptions = {\n    showReloadButton: false,\n    height: \"350px\",\n    hoverStateEnabled: true,\n    onItemClick: (e) => {\n      const item = e.item;\n      this.openEntitaet(item);\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.zugriffHistorieListViewOptions.dataSource = this.dataSourceService.createDataSource(\n      this.scopeContainer,\n      {\n        webApiAction: \"ERP/Stammdaten/ZugriffHistorie\",\n        webApiOrderBy: [{columnName: \"Id\", sortOrder: 1}]\n      },\n    );\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  attached() {\n    this.headerCommandService.zugriffHistorie = this;\n  }\n  detached() {\n  }\n\n  async showPopover(targetElement: Element) {\n    if (this.zugriffHistorieListView) {\n      this.zugriffHistorieListView.refresh(false);\n    }\n\n    await this.asyncService.convertToPromise(this.zugriffHistorie.instance.show(targetElement));\n    this.zugriffHistorieListView.scrollToTop();\n  }\n\n  private async openEntitaet(item: any) {\n    this.zugriffHistorie.instance.hide();\n    \n    const url = await this.entitaetInfoService.getUrl(item.TypeName, item.IdEntitaet);\n    if (!url) {\n      return;\n    }\n    \n    this.locationService.goTo({\n      url: url,\n      clearStack: true\n    });\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"zugriffHistorieOptions\\\" view-model.ref=\\\"zugriffHistorie\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"container header-command-popover-content\\\"> <div class=\\\"col-xs-12\\\"> <list-view options.bind=\\\"zugriffHistorieListViewOptions\\\" view-model.ref=\\\"zugriffHistorieListView\\\"> <custom-template name=\\\"item\\\"> <div class=\\\"zugriff-historie-list-item\\\" class.one-time=\\\"item.StatusFarbe ? 'zugriff-historie-list-item-border-status':''\\\" css=\\\"border-color: ${item.StatusFarbe}\\\"> <div class=\\\"zugriff-historie-list-item-type\\\"> ${item.TypeName | typeDisplayName} </div> <div class=\\\"zugriff-historie-list-item-anlage\\\"> ${item.AnlageDatum | format:\\\"E\\\"} </div> <div class=\\\"zugriff-historie-list-item-bezeichnung\\\"> ${item.Bezeichnung} </div> </div> </custom-template> </list-view> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { \n  FrameworkConfiguration,\n  PLATFORM\n} from \"aurelia-framework\";\nimport \"./styles/styles.less\";\nimport \"./styles/dashboard.less\";\n\nexport function configure(config: FrameworkConfiguration) {\n  config\n    .globalResources(PLATFORM.moduleName(\"./elements/kalkulation/kalkulation\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/adresse/adresse\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/projekt/projekt\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/geschaeftspartner/geschaeftspartner\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/artikel/artikel\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/dyn-feld-container/dyn-feld-container\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/filter/filter\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/infobar/infobar\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/avatar/avatar\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/tags/tags\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/tags-list/tags-list\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/entitaet-menu/entitaet-menu\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/mhd-charge-menge-erf/mhd-charge-menge-erf\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/mhd-charge-menge-ausw/mhd-charge-menge-ausw\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/open-edit-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/type-display-name-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/ticket-kategorie-name-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/ticket-status-name-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/ticket-typ-name-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/ticket-status-farbe-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/industriezeit-zu-zeit-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/entitaet-full-name-zu-name-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/stueckliste-faktor-value-converter\"));\n}\n","import { autoinject, valueConverter } from \"aurelia-framework\";\nimport { EntitaetInfoService } from '../services/export';\n\n@autoinject\n@valueConverter(\"entitaetFullNameZuName\")\nexport class EntitaetFullNameZuNameValueConverter{\n  constructor(\n    private _entitaetInfoService: EntitaetInfoService\n  ) { }\n\n  \n  toView(value: string) {\n    if (!value) {\n      return \"\";\n    }\n\n    return this._entitaetInfoService.getBezeichnung(value) || value;\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\n\n@autoinject\n@valueConverter(\"industriezeitZuZeit\")\nexport class IndustriezeitZuZeitValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any) {\n    if (value == null) {\n      return \"\";\n    }\n    if (typeof value !== \"number\") {\n      return value;\n    }\n\n    let stundenZahl = Math.floor(value);\n    let stunden = stundenZahl.toString();\n    if (stunden.length < 2) {\n      stunden = \"0\" + stunden;\n    }\n\n    let minuten = Math.round((value - stundenZahl) * 60).toString();\n    if (minuten.length < 2) {\n      minuten = \"0\" + minuten;\n    }\n\n    return stunden.concat(\":\").concat(minuten);\n  }\n}\n","import { autoinject, valueConverter } from \"aurelia-framework\";\nimport { StuecklisteFaktorTyp } from '../enumerations/stueckliste-faktor-typ';\n\n@autoinject\n@valueConverter(\"stuecklisteValueConverter\")\nexport class StuecklisteFaktorValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any) {\n    if (value == null) {\n      return \"\";\n    }\n\n    let faktor = value;\n\n    switch (faktor) {\n      case StuecklisteFaktorTyp.ProFW:\n        value = \"pro Fertigartikel\";\n        break;\n      case StuecklisteFaktorTyp.ProProduktion:\n        value = \"pro Produktion\";\n        break;\n    }\n\n    return value;\n  }\n}\n","import { TicketKategorie } from './../enumerations/ticket-kategorie';\nimport {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\n\n@autoinject\n@valueConverter(\"ticketKategorieName\")\nexport class TicketKategorieNameValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any) {\n    if (value == null) {\n      return \"\";\n    }\n\n    let ticketKategorie = value;\n\n    switch (ticketKategorie) {\n      case TicketKategorie.Dashboard:\n        value = \"Dashboard\";\n        break;\n      case TicketKategorie.Stammdaten:\n        value = \"Stammdaten\";\n        break;\n      case TicketKategorie.Einkauf:\n        value = \"Einkauf\";\n        break;\n      case TicketKategorie.Verkauf:\n        value = \"Verkauf\";\n        break;\n      case TicketKategorie.Produktion:\n        value = \"Produktion\";\n        break;\n      case TicketKategorie.Lager:\n        value = \"Lager\";\n        break;\n      case TicketKategorie.Statistik:\n        value = \"Statistik\";\n        break;\n      case TicketKategorie.Konfiguration:\n        value = \"Konfiguration\";\n        break;\n      case TicketKategorie.Andere:\n        value = \"Andere\";\n        break;\n    }\n\n    return value;\n  }\n}\n","import { TicketStatus } from './../enumerations/ticket-status';\nimport {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\n\n@autoinject\n@valueConverter(\"ticketStatusFarbe\")\nexport class TicketStatusFarbeValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any, farbe: string) {\n    if (value == null) {\n      return \"\";\n    }\n\n    let ticketStatus = value;\n\n    switch (ticketStatus) {\n      case TicketStatus.Offen:\n        farbe = \"\"\n        break;\n      case TicketStatus.InBearbeitungTIP:\n        farbe = \"#df7401\"\n        break;\n      case TicketStatus.ErledigtTIP:\n      case TicketStatus.MitNaechstemUpdate:\n        farbe = \"#2DCC70\"\n        break;\n      case TicketStatus.ErledigtKunde:\n        farbe = \"#2DCC70\"\n        break;\n      case TicketStatus.WarteAufKunde:\n        farbe = \"#df7401\"\n        break;\n      case TicketStatus.Doppelt:\n        farbe = \"#C1392D\"\n        break;\n    }\n\n    return farbe;\n  }\n}\n","import { TicketStatus } from './../enumerations/ticket-status';\nimport {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\n\n@autoinject\n@valueConverter(\"ticketStatusName\")\nexport class TicketStatusNameValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any) {\n    if (value == null) {\n      return \"\";\n    }\n\n    let ticketStatus = value;\n\n    switch (ticketStatus) {\n      case TicketStatus.Offen:\n        value = \"Offen\";\n        break;\n      case TicketStatus.InBearbeitungTIP:\n        value = \"In Bearbeitung\";\n        break;\n      case TicketStatus.ErledigtTIP:\n        value = \"Erledigt\";\n        break;\n      case TicketStatus.ErledigtKunde:\n        value = \"Erledigt durch Kunde\";\n        break;\n      case TicketStatus.WarteAufKunde:\n        value = \"Antwort Kunde ausständig\";\n        break;\n      case TicketStatus.Doppelt:\n        value = \"Doppelt\";\n        break;\n      case TicketStatus.MitNaechstemUpdate:\n        value = \"mit nächstem Update\";\n        break;\n    }\n\n    return value;\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport { TicketTyp } from '../enumerations/ticket-typ';\n\n@autoinject\n@valueConverter(\"ticketTypName\")\nexport class TicketTypNameValueConverter {\n  constructor(\n  ) { }\n\n  toView(value: any) {\n    if (value == null) {\n      return \"\";\n    }\n\n    let ticketTyp = value;\n\n    switch (ticketTyp) {\n      case TicketTyp.Frage:\n        value = \"Frage\";\n        break;\n      case TicketTyp.Wunsch:\n        value = \"Wunsch\";\n        break;\n      case TicketTyp.Fehler:\n        value = \"Fehler\";\n        break;\n      case TicketTyp.Beschreibung:\n        value = \"Beschreibung\";\n        break;\n      case TicketTyp.Neuigkeit:\n        value = \"Neuigkeit\";\n        break;\n    }\n\n    return value;\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport { EntitaetInfoService } from '../services/export';\n\n@autoinject\n@valueConverter(\"typeDisplayName\")\nexport class TypeDisplayNameValueConverter{\n  constructor(\n    private entitaetInfoService: EntitaetInfoService\n  ) {}\n\n  toView(value: string) {\n    if (!value) {\n      return \"\";\n    }\n\n    return this.entitaetInfoService.getBezeichnung(value);\n  }\n}\n","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class InstanzEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"instanz-edit\";\n        this.title = \"instanz-edit.instanz-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Instanz\",\n            \"webApiAction\": \"ERP/Cloud/Instanz\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_firmenbez1_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Firmenbez1\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Firmenbez1\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firmenbez1\",\n            \"options\": {\n                \"optionsName\": \"r_firmenbez1Options\",\n                \"optionsNameFQ\": \"r_firmenbez1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_firmenbez2_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Firmenbez2\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Firmenbez2\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firmenbez2\",\n            \"options\": {\n                \"optionsName\": \"r_firmenbez2Options\",\n                \"optionsNameFQ\": \"r_firmenbez2Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_firmenbez3_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Firmenbez3\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Firmenbez3\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firmenbez3\",\n            \"options\": {\n                \"optionsName\": \"r_firmenbez3Options\",\n                \"optionsNameFQ\": \"r_firmenbez3Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_strasse_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Strasse\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Strasse\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_strasse\",\n            \"options\": {\n                \"optionsName\": \"r_strasseOptions\",\n                \"optionsNameFQ\": \"r_strasseOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 2,\n            \"caption\": \"instanz-edit.r_landiso3166a2_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"LandISO3166A2\",\n                \"bindToFQ\": \"models.data.$m_Instanz.LandISO3166A2\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 2\n                    }]\n                }\n            }],\n            \"id\": \"r_landISO3166A2\",\n            \"options\": {\n                \"optionsName\": \"r_landISO3166A2Options\",\n                \"optionsNameFQ\": \"r_landISO3166A2Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 10,\n            \"caption\": \"instanz-edit.r_plz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"PLZ\",\n                \"bindToFQ\": \"models.data.$m_Instanz.PLZ\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 10\n                    }]\n                }\n            }],\n            \"id\": \"r_plz\",\n            \"options\": {\n                \"optionsName\": \"r_plzOptions\",\n                \"optionsNameFQ\": \"r_plzOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_ort_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Ort\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Ort\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_ort\",\n            \"options\": {\n                \"optionsName\": \"r_ortOptions\",\n                \"optionsNameFQ\": \"r_ortOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_emailadministrator_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"EmailAdministrator\",\n                \"bindToFQ\": \"models.data.$m_Instanz.EmailAdministrator\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"email\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_emailAdministrator\",\n            \"options\": {\n                \"optionsName\": \"r_emailAdministratorOptions\",\n                \"optionsNameFQ\": \"r_emailAdministratorOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_server_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Server\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Server\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_Server\",\n            \"options\": {\n                \"optionsName\": \"r_ServerOptions\",\n                \"optionsNameFQ\": \"r_ServerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"instanz-edit.r_datenbank_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Instanz.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Datenbank\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Datenbank\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_Datenbank\",\n            \"options\": {\n                \"optionsName\": \"r_DatenbankOptions\",\n                \"optionsNameFQ\": \"r_DatenbankOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"instanz-edit.r_benutzersuffix_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"BenutzerSuffix\",\n                \"bindToFQ\": \"models.data.$m_Instanz.BenutzerSuffix\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_benutzerSuffix\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerSuffixOptions\",\n                \"optionsNameFQ\": \"r_benutzerSuffixOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"instanz-edit.r_isazure_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"IsAzure\",\n                \"bindToFQ\": \"models.data.$m_Instanz.IsAzure\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isAzure\",\n            \"options\": {\n                \"optionsName\": \"r_isAzureOptions\",\n                \"optionsNameFQ\": \"r_isAzureOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"instanz-edit.r_lizenz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\",\n                \"bindTo\": \"Lizenz\",\n                \"bindToFQ\": \"models.data.$m_Instanz.Lizenz\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lizenz\",\n            \"options\": {\n                \"optionsName\": \"r_lizenzOptions\",\n                \"optionsNameFQ\": \"r_lizenzOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_firmenbez1_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmenbez1Options\\\" view-model.ref=\\\"r_firmenbez1\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_firmenbez2_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmenbez2Options\\\" view-model.ref=\\\"r_firmenbez2\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_firmenbez3_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmenbez3Options\\\" view-model.ref=\\\"r_firmenbez3\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_strasse_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_strasseOptions\\\" view-model.ref=\\\"r_strasse\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_landiso3166a2_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_landISO3166A2Options\\\" view-model.ref=\\\"r_landISO3166A2\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_plz_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_plzOptions\\\" view-model.ref=\\\"r_plz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_ort_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_ortOptions\\\" view-model.ref=\\\"r_ort\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_emailadministrator_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_emailAdministratorOptions\\\" view-model.ref=\\\"r_emailAdministrator\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_server_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_ServerOptions\\\" view-model.ref=\\\"r_Server\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_datenbank_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_DatenbankOptions\\\" view-model.ref=\\\"r_Datenbank\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_benutzersuffix_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_benutzerSuffixOptions\\\" view-model.ref=\\\"r_benutzerSuffix\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_isazure_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isAzureOptions\\\" view-model.ref=\\\"r_isAzure\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: instanz-edit.r_lizenz_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_lizenzOptions\\\" view-model.ref=\\\"r_lizenz\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class InstanzListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"instanz-list\";\n        this.title = \"instanz-list.instanz-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Instanz\",\n            \"webApiAction\": \"ERP/Cloud/Instanz\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_insFirmenbez1\",\n                \"caption\": \"instanz-list.r_insfirmenbez1_caption\",\n                \"bindTo\": \"Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_insDatenbank\",\n                \"caption\": \"instanz-list.r_insdatenbank_caption\",\n                \"bindTo\": \"Datenbank\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_insBenutzerSuffix\",\n                \"caption\": \"instanz-list.r_insbenutzersuffix_caption\",\n                \"bindTo\": \"BenutzerSuffix\",\n                \"minWidth\": 50\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_instanzGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_instanzGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Instanz\"\n            },\n            \"dataModel\": \"$m_Instanz\",\n            \"editUrl\": \"ERP/Cloud/Instanz\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_instanzGrid\",\n            \"options\": {\n                \"optionsName\": \"r_instanzGridOptions\",\n                \"optionsNameFQ\": \"r_instanzGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_instanzGridOptions\\\" view-model.ref=\\\"r_instanzGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BelegImportEditUtils\n} from \"./beleg-import-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BelegImportEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_belegImportEditUtils: BelegImportEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"beleg-import-edit\";\n        this.title = \"beleg-import-edit.beleg-import-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_BelegImport\",\n            \"webApiAction\": \"ERP/Import/BelegImport\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_belegImportEditUtils.doFreigebenCommand\",\n                \"bindToFQ\": \"functions.$f_belegImportEditUtils.doFreigebenCommand\"\n            }\n        });\n        this.addFunction(\"$f_belegImportEditUtils\", $f_belegImportEditUtils, \"functions.$f_belegImportEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"beleg-import-edit.r_dateiname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"Dateiname\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.Dateiname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_dateiname\",\n            \"options\": {\n                \"optionsName\": \"r_dateinameOptions\",\n                \"optionsNameFQ\": \"r_dateinameOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"beleg-import-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"beleg-import-edit.r_firma_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"mandantZuBelegImportTyp\",\n            \"filters\": [],\n            \"caption\": \"beleg-import-edit.r_typ_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.Typ\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_typ\",\n            \"options\": {\n                \"optionsName\": \"r_typOptions\",\n                \"optionsNameFQ\": \"r_typOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"beleg-import-edit.r_dmslink_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmsLink\",\n            \"options\": {\n                \"optionsName\": \"r_dmsLinkOptions\",\n                \"optionsNameFQ\": \"r_dmsLinkOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"beleg-import-edit.r_fehlerinfo_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\",\n                \"bindTo\": \"Fehlerinfo\",\n                \"bindToFQ\": \"models.data.$m_BelegImport.Fehlerinfo\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fehlerInfo\",\n            \"options\": {\n                \"optionsName\": \"r_fehlerInfoOptions\",\n                \"optionsNameFQ\": \"r_fehlerInfoOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_dateiname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_dateinameOptions\\\" view-model.ref=\\\"r_dateiname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_typ_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_typOptions\\\" view-model.ref=\\\"r_typ\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmsLinkOptions\\\" view-model.ref=\\\"r_dmsLink\\\"></tip-file-uploader-with-viewer> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_BelegImport.Fehlerinfo\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: beleg-import-edit.r_fehlerinfo_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_fehlerInfoOptions\\\" view-model.ref=\\\"r_fehlerInfo\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BelegImportListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"beleg-import-list\";\n        this.title = \"beleg-import-list.beleg-import-list_caption\";\n        this.addModel({\n            \"id\": \"$m_BelegImport\",\n            \"webApiAction\": \"ERP/Import/BelegImport\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_imDateiname\",\n                \"caption\": \"beleg-import-list.r_imdateiname_caption\",\n                \"bindTo\": \"Dateiname\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_imTyp\",\n                \"caption\": \"beleg-import-list.r_imtyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"minWidth\": 100,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.BelegImportTyp\"\n            }, {\n                \"id\": \"r_imAnlagedat\",\n                \"caption\": \"beleg-import-list.r_imanlagedat_caption\",\n                \"bindTo\": \"AnlageDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_imAenddat\",\n                \"caption\": \"beleg-import-list.r_imaenddat_caption\",\n                \"bindTo\": \"Aenderungsdatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_imStatus\",\n                \"caption\": \"beleg-import-list.r_imstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_importGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_importGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BelegImport\"\n            },\n            \"dataModel\": \"$m_BelegImport\",\n            \"editUrl\": \"ERP/Import/BelegImport\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_importGrid\",\n            \"options\": {\n                \"optionsName\": \"r_importGridOptions\",\n                \"optionsNameFQ\": \"r_importGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_importGridOptions\\\" view-model.ref=\\\"r_importGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    DatenbankInfoListUtils\n} from \"./datenbank-info-list-utils\";\n\n@fwx.autoinject\nexport class DatenbankInfoListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_DatenbankInfoListUtils: DatenbankInfoListUtils) {\n        super(element, formBaseImport);\n        this.id = \"datenbank-info-list\";\n        this.title = \"datenbank-info-list.datenbank-info-list_caption\";\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_DatenbankInfoListUtils.doAktualisierenCommand\",\n                \"bindToFQ\": \"functions.$f_DatenbankInfoListUtils.doAktualisierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_DatenbankInfoListUtils.doKillSessionsCommand\",\n                \"bindToFQ\": \"functions.$f_DatenbankInfoListUtils.doKillSessionsCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_DatenbankInfoListUtils.doStatistikenAktualisierenCommand\",\n                \"bindToFQ\": \"functions.$f_DatenbankInfoListUtils.doStatistikenAktualisierenCommand\"\n            }\n        });\n        this.addFunction(\"$f_DatenbankInfoListUtils\", $f_DatenbankInfoListUtils, \"functions.$f_DatenbankInfoListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_text\",\n                \"caption\": \"datenbank-info-list.r_text_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_sessionId\",\n                \"caption\": \"datenbank-info-list.r_sessionid_caption\",\n                \"bindTo\": \"SessionId\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_status\",\n                \"caption\": \"datenbank-info-list.r_status_caption\",\n                \"bindTo\": \"Status\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_cpuTime\",\n                \"caption\": \"datenbank-info-list.r_cputime_caption\",\n                \"bindTo\": \"CpuTime\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_totalElapsedTime\",\n                \"caption\": \"datenbank-info-list.r_totalelapsedtime_caption\",\n                \"bindTo\": \"TotalElapsedTime\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_queryGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_queryGridToolbarOptions\"\n            },\n            \"binding\": {},\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_queryGrid\",\n            \"options\": {\n                \"optionsName\": \"r_queryGridOptions\",\n                \"optionsNameFQ\": \"r_queryGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_queryGridOptions\\\" view-model.ref=\\\"r_queryGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    EinstellungEditUtils\n} from \"./einstellung-edit-utils\";\n\n@fwx.autoinject\nexport class EinstellungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_Einstellung: EinstellungEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"einstellung-edit\";\n        this.title = \"einstellung-edit.einstellung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Einstellung\",\n            \"webApiAction\": \"ERP/Cloud/Einstellung\",\n            \"webApiExpand\": {\n                'EinstellungTicketStatusZuBenutzer': null,\n                'EinstellungFehlerStatusZuBenutzer': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$idEinstellung\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"false\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$idEinstellung\"\n        });\n        this.addFunction(\"$f_Einstellung\", $f_Einstellung, \"functions.$f_Einstellung\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"einstellung-edit.r_mailabsender_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"MailAbsender\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.MailAbsender\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"email\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_mailAbsender\",\n            \"options\": {\n                \"optionsName\": \"r_mailAbsenderOptions\",\n                \"optionsNameFQ\": \"r_mailAbsenderOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"mode\": \"password\",\n            \"caption\": \"einstellung-edit.r_mailgatewayapikey_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"MailGatewayApiKey\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.MailGatewayApiKey\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_mailGatewayApiKey\",\n            \"options\": {\n                \"optionsName\": \"r_mailGatewayApiKeyOptions\",\n                \"optionsNameFQ\": \"r_mailGatewayApiKeyOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"einstellung-edit.r_checkticketstatus_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"CheckTicketStatus\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.CheckTicketStatus\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_checkTicketstatus\",\n            \"options\": {\n                \"optionsName\": \"r_checkTicketstatusOptions\",\n                \"optionsNameFQ\": \"r_checkTicketstatusOptions\"\n            }\n        });\n        this.widgetCreator.addTagBox(this, {\n            \"caption\": \"einstellung-edit.r_ticketstatus_caption\",\n            \"dataContext\": \"$m_Einstellung\",\n            \"batchSelectionEnabled\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"EinstellungTicketStatusZuBenutzer\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.EinstellungTicketStatusZuBenutzer\"\n            },\n            \"relationProperty\": \"IdBenutzer\",\n            \"editorOptions\": {\n                \"editorTypeName\": \"select\",\n                \"idSelect\": \"benutzer\",\n                \"filter\": null,\n                \"customs\": [],\n                \"caption\": \"Benutzer\",\n                \"isReadOnly\": null,\n                \"isReadOnlyExpression\": null,\n                \"isDisabled\": null,\n                \"isDisabledExpression\": null,\n                \"placeholder\": null,\n                \"informationButtonHint\": null\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_ticketStatus\",\n            \"options\": {\n                \"optionsName\": \"r_ticketStatusOptions\",\n                \"optionsNameFQ\": \"r_ticketStatusOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"einstellung-edit.r_checkfehlerstatus_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"CheckFehlerStatus\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.CheckFehlerStatus\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_checkFehlerstatus\",\n            \"options\": {\n                \"optionsName\": \"r_checkFehlerstatusOptions\",\n                \"optionsNameFQ\": \"r_checkFehlerstatusOptions\"\n            }\n        });\n        this.widgetCreator.addTagBox(this, {\n            \"caption\": \"einstellung-edit.r_fehlerstatus_caption\",\n            \"dataContext\": \"$m_Einstellung\",\n            \"batchSelectionEnabled\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Einstellung\",\n                \"bindTo\": \"EinstellungFehlerStatusZuBenutzer\",\n                \"bindToFQ\": \"models.data.$m_Einstellung.EinstellungFehlerStatusZuBenutzer\"\n            },\n            \"relationProperty\": \"IdBenutzer\",\n            \"editorOptions\": {\n                \"editorTypeName\": \"select\",\n                \"idSelect\": \"benutzer\",\n                \"filter\": null,\n                \"customs\": [],\n                \"caption\": \"Benutzer\",\n                \"isReadOnly\": null,\n                \"isReadOnlyExpression\": null,\n                \"isDisabled\": null,\n                \"isDisabledExpression\": null,\n                \"placeholder\": null,\n                \"informationButtonHint\": null\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Einstellung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fehlerStatus\",\n            \"options\": {\n                \"optionsName\": \"r_fehlerStatusOptions\",\n                \"optionsNameFQ\": \"r_fehlerStatusOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: einstellung-edit.r_mailgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_mailabsender_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_mailAbsenderOptions\\\" view-model.ref=\\\"r_mailAbsender\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_mailgatewayapikey_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_mailGatewayApiKeyOptions\\\" view-model.ref=\\\"r_mailGatewayApiKey\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: einstellung-edit.r_monitorservicegroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_checkticketstatus_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_checkTicketstatusOptions\\\" view-model.ref=\\\"r_checkTicketstatus\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_ticketstatus_caption\\\"></div> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"r_ticketStatusOptions\\\" view-model.ref=\\\"r_ticketStatus\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_checkfehlerstatus_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_checkFehlerstatusOptions\\\" view-model.ref=\\\"r_checkFehlerstatus\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: einstellung-edit.r_fehlerstatus_caption\\\"></div> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"r_fehlerStatusOptions\\\" view-model.ref=\\\"r_fehlerStatus\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FehlerEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fehler-edit\";\n        this.title = \"fehler-edit.fehler-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Fehler\",\n            \"webApiAction\": \"ERP/Cloud/Fehler\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"true\",\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"fehler-edit.r_datenbank_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"Datenbank\",\n                \"bindToFQ\": \"models.data.$m_Fehler.Datenbank\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_datenbank\",\n            \"options\": {\n                \"optionsName\": \"r_datenbankOptions\",\n                \"optionsNameFQ\": \"r_datenbankOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"fehler-edit.r_idmandant_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"IdMandant\",\n                \"bindToFQ\": \"models.data.$m_Fehler.IdMandant\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_idMandant\",\n            \"options\": {\n                \"optionsName\": \"r_idMandantOptions\",\n                \"optionsNameFQ\": \"r_idMandantOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"fehler-edit.r_idbenutzer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"IdBenutzer\",\n                \"bindToFQ\": \"models.data.$m_Fehler.IdBenutzer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_idBenutzer\",\n            \"options\": {\n                \"optionsName\": \"r_idBenutzerOptions\",\n                \"optionsNameFQ\": \"r_idBenutzerOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"fehler-edit.r_isbearbeitet_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"IsBearbeitet\",\n                \"bindToFQ\": \"models.data.$m_Fehler.IsBearbeitet\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isBearbeitet\",\n            \"options\": {\n                \"optionsName\": \"r_isBearbeitetOptions\",\n                \"optionsNameFQ\": \"r_isBearbeitetOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"400px\",\n            \"caption\": \"fehler-edit.r_fehlerinformation_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"Fehlerinformation\",\n                \"bindToFQ\": \"models.data.$m_Fehler.Fehlerinformation\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fehlerinformation\",\n            \"options\": {\n                \"optionsName\": \"r_fehlerinformationOptions\",\n                \"optionsNameFQ\": \"r_fehlerinformationOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"400px\",\n            \"caption\": \"fehler-edit.r_kommentar_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\",\n                \"bindTo\": \"Kommentar\",\n                \"bindToFQ\": \"models.data.$m_Fehler.Kommentar\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kommentar\",\n            \"options\": {\n                \"optionsName\": \"r_kommentarOptions\",\n                \"optionsNameFQ\": \"r_kommentarOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_datenbank_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_datenbankOptions\\\" view-model.ref=\\\"r_datenbank\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_idmandant_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_idMandantOptions\\\" view-model.ref=\\\"r_idMandant\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_idbenutzer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_idBenutzerOptions\\\" view-model.ref=\\\"r_idBenutzer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_isbearbeitet_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isBearbeitetOptions\\\" view-model.ref=\\\"r_isBearbeitet\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_fehlerinformation_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_fehlerinformationOptions\\\" view-model.ref=\\\"r_fehlerinformation\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fehler-edit.r_kommentar_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_kommentarOptions\\\" view-model.ref=\\\"r_kommentar\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FehlerListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fehler-list\";\n        this.title = \"fehler-list.fehler-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Fehler\",\n            \"webApiAction\": \"ERP/Cloud/Fehler\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"allowSave\": \"false\",\n            \"allowDelete\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_feDatenbank\",\n                \"caption\": \"fehler-list.r_fedatenbank_caption\",\n                \"bindTo\": \"Datenbank\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_feIdMandant\",\n                \"caption\": \"fehler-list.r_feidmandant_caption\",\n                \"bindTo\": \"IdMandant\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_feIdBenutzer\",\n                \"caption\": \"fehler-list.r_feidbenutzer_caption\",\n                \"bindTo\": \"IdBenutzer\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_feFehlerinformation\",\n                \"caption\": \"fehler-list.r_fefehlerinformation_caption\",\n                \"bindTo\": \"Fehlerinformation\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_feKommentar\",\n                \"caption\": \"fehler-list.r_fekommentar_caption\",\n                \"bindTo\": \"Kommentar\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_feAnlagedatum\",\n                \"caption\": \"fehler-list.r_feanlagedatum_caption\",\n                \"bindTo\": \"AnlageDatum\",\n                \"width\": \"110px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_feIsBearbeitet\",\n                \"caption\": \"fehler-list.r_feisbearbeitet_caption\",\n                \"bindTo\": \"IsBearbeitet\",\n                \"width\": \"90px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fehlerGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fehlerGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Fehler\"\n            },\n            \"dataModel\": \"$m_Fehler\",\n            \"editUrl\": \"ERP/Cloud/Fehler\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fehlerGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fehlerGridOptions\",\n                \"optionsNameFQ\": \"r_fehlerGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fehlerGridOptions\\\" view-model.ref=\\\"r_fehlerGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    FibuKontoEditUtils\n} from \"./fibu-konto-edit-utils\";\n\n@fwx.autoinject\nexport class FibuKontoEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_FibuKontoEditUtils: FibuKontoEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"fibu-konto-edit\";\n        this.title = \"fibu-konto-edit.fibu-konto-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuKonto\",\n            \"webApiAction\": \"ERP/Fibu/Konto\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Kontogruppe': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FibuKontoFilterEdit\",\n            \"webApiAction\": \"ERP/Fibu/KontoFilter\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FibuKontoFilterRel\",\n            \"webApiAction\": \"ERP/Fibu/KontoFilter\",\n            \"webApiExpand\": {\n                'Steuersatz': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"fibuKontoFilterEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_FibuKontoFilterEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_FibuKontoFilterEdit.Id\"\n                }\n            }],\n            \"id\": \"fibuKontoFilterEditPopup\",\n            \"options\": {\n                \"optionsName\": \"fibuKontoFilterEditPopupOptions\",\n                \"optionsNameFQ\": \"fibuKontoFilterEditPopupOptions\"\n            },\n            \"caption\": \"fibu-konto-edit.fibukontofiltereditpopup_caption\",\n            \"height\": \"400px\",\n            \"width\": \"700px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_FibuKontoEditUtils\", $f_FibuKontoEditUtils, \"functions.$f_FibuKontoEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"fibu-konto-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_FibuKonto && models.data.$m_FibuKonto.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuKontogruppe\",\n            \"filters\": [],\n            \"caption\": \"fibu-konto-edit.r_kontogruppe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"IdKontogruppe\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.IdKontogruppe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kontogruppe\",\n            \"options\": {\n                \"optionsName\": \"r_kontogruppeOptions\",\n                \"optionsNameFQ\": \"r_kontogruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"f0\",\n            \"caption\": \"fibu-konto-edit.r_nummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.Nummer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"fibu-konto-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"fibu-konto-edit.r_sortnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"SortNr\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.SortNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sortNr\",\n            \"options\": {\n                \"optionsName\": \"r_sortNrOptions\",\n                \"optionsNameFQ\": \"r_sortNrOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"fibu-konto-edit.r_iskassa_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\",\n                \"bindTo\": \"IsKassa\",\n                \"bindToFQ\": \"models.data.$m_FibuKonto.IsKassa\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isKassa\",\n            \"options\": {\n                \"optionsName\": \"r_isKassaOptions\",\n                \"optionsNameFQ\": \"r_isKassaOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fibuKFSteuerTyp\",\n                \"caption\": \"fibu-konto-edit.r_fibukfsteuertyp_caption\",\n                \"bindTo\": \"SteuerTyp\",\n                \"minWidth\": 100,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.SteuerTyp\"\n            }, {\n                \"id\": \"r_fibuKFSteuersatz\",\n                \"caption\": \"fibu-konto-edit.r_fibukfsteuersatz_caption\",\n                \"bindTo\": \"Steuersatz.Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fibuKontoFilterGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fibuKontoFilterGridToolbarOptions\"\n            },\n            \"caption\": \"fibu-konto-edit.r_fibukontofiltergrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_FibuKontoFilterRel\",\n                \"bindTo\": \"IdFibuKonto\",\n                \"bindToFQ\": \"models.data.$m_FibuKontoFilterRel.IdFibuKonto\"\n            },\n            \"dataModel\": \"$m_FibuKonto\",\n            \"editDataContext\": \"$m_FibuKontoFilterEdit\",\n            \"idEditPopup\": \"fibuKontoFilterEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fibuKontoFilterGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fibuKontoFilterGridOptions\",\n                \"optionsNameFQ\": \"r_fibuKontoFilterGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./fibu-konto-filter-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"fibuKontoFilterEditPopupOptions\\\" view-model.ref=\\\"fibuKontoFilterEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <fibu-konto-filter-edit-form view-model.ref=\\\"fibuKontoFilterEditPopupContent\\\" is-edit-popup=\\\"true\\\"></fibu-konto-filter-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_kontogruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_kontogruppeOptions\\\" view-model.ref=\\\"r_kontogruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-7 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_sortnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sortNrOptions\\\" view-model.ref=\\\"r_sortNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_FibuKontoEditUtils.startup.startupInfo.Lizenz.HasKassa\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-edit.r_iskassa_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isKassaOptions\\\" view-model.ref=\\\"r_isKassa\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_fibuKontoFilterGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fibuKontoFilterGridOptions\\\" view-model.ref=\\\"r_fibuKontoFilterGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuKontoFilterEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-konto-filter-edit\";\n        this.title = \"fibu-konto-filter-edit.fibu-konto-filter-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuKontoFilter\",\n            \"webApiAction\": \"ERP/Fibu/KontoFilter\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"fibu-konto-filter-edit.r_steuertyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontoFilter\",\n                \"bindTo\": \"SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_FibuKontoFilter.SteuerTyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerTyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerTypOptions\",\n                \"optionsNameFQ\": \"r_steuerTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuersatz\",\n            \"filters\": [],\n            \"caption\": \"fibu-konto-filter-edit.r_steuersatz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontoFilter\",\n                \"bindTo\": \"IdSteuersatz\",\n                \"bindToFQ\": \"models.data.$m_FibuKontoFilter.IdSteuersatz\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuersatz\",\n            \"options\": {\n                \"optionsName\": \"r_steuersatzOptions\",\n                \"optionsNameFQ\": \"r_steuersatzOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-filter-edit.r_steuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerTypOptions\\\" view-model.ref=\\\"r_steuerTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-konto-filter-edit.r_steuersatz_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuersatzOptions\\\" view-model.ref=\\\"r_steuersatz\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuKontoListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-konto-list\";\n        this.title = \"fibu-konto-list.fibu-konto-list_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuKonto\",\n            \"webApiAction\": \"ERP/Fibu/Konto\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Kontogruppe': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fibuKFirma\",\n                \"caption\": \"fibu-konto-list.r_fibukfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fibuKKontogruppe\",\n                \"caption\": \"fibu-konto-list.r_fibukkontogruppe_caption\",\n                \"bindTo\": \"Kontogruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fibuKNummer\",\n                \"caption\": \"fibu-konto-list.r_fibuknummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\",\n                \"format\": \"f0\"\n            }, {\n                \"id\": \"r_fibuKBezeichnung\",\n                \"caption\": \"fibu-konto-list.r_fibukbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fiboKontoGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fiboKontoGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKonto\"\n            },\n            \"dataModel\": \"$m_FibuKonto\",\n            \"editUrl\": \"ERP/Fibu/Konto\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fiboKontoGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fiboKontoGridOptions\",\n                \"optionsNameFQ\": \"r_fiboKontoGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fiboKontoGridOptions\\\" view-model.ref=\\\"r_fiboKontoGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuKontogruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-kontogruppe-edit\";\n        this.title = \"fibu-kontogruppe-edit.fibu-kontogruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuKontogruppe\",\n            \"webApiAction\": \"ERP/Fibu/Kontogruppe\",\n            \"webApiExpand\": {\n                'Firma': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"fibu-kontogruppe-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontogruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_FibuKontogruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuKontoTyp\",\n            \"filters\": [],\n            \"caption\": \"fibu-kontogruppe-edit.r_kontotyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontogruppe\",\n                \"bindTo\": \"KontoTyp\",\n                \"bindToFQ\": \"models.data.$m_FibuKontogruppe.KontoTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_kontoTyp\",\n            \"options\": {\n                \"optionsName\": \"r_kontoTypOptions\",\n                \"optionsNameFQ\": \"r_kontoTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuSollHaben\",\n            \"filters\": [],\n            \"caption\": \"fibu-kontogruppe-edit.r_sollhaben_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontogruppe\",\n                \"bindTo\": \"SollHaben\",\n                \"bindToFQ\": \"models.data.$m_FibuKontogruppe.SollHaben\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sollHaben\",\n            \"options\": {\n                \"optionsName\": \"r_sollHabenOptions\",\n                \"optionsNameFQ\": \"r_sollHabenOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-kontogruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-kontogruppe-edit.r_kontotyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_kontoTypOptions\\\" view-model.ref=\\\"r_kontoTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-kontogruppe-edit.r_sollhaben_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sollHabenOptions\\\" view-model.ref=\\\"r_sollHaben\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuKontogruppeListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-kontogruppe-list\";\n        this.title = \"fibu-kontogruppe-list.fibu-kontogruppe-list_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuKontogruppe\",\n            \"webApiAction\": \"ERP/Fibu/Kontogruppe\",\n            \"webApiExpand\": {\n                'Firma': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fibuKgBezeichnung\",\n                \"caption\": \"fibu-kontogruppe-list.r_fibukgbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fibuKgKontoTyp\",\n                \"caption\": \"fibu-kontogruppe-list.r_fibukgkontotyp_caption\",\n                \"bindTo\": \"KontoTyp\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.FibuKontoTyp\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fibuKontogruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fibuKontogruppeGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_FibuKontogruppe\"\n            },\n            \"dataModel\": \"$m_FibuKontogruppe\",\n            \"editUrl\": \"ERP/Fibu/Kontogruppe\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fibuKontogruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fibuKontogruppeGridOptions\",\n                \"optionsNameFQ\": \"r_fibuKontogruppeGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fibuKontogruppeGridOptions\\\" view-model.ref=\\\"r_fibuKontogruppeGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuOssEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-oss-edit\";\n        this.title = \"fibu-oss-edit.fibu-oss-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuOSS\",\n            \"webApiAction\": \"ERP/Fibu/FibuOSS\",\n            \"webApiExpand\": {\n                'Land': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"ossTyp\",\n            \"filters\": [],\n            \"caption\": \"fibu-oss-edit.r_fibuosstyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuOSS\",\n                \"bindTo\": \"OSSTyp\",\n                \"bindToFQ\": \"models.data.$m_FibuOSS.OSSTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_fibuOssTyp\",\n            \"options\": {\n                \"optionsName\": \"r_fibuOssTypOptions\",\n                \"optionsNameFQ\": \"r_fibuOssTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuTyp\",\n            \"filters\": [],\n            \"caption\": \"fibu-oss-edit.r_fibuossfibutyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuOSS\",\n                \"bindTo\": \"FibuTyp\",\n                \"bindToFQ\": \"models.data.$m_FibuOSS.FibuTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_fibuOSSFibuTyp\",\n            \"options\": {\n                \"optionsName\": \"r_fibuOSSFibuTypOptions\",\n                \"optionsNameFQ\": \"r_fibuOSSFibuTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"land\",\n            \"filters\": [],\n            \"caption\": \"fibu-oss-edit.r_fibuossland_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuOSS\",\n                \"bindTo\": \"IdLand\",\n                \"bindToFQ\": \"models.data.$m_FibuOSS.IdLand\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_fibuOSSLand\",\n            \"options\": {\n                \"optionsName\": \"r_fibuOSSLandOptions\",\n                \"optionsNameFQ\": \"r_fibuOSSLandOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 10,\n            \"caption\": \"fibu-oss-edit.r_fibuosscode_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuOSS\",\n                \"bindTo\": \"Code\",\n                \"bindToFQ\": \"models.data.$m_FibuOSS.Code\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 10\n                    }]\n                }\n            }],\n            \"id\": \"r_fibuOSSCode\",\n            \"options\": {\n                \"optionsName\": \"r_fibuOSSCodeOptions\",\n                \"optionsNameFQ\": \"r_fibuOSSCodeOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-oss-edit.r_fibuosstyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fibuOssTypOptions\\\" view-model.ref=\\\"r_fibuOssTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-oss-edit.r_fibuossfibutyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fibuOSSFibuTypOptions\\\" view-model.ref=\\\"r_fibuOSSFibuTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-oss-edit.r_fibuossland_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fibuOSSLandOptions\\\" view-model.ref=\\\"r_fibuOSSLand\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-oss-edit.r_fibuosscode_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_fibuOSSCodeOptions\\\" view-model.ref=\\\"r_fibuOSSCode\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class FibuOssListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"fibu-oss-list\";\n        this.title = \"fibu-oss-list.fibu-oss-list_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuOSS\",\n            \"webApiAction\": \"ERP/Fibu/FibuOSS\",\n            \"webApiExpand\": {\n                'Land': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fibuOSSTyp\",\n                \"caption\": \"fibu-oss-list.r_fibuosstyp_caption\",\n                \"bindTo\": \"OSSTyp\",\n                \"minWidth\": 100,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.OSSTyp\"\n            }, {\n                \"id\": \"r_fibuOSSFibuTyp\",\n                \"caption\": \"fibu-oss-list.r_fibuossfibutyp_caption\",\n                \"bindTo\": \"FibuTyp\",\n                \"minWidth\": 100,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.FibuTyp\"\n            }, {\n                \"id\": \"r_fibuOSSLand\",\n                \"caption\": \"fibu-oss-list.r_fibuossland_caption\",\n                \"bindTo\": \"Land.Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fiboOSSGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fiboOSSGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_FibuOSS\"\n            },\n            \"dataModel\": \"$m_FibuOSS\",\n            \"editUrl\": \"ERP/Fibu/FibuOSS\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fiboOSSGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fiboOSSGridOptions\",\n                \"optionsNameFQ\": \"r_fiboOSSGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fiboOSSGridOptions\\\" view-model.ref=\\\"r_fiboOSSGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    FibuSyncJobEditUtils\n} from \"./fibu-sync-job-edit-utils\";\n\n@fwx.autoinject\nexport class FibuSyncJobEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_FibuSyncJobEditUtils: FibuSyncJobEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"fibu-sync-job-edit\";\n        this.title = \"fibu-sync-job-edit.fibu-sync-job-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuSyncJob\",\n            \"webApiAction\": \"ERP/Fibu/SyncJob\",\n            \"webApiExpand\": {\n                'Firma': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                },\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FibuSyncJobEditUtils.doSynchronisierungStarten\",\n                \"bindToFQ\": \"functions.$f_FibuSyncJobEditUtils.doSynchronisierungStarten\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_FibuSyncJobEditUtils\", $f_FibuSyncJobEditUtils, \"functions.$f_FibuSyncJobEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuSyncTyp\",\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-edit.r_synctyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_FibuSyncJob\",\n                \"bindTo\": \"SyncTyp\",\n                \"bindToFQ\": \"models.data.$m_FibuSyncJob.SyncTyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_syncTyp\",\n            \"options\": {\n                \"optionsName\": \"r_syncTypOptions\",\n                \"optionsNameFQ\": \"r_syncTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_FibuSyncJob\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_FibuSyncJob.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"fibu-sync-job-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_FibuSyncJob\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_FibuSyncJob.Firma.Bezeichnung\",\n                \"propertyPrefix\": \"Firma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"fibu-sync-job-edit.r_dmslink_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_FibuSyncJob\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_FibuSyncJob.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmslink\",\n            \"options\": {\n                \"optionsName\": \"r_dmslinkOptions\",\n                \"optionsNameFQ\": \"r_dmslinkOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-edit.r_synctyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_syncTypOptions\\\" view-model.ref=\\\"r_syncTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmslinkOptions\\\" view-model.ref=\\\"r_dmslink\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    FibuSyncJobListUtils\n} from \"./fibu-sync-job-list-utils\";\n\n@fwx.autoinject\nexport class FibuSyncJobListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_FibuSyncJobListUtils: FibuSyncJobListUtils) {\n        super(element, formBaseImport);\n        this.id = \"fibu-sync-job-list\";\n        this.title = \"fibu-sync-job-list.fibu-sync-job-list_caption\";\n        this.addModel({\n            \"id\": \"$m_FibuSyncJob\",\n            \"webApiAction\": \"ERP/Fibu/SyncJob\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FibuSyncJobListUtils.showSynchronsierenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.showSynchronsierenPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FibuSyncJobListUtils.showOffenePostenImportPopupCommand\",\n                \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.showOffenePostenImportPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FibuSyncJobListUtils.showExportPersonenkontenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.showExportPersonenkontenPopupCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_FibuSyncJobListUtils\", $f_FibuSyncJobListUtils, \"functions.$f_FibuSyncJobListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fibuSyncAnlagedatum\",\n                \"caption\": \"fibu-sync-job-list.r_fibusyncanlagedatum_caption\",\n                \"bindTo\": \"AnlageDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_fibuSyncTyp\",\n                \"caption\": \"fibu-sync-job-list.r_fibusynctyp_caption\",\n                \"bindTo\": \"SyncTyp\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.FibuSyncTyp\"\n            }, {\n                \"id\": \"r_firma\",\n                \"caption\": \"fibu-sync-job-list.r_firma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_anzDatensaetze\",\n                \"caption\": \"fibu-sync-job-list.r_anzdatensaetze_caption\",\n                \"bindTo\": \"AnzDatensaetze\",\n                \"width\": \"120px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_status\",\n                \"caption\": \"fibu-sync-job-list.r_status_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fibuSyncJobGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fibuSyncJobGridToolbarOptions\"\n            },\n            \"caption\": \"fibu-sync-job-list.r_fibusyncjobgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_FibuSyncJob\"\n            },\n            \"dataModel\": \"$m_FibuSyncJob\",\n            \"editUrl\": \"ERP/Fibu/SyncJob\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fibuSyncJobGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fibuSyncJobGridOptions\",\n                \"optionsNameFQ\": \"r_fibuSyncJobGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_fibuSyncFilterPopup\",\n            \"options\": {\n                \"optionsName\": \"r_fibuSyncFilterPopupOptions\",\n                \"optionsNameFQ\": \"r_fibuSyncFilterPopupOptions\"\n            },\n            \"caption\": \"fibu-sync-job-list.r_fibusyncfilterpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_FibuSyncJobListUtils.doSynchronisierenCommand\",\n                    \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.doSynchronisierenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-list.r_fibusyncfirma_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_fibuSyncFirma\",\n            \"options\": {\n                \"optionsName\": \"r_fibuSyncFirmaOptions\",\n                \"optionsNameFQ\": \"r_fibuSyncFirmaOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"fibu-sync-job-list.r_datumbis_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datumBis\",\n            \"options\": {\n                \"optionsName\": \"r_datumBisOptions\",\n                \"optionsNameFQ\": \"r_datumBisOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_importOPPopup\",\n            \"options\": {\n                \"optionsName\": \"r_importOPPopupOptions\",\n                \"optionsNameFQ\": \"r_importOPPopupOptions\"\n            },\n            \"caption\": \"fibu-sync-job-list.r_importoppopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"600px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_FibuSyncJobListUtils.doOffenePostenImportCommand\",\n                    \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.doOffenePostenImportCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-list.r_impopfirma_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_impOPFirma\",\n            \"options\": {\n                \"optionsName\": \"r_impOPFirmaOptions\",\n                \"optionsNameFQ\": \"r_impOPFirmaOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"caption\": \"fibu-sync-job-list.r_impopliste_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_impOPListe\",\n            \"options\": {\n                \"optionsName\": \"r_impOPListeOptions\",\n                \"optionsNameFQ\": \"r_impOPListeOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_exportPersonenkontenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_exportPersonenkontenPopupOptions\",\n                \"optionsNameFQ\": \"r_exportPersonenkontenPopupOptions\"\n            },\n            \"caption\": \"fibu-sync-job-list.r_exportpersonenkontenpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"600px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_FibuSyncJobListUtils.doExportPersonenkontenCommand\",\n                    \"bindToFQ\": \"functions.$f_FibuSyncJobListUtils.doExportPersonenkontenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-list.r_exportpfirma_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_exportPFirma\",\n            \"options\": {\n                \"optionsName\": \"r_exportPFirmaOptions\",\n                \"optionsNameFQ\": \"r_exportPFirmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"geschaeftspartnerart\",\n            \"filter\": [\n                [\"IsLieferant\", true], \"or\", [\"IsKunde\", true], \"or\", [\"IsRechnungsadresse\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"fibu-sync-job-list.r_exportpgeschaeftspartnerart_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_exportPGeschaeftspartnerart\",\n            \"options\": {\n                \"optionsName\": \"r_exportPGeschaeftspartnerartOptions\",\n                \"optionsNameFQ\": \"r_exportPGeschaeftspartnerartOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fibuSyncJobGridOptions\\\" view-model.ref=\\\"r_fibuSyncJobGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_fibuSyncFilterPopupOptions\\\" view-model.ref=\\\"r_fibuSyncFilterPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_fibusyncfirma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fibuSyncFirmaOptions\\\" view-model.ref=\\\"r_fibuSyncFirma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_datumbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumBisOptions\\\" view-model.ref=\\\"r_datumBis\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_importOPPopupOptions\\\" view-model.ref=\\\"r_importOPPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_impopfirma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_impOPFirmaOptions\\\" view-model.ref=\\\"r_impOPFirma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_impopliste_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_impOPListeOptions\\\" view-model.ref=\\\"r_impOPListe\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_exportPersonenkontenPopupOptions\\\" view-model.ref=\\\"r_exportPersonenkontenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_exportpfirma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_exportPFirmaOptions\\\" view-model.ref=\\\"r_exportPFirma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fibu-sync-job-list.r_exportpgeschaeftspartnerart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_exportPGeschaeftspartnerartOptions\\\" view-model.ref=\\\"r_exportPGeschaeftspartnerart\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ImportEditUtils\n} from \"./import-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ImportEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_importEditUtils: ImportEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"import-edit\";\n        this.title = \"import-edit.import-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Import\",\n            \"webApiAction\": \"ERP/Import/Import\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_importEditUtils.doFreigebenCommand\",\n                \"bindToFQ\": \"functions.$f_importEditUtils.doFreigebenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_importEditUtils.doCreateVorlageCommand\",\n                \"bindToFQ\": \"functions.$f_importEditUtils.doCreateVorlageCommand\"\n            }\n        });\n        this.addFunction(\"$f_importEditUtils\", $f_importEditUtils, \"functions.$f_importEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"import-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Import.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 150\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"import-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Import.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"typen\",\n            \"filters\": [],\n            \"caption\": \"import-edit.r_fullname_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Import && models.data.$m_Import.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"FullName\",\n                \"bindToFQ\": \"models.data.$m_Import.FullName\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_fullName\",\n            \"options\": {\n                \"optionsName\": \"r_fullNameOptions\",\n                \"optionsNameFQ\": \"r_fullNameOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 1,\n            \"acceptType\": \".jpg,.png,.pdf,.doc,.docx,.xls,.xlsx,.txt\",\n            \"showClearButton\": false,\n            \"caption\": \"import-edit.r_dmslink_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_Import.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmsLink\",\n            \"options\": {\n                \"optionsName\": \"r_dmsLinkOptions\",\n                \"optionsNameFQ\": \"r_dmsLinkOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"import-edit.r_fehlerinfo_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"Fehlerinfo\",\n                \"bindToFQ\": \"models.data.$m_Import.Fehlerinfo\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fehlerInfo\",\n            \"options\": {\n                \"optionsName\": \"r_fehlerInfoOptions\",\n                \"optionsNameFQ\": \"r_fehlerInfoOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: import-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: import-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: import-edit.r_fullname_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fullNameOptions\\\" view-model.ref=\\\"r_fullName\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: import-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmsLinkOptions\\\" view-model.ref=\\\"r_dmsLink\\\"></tip-file-uploader-with-viewer> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Import.Fehlerinfo\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: import-edit.r_fehlerinfo_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_fehlerInfoOptions\\\" view-model.ref=\\\"r_fehlerInfo\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ImportListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"import-list\";\n        this.title = \"import-list.import-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Import\",\n            \"webApiAction\": \"ERP/Import/Import\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_imBezeichnung\",\n                \"caption\": \"import-list.r_imbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_imFullName\",\n                \"caption\": \"import-list.r_imfullname_caption\",\n                \"bindTo\": \"FullName\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_imAnlagedat\",\n                \"caption\": \"import-list.r_imanlagedat_caption\",\n                \"bindTo\": \"AnlageDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_imAenddat\",\n                \"caption\": \"import-list.r_imaenddat_caption\",\n                \"bindTo\": \"Aenderungsdatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_imStatus\",\n                \"caption\": \"import-list.r_imstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_importGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_importGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Import\"\n            },\n            \"dataModel\": \"$m_Import\",\n            \"editUrl\": \"ERP/Import/Import\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_importGrid\",\n            \"options\": {\n                \"optionsName\": \"r_importGridOptions\",\n                \"optionsNameFQ\": \"r_importGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_importGridOptions\\\" view-model.ref=\\\"r_importGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, bindable } from \"aurelia-framework\";\nimport { GlobalizationService } from \"../../../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class ConnectedClients {\n  constructor(\n    private _globalizationService: GlobalizationService\n  ) {}\n\n  @bindable status;\n\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      caption: \"Datenbank\",\n      dataField: \"DatabaseKey\",\n      width: 120\n    }, {\n      caption: \"Benutzer\",\n      dataField: \"Name\"\n    }, {\n      caption: \"Anzahl\",\n      dataField: \"Anzahl\",\n      width: 100\n    }],\n    allowColumnReordering: true,\n    allowColumnResizing: true,\n    filterRow: {\n      visible: true\n    },\n    headerFilter: {\n      visible: true\n    },\n    bindingOptions: {\n      \"dataSource\": \"status\"\n    }\n  }\n}\n","// Module\nvar code = \"<template> <h2>Verbundene Benutzer</h2> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\"></dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable } from \"aurelia-framework\";\nimport { GlobalizationService } from \"../../../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class CronJobs {\n  constructor(\n    private _globalizationService: GlobalizationService\n  ) {}\n  \n  @bindable status;\n\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      caption: \"Host\",\n      dataField: \"HostName\",\n      width: 120\n    }, {\n      caption: \"Prozess\",\n      dataField: \"ProcessName\",\n      width: 120\n    }, {\n      caption: \"Name\",\n      dataField: \"Name\"\n    }, {\n      caption: \"Aktiv?\",\n      dataField: \"IsExecuting\",\n      width: 120\n    }, {\n      caption: \"Letzte Ausführung\",\n      dataField: \"LastExecution\",\n      format: this._globalizationService.getFormatter(\"g\"),\n      width: 120\n    }, {\n      caption: \"Letzter Status\",\n      dataField: \"LastState\"\n    }, {\n      caption: \"Nächste Ausführung\",\n      dataField: \"NextExecution\",\n      format: this._globalizationService.getFormatter(\"g\"),\n      width: 120\n    }],\n    allowColumnReordering: true,\n    allowColumnResizing: true,\n    filterRow: {\n      visible: true\n    },\n    headerFilter: {\n      visible: true\n    },\n    bindingOptions: {\n      \"dataSource\": \"status\"\n    }\n  }\n}\n","// Module\nvar code = \"<template> <h2>Cron-Jobs</h2> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\"></dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable } from \"aurelia-framework\";\nimport { GlobalizationService } from \"../../../../../framework/base/services/globalization-service\";\n\n@autoinject\nexport class HealthChecks {\n  constructor(\n    private _globalizationService: GlobalizationService\n  ) {}\n  \n  @bindable status;\n\n  gridOptions: DevExpress.ui.dxDataGridOptions = {\n    columns: [{\n      caption: \"Host\",\n      dataField: \"Hostname\",\n      width: 120\n    }, {\n      caption: \"Name\",\n      dataField: \"Name\",\n      width: 240\n    }, {\n      caption: \"Prüfdatum\",\n      dataField: \"CheckDate\",\n      format: this._globalizationService.getFormatter(\"g\"),\n      width: 120\n    }, {\n      caption: \"Info\",\n      dataField: \"Info\"\n    }, {\n      caption: \"Status\",\n      dataField: \"State\",\n      width: 120,\n      calculateCellValue: (row) => {\n        switch (row.State) {\n          case 0: {\n            return \"OK\";\n          }\n          case 1: {\n            return \"Kritisch\";\n          }\n          default: {\n            return \"Fehler\";\n          }\n        }\n      }\n    }],\n    allowColumnReordering: true,\n    allowColumnResizing: true,\n    filterRow: {\n      visible: true\n    },\n    headerFilter: {\n      visible: true\n    },\n    bindingOptions: {\n      \"dataSource\": \"status\"\n    }\n  }\n}\n","// Module\nvar code = \"<template> <h2>Health-Checks</h2> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gridOptions\\\"></dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusListUtils\n} from \"./status-list-utils\";\n\n@fwx.autoinject\nexport class StatusListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusList: StatusListUtils) {\n        super(element, formBaseImport);\n        this.id = \"status-list\";\n        this.title = \"status-list.status-list_caption\";\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_StatusList.doAktualisierenCommand\",\n                \"bindToFQ\": \"functions.$f_StatusList.doAktualisierenCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusList\", $f_StatusList, \"functions.$f_StatusList\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./status-list-form.less\\\"></require> <require from=\\\"./health-checks/health-checks\\\"></require> <require from=\\\"./connected-clients/connected-clients\\\"></require> <require from=\\\"./cron-jobs/cron-jobs\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 konf-status__element\\\"> <health-checks view-model.ref=\\\"r_healthChecks\\\" status.bind=\\\"functions.$f_StatusList.status.HealthChecks\\\"></health-checks> </div> <div class=\\\"col-xs-12 konf-status__element\\\"> <connected-clients view-model.ref=\\\"r_connectedClients\\\" status.bind=\\\"functions.$f_StatusList.status.ConnectedClients\\\"></connected-clients> </div> <div class=\\\"col-xs-12 konf-status__element\\\"> <cron-jobs view-model.ref=\\\"r_cronJobs\\\" status.bind=\\\"functions.$f_StatusList.status.CronJobs\\\"></cron-jobs> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".konf-status__element {\\n  margin-top: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class LohnexportEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"lohnexport-edit\";\n        this.title = \"lohnexport-edit.lohnexport-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitLohnexport\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitLohnexport\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": false,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitLohnexportInfoNichtKalkuliertRel\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitLohnexportInfo\",\n            \"webApiWhere\": [\"CanKalkulieren\", \"false\"],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitLohnexportInfoKalkuliertRel\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitLohnexportInfo\",\n            \"webApiWhere\": [\"CanKalkulieren\", \"true\"],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lohnexport-edit.r_arblohnexportdatumvon_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\",\n                \"bindTo\": \"DatumVon\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexport.DatumVon\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_arbLohnexportDatumVon\",\n            \"options\": {\n                \"optionsName\": \"r_arbLohnexportDatumVonOptions\",\n                \"optionsNameFQ\": \"r_arbLohnexportDatumVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lohnexport-edit.r_arblohnexportdatumbis_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\",\n                \"bindTo\": \"DatumBis\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexport.DatumBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_arbLohnexportDatumBis\",\n            \"options\": {\n                \"optionsName\": \"r_arbLohnexportDatumBisOptions\",\n                \"optionsNameFQ\": \"r_arbLohnexportDatumBisOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"lohnexport-edit.r_arblohnexportbezeichnung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexport.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_arbLohnexportBezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_arbLohnexportBezeichnungOptions\",\n                \"optionsNameFQ\": \"r_arbLohnexportBezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"lohnexport-edit.r_arblohnexportdmslink_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexport.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_arbLohnexportDmslink\",\n            \"options\": {\n                \"optionsName\": \"r_arbLohnexportDmslinkOptions\",\n                \"optionsNameFQ\": \"r_arbLohnexportDmslinkOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_angpPosNr\",\n                \"caption\": \"lohnexport-edit.r_angpposnr_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }, {\n                \"id\": \"r_angpArtikelNr\",\n                \"caption\": \"lohnexport-edit.r_angpartikelnr_caption\",\n                \"bindTo\": \"PersonalNummer\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportInfoNichtKalkuliertGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportInfoNichtKalkuliertGridToolbarOptions\"\n            },\n            \"caption\": \"lohnexport-edit.r_arbeitszeitlohnexportinfonichtkalkuliertgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexportInfoNichtKalkuliertRel\",\n                \"bindTo\": \"IdArbeitszeitLohnexport\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexportInfoNichtKalkuliertRel.IdArbeitszeitLohnexport\"\n            },\n            \"dataModel\": \"$m_ArbeitszeitLohnexport\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_arbeitszeitLohnexportInfoNichtKalkuliertGrid\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportInfoNichtKalkuliertGridOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportInfoNichtKalkuliertGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_angpPosNr\",\n                \"caption\": \"lohnexport-edit.r_angpposnr_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }, {\n                \"id\": \"r_angpArtikelNr\",\n                \"caption\": \"lohnexport-edit.r_angpartikelnr_caption\",\n                \"bindTo\": \"PersonalNummer\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportInfoKalkuliertGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportInfoKalkuliertGridToolbarOptions\"\n            },\n            \"caption\": \"lohnexport-edit.r_arbeitszeitlohnexportinfokalkuliertgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexportInfoKalkuliertRel\",\n                \"bindTo\": \"IdArbeitszeitLohnexport\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitLohnexportInfoKalkuliertRel.IdArbeitszeitLohnexport\"\n            },\n            \"dataModel\": \"$m_ArbeitszeitLohnexport\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_arbeitszeitLohnexportInfoKalkuliertGrid\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportInfoKalkuliertGridOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportInfoKalkuliertGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lohnexport-edit.r_arblohnexportdatumvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_arbLohnexportDatumVonOptions\\\" view-model.ref=\\\"r_arbLohnexportDatumVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lohnexport-edit.r_arblohnexportdatumbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_arbLohnexportDatumBisOptions\\\" view-model.ref=\\\"r_arbLohnexportDatumBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-10 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lohnexport-edit.r_arblohnexportbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_arbLohnexportBezeichnungOptions\\\" view-model.ref=\\\"r_arbLohnexportBezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lohnexport-edit.r_arblohnexportdmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_arbLohnexportDmslinkOptions\\\" view-model.ref=\\\"r_arbLohnexportDmslink\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_arbeitszeitLohnexportInfoNichtKalkuliertGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_arbeitszeitLohnexportInfoNichtKalkuliertGridOptions\\\" view-model.ref=\\\"r_arbeitszeitLohnexportInfoNichtKalkuliertGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_arbeitszeitLohnexportInfoKalkuliertGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_arbeitszeitLohnexportInfoKalkuliertGridOptions\\\" view-model.ref=\\\"r_arbeitszeitLohnexportInfoKalkuliertGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ArbeitszeitLohnexportListUtils\n} from \"./lohnexport-list-utils\";\n\n@fwx.autoinject\nexport class LohnexportListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ArbeitszeitLohnexportListUtils: ArbeitszeitLohnexportListUtils) {\n        super(element, formBaseImport);\n        this.id = \"lohnexport-list\";\n        this.title = \"lohnexport-list.lohnexport-list_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitLohnexport\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitLohnexport\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArbeitszeitLohnexportListUtils.showLohnexportErstellenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_ArbeitszeitLohnexportListUtils.showLohnexportErstellenPopupCommand\"\n            }\n        });\n        this.addFunction(\"$f_ArbeitszeitLohnexportListUtils\", $f_ArbeitszeitLohnexportListUtils, \"functions.$f_ArbeitszeitLohnexportListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_arbLohnexportDatumVon\",\n                \"caption\": \"lohnexport-list.r_arblohnexportdatumvon_caption\",\n                \"bindTo\": \"DatumVon\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_arbLohnexportDatumBis\",\n                \"caption\": \"lohnexport-list.r_arblohnexportdatumbis_caption\",\n                \"bindTo\": \"DatumBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_arbLohnexportBezeichnung\",\n                \"caption\": \"lohnexport-list.r_arblohnexportbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportGridToolbarOptions\"\n            },\n            \"caption\": \"lohnexport-list.r_arbeitszeitlohnexportgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitLohnexport\"\n            },\n            \"dataModel\": \"$m_ArbeitszeitLohnexport\",\n            \"editUrl\": \"ERP/Arbeitszeit/ArbeitszeitLohnexport\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_arbeitszeitLohnexportGrid\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitLohnexportGridOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitLohnexportGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./../../../elements/arbeitszeit-lohnexport-erstellen/arbeitszeit-lohnexport-erstellen\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_arbeitszeitLohnexportGridOptions\\\" view-model.ref=\\\"r_arbeitszeitLohnexportGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <arbeitszeit-lohnexport-erstellen view-model.ref=\\\"r_lohnexportPopup\\\"></arbeitszeit-lohnexport-erstellen> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class DashboardListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"dashboardList\";\n        this.title = \"dashboardList.dashboardlist_caption\";\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"../../dashboard/viewer/viewer\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <viewer typ.bind=\\\"0\\\"></viewer> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ImpressumUtils\n} from \"./impressum-utils\";\n\n@fwx.autoinject\nexport class ImpressumForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ImpressumUtils: ImpressumUtils) {\n        super(element, formBaseImport);\n        this.id = \"impressum-form\";\n        this.title = \"impressum-form.impressum-form_caption\";\n        this.addFunction(\"$f_ImpressumUtils\", $f_ImpressumUtils, \"functions.$f_ImpressumUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./impressum-form.less\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--form-element-flex-box\\\" style=\\\"flex-direction:column\\\"> <div class=\\\"impressum-01\\\"> <div tr=\\\"key: impressum-form.r_impressum01_text\\\"></div> </div> <div> <div tr=\\\"key: impressum-form.r_impressum02_text\\\"></div> </div> <div> <div tr=\\\"key: impressum-form.r_impressum03_text\\\"></div> </div> <div class=\\\"impressum-new-group\\\"> <div tr=\\\"key: impressum-form.r_impressumtel_text;markdown: true\\\"></div> </div> <div> <div tr=\\\"key: impressum-form.r_impressumfax_text\\\"></div> </div> <div> <div tr=\\\"key: impressum-form.r_impressumemail_text;markdown: true\\\"></div> </div> <div class=\\\"impressum-new-group\\\"> <div tr=\\\"key: impressum-form.r_impressumweb_text;markdown: true\\\"></div> </div> <div class=\\\"impressum-new-group\\\"> <div tr=\\\"key: impressum-form.r_impressumuid_text\\\"></div> </div> <div class=\\\"impressum-new-group\\\"> <div tr=\\\"key: impressum-form.r_impressumdatenverarbeitungsinformationsentry_text;markdown: true\\\"></div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".impressum-01 {\\n  font-weight: bold;\\n}\\n.impressum-new-group {\\n  margin-top: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    BestellungEditUtils\n} from \"./bestellung-edit-utils\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class BestellungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_BestellungEditUtils: BestellungEditUtils,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"bestellung-edit\";\n        this.title = \"bestellung-edit.bestellung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungspositionRel\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Auftragsposition': {\n                    columns: [\"IdAuftrag\"],\n                    'expand': {\n                        'Auftrag': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                },\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Positionsart': null,\n                'Status': null,\n                'Bestellungsgruppe': null\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Bestellung.CanSave && !models.data.$m_Bestellung.HasStreckengeschaeftAuftrag && !models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungspositionEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungsgruppeEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungsgruppeRel\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Bestellung.CanSave && !models.data.$m_Bestellung.HasStreckengeschaeftAuftrag && !models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.doWarenuebernahmeErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.doWarenuebernahmeErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.icAuftragErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.icAuftragErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.bestaetigenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.bestaetigenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.bestellungKopieErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.bestellungKopieErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.neueKonditionenLaden\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.neueKonditionenLaden\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungEditUtils.positionenSortierenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungEditUtils.positionenSortierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"bestellungspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_BestellungspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_BestellungspositionEdit.Id\"\n                }\n            }],\n            \"id\": \"bestellungspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"bestellungspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"bestellungspositionEditPopupOptions\"\n            },\n            \"caption\": \"bestellung-edit.bestellungspositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"bestellungsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_BestellungsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_BestellungsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"bestellungsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"bestellungsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"bestellungsgruppeEditPopupOptions\"\n            },\n            \"caption\": \"bestellung-edit.bestellungsgruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_BestellungEditUtils\", $f_BestellungEditUtils, \"functions.$f_BestellungEditUtils\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"bestellung-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"bestellungsart\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_bestellungsart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdBestellungsart\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdBestellungsart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_bestellungsart\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungsartOptions\",\n                \"optionsNameFQ\": \"r_bestellungsartOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellung-edit.r_datum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellung-edit.r_preisdatum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellung-edit.r_lieferdatum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"Lieferdatum\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.Lieferdatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferdatumOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"bestellung-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabGruppen\",\n                \"caption\": \"bestellung-edit.r_tabgruppen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"bestellung-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_bespPosNr\",\n                \"caption\": \"bestellung-edit.r_bespposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_bespArtikelNr\",\n                \"caption\": \"bestellung-edit.r_bespartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bespBezeichnung\",\n                \"caption\": \"bestellung-edit.r_bespbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bespAuftragsNummer\",\n                \"caption\": \"bestellung-edit.r_bespauftragsnummer_caption\",\n                \"bindTo\": \"Auftragsposition.Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bespMengeVerpEH\",\n                \"caption\": \"bestellung-edit.r_bespmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespMengeWarenuebernahmeVerpEH\",\n                \"caption\": \"bestellung-edit.r_bespmengewarenuebernahmeverpeh_caption\",\n                \"bindTo\": \"MengeWarenuebernahmeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespMengeGeliefertVerpEH\",\n                \"caption\": \"bestellung-edit.r_bespmengegeliefertverpeh_caption\",\n                \"bindTo\": \"MengeGeliefertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespEinheit\",\n                \"caption\": \"bestellung-edit.r_bespeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespPositionsart\",\n                \"caption\": \"bestellung-edit.r_besppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespBestellungsgruppe\",\n                \"caption\": \"bestellung-edit.r_bespbestellungsgruppe_caption\",\n                \"bindTo\": \"Bestellungsgruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bespWertNetto\",\n                \"caption\": \"bestellung-edit.r_bespwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"120px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespStatus\",\n                \"caption\": \"bestellung-edit.r_bespstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionGridToolbarOptions\"\n            },\n            \"caption\": \"bestellung-edit.r_bestellungspositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_BestellungspositionRel\",\n                \"bindTo\": \"IdBestellung\",\n                \"bindToFQ\": \"models.data.$m_BestellungspositionRel.IdBestellung\"\n            },\n            \"dataModel\": \"$m_Bestellung\",\n            \"editDataContext\": \"$m_BestellungspositionEdit\",\n            \"idEditPopup\": \"bestellungspositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Bestellung\",\n                    \"bindTo\": \"$f_BestellungEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_BestellungEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Bestellung\",\n                    \"bindTo\": \"$f_BestellungEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_BestellungEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_bestellungspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungspositionGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_besgPosNr\",\n                \"caption\": \"bestellung-edit.r_besgposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_besgBezeichnung\",\n                \"caption\": \"bestellung-edit.r_besgbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besgWertnetto\",\n                \"caption\": \"bestellung-edit.r_besgwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungsgruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungsgruppeGridToolbarOptions\"\n            },\n            \"caption\": \"bestellung-edit.r_bestellungsgruppegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_BestellungsgruppeRel\",\n                \"bindTo\": \"IdBestellung\",\n                \"bindToFQ\": \"models.data.$m_BestellungsgruppeRel.IdBestellung\"\n            },\n            \"dataModel\": \"$m_Bestellung\",\n            \"editDataContext\": \"$m_BestellungsgruppeEdit\",\n            \"idEditPopup\": \"bestellungsgruppeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellungsgruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungsgruppeGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungsgruppeGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Bestellung.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerEinkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Bestellung.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_lieferlager_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.IsIntercompany\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_sachbearbeiter_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_waehrung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"intercompany\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_intercompany_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"IdIntercompany\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.IdIntercompany\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_intercompany\",\n            \"options\": {\n                \"optionsName\": \"r_intercompanyOptions\",\n                \"optionsNameFQ\": \"r_intercompanyOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"bestellung-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Bestellung.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./bestellungsposition-edit-form\\\"></require> <require from=\\\"./bestellungsgruppe-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"bestellungspositionEditPopupOptions\\\" view-model.ref=\\\"bestellungspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <bestellungsposition-edit-form view-model.ref=\\\"bestellungspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></bestellungsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"bestellungsgruppeEditPopupOptions\\\" view-model.ref=\\\"bestellungsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <bestellungsgruppe-edit-form view-model.ref=\\\"bestellungsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></bestellungsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellung-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_bestellungsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bestellungsartOptions\\\" view-model.ref=\\\"r_bestellungsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_lieferdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferdatumOptions\\\" view-model.ref=\\\"r_lieferdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Bestellung.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Bestellung\\\" is-read-only.bind=\\\"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Bestellung\\\" web-api-action=\\\"ERP/Einkauf/Bestellung\\\" is-read-only.bind=\\\"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellung-edit.r_grouplieferant_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferant\\\" validation-field-name=\\\"Lieferant\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_BestellungEditUtils.onLieferantChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.IdIcAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Bestellung.IdLieferant\\\" id-adresse.bind=\\\"models.data.$m_Bestellung.IdLieferantAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Bestellung.IdLieferantAnsprechperson\\\" person-typ.bind=\\\"4\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Bestellung\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferant', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferantAdresse\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_BestellungEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_bestellungspositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungspositionGridOptions\\\" view-model.ref=\\\"r_bestellungspositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellung-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Bestellung.Preisdatum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Bestellung.IdBerechnungsversion\\\" id-lieferant.bind=\\\"models.data.$m_Bestellung.IdLieferant\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Bestellung\\\" id-filiale.bind=\\\"models.data.$m_Bestellung.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Bestellung.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Bestellung.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Bestellung.IdWaehrung\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_bestellungsgruppeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungsgruppeGridOptions\\\" view-model.ref=\\\"r_bestellungsgruppeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_BestellungEditUtils.startupService.startupInfo.Lizenz.HasIntercompany\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_intercompany_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_intercompanyOptions\\\" view-model.ref=\\\"r_intercompany\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_BestellungEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    BestellungListUtils\n} from \"./bestellung-list-utils\";\n\n@fwx.autoinject\nexport class BestellungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_BestellungListUtils: BestellungListUtils) {\n        super(element, formBaseImport);\n        this.id = \"bestellung-list\";\n        this.title = \"bestellung-list.bestellung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null,\n                'Lieferant': null,\n                'LieferantAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                },\n                'Auftrag': {\n                    'columns': [\n                        'Id',\n                        'Nummer'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_bestellungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_BestellungListUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungListUtils.bestaetigenSetzenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungListUtils.bestaetigenSetzenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungListUtils.bestaetigenEntfernenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungListUtils.bestaetigenEntfernenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungListUtils.lieferdatumAendernCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungListUtils.lieferdatumAendernCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_BestellungListUtils\", $f_BestellungListUtils, \"functions.$f_BestellungListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_besNummer\",\n                \"caption\": \"bestellung-list.r_besnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besDatum\",\n                \"caption\": \"bestellung-list.r_besdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besProjekt\",\n                \"caption\": \"bestellung-list.r_besprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_besAuftragNr\",\n                \"caption\": \"bestellung-list.r_besauftragnr_caption\",\n                \"bindTo\": \"Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besLieferdatum\",\n                \"caption\": \"bestellung-list.r_beslieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_BestellungListUtils.onLieferdatumCellPrepared\"\n            }, {\n                \"id\": \"r_besLieferantNummer\",\n                \"caption\": \"bestellung-list.r_beslieferantnummer_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besFirmenbez1\",\n                \"caption\": \"bestellung-list.r_besfirmenbez1_caption\",\n                \"bindTo\": \"LieferantAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besStrasse\",\n                \"caption\": \"bestellung-list.r_besstrasse_caption\",\n                \"bindTo\": \"LieferantAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_besLand\",\n                \"caption\": \"bestellung-list.r_besland_caption\",\n                \"bindTo\": \"LieferantAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_besOrt\",\n                \"caption\": \"bestellung-list.r_besort_caption\",\n                \"bindTo\": \"LieferantAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_besWertNetto\",\n                \"caption\": \"bestellung-list.r_beswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_besWaehrung\",\n                \"caption\": \"bestellung-list.r_beswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_besStatus\",\n                \"caption\": \"bestellung-list.r_besstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\"\n            },\n            \"dataModel\": \"$m_Bestellung\",\n            \"editUrl\": \"ERP/Einkauf/Bestellung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_bestellungLieferdatumAendernPopup\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungLieferdatumAendernPopupOptions\",\n                \"optionsNameFQ\": \"r_bestellungLieferdatumAendernPopupOptions\"\n            },\n            \"caption\": \"bestellung-list.r_bestellunglieferdatumaendernpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_BestellungListUtils.doLieferdatumAendernCommand\",\n                    \"bindToFQ\": \"functions.$f_BestellungListUtils.doLieferdatumAendernCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellung-list.r_datum_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungGridOptions\\\" view-model.ref=\\\"r_bestellungGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_bestellungLieferdatumAendernPopupOptions\\\" view-model.ref=\\\"r_bestellungLieferdatumAendernPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellung-list.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BestellungsgruppeEditUtils\n} from \"./bestellungsgruppe-edit-utils\";\n\n@fwx.autoinject\nexport class BestellungsgruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BestellungsgruppeEditUtils: BestellungsgruppeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"bestellungsgruppe-edit\";\n        this.title = \"bestellungsgruppe-edit.bestellungsgruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellungsgruppe\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Bestellung.CanSave && !models.data.$m_Bestellung.HasStreckengeschaeftAuftrag && !models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Bestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Bestellungsgruppe.IdBestellung\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_BestellungsgruppeEditUtils\", $f_BestellungsgruppeEditUtils, \"functions.$f_BestellungsgruppeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"bestellungsgruppe-edit.r_bezeichnung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsgruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsgruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"bestellungsgruppe-edit.r_posnr_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsgruppe\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsgruppe.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsgruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsgruppe-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Bestellungsgruppe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    BestellungspositionEditUtils\n} from \"./bestellungsposition-edit-utils\";\n\n@fwx.autoinject\nexport class BestellungspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_BestellungspositionEditUtils: BestellungspositionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"bestellungsposition-edit\";\n        this.title = \"bestellungsposition-edit.bestellungsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellungsposition\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Bestellung.CanSave && !models.data.$m_Bestellung.HasStreckengeschaeftAuftrag && !models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"custom\": {\n                'copyFunc': '$f_BestellungspositionEditUtils.copyBestellungsposition'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Bestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Bestellungsposition.IdBestellung\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungsgruppeEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungspositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Angebotsgruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'BestellungspositionStuecklisteInfo': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellungspositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellungspositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_BestellungspositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"bestellungspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_BestellungspositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_BestellungspositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"bestellungspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"bestellungspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"bestellungspositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"bestellungsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_BestellungsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_BestellungsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"bestellungsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"bestellungsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"bestellungsgruppeEditPopupOptions\"\n            },\n            \"caption\": \"bestellungsposition-edit.bestellungsgruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_BestellungspositionEditUtils\", $f_BestellungspositionEditUtils, \"functions.$f_BestellungspositionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"bestellungsposition-edit.r_menge_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.MengeVerpEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_menge\",\n            \"options\": {\n                \"optionsName\": \"r_mengeOptions\",\n                \"optionsNameFQ\": \"r_mengeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\"IdArtikel\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Bestellungsposition.IdArtikel\"\n            }],\n            \"filters\": [],\n            \"caption\": \"bestellungsposition-edit.r_einheit_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_bespPosNr\",\n                \"caption\": \"bestellungsposition-edit.r_bespposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_bespArtikelNr\",\n                \"caption\": \"bestellungsposition-edit.r_bespartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bespBezeichnung\",\n                \"caption\": \"bestellungsposition-edit.r_bespbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bespMengeVerpEH\",\n                \"caption\": \"bestellungsposition-edit.r_bespmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespMengeWarenuebernahmeVerpEH\",\n                \"caption\": \"bestellungsposition-edit.r_bespmengewarenuebernahmeverpeh_caption\",\n                \"bindTo\": \"MengeWarenuebernahmeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespMengeGeliefertVerpEH\",\n                \"caption\": \"bestellungsposition-edit.r_bespmengegeliefertverpeh_caption\",\n                \"bindTo\": \"MengeGeliefertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespEinheit\",\n                \"caption\": \"bestellungsposition-edit.r_bespeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespPositionsart\",\n                \"caption\": \"bestellungsposition-edit.r_besppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespWertNetto\",\n                \"caption\": \"bestellungsposition-edit.r_bespwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespWertSteuer\",\n                \"caption\": \"bestellungsposition-edit.r_bespwertsteuer_caption\",\n                \"bindTo\": \"KalkulationContainer.WertSteuer\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespWertBrutto\",\n                \"caption\": \"bestellungsposition-edit.r_bespwertbrutto_caption\",\n                \"bindTo\": \"KalkulationContainer.WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungspositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"bestellungsposition-edit.r_bestellungspositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_BestellungspositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelBestellungsposition\",\n                \"bindToFQ\": \"models.data.$m_BestellungspositionStuecklisteRel.IdSetartikelBestellungsposition\"\n            },\n            \"dataModel\": \"$m_Bestellungsposition\",\n            \"editDataContext\": \"$m_BestellungspositionStuecklisteEdit\",\n            \"idEditPopup\": \"bestellungspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellungspositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungspositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"bestellungsposition-edit.r_isvariablersetartikel_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellungsposition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"IsVariablerSetartikel\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.IsVariablerSetartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariablerSetartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isVariablerSetartikelOptions\",\n                \"optionsNameFQ\": \"r_isVariablerSetartikelOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"bestellungsgruppe\",\n            \"filter\": [\"IdBestellung\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Bestellungsposition.IdBestellung\"\n            }],\n            \"filters\": [],\n            \"caption\": \"bestellungsposition-edit.r_bestellungsgruppe_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"IdBestellungsgruppe\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.IdBestellungsgruppe\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_BestellungspositionEditUtils.onBestellungsgruppeChanged\",\n            \"id\": \"r_bestellungsgruppe\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungsgruppeOptions\",\n                \"optionsNameFQ\": \"r_bestellungsgruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"bestellungsposition-edit.r_posnr_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"bestellungsposition-edit.r_lieferantartikelnummer_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"LieferantArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.LieferantArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelNummer\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelNummerOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelNummerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"bestellungsposition-edit.r_lieferantartikelbezeichnung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"LieferantArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.LieferantArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelbezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"bestellungsposition-edit.r_positionsart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Bestellungsposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./bestellungsposition-edit-form\\\"></require> <require from=\\\"./bestellungsgruppe-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"bestellungspositionEditPopupOptions\\\" view-model.ref=\\\"bestellungspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <bestellungsposition-edit-form view-model.ref=\\\"bestellungspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></bestellungsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"bestellungsgruppeEditPopupOptions\\\" view-model.ref=\\\"bestellungsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <bestellungsgruppe-edit-form view-model.ref=\\\"bestellungsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></bestellungsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12\\\"> <artikel main-model.bind=\\\"models.data.$m_Bestellungsposition\\\" id-artikel.bind=\\\"models.data.$m_Bestellungsposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Bestellungsposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel-changed.delegate=\\\"functions.$f_BestellungspositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Bestellungsposition.Id > 0\\\" where.bind=\\\"[['Status.Typ', 0],['BezugTyp', '!=', 3]]\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_menge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeOptions\\\" view-model.ref=\\\"r_menge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Bestellungsposition.Id > 0 && models.data.$m_Bestellungsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellungsposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungspositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_bestellungspositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellungsposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_BestellungspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"functions.$f_BestellungspositionEditUtils.showVariablerSetartikelCheckbox\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_isvariablersetartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVariablerSetartikelOptions\\\" view-model.ref=\\\"r_isVariablerSetartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_bestellungsgruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bestellungsgruppeOptions\\\" view-model.ref=\\\"r_bestellungsgruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_lieferantartikelnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelNummerOptions\\\" view-model.ref=\\\"r_lieferantArtikelNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_lieferantartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_lieferantArtikelbezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Bestellungsposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellungsposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Bestellungsposition.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Bestellungsposition\\\" is-read-only.bind=\\\"models.data.$m_Bestellung.HasStreckengeschaeftAuftrag || models.data.$m_Bestellung.HasIntercompanyKundenAuftrag\\\"></projekt> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Bestellungsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Bestellungsposition.IsPositionVariableStuecklistenkomponente == true\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellungsposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Bestellung.Preisdatum\\\" id-artikel.bind=\\\"models.data.$m_Bestellungsposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Bestellung.IdBerechnungsversion\\\" main-model.bind=\\\"models.data.$m_Bestellungsposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Bestellungsposition.MengeVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Bestellungsposition.IdEinheit\\\" id-lieferant.bind=\\\"models.data.$m_Bestellung.IdLieferant\\\" is-gratis.bind=\\\"models.data.$m_Bestellungsposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Bestellung.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Bestellung.IdLieferlager\\\" steuersatz.bind=\\\"models.data.$m_Bestellungsposition.Steuersatz\\\" id-waehrung.bind=\\\"models.data.$m_Bestellung.IdWaehrung\\\" id-firma.bind=\\\"models.data.$m_Bestellung.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Einkauf.Bestellungsposition\\\" id-kopf.bind=\\\"models.data.$m_Bestellungsposition.IdBestellung\\\" id-pos.bind=\\\"models.data.$m_Bestellungsposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Bestellungsposition.IsVariablerSetartikel || models.data.$m_Bestellung.HasStreckengeschaeftAuftrag\\\"></kalkulation> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Bestellungsposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_BestellungspositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BestellvorschlagEditUtils\n} from \"./bestellvorschlag-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BestellvorschlagEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BestellvorschlagEditUtils: BestellvorschlagEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"bestellvorschlag-edit\";\n        this.title = \"bestellvorschlag-edit.bestellvorschlag-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellvorschlag\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellvorschlag\",\n            \"webApiExpand\": {\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Auftrag': {\n                    'columns': [\n                        'Id',\n                        'Nummer'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BestellvorschlagBedarf\",\n            \"webApiAction\": \"ERP/Einkauf/BestellvorschlagBedarf\",\n            \"webApiWhere\": [\n                [\"IdFiliale\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdLieferfiliale\"\n                }],\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdArtikel\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"if\": \"models.data.$m_Bestellvorschlag.IdAuftrag\",\n                \"webApiCustomKey\": \"IdAuftrag\",\n                \"webApiCustomValue\": \"models.data.$m_Bestellvorschlag.IdAuftrag\"\n            }, {\n                \"webApiCustomKey\": \"AddVerknEntitaetCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_Bestellungsposition\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"webApiExpand\": {\n                'Bestellung': {\n                    'expand': {\n                        'Lieferlager': null\n                    }\n                },\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"Status.Typ\", \"!=\", 1],\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdArtikel\"\n                }],\n                [\"Bestellung.IdLieferfiliale\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdLieferfiliale\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"if\": \"models.data.$m_Bestellvorschlag.IdAuftrag\",\n                \"webApiWhere\": [\"Bestellung.Auftrag.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdAuftrag\"\n                }]\n            }, {\n                \"webApiCustomKey\": \"BestellungspositionenOhneIntercompanyFilter\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"BestellungspositionenOhneStreckengeschaeftFilter\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_ProdAuftrag\",\n            \"webApiAction\": \"ERP/Produktion/ProdAuftrag\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Lieferlager': null\n            },\n            \"webApiWhere\": [\n                [\"Status.Typ\", \"!=\", 1],\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdArtikel\"\n                }],\n                [\"IdLieferfiliale\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdLieferfiliale\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"if\": \"models.data.$m_Bestellvorschlag.IdAuftrag\",\n                \"webApiWhere\": [\"Auftragsposition.Auftrag.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Bestellvorschlag.IdAuftrag\"\n                }]\n            }]\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagEditUtils.doArtikelBestellenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagEditUtils.doArtikelBestellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagEditUtils.doArtikelBestellenUndVersendenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagEditUtils.doArtikelBestellenUndVersendenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagEditUtils.doArtikelIgnorierenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagEditUtils.doArtikelIgnorierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagEditUtils.doBestellvorschlagRechnenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagEditUtils.doBestellvorschlagRechnenCommand\"\n            }\n        });\n        this.addFunction(\"$f_BestellvorschlagEditUtils\", $f_BestellvorschlagEditUtils, \"functions.$f_BestellvorschlagEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"bestellvorschlag-edit.r_lagereinheit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.Artikel.Einheit.Bezeichnung\",\n                \"propertyPrefix\": \"Artikel.Einheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lagereinheit\",\n            \"options\": {\n                \"optionsName\": \"r_lagereinheitOptions\",\n                \"optionsNameFQ\": \"r_lagereinheitOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filters\": [],\n            \"caption\": \"bestellvorschlag-edit.r_lieferfiliale_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.IdLieferfiliale\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"bestellvorschlag-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"bestellvorschlag-edit.r_auftragnr_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"Auftrag.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.Auftrag.Nummer\",\n                \"propertyPrefix\": \"Auftrag\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_auftragNr\",\n            \"options\": {\n                \"optionsName\": \"r_auftragNrOptions\",\n                \"optionsNameFQ\": \"r_auftragNrOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabErgebnisBerechnung\",\n                \"caption\": \"bestellvorschlag-edit.r_tabergebnisberechnung_caption\"\n            }, {\n                \"id\": \"r_tabDetail\",\n                \"caption\": \"bestellvorschlag-edit.r_tabdetail_caption\"\n            }, {\n                \"id\": \"r_tabOffeneBestellungen\",\n                \"caption\": \"bestellvorschlag-edit.r_taboffenebestellungen_caption\"\n            }, {\n                \"id\": \"r_tabOffeneProduktionen\",\n                \"caption\": \"bestellvorschlag-edit.r_taboffeneproduktionen_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellvorschlag-edit.r_beschaffungbis_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"BeschaffungBis\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.BeschaffungBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_beschaffungBis\",\n            \"options\": {\n                \"optionsName\": \"r_beschaffungBisOptions\",\n                \"optionsNameFQ\": \"r_beschaffungBisOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellvorschlag-edit.r_eindeckungbis_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"EindeckungBis\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.EindeckungBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_eindeckungBis\",\n            \"options\": {\n                \"optionsName\": \"r_eindeckungBisOptions\",\n                \"optionsNameFQ\": \"r_eindeckungBisOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"max\": 2147483647.0,\n            \"caption\": \"bestellvorschlag-edit.r_lagerbestand_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"LagerbestandLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.LagerbestandLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lagerbestand\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbestandOptions\",\n                \"optionsNameFQ\": \"r_lagerbestandOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"max\": 2147483647.0,\n            \"caption\": \"bestellvorschlag-edit.r_mindestbestand_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MindestbestandLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MindestbestandLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mindestbestand\",\n            \"options\": {\n                \"optionsName\": \"r_mindestbestandOptions\",\n                \"optionsNameFQ\": \"r_mindestbestandOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"max\": 2147483647.0,\n            \"caption\": \"bestellvorschlag-edit.r_mindestbestellmenge_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MindestbestellmengeLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MindestbestellmengeLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mindestbestellmenge\",\n            \"options\": {\n                \"optionsName\": \"r_mindestbestellmengeOptions\",\n                \"optionsNameFQ\": \"r_mindestbestellmengeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengestatistikeindecklageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeStatistikEindeckLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeStatistikEindeckLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeStatistikEindeckLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeStatistikEindeckLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeStatistikEindeckLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengeauftrageindecklageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeAuftragEindeckLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeAuftragEindeckLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeAuftragEindeckLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeAuftragEindeckLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeAuftragEindeckLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengeprodauftrageindecklageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeProdAuftragEindeckLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeProdAuftragEindeckLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeProdAuftragEindeckLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeProdAuftragEindeckLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeProdAuftragEindeckLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengebestellungoffenlageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeBestellungOffenLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeBestellungOffenLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeBestellungOffenLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeBestellungOffenLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeBestellungOffenLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengeproduktionoffenlageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeProduktionOffenLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeProduktionOffenLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeProduktionOffenLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeProduktionOffenLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeProduktionOffenLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengebenoetigtbeschaffunglageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeBenoetigtBeschaffungLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeBenoetigtBeschaffungLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeBenoetigtBeschaffungLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeBenoetigtBeschaffungLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeBenoetigtBeschaffungLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_mengebenoetigteindecklageh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"MengeBenoetigtEindeckLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.MengeBenoetigtEindeckLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeBenoetigtEindeckLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeBenoetigtEindeckLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeBenoetigtEindeckLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bestellvorschlag-edit.r_lieferdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"Lieferdatum\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.Lieferdatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferdatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"bestellvorschlag-edit.r_bestellmenge_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\",\n                \"bindTo\": \"BestellmengeLagEH\",\n                \"bindToFQ\": \"models.data.$m_Bestellvorschlag.BestellmengeLagEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bestellmenge\",\n            \"options\": {\n                \"optionsName\": \"r_bestellmengeOptions\",\n                \"optionsNameFQ\": \"r_bestellmengeOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_besvoBedarfTyp\",\n                \"caption\": \"bestellvorschlag-edit.r_besvobedarftyp_caption\",\n                \"bindTo\": \"BedarfTyp\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.BestellvorschlagBedarfTyp\"\n            }, {\n                \"id\": \"r_besvoVerkEntBezeichnung\",\n                \"caption\": \"bestellvorschlag-edit.r_besvoverkentbezeichnung_caption\",\n                \"bindTo\": \"_VerknentitaetCboBezeichnung\"\n            }, {\n                \"id\": \"r_besvoBenoetigtBis\",\n                \"caption\": \"bestellvorschlag-edit.r_besvobenoetigtbis_caption\",\n                \"bindTo\": \"BenoetigtBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besvoMengeLagEH\",\n                \"caption\": \"bestellvorschlag-edit.r_besvomengelageh_caption\",\n                \"bindTo\": \"MengeLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellvorschlagBedarfGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellvorschlagBedarfGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BestellvorschlagBedarf\"\n            },\n            \"dataModel\": \"$m_BestellvorschlagBedarf\",\n            \"onItemClick\": \"functions.$f_BestellvorschlagEditUtils.onBestellvorschlagBedarfClick($event)\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellvorschlagBedarfGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellvorschlagBedarfGridOptions\",\n                \"optionsNameFQ\": \"r_bestellvorschlagBedarfGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_offBNummer\",\n                \"caption\": \"bestellvorschlag-edit.r_offbnummer_caption\",\n                \"bindTo\": \"Bestellung.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_offBDatum\",\n                \"caption\": \"bestellvorschlag-edit.r_offbdatum_caption\",\n                \"bindTo\": \"Bestellung.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_offBLieferdatum\",\n                \"caption\": \"bestellvorschlag-edit.r_offblieferdatum_caption\",\n                \"bindTo\": \"Bestellung.Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_offBLieferlager\",\n                \"caption\": \"bestellvorschlag-edit.r_offblieferlager_caption\",\n                \"bindTo\": \"Bestellung.Lieferlager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_offBMengeOffenLagEH\",\n                \"caption\": \"bestellvorschlag-edit.r_offbmengeoffenlageh_caption\",\n                \"bindTo\": \"MengeOffenLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_offBMengeWarenuebernahmeLagEH\",\n                \"caption\": \"bestellvorschlag-edit.r_offbmengewarenuebernahmelageh_caption\",\n                \"bindTo\": \"MengeWarenuebernahmeLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_offBStatus\",\n                \"caption\": \"bestellvorschlag-edit.r_offbstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_offeneBestellungenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_offeneBestellungenGridToolbarOptions\"\n            },\n            \"caption\": \"bestellvorschlag-edit.r_offenebestellungengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\"\n            },\n            \"dataModel\": \"$m_Bestellungsposition\",\n            \"editUrl\": \"ERP/Einkauf/Bestellung\",\n            \"editUrlIdProperty\": \"IdBestellung\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_offeneBestellungenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_offeneBestellungenGridOptions\",\n                \"optionsNameFQ\": \"r_offeneBestellungenGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_offPNummer\",\n                \"caption\": \"bestellvorschlag-edit.r_offpnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_offPDatum\",\n                \"caption\": \"bestellvorschlag-edit.r_offpdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_offPLieferdatum\",\n                \"caption\": \"bestellvorschlag-edit.r_offplieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_offPLieferlager\",\n                \"caption\": \"bestellvorschlag-edit.r_offplieferlager_caption\",\n                \"bindTo\": \"Lieferlager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_offPMengeOffenLagEH\",\n                \"caption\": \"bestellvorschlag-edit.r_offpmengeoffenlageh_caption\",\n                \"bindTo\": \"MengeOffenLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_offPStatus\",\n                \"caption\": \"bestellvorschlag-edit.r_offpstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_offeneProduktionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_offeneProduktionenGridToolbarOptions\"\n            },\n            \"caption\": \"bestellvorschlag-edit.r_offeneproduktionengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ProdAuftrag\"\n            },\n            \"dataModel\": \"$m_ProdAuftrag\",\n            \"editUrl\": \"ERP/Produktion/ProdAuftrag\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_offeneProduktionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_offeneProduktionenGridOptions\",\n                \"optionsNameFQ\": \"r_offeneProduktionenGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellvorschlag-edit.r_grouplieferant_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner id-adresse.bind=\\\"models.data.$m_Bestellvorschlag.IdLieferant.Adresse\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Bestellvorschlag.IdLieferant\\\" person-typ.bind=\\\"4\\\" is-read-only.bind=\\\"models.data.$m_Bestellvorschlag.Id > 0\\\" main-model.bind=\\\"models.data.$m_Bestellvorschlag\\\" show-ansprechperson.bind=\\\"true\\\" id-ansprechperson.bind=\\\"models.data.$m_Bestellvorschlag.IdLieferantAnsprechperson\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellvorschlag-edit.r_groupartikel_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel has-own-bezeichnung.bind=\\\"false\\\" id-artikel.bind=\\\"models.data.$m_Bestellvorschlag.IdArtikel\\\" is-read-only.bind=\\\"models.data.$m_Bestellvorschlag.Id > 0\\\" main-model.bind=\\\"models.data.$m_Bestellvorschlag\\\"></artikel> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_lagereinheit_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lagereinheitOptions\\\" view-model.ref=\\\"r_lagereinheit\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Bestellvorschlag.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Bestellvorschlag\\\"></projekt> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_auftragnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_auftragNrOptions\\\" view-model.ref=\\\"r_auftragNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellvorschlag-edit.r_berechnunggroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_beschaffungbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_beschaffungBisOptions\\\" view-model.ref=\\\"r_beschaffungBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_eindeckungbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_eindeckungBisOptions\\\" view-model.ref=\\\"r_eindeckungBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_lagerbestand_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_lagerbestandOptions\\\" view-model.ref=\\\"r_lagerbestand\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mindestbestand_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mindestbestandOptions\\\" view-model.ref=\\\"r_mindestbestand\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mindestbestellmenge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mindestbestellmengeOptions\\\" view-model.ref=\\\"r_mindestbestellmenge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengestatistikeindecklageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeStatistikEindeckLagEHOptions\\\" view-model.ref=\\\"r_mengeStatistikEindeckLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengeauftrageindecklageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeAuftragEindeckLagEHOptions\\\" view-model.ref=\\\"r_mengeAuftragEindeckLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengeprodauftrageindecklageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeProdAuftragEindeckLagEHOptions\\\" view-model.ref=\\\"r_mengeProdAuftragEindeckLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengebestellungoffenlageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeBestellungOffenLagEHOptions\\\" view-model.ref=\\\"r_mengeBestellungOffenLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengeproduktionoffenlageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeProduktionOffenLagEHOptions\\\" view-model.ref=\\\"r_mengeProduktionOffenLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengebenoetigtbeschaffunglageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeBenoetigtBeschaffungLagEHOptions\\\" view-model.ref=\\\"r_mengeBenoetigtBeschaffungLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_mengebenoetigteindecklageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeBenoetigtEindeckLagEHOptions\\\" view-model.ref=\\\"r_mengeBenoetigtEindeckLagEH\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\" if.bind=\\\"models.data.$m_Bestellvorschlag.Artikel.BestellvorschlagTyp != 3\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: bestellvorschlag-edit.r_ergebnisgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_lieferdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferdatumOptions\\\" view-model.ref=\\\"r_lieferdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bestellvorschlag-edit.r_bestellmenge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_bestellmengeOptions\\\" view-model.ref=\\\"r_bestellmenge\\\"></dx-widget> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellvorschlagBedarfGridOptions\\\" view-model.ref=\\\"r_bestellvorschlagBedarfGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_offeneBestellungenGridOptions\\\" view-model.ref=\\\"r_offeneBestellungenGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_offeneProduktionenGridOptions\\\" view-model.ref=\\\"r_offeneProduktionenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BestellvorschlagListUtils\n} from \"./bestellvorschlag-list-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BestellvorschlagListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BestellvorschlagListUtils: BestellvorschlagListUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"bestellvorschlag-list\";\n        this.title = \"bestellvorschlag-list.bestellvorschlag-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Bestellvorschlag\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellvorschlag\",\n            \"webApiExpand\": {\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Lieferfiliale': null,\n                'Status': null,\n                'Projekt': null,\n                'Lieferant': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Auftrag': {\n                    'columns': [\n                        'Id',\n                        'Nummer'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagListUtils.doArtikelBestellenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagListUtils.doArtikelBestellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagListUtils.doArtikelBestellenUndVersendenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagListUtils.doArtikelBestellenUndVersendenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagListUtils.doArtikelIgnorierenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagListUtils.doArtikelIgnorierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BestellvorschlagListUtils.doBestellvorschlagRechnenCommand\",\n                \"bindToFQ\": \"functions.$f_BestellvorschlagListUtils.doBestellvorschlagRechnenCommand\"\n            }\n        });\n        this.addFunction(\"$f_BestellvorschlagListUtils\", $f_BestellvorschlagListUtils, \"functions.$f_BestellvorschlagListUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_besvoLieferfiliale\",\n                \"caption\": \"bestellvorschlag-list.r_besvolieferfiliale_caption\",\n                \"bindTo\": \"Lieferfiliale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besvoBVTyp\",\n                \"caption\": \"bestellvorschlag-list.r_besvobvtyp_caption\",\n                \"bindTo\": \"Artikel.BestellvorschlagTyp\",\n                \"minWidth\": 100,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.BestellvorschlagTyp\"\n            }, {\n                \"id\": \"r_besvoProjekt\",\n                \"caption\": \"bestellvorschlag-list.r_besvoprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_besvoAuftragNr\",\n                \"caption\": \"bestellvorschlag-list.r_besvoauftragnr_caption\",\n                \"bindTo\": \"Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besvoLieferantNr\",\n                \"caption\": \"bestellvorschlag-list.r_besvolieferantnr_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besvoFirmenbez1\",\n                \"caption\": \"bestellvorschlag-list.r_besvofirmenbez1_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besvoOrt\",\n                \"caption\": \"bestellvorschlag-list.r_besvoort_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_besvoArtikelNr\",\n                \"caption\": \"bestellvorschlag-list.r_besvoartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besvoBezeichnung\",\n                \"caption\": \"bestellvorschlag-list.r_besvobezeichnung_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besvoBeschaffungBis\",\n                \"caption\": \"bestellvorschlag-list.r_besvobeschaffungbis_caption\",\n                \"bindTo\": \"BeschaffungBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besvoLagerbestand\",\n                \"caption\": \"bestellvorschlag-list.r_besvolagerbestand_caption\",\n                \"bindTo\": \"LagerbestandLagEH\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besvoBestellmengeLagEH\",\n                \"caption\": \"bestellvorschlag-list.r_besvobestellmengelageh_caption\",\n                \"bindTo\": \"BestellmengeLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_besvoLagereinheit\",\n                \"caption\": \"bestellvorschlag-list.r_besvolagereinheit_caption\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_besvoStatus\",\n                \"caption\": \"bestellvorschlag-list.r_besvostatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellvorschlagGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellvorschlagGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellvorschlag\"\n            },\n            \"dataModel\": \"$m_Bestellvorschlag\",\n            \"editUrl\": \"ERP/Einkauf/Bestellvorschlag\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellvorschlagGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellvorschlagGridOptions\",\n                \"optionsNameFQ\": \"r_bestellvorschlagGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellvorschlagGridOptions\\\" view-model.ref=\\\"r_bestellvorschlagGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    EingangsrechnungEditUtils\n} from \"./eingangsrechnung-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class EingangsrechnungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_EingangsrechnungEditUtils: EingangsrechnungEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"eingangsrechnung-edit\";\n        this.title = \"eingangsrechnung-edit.eingangsrechnung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungspositionRel\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Positionsart': null,\n                'Warenuebernahmeposition': {\n                    columns: [\"IdWarenuebernahme\"],\n                    'expand': {\n                        'Warenuebernahme': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                },\n                'Bestellungsposition': {\n                    'expand': {\n                        'Bestellung': null\n                    }\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Eingangsrechnung.CanSave && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungspositionEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Warenuebernahmeposition\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"webApiExpand\": {\n                'Warenuebernahme': null,\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Positionsart': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"Warenuebernahme.IdLieferant\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdLieferant\"\n                }],\n                [\"IsEingangsrechnungErledigt\", false],\n                [\"IsPositionStuecklistenkomponente\", false],\n                [\"Warenuebernahme.IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdFirma\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"if\": \"models.data.$m_WarenuebernahmepositionFilter.FilterLS\",\n                \"webApiCustomKey\": \"IdEingangsrechnungFilterLS\",\n                \"webApiCustomValue\": \"models.data.$m_Eingangsrechnung.Id\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungszuschlagRel\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungszuschlag\",\n            \"webApiExpand\": {\n                'Zuschlagsart': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Eingangsrechnung.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungszuschlagEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungszuschlag\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ProdFertigware\",\n            \"webApiAction\": \"ERP/Produktion/ProdFertigware\",\n            \"webApiExpand\": {\n                'ProdAuftrag': {\n                    'expand': {\n                        'Artikel': null,\n                        'Status': null,\n                        'Einheit': {\n                            'expand': {\n                                'Einheit': null\n                            }\n                        }\n                    }\n                }\n            },\n            \"webApiWhere\": [\n                [\"ProdAuftrag.Status.Typ\", \"0\"],\n                [\"ProdAuftrag.IdLieferant\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdLieferant\"\n                }],\n                [\"ProdAuftrag.IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdFirma\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_WarenuebernahmepositionFilter\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungEditUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungEditUtils.showImportWarenuebernahmepositionenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.showImportWarenuebernahmepositionenPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungEditUtils.showImportProduktionPopupCommand\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.showImportProduktionPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungEditUtils.doBezahltAendernCommand\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.doBezahltAendernCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"eingangsrechnungpositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_EingangsrechnungspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_EingangsrechnungspositionEdit.Id\"\n                }\n            }, {\n                \"to\": \"$v_idGeschaeftspartner\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Eingangsrechnung\",\n                    \"bindTo\": \"IdLieferant\",\n                    \"bindToFQ\": \"models.data.$m_Eingangsrechnung.IdLieferant\"\n                }\n            }],\n            \"id\": \"eingangsrechnungpositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"eingangsrechnungpositionEditPopupOptions\",\n                \"optionsNameFQ\": \"eingangsrechnungpositionEditPopupOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.eingangsrechnungpositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"eingangsrechnungszuschlagEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_EingangsrechnungszuschlagEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_EingangsrechnungszuschlagEdit.Id\"\n                }\n            }],\n            \"id\": \"eingangsrechnungszuschlagEditPopup\",\n            \"options\": {\n                \"optionsName\": \"eingangsrechnungszuschlagEditPopupOptions\",\n                \"optionsNameFQ\": \"eingangsrechnungszuschlagEditPopupOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.eingangsrechnungszuschlageditpopup_caption\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"zahlungsausgangEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$v_IdEingangsrechnung\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Eingangsrechnung\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_Eingangsrechnung.Id\"\n                }\n            }, {\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$f_EingangsrechnungEditUtils\",\n                    \"bindTo\": \"id0\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.id0\"\n                }\n            }],\n            \"id\": \"zahlungsausgangEditPopup\",\n            \"options\": {\n                \"optionsName\": \"zahlungsausgangEditPopupOptions\",\n                \"optionsNameFQ\": \"zahlungsausgangEditPopupOptions\"\n            },\n            \"height\": \"auto\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_EingangsrechnungEditUtils\", $f_EingangsrechnungEditUtils, \"functions.$f_EingangsrechnungEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"eingangsrechnung-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"eingangsrechnung-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"eingangsrechnungBezahltTyp\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_bezahlttyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"BezahltTyp\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.BezahltTyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bezahltTyp\",\n            \"options\": {\n                \"optionsName\": \"r_bezahltTypOptions\",\n                \"optionsNameFQ\": \"r_bezahltTypOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"eingangsrechnung-edit.r_lieferantlieferscheinnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"LieferantLieferscheinNr\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.LieferantLieferscheinNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantLieferscheinNr\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantLieferscheinNrOptions\",\n                \"optionsNameFQ\": \"r_lieferantLieferscheinNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"eingangsrechnung-edit.r_lieferantlieferscheindatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"LieferantLieferscheindatum\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.LieferantLieferscheindatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferantLieferscheindatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantLieferscheindatumOptions\",\n                \"optionsNameFQ\": \"r_lieferantLieferscheindatumOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"eingangsrechnung-edit.r_lieferantrechnungnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"LieferantRechnungNr\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.LieferantRechnungNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantRechnungNr\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantRechnungNrOptions\",\n                \"optionsNameFQ\": \"r_lieferantRechnungNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"eingangsrechnung-edit.r_lieferantrechnungsdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"LieferantRechnungsdatum\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.LieferantRechnungsdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferantRechnungsdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantRechnungsdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferantRechnungsdatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnung-edit.r_wertbrutto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"WertBrutto\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.WertBrutto\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_wertBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_wertBruttoOptions\",\n                \"optionsNameFQ\": \"r_wertBruttoOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnung-edit.r_differenz_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"Differenz\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.Differenz\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_EingangsrechnungEditUtils.onDifferenzValueChanged\",\n            \"id\": \"r_differenz\",\n            \"options\": {\n                \"optionsName\": \"r_differenzOptions\",\n                \"optionsNameFQ\": \"r_differenzOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnung-edit.r_wertnettogegenrechnung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"WertNettoGegenrechnung\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.WertNettoGegenrechnung\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_EingangsrechnungEditUtils.onDifferenzValueChanged\",\n            \"id\": \"r_wertNettoGegenrechnung\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoGegenrechnungOptions\",\n                \"optionsNameFQ\": \"r_wertNettoGegenrechnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTypEingangsrechnung\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_steuertyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.SteuerTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_steuerTyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerTypOptions\",\n                \"optionsNameFQ\": \"r_steuerTypOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"eingangsrechnung-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabZuschlaege\",\n                \"caption\": \"eingangsrechnung-edit.r_tabzuschlaege_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"eingangsrechnung-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einpArtikelNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_einpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einpBezeichnung\",\n                \"caption\": \"eingangsrechnung-edit.r_einpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einpWarenuebernahmeNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_einpwarenuebernahmenummer_caption\",\n                \"bindTo\": \"Warenuebernahmeposition.Warenuebernahme.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einpMengeSollVerpEH\",\n                \"caption\": \"eingangsrechnung-edit.r_einpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpMengeIstVerpEH\",\n                \"caption\": \"eingangsrechnung-edit.r_einpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpEinheit\",\n                \"caption\": \"eingangsrechnung-edit.r_einpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_wertBruttoSoll\",\n                \"caption\": \"eingangsrechnung-edit.r_wertbruttosoll_caption\",\n                \"bindTo\": \"WertBruttoSoll\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_wertBruttoIst\",\n                \"caption\": \"eingangsrechnung-edit.r_wertbruttoist_caption\",\n                \"bindTo\": \"WertBruttoIst\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_eingangsrechnungspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungspositionGridToolbarOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.r_eingangsrechnungspositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_EingangsrechnungspositionRel\",\n                \"bindTo\": \"IdEingangsrechnung\",\n                \"bindToFQ\": \"models.data.$m_EingangsrechnungspositionRel.IdEingangsrechnung\"\n            },\n            \"dataModel\": \"$m_Eingangsrechnung\",\n            \"editDataContext\": \"$m_EingangsrechnungspositionEdit\",\n            \"idEditPopup\": \"eingangsrechnungpositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Eingangsrechnung\",\n                    \"bindTo\": \"$f_EingangsrechnungEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Eingangsrechnung\",\n                    \"bindTo\": \"$f_EingangsrechnungEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_eingangsrechnungspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungspositionGridOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungspositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einzZuschlagsart\",\n                \"caption\": \"eingangsrechnung-edit.r_einzzuschlagsart_caption\",\n                \"bindTo\": \"Zuschlagsart.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einzWertBrutto\",\n                \"caption\": \"eingangsrechnung-edit.r_einzwertbrutto_caption\",\n                \"bindTo\": \"WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einzKommentar\",\n                \"caption\": \"eingangsrechnung-edit.r_einzkommentar_caption\",\n                \"bindTo\": \"Kommentar\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_eingangsrechnungszuschlaegeToolbarOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungszuschlaegeToolbarOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.r_eingangsrechnungszuschlaege_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_EingangsrechnungszuschlagRel\",\n                \"bindTo\": \"IdEingangsrechnung\",\n                \"bindToFQ\": \"models.data.$m_EingangsrechnungszuschlagRel.IdEingangsrechnung\"\n            },\n            \"dataModel\": \"$m_Eingangsrechnung\",\n            \"editDataContext\": \"$m_EingangsrechnungszuschlagEdit\",\n            \"idEditPopup\": \"eingangsrechnungszuschlagEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_eingangsrechnungszuschlaege\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungszuschlaegeOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungszuschlaegeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Eingangsrechnung.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnung-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"eingangsrechnung-edit.r_scandokumentnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"ScanDokumentNr\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.ScanDokumentNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_scanDokumentNr\",\n            \"options\": {\n                \"optionsName\": \"r_scanDokumentNrOptions\",\n                \"optionsNameFQ\": \"r_scanDokumentNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"eingangsrechnung-edit.r_zahlungfaelligkeit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.ZahlungFaelligkeit\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zahlungFaelligkeit\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungFaelligkeitOptions\",\n                \"optionsNameFQ\": \"r_zahlungFaelligkeitOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"eingangsrechnung-edit.r_zahlungfaelligkeitskonto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\",\n                \"bindTo\": \"ZahlungFaelligkeitSkonto\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnung.ZahlungFaelligkeitSkonto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zahlungFaelligkeitSkonto\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungFaelligkeitSkontoOptions\",\n                \"optionsNameFQ\": \"r_zahlungFaelligkeitSkontoOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_warenuebernahmepositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmepositionEditPopupOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionEditPopupOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.r_warenuebernahmepositioneditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_EingangsrechnungEditUtils.importWarenubernahmepositionenCommand\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.importWarenubernahmepositionenCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"bindTo\": \"$f_EingangsrechnungEditUtils.erledigenWarenubernahmepositionenCommand\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.erledigenWarenubernahmepositionenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"eingangsrechnung-edit.r_warenuebernahmefilterls_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_WarenuebernahmepositionFilter\",\n                \"bindTo\": \"FilterLS\",\n                \"bindToFQ\": \"models.data.$m_WarenuebernahmepositionFilter.FilterLS\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_warenuebernahmeFilterLS\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmeFilterLSOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmeFilterLSOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_warpWarenuebernahmeNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_warpwarenuebernahmenummer_caption\",\n                \"bindTo\": \"Warenuebernahme.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpDatum\",\n                \"caption\": \"eingangsrechnung-edit.r_warpdatum_caption\",\n                \"bindTo\": \"Warenuebernahme.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_warpLSNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_warplsnummer_caption\",\n                \"bindTo\": \"Warenuebernahme.LieferantLieferscheinNr\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpLSDatum\",\n                \"caption\": \"eingangsrechnung-edit.r_warplsdatum_caption\",\n                \"bindTo\": \"Warenuebernahme.LieferantLieferscheindatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_warpArtikelNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_warpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpArtikelBez\",\n                \"caption\": \"eingangsrechnung-edit.r_warpartikelbez_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_warpBezeichnung\",\n                \"caption\": \"eingangsrechnung-edit.r_warpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_warpMengeEingangsrechnungOffenVerpEH\",\n                \"caption\": \"eingangsrechnung-edit.r_warpmengeeingangsrechnungoffenverpeh_caption\",\n                \"bindTo\": \"MengeEingangsrechnungOffenVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_warpEinheit\",\n                \"caption\": \"eingangsrechnung-edit.r_warpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_warpPositionsart\",\n                \"caption\": \"eingangsrechnung-edit.r_warppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_warenuebernahmepositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\"\n            },\n            \"dataModel\": \"$m_Warenuebernahmeposition\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_warenuebernahmepositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmepositionGridOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_prodFertigwareEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_prodFertigwareEditPopupOptions\",\n                \"optionsNameFQ\": \"r_prodFertigwareEditPopupOptions\"\n            },\n            \"caption\": \"eingangsrechnung-edit.r_prodfertigwareeditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_EingangsrechnungEditUtils.importProduktionCommand\",\n                    \"bindToFQ\": \"functions.$f_EingangsrechnungEditUtils.importProduktionCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_prodFProdAuftragNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfprodauftragnummer_caption\",\n                \"bindTo\": \"ProdAuftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_prodFDatum\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfdatum_caption\",\n                \"bindTo\": \"ProdAuftrag.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_prodFArtikelNummer\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfartikelnummer_caption\",\n                \"bindTo\": \"ProdAuftrag.Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_prodFArtikelBezeichnung\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfartikelbezeichnung_caption\",\n                \"bindTo\": \"ProdAuftrag.Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_prodFMengeVerpEH\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_prodFEinheit\",\n                \"caption\": \"eingangsrechnung-edit.r_prodfeinheit_caption\",\n                \"bindTo\": \"ProdAuftrag.Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_prodFertigwareGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_prodFertigwareGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_ProdFertigware\"\n            },\n            \"dataModel\": \"$m_ProdFertigware\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_prodFertigwareGrid\",\n            \"options\": {\n                \"optionsName\": \"r_prodFertigwareGridOptions\",\n                \"optionsNameFQ\": \"r_prodFertigwareGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./eingangsrechnungsposition-edit-form\\\"></require> <require from=\\\"./eingangsrechnungszuschlag-edit-form\\\"></require> <require from=\\\"../../verkauf/zahlung/zahlung-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"eingangsrechnungpositionEditPopupOptions\\\" view-model.ref=\\\"eingangsrechnungpositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <eingangsrechnungsposition-edit-form view-model.ref=\\\"eingangsrechnungpositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></eingangsrechnungsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"eingangsrechnungszuschlagEditPopupOptions\\\" view-model.ref=\\\"eingangsrechnungszuschlagEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <eingangsrechnungszuschlag-edit-form view-model.ref=\\\"eingangsrechnungszuschlagEditPopupContent\\\" is-edit-popup=\\\"true\\\"></eingangsrechnungszuschlag-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"zahlungsausgangEditPopupOptions\\\" view-model.ref=\\\"zahlungsausgangEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <zahlung-edit-form view-model.ref=\\\"zahlungsausgangEditPopupContent\\\" is-edit-popup=\\\"true\\\"></zahlung-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: eingangsrechnung-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_bezahlttyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bezahltTypOptions\\\" view-model.ref=\\\"r_bezahltTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_lieferantlieferscheinnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantLieferscheinNrOptions\\\" view-model.ref=\\\"r_lieferantLieferscheinNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_lieferantlieferscheindatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferantLieferscheindatumOptions\\\" view-model.ref=\\\"r_lieferantLieferscheindatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_lieferantrechnungnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantRechnungNrOptions\\\" view-model.ref=\\\"r_lieferantRechnungNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_lieferantrechnungsdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferantRechnungsdatumOptions\\\" view-model.ref=\\\"r_lieferantRechnungsdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_wertbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertBruttoOptions\\\" view-model.ref=\\\"r_wertBrutto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_differenz_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_differenzOptions\\\" view-model.ref=\\\"r_differenz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_wertnettogegenrechnung_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoGegenrechnungOptions\\\" view-model.ref=\\\"r_wertNettoGegenrechnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_steuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerTypOptions\\\" view-model.ref=\\\"r_steuerTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Eingangsrechnung.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Eingangsrechnung\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Eingangsrechnung\\\" web-api-action=\\\"ERP/Einkauf/Eingangsrechnung\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: eingangsrechnung-edit.r_grouplieferant_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferant\\\" validation-field-name=\\\"Lieferant\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_EingangsrechnungEditUtils.onLieferantChanged($event)\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Eingangsrechnung.IdLieferant\\\" id-adresse.bind=\\\"models.data.$m_Eingangsrechnung.IdLieferantAdresse\\\" person-typ.bind=\\\"4\\\" show-ansprechperson.bind=\\\"false\\\" main-model.bind=\\\"models.data.$m_Eingangsrechnung\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferant', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferantAdresse\\\" is-read-only.bind=\\\"models.data.$m_Eingangsrechnung.Id > 0\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_EingangsrechnungEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_eingangsrechnungspositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_eingangsrechnungspositionGridOptions\\\" view-model.ref=\\\"r_eingangsrechnungspositionGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_eingangsrechnungszuschlaegeToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_eingangsrechnungszuschlaegeOptions\\\" view-model.ref=\\\"r_eingangsrechnungszuschlaege\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_scandokumentnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_scanDokumentNrOptions\\\" view-model.ref=\\\"r_scanDokumentNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_zahlungfaelligkeit_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_zahlungFaelligkeitOptions\\\" view-model.ref=\\\"r_zahlungFaelligkeit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_zahlungfaelligkeitskonto_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_zahlungFaelligkeitSkontoOptions\\\" view-model.ref=\\\"r_zahlungFaelligkeitSkonto\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_EingangsrechnungEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_warenuebernahmepositionEditPopupOptions\\\" view-model.ref=\\\"r_warenuebernahmepositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 erp--flex-1d-1grow\\\"> <div class=\\\"t--form-element-flex-box\\\"> <div class=\\\"t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnung-edit.r_warenuebernahmefilterls_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_warenuebernahmeFilterLSOptions\\\" view-model.ref=\\\"r_warenuebernahmeFilterLS\\\"></dx-widget> </div> <div> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_warenuebernahmepositionGridOptions\\\" view-model.ref=\\\"r_warenuebernahmepositionGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_prodFertigwareEditPopupOptions\\\" view-model.ref=\\\"r_prodFertigwareEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_prodFertigwareGridOptions\\\" view-model.ref=\\\"r_prodFertigwareGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    EingangsrechnungListUtils\n} from \"./eingangsrechnung-list-utils\";\n\n@fwx.autoinject\nexport class EingangsrechnungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_EingangsrechnungListUtils: EingangsrechnungListUtils) {\n        super(element, formBaseImport);\n        this.id = \"eingangsrechnung-list\";\n        this.title = \"eingangsrechnung-list.eingangsrechnung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null,\n                'Lieferant': null,\n                'LieferantAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_eingangsrechnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_EingangsrechnungListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_EingangsrechnungListUtils.doExport\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_EingangsrechnungListUtils\", $f_EingangsrechnungListUtils, \"functions.$f_EingangsrechnungListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einNummer\",\n                \"caption\": \"eingangsrechnung-list.r_einnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einDatum\",\n                \"caption\": \"eingangsrechnung-list.r_eindatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_einProjekt\",\n                \"caption\": \"eingangsrechnung-list.r_einprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_einLieferantNummer\",\n                \"caption\": \"eingangsrechnung-list.r_einlieferantnummer_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einFirmenbez1\",\n                \"caption\": \"eingangsrechnung-list.r_einfirmenbez1_caption\",\n                \"bindTo\": \"LieferantAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einStrasse\",\n                \"caption\": \"eingangsrechnung-list.r_einstrasse_caption\",\n                \"bindTo\": \"LieferantAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einLand\",\n                \"caption\": \"eingangsrechnung-list.r_einland_caption\",\n                \"bindTo\": \"LieferantAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einOrt\",\n                \"caption\": \"eingangsrechnung-list.r_einort_caption\",\n                \"bindTo\": \"LieferantAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einWertBrutto\",\n                \"caption\": \"eingangsrechnung-list.r_einwertbrutto_caption\",\n                \"bindTo\": \"WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einWaehrung\",\n                \"caption\": \"eingangsrechnung-list.r_einwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_fakZahlungFaellig\",\n                \"caption\": \"eingangsrechnung-list.r_fakzahlungfaellig_caption\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_EingangsrechnungListUtils.onZahlungFaelligCellPrepared\"\n            }, {\n                \"id\": \"r_fakZahlungFaelligSkonto\",\n                \"caption\": \"eingangsrechnung-list.r_fakzahlungfaelligskonto_caption\",\n                \"bindTo\": \"ZahlungFaelligkeitSkonto\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_EingangsrechnungListUtils.onZahlungFaelligCellPrepared\"\n            }, {\n                \"id\": \"r_einStatus\",\n                \"caption\": \"eingangsrechnung-list.r_einstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_eingangsrechnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\"\n            },\n            \"dataModel\": \"$m_Eingangsrechnung\",\n            \"editUrl\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_eingangsrechnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungGridOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_eingangsrechnungGridOptions\\\" view-model.ref=\\\"r_eingangsrechnungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    EingangsrechnungspositionEditUtils\n} from \"./eingangsrechnungsposition-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class EingangsrechnungspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_EingangsrechnungspositionEditUtils: EingangsrechnungspositionEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"eingangsrechnungsposition-edit\";\n        this.title = \"eingangsrechnungsposition-edit.eingangsrechnungsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnungsposition\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Eingangsrechnung.CanSave && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Eingangsrechnungsposition.IdEingangsrechnung\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungspositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'EingangsrechnungspositionStuecklisteInfo': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EingangsrechnungspositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idGeschaeftspartner\"\n        });\n        this.addEditPopup({\n            \"idContent\": \"eingangsrechungspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_EingangsrechnungspositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_EingangsrechnungspositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"eingangsrechungspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"eingangsrechungspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"eingangsrechungspositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_EingangsrechnungspositionEditUtils\", $f_EingangsrechnungspositionEditUtils, \"functions.$f_EingangsrechnungspositionEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungsposition-edit.r_mengesollverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.MengeSollVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeSollVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeSollVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeSollVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungsposition-edit.r_mengeistverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.MengeIstVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeIstVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeIstVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeIstVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\"IdArtikel\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Eingangsrechnungsposition.IdArtikel\"\n            }],\n            \"filters\": [],\n            \"caption\": \"eingangsrechnungsposition-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungsposition-edit.r_wertnettosoll_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"WertNettoSoll\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.WertNettoSoll\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertNettoSoll\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoSollOptions\",\n                \"optionsNameFQ\": \"r_wertNettoSollOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungsposition-edit.r_wertnettoist_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"WertNettoIst\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.WertNettoIst\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertNettoIst\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoIstOptions\",\n                \"optionsNameFQ\": \"r_wertNettoIstOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungsposition-edit.r_steuersatz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"Steuersatz\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.Steuersatz\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_steuersatz\",\n            \"options\": {\n                \"optionsName\": \"r_steuersatzOptions\",\n                \"optionsNameFQ\": \"r_steuersatzOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"eingangsrechnungsposition-edit.r_isdiffakzeptiert_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"IsDiffAkzeptiert\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.IsDiffAkzeptiert\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isDiffAkzeptiert\",\n            \"options\": {\n                \"optionsName\": \"r_isDiffAkzeptiertOptions\",\n                \"optionsNameFQ\": \"r_isDiffAkzeptiertOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einpArtikelNummer\",\n                \"caption\": \"eingangsrechnungsposition-edit.r_einpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einpBezeichnung\",\n                \"caption\": \"eingangsrechnungsposition-edit.r_einpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einpMengeSollVerpEH\",\n                \"caption\": \"eingangsrechnungsposition-edit.r_einpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpMengeIstVerpEH\",\n                \"caption\": \"eingangsrechnungsposition-edit.r_einpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpEinheit\",\n                \"caption\": \"eingangsrechnungsposition-edit.r_einpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_eingangsrechungspositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechungspositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"eingangsrechnungsposition-edit.r_eingangsrechungspositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_EingangsrechnungspositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelEingangsrechnungsposition\",\n                \"bindToFQ\": \"models.data.$m_EingangsrechnungspositionStuecklisteRel.IdSetartikelEingangsrechnungsposition\"\n            },\n            \"dataModel\": \"$m_Eingangsrechnungsposition\",\n            \"editDataContext\": \"$m_EingangsrechnungspositionStuecklisteEdit\",\n            \"idEditPopup\": \"eingangsrechungspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_eingangsrechungspositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechungspositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechungspositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fibuKonto\",\n            \"filters\": [{\n                \"webApiWhere\": [\"IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdFirma\"\n                }]\n            }, {\n                \"webApiWhere\": [\"IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Eingangsrechnung.IdFirma\"\n                }]\n            }],\n            \"caption\": \"eingangsrechnungsposition-edit.r_fibukonto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungsposition\",\n                \"bindTo\": \"IdFibuKonto\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungsposition.IdFibuKonto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fibuKonto\",\n            \"options\": {\n                \"optionsName\": \"r_fibuKontoOptions\",\n                \"optionsNameFQ\": \"r_fibuKontoOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./eingangsrechnungsposition-edit-form\\\"></require> <require from=\\\"../../../elements/prod-auftrag/prod-auftrag\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"eingangsrechungspositionEditPopupOptions\\\" view-model.ref=\\\"eingangsrechungspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <eingangsrechnungsposition-edit-form view-model.ref=\\\"eingangsrechungspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></eingangsrechnungsposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <artikel main-model.bind=\\\"models.data.$m_Eingangsrechnungsposition\\\" id-artikel.bind=\\\"models.data.$m_Eingangsrechnungsposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Eingangsrechnungsposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel-changed.delegate=\\\"functions.$f_EingangsrechnungspositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Eingangsrechnungsposition.Id > 0\\\" where.bind=\\\"[['Status.Typ', 0],['BezugTyp', '!=', 3]]\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_mengesollverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeSollVerpEHOptions\\\" view-model.ref=\\\"r_mengeSollVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_mengeistverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeIstVerpEHOptions\\\" view-model.ref=\\\"r_mengeIstVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_wertnettosoll_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoSollOptions\\\" view-model.ref=\\\"r_wertNettoSoll\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_wertnettoist_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoIstOptions\\\" view-model.ref=\\\"r_wertNettoIst\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_steuersatz_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_steuersatzOptions\\\" view-model.ref=\\\"r_steuersatz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_isdiffakzeptiert_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isDiffAkzeptiertOptions\\\" view-model.ref=\\\"r_isDiffAkzeptiert\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Eingangsrechnungsposition.Id > 0 && models.data.$m_Eingangsrechnungsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: eingangsrechnungsposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_eingangsrechungspositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_eingangsrechungspositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: eingangsrechnungsposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Eingangsrechnungsposition.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Eingangsrechnungsposition\\\"></projekt> </div> <div class=\\\"col-xs-12\\\"> <prod-auftrag id-prod-auftrag.bind=\\\"models.data.$m_Eingangsrechnungsposition.IdProdAuftrag\\\" main-model.bind=\\\"models.data.$m_Eingangsrechnungsposition\\\"></prod-auftrag> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Eingangsrechnungsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungsposition-edit.r_fibukonto_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fibuKontoOptions\\\" view-model.ref=\\\"r_fibuKonto\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Eingangsrechnungsposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_EingangsrechnungspositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class EingangsrechnungszuschlagEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"eingangsrechnungszuschlag-edit\";\n        this.title = \"eingangsrechnungszuschlag-edit.eingangsrechnungszuschlag-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnungszuschlag\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnungszuschlag\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Eingangsrechnungszuschlag.IdEingangsrechnung\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"zuschlagsart\",\n            \"filters\": [],\n            \"caption\": \"eingangsrechnungszuschlag-edit.r_zuschlagsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungszuschlag\",\n                \"bindTo\": \"IdZuschlagsart\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungszuschlag.IdZuschlagsart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_zuschlagsart\",\n            \"options\": {\n                \"optionsName\": \"r_zuschlagsartOptions\",\n                \"optionsNameFQ\": \"r_zuschlagsartOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungszuschlag-edit.r_wertnetto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungszuschlag\",\n                \"bindTo\": \"WertNetto\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungszuschlag.WertNetto\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_wertNetto\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoOptions\",\n                \"optionsNameFQ\": \"r_wertNettoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"eingangsrechnungszuschlag-edit.r_steuersatz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungszuschlag\",\n                \"bindTo\": \"Steuersatz\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungszuschlag.Steuersatz\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_steuersatz\",\n            \"options\": {\n                \"optionsName\": \"r_steuersatzOptions\",\n                \"optionsNameFQ\": \"r_steuersatzOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"eingangsrechnungszuschlag-edit.r_kommentar_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnungszuschlag\",\n                \"bindTo\": \"Kommentar\",\n                \"bindToFQ\": \"models.data.$m_Eingangsrechnungszuschlag.Kommentar\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_kommentar\",\n            \"options\": {\n                \"optionsName\": \"r_kommentarOptions\",\n                \"optionsNameFQ\": \"r_kommentarOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungszuschlag-edit.r_zuschlagsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_zuschlagsartOptions\\\" view-model.ref=\\\"r_zuschlagsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungszuschlag-edit.r_wertnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoOptions\\\" view-model.ref=\\\"r_wertNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungszuschlag-edit.r_steuersatz_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_steuersatzOptions\\\" view-model.ref=\\\"r_steuersatz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: eingangsrechnungszuschlag-edit.r_kommentar_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kommentarOptions\\\" view-model.ref=\\\"r_kommentar\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    WarenuebernahmeEditUtils\n} from \"./warenuebernahme-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class WarenuebernahmeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_WarenuebernahmeEditUtils: WarenuebernahmeEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"warenuebernahme-edit\";\n        this.title = \"warenuebernahme-edit.warenuebernahme-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Warenuebernahme\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahme\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_WarenuebernahmepositionRel\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Bestellungsposition': {\n                    columns: [\"IdBestellung\"],\n                    'expand': {\n                        'Bestellung': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                },\n                'Einheit': {\n                    'columns': [\n                        'IdEinheit'\n                    ],\n                    'expand': {\n                        'Einheit': {\n                            'columns': [\n                                'Bezeichnung'\n                            ]\n                        }\n                    }\n                },\n                'Positionsart': {\n                    'columns': [\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Warenuebernahme.CanSave\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_WarenuebernahempositionEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Bestellungsposition\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellungsposition\",\n            \"webApiExpand\": {\n                'Bestellung': {\n                    'expand': {\n                        'Projekt': null\n                    }\n                },\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Positionsart': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"Bestellung.IdLieferant\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Warenuebernahme.IdLieferant\"\n                }],\n                [\"Bestellung.IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Warenuebernahme.IdFirma\"\n                }],\n                [\"Status.Typ\", \"0\"],\n                [\"MengeOffenVerpEH\", \">\", 0],\n                [\"IsPositionStuecklistenkomponente\", false]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_WarenuebernahmeEditUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_WarenuebernahmeEditUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_WarenuebernahmeEditUtils.showImportBestellungspositionenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_WarenuebernahmeEditUtils.showImportBestellungspositionenPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"warenuebernahmepositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_WarenuebernahempositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_WarenuebernahempositionEdit.Id\"\n                }\n            }],\n            \"id\": \"warenuebernahmepositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"warenuebernahmepositionEditPopupOptions\",\n                \"optionsNameFQ\": \"warenuebernahmepositionEditPopupOptions\"\n            },\n            \"caption\": \"warenuebernahme-edit.warenuebernahmepositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_WarenuebernahmeEditUtils\", $f_WarenuebernahmeEditUtils, \"functions.$f_WarenuebernahmeEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"warenuebernahme-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"warenuebernahme-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"warenuebernahme-edit.r_lieferdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"Lieferdatum\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.Lieferdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferdatumOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"warenuebernahme-edit.r_lieferantlieferscheinnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"LieferantLieferscheinNr\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.LieferantLieferscheinNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantLieferscheinNr\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantLieferscheinNrOptions\",\n                \"optionsNameFQ\": \"r_lieferantLieferscheinNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"warenuebernahme-edit.r_lieferantlieferscheindatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"LieferantLieferscheindatum\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.LieferantLieferscheindatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferantLieferscheindatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantLieferscheindatumOptions\",\n                \"optionsNameFQ\": \"r_lieferantLieferscheindatumOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"warenuebernahme-edit.r_lieferantrechnungnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"LieferantRechnungNr\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.LieferantRechnungNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantRechnungNr\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantRechnungNrOptions\",\n                \"optionsNameFQ\": \"r_lieferantRechnungNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"warenuebernahme-edit.r_lieferantrechnungsdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"LieferantRechnungsdatum\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.LieferantRechnungsdatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferantRechnungsdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantRechnungsdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferantRechnungsdatumOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"warenuebernahme-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"warenuebernahme-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_warpArtikelNummer\",\n                \"caption\": \"warenuebernahme-edit.r_warpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpBezeichnung\",\n                \"caption\": \"warenuebernahme-edit.r_warpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_warpBestellungsNummer\",\n                \"caption\": \"warenuebernahme-edit.r_warpbestellungsnummer_caption\",\n                \"bindTo\": \"Bestellungsposition.Bestellung.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpMengeSollVerpEH\",\n                \"caption\": \"warenuebernahme-edit.r_warpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_warpMengeIstVerpEH\",\n                \"caption\": \"warenuebernahme-edit.r_warpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_warpEinheit\",\n                \"caption\": \"warenuebernahme-edit.r_warpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_warpPositionsart\",\n                \"caption\": \"warenuebernahme-edit.r_warppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_warenuebernahmepositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionGridToolbarOptions\"\n            },\n            \"caption\": \"warenuebernahme-edit.r_warenuebernahmepositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_WarenuebernahmepositionRel\",\n                \"bindTo\": \"IdWarenuebernahme\",\n                \"bindToFQ\": \"models.data.$m_WarenuebernahmepositionRel.IdWarenuebernahme\"\n            },\n            \"dataModel\": \"$m_Warenuebernahme\",\n            \"editDataContext\": \"$m_WarenuebernahempositionEdit\",\n            \"idEditPopup\": \"warenuebernahmepositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Warenuebernahme\",\n                    \"bindTo\": \"$f_WarenuebernahmeEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_WarenuebernahmeEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Warenuebernahme\",\n                    \"bindTo\": \"$f_WarenuebernahmeEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_WarenuebernahmeEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_warenuebernahmepositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmepositionGridOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Warenuebernahme.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"warenuebernahme-edit.r_preisdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Warenuebernahme.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Warenuebernahme.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerEinkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Warenuebernahme.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_lieferlager_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"warenuebernahme-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahme.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_bestellungspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionEditPopupOptions\"\n            },\n            \"caption\": \"warenuebernahme-edit.r_bestellungspositioneditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_WarenuebernahmeEditUtils.importBestellungspositionenCommand\",\n                    \"bindToFQ\": \"functions.$f_WarenuebernahmeEditUtils.importBestellungspositionenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_bespBestellungNummer\",\n                \"caption\": \"warenuebernahme-edit.r_bespbestellungnummer_caption\",\n                \"bindTo\": \"Bestellung.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bespDatum\",\n                \"caption\": \"warenuebernahme-edit.r_bespdatum_caption\",\n                \"bindTo\": \"Bestellung.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_bespProjekt\",\n                \"caption\": \"warenuebernahme-edit.r_bespprojekt_caption\",\n                \"bindTo\": \"Bestellung.Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_bespArtikelNummer\",\n                \"caption\": \"warenuebernahme-edit.r_bespartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bespArtikel\",\n                \"caption\": \"warenuebernahme-edit.r_bespartikel_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bespBezeichnung\",\n                \"caption\": \"warenuebernahme-edit.r_bespbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bespMengeOffenVerpEH\",\n                \"caption\": \"warenuebernahme-edit.r_bespmengeoffenverpeh_caption\",\n                \"bindTo\": \"MengeOffenVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_bespEinheit\",\n                \"caption\": \"warenuebernahme-edit.r_bespeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespPositionsart\",\n                \"caption\": \"warenuebernahme-edit.r_besppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_bespStatus\",\n                \"caption\": \"warenuebernahme-edit.r_bespstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellungsposition\"\n            },\n            \"dataModel\": \"$m_Bestellungsposition\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellungspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungspositionGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungspositionGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./warenuebernahmeposition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"warenuebernahmepositionEditPopupOptions\\\" view-model.ref=\\\"warenuebernahmepositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <warenuebernahmeposition-edit-form view-model.ref=\\\"warenuebernahmepositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></warenuebernahmeposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahme-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferdatumOptions\\\" view-model.ref=\\\"r_lieferdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferantlieferscheinnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantLieferscheinNrOptions\\\" view-model.ref=\\\"r_lieferantLieferscheinNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferantlieferscheindatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferantLieferscheindatumOptions\\\" view-model.ref=\\\"r_lieferantLieferscheindatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferantrechnungnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantRechnungNrOptions\\\" view-model.ref=\\\"r_lieferantRechnungNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferantrechnungsdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferantRechnungsdatumOptions\\\" view-model.ref=\\\"r_lieferantRechnungsdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Warenuebernahme.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Warenuebernahme\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Warenuebernahme\\\" web-api-action=\\\"ERP/Einkauf/Warenuebernahme\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahme-edit.r_grouplieferant_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferant\\\" validation-field-name=\\\"Lieferant\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_WarenuebernahmeEditUtils.onLieferantChanged($event)\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Warenuebernahme.IdLieferant\\\" id-adresse.bind=\\\"models.data.$m_Warenuebernahme.IdLieferantAdresse\\\" person-typ.bind=\\\"4\\\" show-ansprechperson.bind=\\\"false\\\" main-model.bind=\\\"models.data.$m_Warenuebernahme\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferant', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferantAdresse\\\" is-read-only.bind=\\\"models.data.$m_Warenuebernahme.Id > 0\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_WarenuebernahmeEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_warenuebernahmepositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_warenuebernahmepositionGridOptions\\\" view-model.ref=\\\"r_warenuebernahmepositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahme-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Warenuebernahme.Preisdatum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Warenuebernahme.IdBerechnungsversion\\\" id-lieferant.bind=\\\"models.data.$m_Warenuebernahme.IdLieferant\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Warenuebernahme\\\" id-filiale.bind=\\\"models.data.$m_Warenuebernahme.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Warenuebernahme.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Warenuebernahme.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Warenuebernahme.IdWaehrung\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahme-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_WarenuebernahmeEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_bestellungspositionEditPopupOptions\\\" view-model.ref=\\\"r_bestellungspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungspositionGridOptions\\\" view-model.ref=\\\"r_bestellungspositionGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class WarenuebernahmeListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"warenuebernahme-list\";\n        this.title = \"warenuebernahme-list.warenuebernahme-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Warenuebernahme\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahme\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null,\n                'Lieferant': null,\n                'LieferantAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_warenuebernahmeGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_waNummer\",\n                \"caption\": \"warenuebernahme-list.r_wanummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_waDatum\",\n                \"caption\": \"warenuebernahme-list.r_wadatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_waProjekt\",\n                \"caption\": \"warenuebernahme-list.r_waprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_waLieferantNummer\",\n                \"caption\": \"warenuebernahme-list.r_walieferantnummer_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_waFirmenbez1\",\n                \"caption\": \"warenuebernahme-list.r_wafirmenbez1_caption\",\n                \"bindTo\": \"LieferantAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_waStrasse\",\n                \"caption\": \"warenuebernahme-list.r_wastrasse_caption\",\n                \"bindTo\": \"LieferantAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_waLand\",\n                \"caption\": \"warenuebernahme-list.r_waland_caption\",\n                \"bindTo\": \"LieferantAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_waOrt\",\n                \"caption\": \"warenuebernahme-list.r_waort_caption\",\n                \"bindTo\": \"LieferantAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_waWertNetto\",\n                \"caption\": \"warenuebernahme-list.r_wawertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_waWaehrung\",\n                \"caption\": \"warenuebernahme-list.r_wawaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_waStatus\",\n                \"caption\": \"warenuebernahme-list.r_wastatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_warenuebernahmeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmeGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahme\"\n            },\n            \"dataModel\": \"$m_Warenuebernahme\",\n            \"editUrl\": \"ERP/Einkauf/Warenuebernahme\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_warenuebernahmeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmeGridOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmeGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_warenuebernahmeGridOptions\\\" view-model.ref=\\\"r_warenuebernahmeGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    WarenuebernahmepositionEditUtils\n} from \"./warenuebernahmeposition-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class WarenuebernahmepositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_WarenuebernahmepositionEditUtils: WarenuebernahmepositionEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"warenuebernahmeposition-edit\";\n        this.title = \"warenuebernahmeposition-edit.warenuebernahmeposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Warenuebernahmeposition\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Warenuebernahme.CanSave\",\n            \"custom\": {\n                'copyFunc': '$f_WarenuebernahmepositionEditUtils.copyWarenuebernahmeposition'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Warenuebernahme\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahme\",\n            \"webApiExpand\": {\n                'Lager': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Warenuebernahmeposition.IdWarenuebernahme\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_WarenuebernahmepositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Positionsart': null,\n                'WarenuebernahmepositionStuecklisteInfo': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_WarenuebernahmepositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahmeposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_WarenuebernahmepositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_WarenuebernahmepositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"warenuebernahmepositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_WarenuebernahmepositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_WarenuebernahmepositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"warenuebernahmepositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"warenuebernahmepositionEditPopupOptions\",\n                \"optionsNameFQ\": \"warenuebernahmepositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_WarenuebernahmepositionEditUtils\", $f_WarenuebernahmepositionEditUtils, \"functions.$f_WarenuebernahmepositionEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"warenuebernahmeposition-edit.r_mengesollverpeh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.MengeSollVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeSollVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeSollVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeSollVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\"IdArtikel\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Warenuebernahmeposition.IdArtikel\"\n            }],\n            \"filters\": [],\n            \"caption\": \"warenuebernahmeposition-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_WarenuebernahmepositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_warpArtikelNummer\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_warpBezeichnung\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_warpMengeSollVerpEH\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_warpMengeIstVerpEH\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_warpEinheit\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_warpPositionsart\",\n                \"caption\": \"warenuebernahmeposition-edit.r_warppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_warenuebernahmepositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"warenuebernahmeposition-edit.r_warenuebernahmepositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_WarenuebernahmepositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelWarenuebernahmeposition\",\n                \"bindToFQ\": \"models.data.$m_WarenuebernahmepositionStuecklisteRel.IdSetartikelWarenuebernahmeposition\"\n            },\n            \"dataModel\": \"$m_Warenuebernahmeposition\",\n            \"editDataContext\": \"$m_WarenuebernahmepositionStuecklisteEdit\",\n            \"idEditPopup\": \"warenuebernahmepositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_warenuebernahmepositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_warenuebernahmepositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_warenuebernahmepositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"warenuebernahmeposition-edit.r_isvariablersetartikel_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Warenuebernahmeposition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"IsVariablerSetartikel\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.IsVariablerSetartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariablerSetartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isVariablerSetartikelOptions\",\n                \"optionsNameFQ\": \"r_isVariablerSetartikelOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"warenuebernahmeposition-edit.r_lieferantartikelnummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"LieferantArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.LieferantArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelNummer\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelNummerOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelNummerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"warenuebernahmeposition-edit.r_lieferantartikelbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"LieferantArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.LieferantArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelbezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"warenuebernahmeposition-edit.r_positionsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Warenuebernahmeposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Warenuebernahmeposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./warenuebernahmeposition-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"warenuebernahmepositionEditPopupOptions\\\" view-model.ref=\\\"warenuebernahmepositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <warenuebernahmeposition-edit-form view-model.ref=\\\"warenuebernahmepositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></warenuebernahmeposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12\\\"> <artikel main-model.bind=\\\"models.data.$m_Warenuebernahmeposition\\\" bezeichnung.bind=\\\"models.data.$m_Warenuebernahmeposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel.bind=\\\"models.data.$m_Warenuebernahmeposition.IdArtikel\\\" id-artikel-changed.delegate=\\\"functions.$f_WarenuebernahmepositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Warenuebernahmeposition.Id > 0\\\" where.bind=\\\"['Status.Typ', 0]\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_mengesollverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeSollVerpEHOptions\\\" view-model.ref=\\\"r_mengeSollVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_mengeistverpeh_caption\\\"></div> <mhd-charge-menge-erf view-model.ref=\\\"r_mengeIstVerpEH\\\" main-model.bind=\\\"models.data.$m_Warenuebernahmeposition\\\" is-artikel-stuecklistenkomponente.bind=\\\"models.data.$m_Warenuebernahmeposition.IsPositionStuecklistenkomponente\\\" id-artikel.bind=\\\"models.data.$m_Warenuebernahmeposition.IdArtikel\\\" menge-property=\\\"MengeIstVerpEH\\\" is-mhd-charge-lager-deaktiviert.bind=\\\"models.data.$m_Warenuebernahme.Lager.IsMHDChargeDeaktiviert\\\"></mhd-charge-menge-erf> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Warenuebernahmeposition.Id > 0 && models.data.$m_Warenuebernahmeposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahmeposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_warenuebernahmepositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_warenuebernahmepositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahmeposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_WarenuebernahmepositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"functions.$f_WarenuebernahmepositionEditUtils.showVariablerSetartikelCheckbox\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_isvariablersetartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVariablerSetartikelOptions\\\" view-model.ref=\\\"r_isVariablerSetartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Warenuebernahmeposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_lieferantartikelnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelNummerOptions\\\" view-model.ref=\\\"r_lieferantArtikelNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Warenuebernahmeposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_lieferantartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_lieferantArtikelbezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Warenuebernahmeposition.IsPositionStuecklistenkomponente == false || models.data.$m_Warenuebernahmeposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: warenuebernahmeposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Warenuebernahmeposition.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Warenuebernahmeposition\\\"></projekt> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Warenuebernahmeposition.IsPositionStuecklistenkomponente == false || models.data.$m_Warenuebernahmeposition.IsPositionVariableStuecklistenkomponente == true\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: warenuebernahmeposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Warenuebernahme.Preisdatum\\\" id-artikel.bind=\\\"models.data.$m_Warenuebernahmeposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Warenuebernahme.IdBerechnungsversion\\\" main-model.bind=\\\"models.data.$m_Warenuebernahmeposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Warenuebernahmeposition.MengeIstVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Warenuebernahmeposition.IdEinheit\\\" id-lieferant.bind=\\\"models.data.$m_Warenuebernahme.IdLieferant\\\" is-gratis.bind=\\\"models.data.$m_Warenuebernahmeposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Warenuebernahme.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Warenuebernahme.IdLieferlager\\\" steuersatz.bind=\\\"models.data.$m_Warenuebernahmeposition.Steuersatz\\\" id-waehrung.bind=\\\"models.data.$m_Warenuebernahme.IdWaehrung\\\" id-firma.bind=\\\"models.data.$m_Warenuebernahme.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Einkauf.Warenuebernahmeposition\\\" id-kopf.bind=\\\"models.data.$m_Warenuebernahmeposition.IdWarenuebernahme\\\" id-pos.bind=\\\"models.data.$m_Warenuebernahmeposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Warenuebernahmeposition.IsVariablerSetartikel\\\"></kalkulation> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Warenuebernahmeposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_WarenuebernahmepositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    KonditionEditUtils\n} from \"./kondition-edit-utils\";\n\n@fwx.autoinject\nexport class KonditionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_konditionEditUtils: KonditionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"kondition-edit\";\n        this.title = \"kondition-edit.kondition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Kondition\",\n            \"webApiAction\": \"ERP/Kalkulation/Kondition\",\n            \"webApiExpand\": {\n                'Konditionsfeld': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": [{\n                \"if\": \"variables.data.$v_idGeschaeftspartner\",\n                \"webApiCustomKey\": \"IdGeschaeftspartner\",\n                \"webApiCustomValue\": \"variables.data.$v_idGeschaeftspartner\"\n            }, {\n                \"if\": \"variables.data.$v_idArtikel\",\n                \"webApiCustomKey\": \"IdArtikel\",\n                \"webApiCustomValue\": \"variables.data.$v_idArtikel\"\n            }]\n        });\n        this.addVariable({\n            \"id\": \"$v_idGeschaeftspartner\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addFunction(\"$f_konditionEditUtils\", $f_konditionEditUtils, \"functions.$f_konditionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"konditionsfeldMitGeschaeftspartnerTyp\",\n            \"filters\": [],\n            \"caption\": \"kondition-edit.r_konditionsfeld_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Kondition && models.data.$m_Kondition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"IdKonditionsfeld\",\n                \"bindToFQ\": \"models.data.$m_Kondition.IdKonditionsfeld\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_konditionsfeld\",\n            \"options\": {\n                \"optionsName\": \"r_konditionsfeldOptions\",\n                \"optionsNameFQ\": \"r_konditionsfeldOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filters\": [],\n            \"caption\": \"kondition-edit.r_filiale_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"IdFiliale\",\n                \"bindToFQ\": \"models.data.$m_Kondition.IdFiliale\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_filiale\",\n            \"options\": {\n                \"optionsName\": \"r_filialeOptions\",\n                \"optionsNameFQ\": \"r_filialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lager\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Kondition.IdFiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"kondition-edit.r_lager_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"IdLager\",\n                \"bindToFQ\": \"models.data.$m_Kondition.IdLager\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lager\",\n            \"options\": {\n                \"optionsName\": \"r_lagerOptions\",\n                \"optionsNameFQ\": \"r_lagerOptions\"\n            },\n            \"isDisabledExpression\": \"models.data.$m_Kondition && !models.data.$m_Kondition.IdFiliale\"\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kondition-edit.r_wert_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"Wert\",\n                \"bindToFQ\": \"models.data.$m_Kondition.Wert\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_wert\",\n            \"options\": {\n                \"optionsName\": \"r_wertOptions\",\n                \"optionsNameFQ\": \"r_wertOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"Waehrung\",\n                \"webApiCustomValue\": \"functions.$f_konditionEditUtils.currentKonditionsfeldOptions.Waehrung\"\n            }, {\n                \"webApiCustomKey\": \"Waehrung\",\n                \"webApiCustomValue\": \"functions.$f_konditionEditUtils.currentKonditionsfeldOptions.Waehrung\"\n            }],\n            \"caption\": \"kondition-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Kondition.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 1.0,\n            \"format\": \"n0\",\n            \"caption\": \"kondition-edit.r_wertper_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"WertPer\",\n                \"bindToFQ\": \"models.data.$m_Kondition.WertPer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertPer\",\n            \"options\": {\n                \"optionsName\": \"r_wertPerOptions\",\n                \"optionsNameFQ\": \"r_wertPerOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 1.0,\n            \"format\": \"n0\",\n            \"caption\": \"kondition-edit.r_staffel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"Staffel\",\n                \"bindToFQ\": \"models.data.$m_Kondition.Staffel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_staffel\",\n            \"options\": {\n                \"optionsName\": \"r_staffelOptions\",\n                \"optionsNameFQ\": \"r_staffelOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"kondition-edit.r_gueltigvon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"GueltigVon\",\n                \"bindToFQ\": \"models.data.$m_Kondition.GueltigVon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigVon\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigVonOptions\",\n                \"optionsNameFQ\": \"r_gueltigVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"kondition-edit.r_gueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"GueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Kondition.GueltigBis\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigBisOptions\",\n                \"optionsNameFQ\": \"r_gueltigBisOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"kondition-edit.r_prioritaet_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"Prioritaet\",\n                \"bindToFQ\": \"models.data.$m_Kondition.Prioritaet\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_prioritaet\",\n            \"options\": {\n                \"optionsName\": \"r_prioritaetOptions\",\n                \"optionsNameFQ\": \"r_prioritaetOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"125px\",\n            \"caption\": \"kondition-edit.r_bemerkung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\",\n                \"bindTo\": \"Bemerkung\",\n                \"bindToFQ\": \"models.data.$m_Kondition.Bemerkung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bemerkung\",\n            \"options\": {\n                \"optionsName\": \"r_bemerkungOptions\",\n                \"optionsNameFQ\": \"r_bemerkungOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_konditionsfeld_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_konditionsfeldOptions\\\" view-model.ref=\\\"r_konditionsfeld\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_filiale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_filialeOptions\\\" view-model.ref=\\\"r_filiale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_lager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerOptions\\\" view-model.ref=\\\"r_lager\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_geschaeftspartnerinfoselectbox_caption\\\"></div> <dx-widget view-model.ref=\\\"r_geschaeftspartnerInfoSelectBox\\\" name=\\\"dxSelectBox\\\" options.bind=\\\"functions.$f_konditionEditUtils.geschaeftspartnerInfoSelectBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_artikelinfoselectbox_caption\\\"></div> <dx-widget view-model.ref=\\\"r_artikelInfoSelectBox\\\" name=\\\"dxSelectBox\\\" options.bind=\\\"functions.$f_konditionEditUtils.artikelInfoSelectBoxOptions\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_wert_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertOptions\\\" view-model.ref=\\\"r_wert\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_konditionEditUtils.currentKonditionsfeldOptions.HasWertPer\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_wertper_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertPerOptions\\\" view-model.ref=\\\"r_wertPer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_konditionEditUtils.currentKonditionsfeldOptions.HasStaffel\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_staffel_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_staffelOptions\\\" view-model.ref=\\\"r_staffel\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_gueltigvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigVonOptions\\\" view-model.ref=\\\"r_gueltigVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_gueltigbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigBisOptions\\\" view-model.ref=\\\"r_gueltigBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_prioritaet_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_prioritaetOptions\\\" view-model.ref=\\\"r_prioritaet\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kondition-edit.r_bemerkung_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_bemerkungOptions\\\" view-model.ref=\\\"r_bemerkung\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    KonditionListUtils\n} from \"./kondition-list-utils\";\n\n@fwx.autoinject\nexport class KonditionListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_KonditionListUtils: KonditionListUtils) {\n        super(element, formBaseImport);\n        this.id = \"kondition-list\";\n        this.title = \"kondition-list.kondition-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Kondition\",\n            \"webApiAction\": \"ERP/Kalkulation/Kondition\",\n            \"webApiExpand\": {\n                'Konditionsfeld': null,\n                'ArtikelInfo': null,\n                'Filiale': null,\n                'Lager': null,\n                'Waehrung': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": [{\n                \"webApiCustomKey\": \"InklIntern\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"Waehrung\",\n                \"webApiCustomValue\": \"2\"\n            }, {\n                \"webApiCustomKey\": \"AddGeschaeftspartnerInfoCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"AddArtikelInfoCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_KonditionListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_KonditionListUtils.doExport\"\n            }\n        });\n        this.addFunction(\"$f_KonditionListUtils\", $f_KonditionListUtils, \"functions.$f_KonditionListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_konKonditionsfeld\",\n                \"caption\": \"kondition-list.r_konkonditionsfeld_caption\",\n                \"bindTo\": \"Konditionsfeld.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konFiliale\",\n                \"caption\": \"kondition-list.r_konfiliale_caption\",\n                \"bindTo\": \"Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konLager\",\n                \"caption\": \"kondition-list.r_konlager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konGeschaeftspartnerInfo\",\n                \"caption\": \"kondition-list.r_kongeschaeftspartnerinfo_caption\",\n                \"bindTo\": \"_GeschaeftspartnerInfoCboBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konArtikelInfo\",\n                \"caption\": \"kondition-list.r_konartikelinfo_caption\",\n                \"bindTo\": \"_ArtikelInfoCboBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konWert\",\n                \"caption\": \"kondition-list.r_konwert_caption\",\n                \"bindTo\": \"Wert\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_konWaehrung\",\n                \"caption\": \"kondition-list.r_konwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_konWertPer\",\n                \"caption\": \"kondition-list.r_konwertper_caption\",\n                \"bindTo\": \"WertPer\",\n                \"width\": \"60px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_konStaffel\",\n                \"caption\": \"kondition-list.r_konstaffel_caption\",\n                \"bindTo\": \"Staffel\",\n                \"width\": \"70px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_konGueltigVon\",\n                \"caption\": \"kondition-list.r_kongueltigvon_caption\",\n                \"bindTo\": \"GueltigVon\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_konGueltigBis\",\n                \"caption\": \"kondition-list.r_kongueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_konPrioritaet\",\n                \"caption\": \"kondition-list.r_konprioritaet_caption\",\n                \"bindTo\": \"Prioritaet\",\n                \"width\": \"50px\"\n            }, {\n                \"id\": \"r_konBemerkung\",\n                \"caption\": \"kondition-list.r_konbemerkung_caption\",\n                \"bindTo\": \"Bemerkung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_konditionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_konditionGridToolbarOptions\"\n            },\n            \"caption\": \"kondition-list.r_konditiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\"\n            },\n            \"dataModel\": \"$m_Kondition\",\n            \"editUrl\": \"ERP/Kalkulation/Kondition\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_konditionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_konditionGridOptions\",\n                \"optionsNameFQ\": \"r_konditionGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_konditionGridOptions\\\" view-model.ref=\\\"r_konditionGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    KonditionListNestedUtils\n} from \"./kondition-list-nested-utils\";\n\n@fwx.autoinject\nexport class KonditionListNestedForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_konditionList: KonditionListNestedUtils) {\n        super(element, formBaseImport);\n        this.id = \"kondition-list-nested\";\n        this.title = \"kondition-list-nested.kondition-list-nested_caption\";\n        this.addModel({\n            \"id\": \"$m_Kondition\",\n            \"webApiAction\": \"ERP/Kalkulation/Kondition\",\n            \"webApiExpand\": {\n                'Konditionsfeld': null,\n                'GeschaeftspartnerInfo': null,\n                'ArtikelInfo': null,\n                'Filiale': null,\n                'Lager': null,\n                'Waehrung': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": [{\n                \"webApiCustomKey\": \"InklIntern\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"KonditionIdArtikel\",\n                \"webApiCustomValue\": \"variables.data.$v_idArtikel\"\n            }, {\n                \"webApiCustomKey\": \"KonditionIdGeschaeftspartner\",\n                \"webApiCustomValue\": \"variables.data.$v_idGeschaeftspartner\"\n            }, {\n                \"webApiCustomKey\": \"Waehrung\",\n                \"webApiCustomValue\": \"2\"\n            }, {\n                \"webApiCustomKey\": \"AddGeschaeftspartnerInfoCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"AddArtikelInfoCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_KonditionE\",\n            \"webApiAction\": \"ERP/Kalkulation/Kondition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idGeschaeftspartner\"\n        });\n        this.addEditPopup({\n            \"idContent\": \"konditionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_KonditionE\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_KonditionE.Id\"\n                }\n            }, {\n                \"to\": \"$v_idArtikel\",\n                \"binding\": {\n                    \"bindTo\": \"$v_idArtikel\",\n                    \"bindToFQ\": \"variables.data.$v_idArtikel\"\n                }\n            }, {\n                \"to\": \"$v_idGeschaeftspartner\",\n                \"binding\": {\n                    \"bindTo\": \"$v_idGeschaeftspartner\",\n                    \"bindToFQ\": \"variables.data.$v_idGeschaeftspartner\"\n                }\n            }],\n            \"id\": \"konditionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"konditionEditPopupOptions\",\n                \"optionsNameFQ\": \"konditionEditPopupOptions\"\n            },\n            \"caption\": \"kondition-list-nested.konditioneditpopup_caption\",\n            \"height\": \"600px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_konditionList\", $f_konditionList, \"functions.$f_konditionList\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_konKonditionsfeld\",\n                \"caption\": \"kondition-list-nested.r_konkonditionsfeld_caption\",\n                \"bindTo\": \"Konditionsfeld.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konFiliale\",\n                \"caption\": \"kondition-list-nested.r_konfiliale_caption\",\n                \"bindTo\": \"Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konLager\",\n                \"caption\": \"kondition-list-nested.r_konlager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konGeschaeftspartnerInfo\",\n                \"caption\": \"kondition-list-nested.r_kongeschaeftspartnerinfo_caption\",\n                \"bindTo\": \"_GeschaeftspartnerInfoCboBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konArtikelInfo\",\n                \"caption\": \"kondition-list-nested.r_konartikelinfo_caption\",\n                \"bindTo\": \"_ArtikelInfoCboBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_konWert\",\n                \"caption\": \"kondition-list-nested.r_konwert_caption\",\n                \"bindTo\": \"Wert\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_konWaehrung\",\n                \"caption\": \"kondition-list-nested.r_konwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_konWertPer\",\n                \"caption\": \"kondition-list-nested.r_konwertper_caption\",\n                \"bindTo\": \"WertPer\",\n                \"width\": \"60px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_konStaffel\",\n                \"caption\": \"kondition-list-nested.r_konstaffel_caption\",\n                \"bindTo\": \"Staffel\",\n                \"width\": \"70px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_konGueltigVon\",\n                \"caption\": \"kondition-list-nested.r_kongueltigvon_caption\",\n                \"bindTo\": \"GueltigVon\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_konGueltigBis\",\n                \"caption\": \"kondition-list-nested.r_kongueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_konPrioritaet\",\n                \"caption\": \"kondition-list-nested.r_konprioritaet_caption\",\n                \"bindTo\": \"Prioritaet\",\n                \"width\": \"50px\"\n            }, {\n                \"id\": \"r_konBemerkung\",\n                \"caption\": \"kondition-list-nested.r_konbemerkung_caption\",\n                \"bindTo\": \"Bemerkung\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_konditionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_konditionGridToolbarOptions\"\n            },\n            \"caption\": \"kondition-list-nested.r_konditiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kondition\"\n            },\n            \"dataModel\": \"$m_Kondition\",\n            \"editDataContext\": \"$m_KonditionE\",\n            \"idEditPopup\": \"konditionEditPopup\",\n            \"height\": \"auto\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_konditionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_konditionGridOptions\",\n                \"optionsNameFQ\": \"r_konditionGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./kondition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"konditionEditPopupOptions\\\" view-model.ref=\\\"konditionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <kondition-edit-form view-model.ref=\\\"konditionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></kondition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_konditionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_konditionGridOptions\\\" view-model.ref=\\\"r_konditionGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    KonditionsfeldEditUtils\n} from \"./konditionsfeld-edit-utils\";\n\n@fwx.autoinject\nexport class KonditionsfeldEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_KonditionsfeldEditUtils: KonditionsfeldEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"konditionsfeld-edit\";\n        this.title = \"konditionsfeld-edit.konditionsfeld-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Konditionsfeld\",\n            \"webApiAction\": \"ERP/Kalkulation/Konditionsfeld\",\n            \"webApiExpand\": {\n                'KonditionsfeldWooCommerce': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addFunction(\"$f_KonditionsfeldEditUtils\", $f_KonditionsfeldEditUtils, \"functions.$f_KonditionsfeldEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 10,\n            \"caption\": \"konditionsfeld-edit.r_code_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"Code\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.Code\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 10\n                    }]\n                }\n            }],\n            \"id\": \"r_code\",\n            \"options\": {\n                \"optionsName\": \"r_codeOptions\",\n                \"optionsNameFQ\": \"r_codeOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"konditionsfeld-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_sortnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"SortNr\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.SortNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sortNr\",\n            \"options\": {\n                \"optionsName\": \"r_sortNrOptions\",\n                \"optionsNameFQ\": \"r_sortNrOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"konditionsfeldTyp\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_typ_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.Typ\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_typ\",\n            \"options\": {\n                \"optionsName\": \"r_typOptions\",\n                \"optionsNameFQ\": \"r_typOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"geschaeftspartnerTyp\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_geschaeftspartnertyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"GeschaeftspartnerTyp\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.GeschaeftspartnerTyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnertyp\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnertypOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnertypOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_anzahlkommastellen_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"AnzKommastellen\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.AnzKommastellen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_anzahlKommastellen\",\n            \"options\": {\n                \"optionsName\": \"r_anzahlKommastellenOptions\",\n                \"optionsNameFQ\": \"r_anzahlKommastellenOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"konditionsfeldWaehrung\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"Waehrung\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.Waehrung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_haswertper_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"HasWertPer\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.HasWertPer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hasWertPer\",\n            \"options\": {\n                \"optionsName\": \"r_hasWertPerOptions\",\n                \"optionsNameFQ\": \"r_hasWertPerOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_hasstaffel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"HasStaffel\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.HasStaffel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hasStaffel\",\n            \"options\": {\n                \"optionsName\": \"r_hasStaffelOptions\",\n                \"optionsNameFQ\": \"r_hasStaffelOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_vorzeichenwechselbeistorno_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"DoVorzeichenwechselBeiStorno\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.DoVorzeichenwechselBeiStorno\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorzeichenwechselBeiStorno\",\n            \"options\": {\n                \"optionsName\": \"r_vorzeichenwechselBeiStornoOptions\",\n                \"optionsNameFQ\": \"r_vorzeichenwechselBeiStornoOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_isartikelpflicht_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"IsArtikelPflicht\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.IsArtikelPflicht\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isArtikelPflicht\",\n            \"options\": {\n                \"optionsName\": \"r_isArtikelPflichtOptions\",\n                \"optionsNameFQ\": \"r_isArtikelPflichtOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_supportsexim_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"SupportsExim\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.SupportsExim\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_supportsExim\",\n            \"options\": {\n                \"optionsName\": \"r_supportsEximOptions\",\n                \"optionsNameFQ\": \"r_supportsEximOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_vorbelegungwert_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"VorbWert\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.VorbWert\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungWert\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungWertOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungWertOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"customs\": [{\n                \"key\": \"Waehrung\",\n                \"value\": \"models.data.$m_Konditionsfeld.Waehrung\"\n            }],\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_vorbelegungwaehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"IdVorbWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.IdVorbWaehrung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungWaehrung\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungWaehrungOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungWaehrungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_vorbelegungwertper_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"VorbWertPer\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.VorbWertPer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungWertPer\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungWertPerOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungWertPerOptions\"\n            },\n            \"isDisabledExpression\": \"models.data.$m_Konditionsfeld.HasWertPer != true\"\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"konditionsfeld-edit.r_vorbelegungstaffel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"VorbStaffel\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.VorbStaffel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungStaffel\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungStaffelOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungStaffelOptions\"\n            },\n            \"isDisabledExpression\": \"models.data.$m_Konditionsfeld.HasStaffel != true\"\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"vorbGueltigVon\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_vorbelegunggueltigvon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"VorbGueltigVon\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.VorbGueltigVon\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungGueltigVon\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungGueltigVonOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungGueltigVonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"vorbGueltigBis\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_vorbelegunggueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"VorbGueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.VorbGueltigBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorbelegungGueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_vorbelegungGueltigBisOptions\",\n                \"optionsNameFQ\": \"r_vorbelegungGueltigBisOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"konditionsfeldWooCommerceTyp\",\n            \"filters\": [],\n            \"caption\": \"konditionsfeld-edit.r_woocommercetyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\",\n                \"bindTo\": \"KonditionsfeldWooCommerce.Typ\",\n                \"bindToFQ\": \"models.data.$m_Konditionsfeld.KonditionsfeldWooCommerce.Typ\",\n                \"propertyPrefix\": \"KonditionsfeldWooCommerce\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wooCommerceTyp\",\n            \"options\": {\n                \"optionsName\": \"r_wooCommerceTypOptions\",\n                \"optionsNameFQ\": \"r_wooCommerceTypOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_code_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_codeOptions\\\" view-model.ref=\\\"r_code\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_sortnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sortNrOptions\\\" view-model.ref=\\\"r_sortNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: konditionsfeld-edit.r_einstellunggroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_typ_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_typOptions\\\" view-model.ref=\\\"r_typ\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_geschaeftspartnertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_geschaeftspartnertypOptions\\\" view-model.ref=\\\"r_geschaeftspartnertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_anzahlkommastellen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_anzahlKommastellenOptions\\\" view-model.ref=\\\"r_anzahlKommastellen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_haswertper_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_hasWertPerOptions\\\" view-model.ref=\\\"r_hasWertPer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_hasstaffel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_hasStaffelOptions\\\" view-model.ref=\\\"r_hasStaffel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorzeichenwechselbeistorno_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_vorzeichenwechselBeiStornoOptions\\\" view-model.ref=\\\"r_vorzeichenwechselBeiStorno\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_isartikelpflicht_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isArtikelPflichtOptions\\\" view-model.ref=\\\"r_isArtikelPflicht\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_supportsexim_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_supportsEximOptions\\\" view-model.ref=\\\"r_supportsExim\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: konditionsfeld-edit.r_vorbelegunggroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegungwert_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_vorbelegungWertOptions\\\" view-model.ref=\\\"r_vorbelegungWert\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegungwaehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_vorbelegungWaehrungOptions\\\" view-model.ref=\\\"r_vorbelegungWaehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegungwertper_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_vorbelegungWertPerOptions\\\" view-model.ref=\\\"r_vorbelegungWertPer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegungstaffel_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_vorbelegungStaffelOptions\\\" view-model.ref=\\\"r_vorbelegungStaffel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegunggueltigvon_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_vorbelegungGueltigVonOptions\\\" view-model.ref=\\\"r_vorbelegungGueltigVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_vorbelegunggueltigbis_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_vorbelegungGueltigBisOptions\\\" view-model.ref=\\\"r_vorbelegungGueltigBis\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"functions.$f_KonditionsfeldEditUtils.startup.startupInfo.Lizenz.HasWooCommerce\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: konditionsfeld-edit.r_woocommercegroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: konditionsfeld-edit.r_woocommercetyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_wooCommerceTypOptions\\\" view-model.ref=\\\"r_wooCommerceTyp\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Konditionsfeld\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class KonditionsfeldListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"konditionsfeld-list\";\n        this.title = \"konditionsfeld-list.konditionsfeld-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Konditionsfeld\",\n            \"webApiAction\": \"ERP/Kalkulation/Konditionsfeld\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_konfCode\",\n                \"caption\": \"konditionsfeld-list.r_konfcode_caption\",\n                \"bindTo\": \"Code\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_konfBezeichnung\",\n                \"caption\": \"konditionsfeld-list.r_konfbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_konditionsfeldGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_konditionsfeldGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Konditionsfeld\"\n            },\n            \"dataModel\": \"$m_Konditionsfeld\",\n            \"editUrl\": \"ERP/Kalkulation/Konditionsfeld\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_konditionsfeldGrid\",\n            \"options\": {\n                \"optionsName\": \"r_konditionsfeldGridOptions\",\n                \"optionsNameFQ\": \"r_konditionsfeldGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_konditionsfeldGridOptions\\\" view-model.ref=\\\"r_konditionsfeldGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class KassaBelegEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"kassa-beleg-edit\";\n        this.title = \"kassa-beleg-edit.kassa-beleg-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_KassaBeleg\",\n            \"webApiAction\": \"ERP/Kassa/KassaBeleg\",\n            \"webApiExpand\": {\n                'GutscheinContainer': {\n                    'expand': {\n                        'GutscheinZuObjekte': {\n                            'expand': {\n                                'Gutschein': null\n                            }\n                        }\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KassaBelegpositionen\",\n            \"webApiAction\": \"ERP/Kassa/KassaBelegposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_GutscheinZuObjekte\",\n            \"webApiAction\": \"ERP/Verkauf/GutscheinZuObjekt\",\n            \"webApiExpand\": {\n                'Gutschein': null\n            },\n            \"webApiWhere\": [\"IdGutscheinContainer\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_KassaBeleg.IdGutscheinContainer\"\n            }],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"kassa\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_kassa_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdKassa\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdKassa\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_kassa\",\n            \"options\": {\n                \"optionsName\": \"r_kassaOptions\",\n                \"optionsNameFQ\": \"r_kassaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lager\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_lager_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdLager\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdLager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lager\",\n            \"options\": {\n                \"optionsName\": \"r_lagerOptions\",\n                \"optionsNameFQ\": \"r_lagerOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"kassa-beleg-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"zahlungsart\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_zahlungsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdZahlungsart\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdZahlungsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zahlungsart\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungsartOptions\",\n                \"optionsNameFQ\": \"r_zahlungsartOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"kassa-beleg-edit.r_aufrechnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IsAufRechnung\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IsAufRechnung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_aufRechnung\",\n            \"options\": {\n                \"optionsName\": \"r_aufRechnungOptions\",\n                \"optionsNameFQ\": \"r_aufRechnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"kassa-beleg-edit.r_zahlbetrag_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Zahlbetrag\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Zahlbetrag\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_zahlbetrag\",\n            \"options\": {\n                \"optionsName\": \"r_zahlbetragOptions\",\n                \"optionsNameFQ\": \"r_zahlbetragOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"kassaBelegTyp\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_typ_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Typ\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_typ\",\n            \"options\": {\n                \"optionsName\": \"r_typOptions\",\n                \"optionsNameFQ\": \"r_typOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"kassaBelegSignaturStatus\",\n            \"filters\": [],\n            \"caption\": \"kassa-beleg-edit.r_signaturstatus_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"SignaturStatus\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.SignaturStatus\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_signaturStatus\",\n            \"options\": {\n                \"optionsName\": \"r_signaturStatusOptions\",\n                \"optionsNameFQ\": \"r_signaturStatusOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"kassa-beleg-edit.r_text_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Text\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Text\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 200\n                    }]\n                }\n            }],\n            \"id\": \"r_text\",\n            \"options\": {\n                \"optionsName\": \"r_textOptions\",\n                \"optionsNameFQ\": \"r_textOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"kassa-beleg-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"100px\",\n            \"caption\": \"kassa-beleg-edit.r_fehlermeldung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\",\n                \"bindTo\": \"Fehlermeldung\",\n                \"bindToFQ\": \"models.data.$m_KassaBeleg.Fehlermeldung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fehlermeldung\",\n            \"options\": {\n                \"optionsName\": \"r_fehlermeldungOptions\",\n                \"optionsNameFQ\": \"r_fehlermeldungOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_kassaPosArtikelNr\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaPosArtikelBezeichnung\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposartikelbezeichnung_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaPosMengeLagEH\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposmengelageh_caption\",\n                \"bindTo\": \"MengeLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_kassaPosEinheit\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_kassaPosMHD\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposmhd_caption\",\n                \"bindTo\": \"MHD\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_kassaPosCharge\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposcharge_caption\",\n                \"bindTo\": \"Charge\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaPosWertBrutto\",\n                \"caption\": \"kassa-beleg-edit.r_kassaposwertbrutto_caption\",\n                \"bindTo\": \"WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kassaBelegpositionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegpositionenGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_KassaBelegpositionen\",\n                \"bindTo\": \"IdKassaBeleg\",\n                \"bindToFQ\": \"models.data.$m_KassaBelegpositionen.IdKassaBeleg\"\n            },\n            \"dataModel\": \"$m_KassaBeleg\",\n            \"pageSize\": 20,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kassaBelegpositionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kassaBelegpositionenGridOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegpositionenGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_kassaGutCode\",\n                \"caption\": \"kassa-beleg-edit.r_kassagutcode_caption\",\n                \"bindTo\": \"Gutschein.Code\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaGutWertEingeloest\",\n                \"caption\": \"kassa-beleg-edit.r_kassagutwerteingeloest_caption\",\n                \"bindTo\": \"WertEingeloest\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kassaGutscheineGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kassaGutscheineGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_GutscheinZuObjekte\"\n            },\n            \"dataModel\": \"$m_GutscheinZuObjekte\",\n            \"pageSize\": 20,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kassaGutscheineGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kassaGutscheineGridOptions\",\n                \"optionsNameFQ\": \"r_kassaGutscheineGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_kassa_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_kassaOptions\\\" view-model.ref=\\\"r_kassa\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_lager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerOptions\\\" view-model.ref=\\\"r_lager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_zahlungsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_zahlungsartOptions\\\" view-model.ref=\\\"r_zahlungsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_aufrechnung_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_aufRechnungOptions\\\" view-model.ref=\\\"r_aufRechnung\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_zahlbetrag_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_zahlbetragOptions\\\" view-model.ref=\\\"r_zahlbetrag\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_typ_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_typOptions\\\" view-model.ref=\\\"r_typ\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_signaturstatus_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_signaturStatusOptions\\\" view-model.ref=\\\"r_signaturStatus\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_text_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_textOptions\\\" view-model.ref=\\\"r_text\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_KassaBeleg\\\" web-api-action=\\\"ERP/Kassa/KassaBeleg\\\"></tags> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_KassaBeleg.Fehlermeldung\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kassa-beleg-edit.r_fehlermeldung_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_fehlermeldungOptions\\\" view-model.ref=\\\"r_fehlermeldung\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kassa-beleg-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_KassaBeleg.IdKunde\\\" show-ansprechperson.bind=\\\"false\\\" main-model.bind=\\\"models.data.$m_KassaBeleg\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kassaBelegpositionenGridOptions\\\" view-model.ref=\\\"r_kassaBelegpositionenGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kassaGutscheineGridOptions\\\" view-model.ref=\\\"r_kassaGutscheineGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class KassaBelegListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"kassa-beleg-list\";\n        this.title = \"kassa-beleg-list.kassa-beleg-list_caption\";\n        this.addModel({\n            \"id\": \"$m_KassaBeleg\",\n            \"webApiAction\": \"ERP/Kassa/KassaBeleg\",\n            \"webApiExpand\": {\n                'Zahlungsart': null,\n                'Kassa': null,\n                'Firma': null,\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Waehrung': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"allowSave\": \"false\",\n            \"allowDelete\": \"false\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_kassaBelegGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_kassaBelKassa\",\n                \"caption\": \"kassa-beleg-list.r_kassabelkassa_caption\",\n                \"bindTo\": \"Kassa.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelFirma\",\n                \"caption\": \"kassa-beleg-list.r_kassabelfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelNummer\",\n                \"caption\": \"kassa-beleg-list.r_kassabelnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaBelDatum\",\n                \"caption\": \"kassa-beleg-list.r_kassabeldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_kassaBelTyp\",\n                \"caption\": \"kassa-beleg-list.r_kassabeltyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.KassaBelegTyp\"\n            }, {\n                \"id\": \"r_kassaBelFirmenbez1\",\n                \"caption\": \"kassa-beleg-list.r_kassabelfirmenbez1_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelText\",\n                \"caption\": \"kassa-beleg-list.r_kassabeltext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelZahlungsart\",\n                \"caption\": \"kassa-beleg-list.r_kassabelzahlungsart_caption\",\n                \"bindTo\": \"Zahlungsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_kassaBelAufRechnung\",\n                \"caption\": \"kassa-beleg-list.r_kassabelaufrechnung_caption\",\n                \"bindTo\": \"IsAufRechnung\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaBelWaehrung\",\n                \"caption\": \"kassa-beleg-list.r_kassabelwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_kassaBelZahlbetrag\",\n                \"caption\": \"kassa-beleg-list.r_kassabelzahlbetrag_caption\",\n                \"bindTo\": \"Zahlbetrag\",\n                \"width\": \"90px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_kassaBelSignaturStatus\",\n                \"caption\": \"kassa-beleg-list.r_kassabelsignaturstatus_caption\",\n                \"bindTo\": \"SignaturStatus\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.KassaBelegSignaturStatus\"\n            }, {\n                \"id\": \"r_kassaBelStatus\",\n                \"caption\": \"kassa-beleg-list.r_kassabelstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kassaBelegGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\"\n            },\n            \"dataModel\": \"$m_KassaBeleg\",\n            \"editUrl\": \"ERP/Kassa/KassaBeleg\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kassaBelegGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kassaBelegGridOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kassaBelegGridOptions\\\" view-model.ref=\\\"r_kassaBelegGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ArtikelverleihEditUtils\n} from \"./artikelverleih-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ArtikelverleihEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ArtikelverleihEditUtils: ArtikelverleihEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"artikel-verleih-edit\";\n        this.title = \"artikel-verleih-edit.artikel-verleih-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Artikelverleih\",\n            \"webApiAction\": \"ERP/Lager/Artikelverleih\",\n            \"webApiExpand\": {\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Artikel\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"webApiColumns\": [\"Id\", \"IdEinheit\"],\n            \"webApiExpand\": {\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Artikelverleih.IdArtikel\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelverleihEditUtils.doAbholen\",\n                \"bindToFQ\": \"functions.$f_ArtikelverleihEditUtils.doAbholen\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelverleihEditUtils.doRueckgabe\",\n                \"bindToFQ\": \"functions.$f_ArtikelverleihEditUtils.doRueckgabe\"\n            }\n        });\n        this.addFunction(\"$f_ArtikelverleihEditUtils\", $f_ArtikelverleihEditUtils, \"functions.$f_ArtikelverleihEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"artikel-verleih-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Artikelverleih.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"artikel-verleih-edit.r_filiale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.IsAbgeholt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IdFiliale\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IdFiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_filiale\",\n            \"options\": {\n                \"optionsName\": \"r_filialeOptions\",\n                \"optionsNameFQ\": \"r_filialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Artikelverleih.IdFiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"artikel-verleih-edit.r_lager_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.IsAbgeholt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IdLager\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IdLager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lager\",\n            \"options\": {\n                \"optionsName\": \"r_lagerOptions\",\n                \"optionsNameFQ\": \"r_lagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"artikel-verleih-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"artikel-verleih-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-verleih-edit.r_vorlreservierung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.IsAbgeholt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"IsVorlaeufigeReservierung\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.IsVorlaeufigeReservierung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_vorlReservierung\",\n            \"options\": {\n                \"optionsName\": \"r_vorlReservierungOptions\",\n                \"optionsNameFQ\": \"r_vorlReservierungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"artikel-verleih-edit.r_geplabhol_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"GeplanteAbholung\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.GeplanteAbholung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_geplAbhol\",\n            \"options\": {\n                \"optionsName\": \"r_geplAbholOptions\",\n                \"optionsNameFQ\": \"r_geplAbholOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"artikel-verleih-edit.r_tatsabhol_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.IsAbgeholt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"TatsaechlicheAbholung\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.TatsaechlicheAbholung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_tatsAbhol\",\n            \"options\": {\n                \"optionsName\": \"r_tatsAbholOptions\",\n                \"optionsNameFQ\": \"r_tatsAbholOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"artikel-verleih-edit.r_geplrueck_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"GeplanteRueckgabe\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.GeplanteRueckgabe\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_geplRueck\",\n            \"options\": {\n                \"optionsName\": \"r_geplRueckOptions\",\n                \"optionsNameFQ\": \"r_geplRueckOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"artikel-verleih-edit.r_tatsrueck_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"TatsaechlicheRueckgabe\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.TatsaechlicheRueckgabe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_tatsRueck\",\n            \"options\": {\n                \"optionsName\": \"r_tatsRueckOptions\",\n                \"optionsNameFQ\": \"r_tatsRueckOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"artikel-verleih-edit.r_mengelageh_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikelverleih.IsAbgeholt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\",\n                \"bindTo\": \"MengeLagEH\",\n                \"bindToFQ\": \"models.data.$m_Artikelverleih.MengeLagEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_mengeLagEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeLagEHOptions\",\n                \"optionsNameFQ\": \"r_mengeLagEHOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"artikel-verleih-edit.r_lagereinheit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Einheit.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Einheit.Bezeichnung\",\n                \"propertyPrefix\": \"Einheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lagereinheit\",\n            \"options\": {\n                \"optionsName\": \"r_lagereinheitOptions\",\n                \"optionsNameFQ\": \"r_lagereinheitOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"../../../elements/artikelverleih-verfuegbar/artikelverleih-verfuegbar\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-verleih-edit.r_groupkopf_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_filiale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_filialeOptions\\\" view-model.ref=\\\"r_filiale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_lager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerOptions\\\" view-model.ref=\\\"r_lager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_vorlreservierung_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_vorlReservierungOptions\\\" view-model.ref=\\\"r_vorlReservierung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_geplabhol_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_geplAbholOptions\\\" view-model.ref=\\\"r_geplAbhol\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_tatsabhol_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_tatsAbholOptions\\\" view-model.ref=\\\"r_tatsAbhol\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_geplrueck_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_geplRueckOptions\\\" view-model.ref=\\\"r_geplRueck\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_tatsrueck_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_tatsRueckOptions\\\" view-model.ref=\\\"r_tatsRueck\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Artikelverleih\\\" web-api-action=\\\"ERP/Lager/Artikelverleih\\\"></tags> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-verleih-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Artikelverleih.IdKunde\\\" id-adresse.bind=\\\"models.data.$m_Artikelverleih.IdKundeAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Artikelverleih.IdKundeAnsprechperson\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Artikelverleih\\\" is-read-only.bind=\\\"models.data.$m_Artikelverleih.IsAbgeholt\\\" adresse-property-name=\\\"KundeAdresse\\\" where.bind=\\\"[['Geschaeftspartnerart.IsKunde', true], ['Status.Typ', 0]]\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikel\\\" main-model.bind=\\\"models.data.$m_Artikelverleih\\\" is-read-only.bind=\\\"models.data.$m_Artikelverleih.Id > 0\\\" id-artikel.bind=\\\"models.data.$m_Artikelverleih.IdArtikel\\\" where.bind=\\\"[['Artikelart.IsArtikelverleih', true], ['Status.Typ', 0]]\\\"></artikel> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Artikelverleih.IsVorlaeufigeReservierung\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_mengelageh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeLagEHOptions\\\" view-model.ref=\\\"r_mengeLagEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"!models.data.$m_Artikelverleih.IsVorlaeufigeReservierung\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_mengeaus_caption\\\"></div> <mhd-charge-menge-ausw view-model.ref=\\\"r_mengeAus\\\" main-model.bind=\\\"models.data.$m_Artikelverleih\\\" id-artikel.bind=\\\"models.data.$m_Artikelverleih.IdArtikel\\\" menge-property=\\\"MengeLagEH\\\" menge-ziel.bind=\\\"models.data.$m_Artikelverleih.MengeLagEH\\\" is-required=\\\"true\\\" id-einheit.bind=\\\"models.data.$m_Artikel.IdLagereinheit\\\" id-lager.bind=\\\"models.data.$m_Artikelverleih.IdLager\\\" is-read-only.bind=\\\"models.data.$m_Artikelverleih.IsAbgeholt\\\"></mhd-charge-menge-ausw> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-verleih-edit.r_lagereinheit_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lagereinheitOptions\\\" view-model.ref=\\\"r_lagereinheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <artikelverleih-verfuegbar view-model.ref=\\\"r_verfuegbar\\\" id-artikel.bind=\\\"models.data.$m_Artikelverleih.IdArtikel\\\" id-lager.bind=\\\"models.data.$m_Artikelverleih.IdLager\\\" id-artikelverleih.bind=\\\"models.data.$m_Artikelverleih.Id\\\" datum-von.bind=\\\"models.data.$m_Artikelverleih.GeplanteAbholung\\\" datum-bis.bind=\\\"models.data.$m_Artikelverleih.GeplanteRueckgabe\\\" menge.bind=\\\"models.data.$m_Artikelverleih.MengeLagEH\\\"></artikelverleih-verfuegbar> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Artikelverleih\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ArtikelverleihListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"artikel-verleih-list\";\n        this.title = \"artikel-verleih-list.artikel-verleih-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Artikelverleih\",\n            \"webApiAction\": \"ERP/Lager/Artikelverleih\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Filiale': null,\n                'Lager': null,\n                'Kunde': null,\n                'KundeAdresse': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_artikelVerleihGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_geplAbhol\",\n                \"caption\": \"artikel-verleih-list.r_geplabhol_caption\",\n                \"bindTo\": \"GeplanteAbholung\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_tatsAbhol\",\n                \"caption\": \"artikel-verleih-list.r_tatsabhol_caption\",\n                \"bindTo\": \"TatsaechlicheAbholung\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_geplRueck\",\n                \"caption\": \"artikel-verleih-list.r_geplrueck_caption\",\n                \"bindTo\": \"GeplanteRueckgabe\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_tatsRueck\",\n                \"caption\": \"artikel-verleih-list.r_tatsrueck_caption\",\n                \"bindTo\": \"TatsaechlicheRueckgabe\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_kundeNummer\",\n                \"caption\": \"artikel-verleih-list.r_kundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kundeFirmenbez1\",\n                \"caption\": \"artikel-verleih-list.r_kundefirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kundeOrt\",\n                \"caption\": \"artikel-verleih-list.r_kundeort_caption\",\n                \"bindTo\": \"Kunde.Adresse.Ort\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagkArtikelnr\",\n                \"caption\": \"artikel-verleih-list.r_lagkartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_lagkArtikel\",\n                \"caption\": \"artikel-verleih-list.r_lagkartikel_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_menge\",\n                \"caption\": \"artikel-verleih-list.r_menge_caption\",\n                \"bindTo\": \"MengeLagEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einheit\",\n                \"caption\": \"artikel-verleih-list.r_einheit_caption\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_status\",\n                \"caption\": \"artikel-verleih-list.r_status_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_artikelVerleihGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_artikelVerleihGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Artikelverleih\"\n            },\n            \"dataModel\": \"$m_Artikelverleih\",\n            \"editUrl\": \"ERP/Lager/Artikelverleih\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_artikelVerleihGrid\",\n            \"options\": {\n                \"optionsName\": \"r_artikelVerleihGridOptions\",\n                \"optionsNameFQ\": \"r_artikelVerleihGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_artikelVerleihGridOptions\\\" view-model.ref=\\\"r_artikelVerleihGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    InventurEditUtils\n} from \"./inventur-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class InventurEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_InventurEditUtils: InventurEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"inventur-edit\";\n        this.title = \"inventur-edit.inventur-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Inventur\",\n            \"webApiAction\": \"ERP/Lager/Inventur\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Inventurposition\",\n            \"webApiAction\": \"ERP/Lager/Inventurposition\",\n            \"webApiExpand\": {\n                'Artikel': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_InventurpositionRel\",\n            \"webApiAction\": \"ERP/Lager/Inventurposition\",\n            \"webApiExpand\": {\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Inventur.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_InventurpositionEdit\",\n            \"webApiAction\": \"ERP/Lager/Inventurposition\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_InventurEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_InventurEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_InventurEditUtils.doZaehllisteErstellen\",\n                \"bindToFQ\": \"functions.$f_InventurEditUtils.doZaehllisteErstellen\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_InventurEditUtils.doInventurVerbuchen\",\n                \"bindToFQ\": \"functions.$f_InventurEditUtils.doInventurVerbuchen\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_InventurEditUtils.doFehlendeArtikelHinz\",\n                \"bindToFQ\": \"functions.$f_InventurEditUtils.doFehlendeArtikelHinz\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"inventurpositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_InventurpositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_InventurpositionEdit.Id\"\n                }\n            }],\n            \"id\": \"inventurpositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"inventurpositionEditPopupOptions\",\n                \"optionsNameFQ\": \"inventurpositionEditPopupOptions\"\n            },\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_InventurEditUtils\", $f_InventurEditUtils, \"functions.$f_InventurEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerMitFirmaFiliale\",\n            \"filters\": [],\n            \"caption\": \"inventur-edit.r_lager_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Inventur.IsZaehllisteErstellt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\",\n                \"bindTo\": \"IdLager\",\n                \"bindToFQ\": \"models.data.$m_Inventur.IdLager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lager\",\n            \"options\": {\n                \"optionsName\": \"r_lagerOptions\",\n                \"optionsNameFQ\": \"r_lagerOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"inventur-edit.r_datum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Inventur.IsZaehllisteErstellt\",\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Inventur.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"inventur-edit.r_verbuchtam_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\",\n                \"bindTo\": \"VerbuchtAm\",\n                \"bindToFQ\": \"models.data.$m_Inventur.VerbuchtAm\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_verbuchtAm\",\n            \"options\": {\n                \"optionsName\": \"r_verbuchtAmOptions\",\n                \"optionsNameFQ\": \"r_verbuchtAmOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"inventur-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Inventur.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_invpArtikelNummer\",\n                \"caption\": \"inventur-edit.r_invpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_invpBezeichnung\",\n                \"caption\": \"inventur-edit.r_invpbezeichnung_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_invpSollmenge\",\n                \"caption\": \"inventur-edit.r_invpsollmenge_caption\",\n                \"bindTo\": \"Sollmenge\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_invpDifferenz\",\n                \"caption\": \"inventur-edit.r_invpdifferenz_caption\",\n                \"bindTo\": \"Differenz\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_invpIstmenge\",\n                \"caption\": \"inventur-edit.r_invpistmenge_caption\",\n                \"bindTo\": \"Istmenge\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_invpWertEinstandspreis\",\n                \"caption\": \"inventur-edit.r_invpwerteinstandspreis_caption\",\n                \"bindTo\": \"EinstandspreisWert\",\n                \"width\": \"80px\",\n                \"format\": \"n6\"\n            }, {\n                \"id\": \"r_invpWertSoll\",\n                \"caption\": \"inventur-edit.r_invpwertsoll_caption\",\n                \"bindTo\": \"WertSoll\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_invpWertDifferenz\",\n                \"caption\": \"inventur-edit.r_invpwertdifferenz_caption\",\n                \"bindTo\": \"WertDifferenz\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_invpWertIst\",\n                \"caption\": \"inventur-edit.r_invpwertist_caption\",\n                \"bindTo\": \"WertIst\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_invLagereinheit\",\n                \"caption\": \"inventur-edit.r_invlagereinheit_caption\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_inventurpositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_inventurpositionGridToolbarOptions\"\n            },\n            \"caption\": \"inventur-edit.r_inventurpositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_InventurpositionRel\",\n                \"bindTo\": \"IdInventur\",\n                \"bindToFQ\": \"models.data.$m_InventurpositionRel.IdInventur\"\n            },\n            \"dataModel\": \"$m_Inventur\",\n            \"editDataContext\": \"$m_InventurpositionEdit\",\n            \"idEditPopup\": \"inventurpositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_inventurpositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_inventurpositionGridOptions\",\n                \"optionsNameFQ\": \"r_inventurpositionGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./inventurposition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"inventurpositionEditPopupOptions\\\" view-model.ref=\\\"inventurpositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <inventurposition-edit-form view-model.ref=\\\"inventurpositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></inventurposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventur-edit.r_lager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerOptions\\\" view-model.ref=\\\"r_lager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventur-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventur-edit.r_verbuchtam_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_verbuchtAmOptions\\\" view-model.ref=\\\"r_verbuchtAm\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventur-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Inventur\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_inventurpositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_inventurpositionGridOptions\\\" view-model.ref=\\\"r_inventurpositionGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class InventurListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"inventur-list\";\n        this.title = \"inventur-list.inventur-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Inventur\",\n            \"webApiAction\": \"ERP/Lager/Inventur\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Lager': {\n                    'expand': {\n                        'Filiale': {\n                            'expand': {\n                                'Firma': null\n                            }\n                        }\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_invDatum\",\n                \"caption\": \"inventur-list.r_invdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_invFirma\",\n                \"caption\": \"inventur-list.r_invfirma_caption\",\n                \"bindTo\": \"Lager.Filiale.Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_invFiliale\",\n                \"caption\": \"inventur-list.r_invfiliale_caption\",\n                \"bindTo\": \"Lager.Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_invLager\",\n                \"caption\": \"inventur-list.r_invlager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_wertSoll\",\n                \"caption\": \"inventur-list.r_wertsoll_caption\",\n                \"bindTo\": \"WertSoll\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_wertDifferenz\",\n                \"caption\": \"inventur-list.r_wertdifferenz_caption\",\n                \"bindTo\": \"WertDifferenz\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_wertIst\",\n                \"caption\": \"inventur-list.r_wertist_caption\",\n                \"bindTo\": \"WertIst\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_invVerbuchtAm\",\n                \"caption\": \"inventur-list.r_invverbuchtam_caption\",\n                \"bindTo\": \"VerbuchtAm\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_invStatus\",\n                \"caption\": \"inventur-list.r_invstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_inventurGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_inventurGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Inventur\"\n            },\n            \"dataModel\": \"$m_Inventur\",\n            \"editUrl\": \"ERP/Lager/Inventur\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_inventurGrid\",\n            \"options\": {\n                \"optionsName\": \"r_inventurGridOptions\",\n                \"optionsNameFQ\": \"r_inventurGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_inventurGridOptions\\\" view-model.ref=\\\"r_inventurGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class InventurpositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"inventurposition-edit\";\n        this.title = \"inventurposition-edit.inventurposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Inventurposition\",\n            \"webApiAction\": \"ERP/Lager/Inventurposition\",\n            \"webApiExpand\": {\n                'Artikel': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Inventur.CanSave\",\n            \"allowSave\": \"models.data.$m_Inventur.CanSave\",\n            \"allowDelete\": \"models.data.$m_Inventur.CanDelete\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Inventur\",\n            \"webApiAction\": \"ERP/Lager/Inventur\",\n            \"webApiExpand\": {\n                'Lager': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Inventurposition.IdInventur\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filters\": [],\n            \"caption\": \"inventurposition-edit.r_einheit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Inventurposition\",\n                \"bindTo\": \"Artikel.IdLagereinheit\",\n                \"bindToFQ\": \"models.data.$m_Inventurposition.Artikel.IdLagereinheit\",\n                \"propertyPrefix\": \"Artikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"inventurposition-edit.r_sollmenge_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Inventurposition\",\n                \"bindTo\": \"Sollmenge\",\n                \"bindToFQ\": \"models.data.$m_Inventurposition.Sollmenge\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sollMenge\",\n            \"options\": {\n                \"optionsName\": \"r_sollMengeOptions\",\n                \"optionsNameFQ\": \"r_sollMengeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n6\",\n            \"caption\": \"inventurposition-edit.r_einstandspreis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Inventurposition\",\n                \"bindTo\": \"EinstandspreisWert\",\n                \"bindToFQ\": \"models.data.$m_Inventurposition.EinstandspreisWert\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_einstandspreis\",\n            \"options\": {\n                \"optionsName\": \"r_einstandspreisOptions\",\n                \"optionsNameFQ\": \"r_einstandspreisOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel id-artikel.bind=\\\"models.data.$m_Inventurposition.IdArtikel\\\" is-read-only.bind=\\\"models.data.$m_Inventurposition.Id > 0\\\" main-model.bind=\\\"models.data.$m_Inventurposition\\\" where.bind=\\\"[['IsLagerfuehrend', true], ['BezugTyp', '!=', 3]]\\\"></artikel> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventurposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventurposition-edit.r_sollmenge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sollMengeOptions\\\" view-model.ref=\\\"r_sollMenge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventurposition-edit.r_istmenge_caption\\\"></div> <mhd-charge-menge-erf view-model.ref=\\\"r_istMenge\\\" main-model.bind=\\\"models.data.$m_Inventurposition\\\" id-artikel.bind=\\\"models.data.$m_Inventurposition.IdArtikel\\\" menge-property=\\\"Istmenge\\\" is-read-only.bind=\\\"models.data.$m_Inventur.IsVerbucht\\\" is-mhd-charge-lager-deaktiviert.bind=\\\"models.data.$m_Inventur.Lager.IsMHDChargeDeaktiviert\\\"></mhd-charge-menge-erf> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: inventurposition-edit.r_einstandspreis_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_einstandspreisOptions\\\" view-model.ref=\\\"r_einstandspreis\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LagerbestandDetailListNestedUtils\n} from \"./lagerbestand-detail-list-nested-utils\";\n\n@fwx.autoinject\nexport class LagerbestandDetailListNestedForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_lagerbestandDetailListNestedUtils: LagerbestandDetailListNestedUtils) {\n        super(element, formBaseImport);\n        this.id = \"lagerbestand-detail-list-nested\";\n        this.title = \"lagerbestand-detail-list-nested.lagerbestand-detail-list-nested_caption\";\n        this.addModel({\n            \"id\": \"$m_Lagerbestand\",\n            \"webApiAction\": \"ERP/Lager/LagerbestandDetail\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Lager': {\n                    'expand': {\n                        'Filiale': null\n                    }\n                }\n            },\n            \"webApiWhere\": [\n                [\"Bestand\", \"!=\", 0],\n                [\"Lager.IsMHDChargeDeaktiviert\", \"false\"]\n            ],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowLoad\": \"variables.data.$v_idArtikel || variables.data.$v_idLager\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": [{\n                \"if\": \"variables.data.$v_idArtikel\",\n                \"webApiWhere\": [\"Artikel.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idArtikel\"\n                }]\n            }, {\n                \"if\": \"variables.data.$v_idLager\",\n                \"webApiWhere\": [\"Lager.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idLager\"\n                }]\n            }]\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idLager\"\n        });\n        this.addVariable({\n            \"id\": \"$v_showFilterRow\"\n        });\n        this.addVariable({\n            \"id\": \"$v_showExcelExport\"\n        });\n        this.addFunction(\"$f_lagerbestandDetailListNestedUtils\", $f_lagerbestandDetailListNestedUtils, \"functions.$f_lagerbestandDetailListNestedUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_lagbArtikelNummer\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_lagbBezeichnung\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbbezeichnung_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbFiliale\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbfiliale_caption\",\n                \"bindTo\": \"Lager.Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbLager\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagblager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbBestand\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbbestand_caption\",\n                \"bindTo\": \"Bestand\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbMHD\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbmhd_caption\",\n                \"bindTo\": \"MHD\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_lagbCharge\",\n                \"caption\": \"lagerbestand-detail-list-nested.r_lagbcharge_caption\",\n                \"bindTo\": \"Charge\",\n                \"width\": \"90px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lagerbestandGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lagerbestandGridToolbarOptions\"\n            },\n            \"caption\": \"lagerbestand-detail-list-nested.r_lagerbestandgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerbestand\"\n            },\n            \"dataModel\": \"$m_Lagerbestand\",\n            \"height\": \"auto\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_lagerbestandDetailListNestedUtils.doExportExcelCommand\",\n                    \"bindToFQ\": \"functions.$f_lagerbestandDetailListNestedUtils.doExportExcelCommand\"\n                }\n            }],\n            \"id\": \"r_lagerbestandGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbestandGridOptions\",\n                \"optionsNameFQ\": \"r_lagerbestandGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lagerbestandGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lagerbestandGridOptions\\\" view-model.ref=\\\"r_lagerbestandGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LagerbestandListNestedUtils\n} from \"./lagerbestand-list-nested-utils\";\n\n@fwx.autoinject\nexport class LagerbestandListNestedForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_lagerbestandListNestedUtils: LagerbestandListNestedUtils) {\n        super(element, formBaseImport);\n        this.id = \"lagerbestand-list-nested\";\n        this.title = \"lagerbestand-list-nested.lagerbestand-list-nested_caption\";\n        this.addModel({\n            \"id\": \"$m_Lagerbestand\",\n            \"webApiAction\": \"ERP/Lager/Lagerbestand\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Lager': {\n                    'expand': {\n                        'Filiale': null\n                    }\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowLoad\": \"variables.data.$v_idArtikel || variables.data.$v_idLager\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": [{\n                \"if\": \"variables.data.$v_idArtikel\",\n                \"webApiWhere\": [\"Artikel.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idArtikel\"\n                }]\n            }, {\n                \"if\": \"variables.data.$v_idLager\",\n                \"webApiWhere\": [\"Lager.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idLager\"\n                }]\n            }]\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idLager\"\n        });\n        this.addVariable({\n            \"id\": \"$v_showFilterRow\"\n        });\n        this.addVariable({\n            \"id\": \"$v_showExcelExport\"\n        });\n        this.addFunction(\"$f_lagerbestandListNestedUtils\", $f_lagerbestandListNestedUtils, \"functions.$f_lagerbestandListNestedUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_lagbArtikelNummer\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_lagbBezeichnung\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbbezeichnung_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbFiliale\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbfiliale_caption\",\n                \"bindTo\": \"Lager.Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbLager\",\n                \"caption\": \"lagerbestand-list-nested.r_lagblager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbBestand\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbbestand_caption\",\n                \"bindTo\": \"Bestand\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbAuftrag\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbauftrag_caption\",\n                \"bindTo\": \"Auftrag\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbReserviert\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbreserviert_caption\",\n                \"bindTo\": \"Reserviert\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbBestellt\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbbestellt_caption\",\n                \"bindTo\": \"Bestellt\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbProduktion\",\n                \"caption\": \"lagerbestand-list-nested.r_lagbproduktion_caption\",\n                \"bindTo\": \"Produktion\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lagerbestandGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lagerbestandGridToolbarOptions\"\n            },\n            \"caption\": \"lagerbestand-list-nested.r_lagerbestandgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerbestand\"\n            },\n            \"dataModel\": \"$m_Lagerbestand\",\n            \"height\": \"auto\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_lagerbestandListNestedUtils.doExportExcelCommand\",\n                    \"bindToFQ\": \"functions.$f_lagerbestandListNestedUtils.doExportExcelCommand\"\n                }\n            }],\n            \"id\": \"r_lagerbestandGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbestandGridOptions\",\n                \"optionsNameFQ\": \"r_lagerbestandGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lagerbestandGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lagerbestandGridOptions\\\" view-model.ref=\\\"r_lagerbestandGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LagerbuchungInfoListNestedUtils\n} from \"./lagerbuchung-info-list-nested-utils\";\n\n@fwx.autoinject\nexport class LagerbuchungInfoListNestedForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_LagerbuchungInfoListNestedUtils: LagerbuchungInfoListNestedUtils) {\n        super(element, formBaseImport);\n        this.id = \"lagerbuchung-info-list-nested\";\n        this.title = \"lagerbuchung-info-list-nested.lagerbuchung-info-list-nested_caption\";\n        this.addModel({\n            \"id\": \"$m_LagerbuchungInfo\",\n            \"webApiAction\": \"ERP/Lager/LagerbuchungInfo\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Lager': {\n                    'expand': {\n                        'Filiale': null\n                    }\n                },\n                'VerknuepfteEntitaet': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiWhere\": [\"Artikel.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idArtikel\"\n                }]\n            }, {\n                \"webApiCustomKey\": \"AddCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_LagerbuchungInfoE\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addFunction(\"$f_LagerbuchungInfoListNestedUtils\", $f_LagerbuchungInfoListNestedUtils, \"functions.$f_LagerbuchungInfoListNestedUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_lagpVerkEntBezeichnung\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagpverkentbezeichnung_caption\",\n                \"bindTo\": \"IdVerknuepfteEntitaet\",\n                \"minWidth\": 100,\n                \"dataType\": \"string\",\n                \"onCellPrepared\": \"functions.$f_LagerbuchungInfoListNestedUtils.onVerknEntitaetCellPrepared\",\n                \"onCalculateFilterExpression\": \"functions.$f_LagerbuchungInfoListNestedUtils.onVerknEntitaetCalcFilter\"\n            }, {\n                \"id\": \"r_lagbFiliale\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagbfiliale_caption\",\n                \"bindTo\": \"Lager.Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbLager\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagblager_caption\",\n                \"bindTo\": \"Lager.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbAuftrag\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagbauftrag_caption\",\n                \"bindTo\": \"MengeAuftrag\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbReserviert\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagbreserviert_caption\",\n                \"bindTo\": \"MengeReserviert\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbBestellt\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagbbestellt_caption\",\n                \"bindTo\": \"MengeBestellt\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagbProduktion\",\n                \"caption\": \"lagerbuchung-info-list-nested.r_lagbproduktion_caption\",\n                \"bindTo\": \"MengeProduktion\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lagerbuchungInfoGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lagerbuchungInfoGridToolbarOptions\"\n            },\n            \"caption\": \"lagerbuchung-info-list-nested.r_lagerbuchunginfogrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_LagerbuchungInfo\"\n            },\n            \"dataModel\": \"$m_LagerbuchungInfo\",\n            \"editDataContext\": \"$m_LagerbuchungInfoE\",\n            \"height\": \"auto\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lagerbuchungInfoGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbuchungInfoGridOptions\",\n                \"optionsNameFQ\": \"r_lagerbuchungInfoGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lagerbuchungInfoGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lagerbuchungInfoGridOptions\\\" view-model.ref=\\\"r_lagerbuchungInfoGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LagerbuchungListNestedUtils\n} from \"./lagerbuchung-list-nested-utils\";\n\n@fwx.autoinject\nexport class LagerbuchungListNestedForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_LagerbuchungListNestedUtils: LagerbuchungListNestedUtils) {\n        super(element, formBaseImport);\n        this.id = \"lagerbuchung-list-nested\";\n        this.title = \"lagerbuchung-list-nested.lagerbuchung-list-nested_caption\";\n        this.addModel({\n            \"id\": \"$m_Lagerbuchung\",\n            \"webApiAction\": \"ERP/Lager/Lagerbuchung\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'LagerVon': {\n                    'columns': [\n                        'Id',\n                        'BezeichnungFQ'\n                    ]\n                },\n                'LagerNach': {\n                    'columns': [\n                        'Id',\n                        'BezeichnungFQ'\n                    ]\n                },\n                'Lagerbuchungsart': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                },\n                'VerknuepfteEntitaet': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiWhere\": [\"Artikel.Id\", {\n                    \"isBound\": true,\n                    \"expression\": \"variables.data.$v_idArtikel\"\n                }]\n            }, {\n                \"webApiCustomKey\": \"AddCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_LagerbuchungE\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$v_idArtikel\"\n        });\n        this.addFunction(\"$f_LagerbuchungListNestedUtils\", $f_LagerbuchungListNestedUtils, \"functions.$f_LagerbuchungListNestedUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_lagpVerkEntBezeichnung\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagpverkentbezeichnung_caption\",\n                \"bindTo\": \"IdVerknuepfteEntitaet\",\n                \"minWidth\": 100,\n                \"dataType\": \"string\",\n                \"onCellPrepared\": \"functions.$f_LagerbuchungListNestedUtils.onVerknEntitaetCellPrepared\",\n                \"onCalculateFilterExpression\": \"functions.$f_LagerbuchungListNestedUtils.onVerknEntitaetCalcFilter\"\n            }, {\n                \"id\": \"r_lagbLagerVon\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagblagervon_caption\",\n                \"bindTo\": \"LagerVon.BezeichnungFQ\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbLagerNach\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagblagernach_caption\",\n                \"bindTo\": \"LagerNach.BezeichnungFQ\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagbDatum\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagbdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_lagbMHD\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagbmhd_caption\",\n                \"bindTo\": \"MHD\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_lagbCharge\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagbcharge_caption\",\n                \"bindTo\": \"Charge\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_lagbMenge\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagbmenge_caption\",\n                \"bindTo\": \"Menge\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_lagpLagerbuchungsart\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagplagerbuchungsart_caption\",\n                \"bindTo\": \"Lagerbuchungsart.Bezeichnung\"\n            }, {\n                \"id\": \"r_lagbKommentar\",\n                \"caption\": \"lagerbuchung-list-nested.r_lagbkommentar_caption\",\n                \"bindTo\": \"Kommentar\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lagerbuchungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lagerbuchungGridToolbarOptions\"\n            },\n            \"caption\": \"lagerbuchung-list-nested.r_lagerbuchunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerbuchung\"\n            },\n            \"dataModel\": \"$m_Lagerbuchung\",\n            \"editDataContext\": \"$m_LagerbuchungE\",\n            \"height\": \"auto\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lagerbuchungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbuchungGridOptions\",\n                \"optionsNameFQ\": \"r_lagerbuchungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lagerbuchungGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lagerbuchungGridOptions\\\" view-model.ref=\\\"r_lagerbuchungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LagerkorrekturEditUtils\n} from \"./lagerkorrektur-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class LagerkorrekturEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_LagerkorrekturEditUtils: LagerkorrekturEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"lagerkorrektur-edit\";\n        this.title = \"lagerkorrektur-edit.lagerkorrektur-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Lagerkorrektur\",\n            \"webApiAction\": \"ERP/Lager/Lagerkorrektur\",\n            \"webApiExpand\": {\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Artikel\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"webApiColumns\": [\"Id\", \"IdEinheit\"],\n            \"webApiExpand\": {\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Lagerkorrektur.IdArtikel\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LagerVon\",\n            \"webApiAction\": \"ERP/Stammdaten/Lager\",\n            \"webApiExpand\": {\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Lagerkorrektur.IdLagerVon\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LagerNach\",\n            \"webApiAction\": \"ERP/Stammdaten/Lager\",\n            \"webApiExpand\": {\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Lagerkorrektur.IdLagerNach\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LagerkorrekturEditUtils.doVerbuchen\",\n                \"bindToFQ\": \"functions.$f_LagerkorrekturEditUtils.doVerbuchen\"\n            }\n        });\n        this.addFunction(\"$f_LagerkorrekturEditUtils\", $f_LagerkorrekturEditUtils, \"functions.$f_LagerkorrekturEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lagerkorrektur-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"lagerkorrektur-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerbuchungsart\",\n            \"filters\": [],\n            \"caption\": \"lagerkorrektur-edit.r_lagerbuchungsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"IdLagerbuchungsart\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.IdLagerbuchungsart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lagerbuchungsart\",\n            \"options\": {\n                \"optionsName\": \"r_lagerbuchungsartOptions\",\n                \"optionsNameFQ\": \"r_lagerbuchungsartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerMitFirmaFiliale\",\n            \"filters\": [],\n            \"caption\": \"lagerkorrektur-edit.r_lagervon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"IdLagerVon\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.IdLagerVon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"!models.data.$m_Lagerkorrektur.IdLagerNach\"\n                    }]\n                }\n            }],\n            \"id\": \"r_lagerVon\",\n            \"options\": {\n                \"optionsName\": \"r_lagerVonOptions\",\n                \"optionsNameFQ\": \"r_lagerVonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerMitFirmaFiliale\",\n            \"filters\": [],\n            \"caption\": \"lagerkorrektur-edit.r_lagernach_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"IdLagerNach\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.IdLagerNach\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"!models.data.$m_Lagerkorrektur.IdLagerVon\"\n                    }]\n                }\n            }],\n            \"id\": \"r_lagerNach\",\n            \"options\": {\n                \"optionsName\": \"r_lagerNachOptions\",\n                \"optionsNameFQ\": \"r_lagerNachOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"lagerkorrektur-edit.r_lagereinheit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Einheit.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Einheit.Bezeichnung\",\n                \"propertyPrefix\": \"Einheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lagereinheit\",\n            \"options\": {\n                \"optionsName\": \"r_lagereinheitOptions\",\n                \"optionsNameFQ\": \"r_lagereinheitOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"lagerkorrektur-edit.r_kommentar_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\",\n                \"bindTo\": \"Kommentar\",\n                \"bindToFQ\": \"models.data.$m_Lagerkorrektur.Kommentar\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kommentar\",\n            \"options\": {\n                \"optionsName\": \"r_kommentarOptions\",\n                \"optionsNameFQ\": \"r_kommentarOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-lg-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-3\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_lagerbuchungsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerbuchungsartOptions\\\" view-model.ref=\\\"r_lagerbuchungsart\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_lagervon_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerVonOptions\\\" view-model.ref=\\\"r_lagerVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_lagernach_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lagerNachOptions\\\" view-model.ref=\\\"r_lagerNach\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikel\\\" main-model.bind=\\\"models.data.$m_Lagerkorrektur\\\" is-read-only.bind=\\\"models.data.$m_Lagerkorrektur.Id > 0\\\" id-artikel.bind=\\\"models.data.$m_Lagerkorrektur.IdArtikel\\\" where.bind=\\\"[['Status.Typ', 0]]\\\"></artikel> </div> <div class=\\\"col-xs-12 col-sm-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Lagerkorrektur.IdLagerVon && !(models.data.$m_Lagerkorrektur.IdLagerNach && models.data.$m_LagerVon.IsMHDChargeDeaktiviert && !models.data.$m_LagerNach.IsMHDChargeDeaktiviert)\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_mengeaus_caption\\\"></div> <mhd-charge-menge-ausw view-model.ref=\\\"r_mengeAus\\\" main-model.bind=\\\"models.data.$m_Lagerkorrektur\\\" id-artikel.bind=\\\"models.data.$m_Lagerkorrektur.IdArtikel\\\" menge-property=\\\"Menge\\\" is-required=\\\"true\\\" id-einheit.bind=\\\"models.data.$m_Artikel.IdLagereinheit\\\" id-lager.bind=\\\"models.data.$m_Lagerkorrektur.IdLagerVon\\\" is-mhd-charge-lager-deaktiviert.bind=\\\"(!models.data.$m_Lagerkorrektur.IdLagerNach && models.data.$m_LagerVon.IsMHDChargeDeaktiviert) || (models.data.$m_Lagerkorrektur.IdLagerNach && models.data.$m_LagerVon.IsMHDChargeDeaktiviert && models.data.$m_LagerNach.IsMHDChargeDeaktiviert)\\\"></mhd-charge-menge-ausw> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"!models.data.$m_Lagerkorrektur.IdLagerVon || (models.data.$m_Lagerkorrektur.IdLagerNach && !models.data.$m_LagerNach.IsMHDChargeDeaktiviert && models.data.$m_LagerVon.IsMHDChargeDeaktiviert)\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_mengeerf_caption\\\"></div> <mhd-charge-menge-erf view-model.ref=\\\"r_mengeErf\\\" main-model.bind=\\\"models.data.$m_Lagerkorrektur\\\" id-artikel.bind=\\\"models.data.$m_Lagerkorrektur.IdArtikel\\\" menge-property=\\\"Menge\\\" is-required=\\\"true\\\" is-mhd-charge-lager-deaktiviert.bind=\\\"models.data.$m_LagerNach.IsMHDChargeDeaktiviert\\\"></mhd-charge-menge-erf> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_lagereinheit_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lagereinheitOptions\\\" view-model.ref=\\\"r_lagereinheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lagerkorrektur-edit.r_kommentar_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_kommentarOptions\\\" view-model.ref=\\\"r_kommentar\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Lagerkorrektur\\\" is-default.bind=\\\"true\\\" id-art-property-name=\\\"$m_Lagerkorrektur.IdLagerbuchungsart\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class LagerkorrekturListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"lagerkorrektur-list\";\n        this.title = \"lagerkorrektur-list.lagerkorrektur-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Lagerkorrektur\",\n            \"webApiAction\": \"ERP/Lager/Lagerkorrektur\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Lagerbuchungsart': null,\n                'LagerVon': null,\n                'LagerNach': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_lagkDatum\",\n                \"caption\": \"lagerkorrektur-list.r_lagkdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_lagkLagerbuchungsart\",\n                \"caption\": \"lagerkorrektur-list.r_lagklagerbuchungsart_caption\",\n                \"bindTo\": \"Lagerbuchungsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_lagkLagerVon\",\n                \"caption\": \"lagerkorrektur-list.r_lagklagervon_caption\",\n                \"bindTo\": \"LagerVon.BezeichnungFQ\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagkLagerNach\",\n                \"caption\": \"lagerkorrektur-list.r_lagklagernach_caption\",\n                \"bindTo\": \"LagerNach.BezeichnungFQ\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagkArtikelnr\",\n                \"caption\": \"lagerkorrektur-list.r_lagkartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_lagkArtikel\",\n                \"caption\": \"lagerkorrektur-list.r_lagkartikel_caption\",\n                \"bindTo\": \"Artikel.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagkMenge\",\n                \"caption\": \"lagerkorrektur-list.r_lagkmenge_caption\",\n                \"bindTo\": \"Menge\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_lagkLagereinheit\",\n                \"caption\": \"lagerkorrektur-list.r_lagklagereinheit_caption\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_lagkKommentar\",\n                \"caption\": \"lagerkorrektur-list.r_lagkkommentar_caption\",\n                \"bindTo\": \"Kommentar\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_lagkStatus\",\n                \"caption\": \"lagerkorrektur-list.r_lagkstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lagerkorrekturGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lagerkorrekturGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Lagerkorrektur\"\n            },\n            \"dataModel\": \"$m_Lagerkorrektur\",\n            \"editUrl\": \"ERP/Lager/Lagerkorrektur\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lagerkorrekturGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lagerkorrekturGridOptions\",\n                \"optionsNameFQ\": \"r_lagerkorrekturGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lagerkorrekturGridOptions\\\" view-model.ref=\\\"r_lagerkorrekturGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ArbeitszeitBenutzerZuteilungEditUtils\n} from \"./arbeitszeit-benutzer-zuteilung-edit-utils\";\n\n@fwx.autoinject\nexport class ArbeitszeitBenutzerZuteilungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ArbeitszeitBenutzerZuteilungEditUtils: ArbeitszeitBenutzerZuteilungEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"arbeitszeit-benutzer-zuteilung-edit\";\n        this.title = \"arbeitszeit-benutzer-zuteilung-edit.arbeitszeit-benutzer-zuteilung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitBenutzerZuteilung\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitBenutzerZuteilung\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArbeitszeitBenutzerZuteilungEditUtils.doNeuerMitarbeiterstatus\",\n                \"bindToFQ\": \"functions.$f_ArbeitszeitBenutzerZuteilungEditUtils.doNeuerMitarbeiterstatus\"\n            }\n        });\n        this.addFunction(\"$f_ArbeitszeitBenutzerZuteilungEditUtils\", $f_ArbeitszeitBenutzerZuteilungEditUtils, \"functions.$f_ArbeitszeitBenutzerZuteilungEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"arbeitszeit-benutzer-zuteilung-edit.r_arbeitszeitzuteilungbenutzer_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_ArbeitszeitBenutzerZuteilung.Id\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitBenutzerZuteilung\",\n                \"bindTo\": \"IdBenutzer\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitBenutzerZuteilung.IdBenutzer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_arbeitszeitZuteilungBenutzer\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitZuteilungBenutzerOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitZuteilungBenutzerOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./elements/arbeitszeit-benutzer-zuteilung/arbeitszeit-benutzer-zuteilung\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: arbeitszeit-benutzer-zuteilung-edit.r_arbeitszeitzuteilungbenutzer_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_arbeitszeitZuteilungBenutzerOptions\\\" view-model.ref=\\\"r_arbeitszeitZuteilungBenutzer\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <arbeitszeit-benutzer-zuteilung view-model.ref=\\\"r_arbeitszeitBenutzerZuteilung\\\" id.bind=\\\"variables.data.$id\\\"></arbeitszeit-benutzer-zuteilung> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArbeitszeitBenutzerZuteilungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"arbeitszeit-benutzer-zuteilung-list\";\n        this.title = \"arbeitszeit-benutzer-zuteilung-list.arbeitszeit-benutzer-zuteilung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitBenutzerZuteilung\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitBenutzerZuteilung\",\n            \"webApiExpand\": {\n                'Benutzer': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_benutzerZuteilungBezeichnung\",\n                \"caption\": \"arbeitszeit-benutzer-zuteilung-list.r_benutzerzuteilungbezeichnung_caption\",\n                \"bindTo\": \"Benutzer.Name\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_arbeitszeitBenutzerZuteilungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitBenutzerZuteilungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitBenutzerZuteilung\"\n            },\n            \"dataModel\": \"$m_ArbeitszeitBenutzerZuteilung\",\n            \"editUrl\": \"ERP/Arbeitszeit/ArbeitszeitBenutzerZuteilung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_arbeitszeitBenutzerZuteilungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitBenutzerZuteilungGridOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitBenutzerZuteilungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_arbeitszeitBenutzerZuteilungGridOptions\\\" view-model.ref=\\\"r_arbeitszeitBenutzerZuteilungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, bindable, observable } from \"aurelia-framework\";\nimport { GlobalizationService, RestService } from '../../../../../../framework/base/export';\nimport { ArbeitszeitMitarbeiterstatusAustritt } from \"../../../../../elements/arbeitszeit-mitarbeiterstatus-austritt/arbeitszeit-mitarbeiterstatus-austritt\";\nimport { ArbeitszeitMitarbeiterstatus } from \"../../../../../elements/arbeitszeit-mitarbeiterstatus/arbeitszeit-mitarbeiterstatus\";\nimport { IArbeitszeitBenutzerZuteilung } from './../../../../../interfaces/arbeitszeit-benutzer-zuteilung';\nimport { IArbeitszeitMitarbeiterstatus } from \"../../../../../interfaces/arbeitszeit-mitarbeiterstatus\";\n\n@autoinject\nexport class ArbeitszeitBenutzerZuteilung {\n\n  constructor(\n    private _globalizationService: GlobalizationService,\n    private _restService: RestService) { }\n\n  @bindable @observable id: any;\n  @bindable idPartei: any;\n  hasDataChanged: boolean;\n  arbeitszeitBenutzerzuteilung: IArbeitszeitBenutzerZuteilung;\n\n  @observable idMitarbeiterstatus: number;\n  mitarbeiterstatusList: IArbeitszeitMitarbeiterstatus[];\n  mitarbeiterstatus: IArbeitszeitMitarbeiterstatus;\n  arbeitszeitMitarbeiterstatus: ArbeitszeitMitarbeiterstatus;\n  arbeitszeitMitarbeiterstatusAustritt: ArbeitszeitMitarbeiterstatusAustritt;\n\n  mitarbeiterstatusSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"Bezeichnung\",\n    valueExpr: \"IdMitarbeiterstatus\",\n    showClearButton: true,\n    bindingOptions: {\n      dataSource: \"mitarbeiterstatusList\",\n      value: \"idMitarbeiterstatus\",\n    }\n  };\n\n  vordienstzeitenMonateNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    readOnly: true,\n    bindingOptions: {\n      value: \"mitarbeiterstatus.VordienstzeitenMonate\"\n    }\n  }\n\n  vordienstzeitenTageNumberBoxOptions: DevExpress.ui.dxNumberBoxOptions = {\n    format: this._globalizationService.getNumberFormat(\"n0\"),\n    readOnly: true,\n    bindingOptions: {\n      value: \"mitarbeiterstatus.VordienstzeitenTage\"\n    }\n  }\n\n  austrittMitarbeiterstatusButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Austritt\",\n    onClick: () => {\n      this.arbeitszeitMitarbeiterstatusAustritt.show({\n        callback: (austrittsDatum: Date) => {\n          this.mitarbeiterstatusAbgrenzen(austrittsDatum);\n        }\n      })\n    }\n  }\n\n  idChanged(e) {\n    if (this.id > 0) {\n      this.loadMitarbeiterstatus();\n    } else {\n      this.arbeitszeitBenutzerzuteilung = {};\n      this.idPartei = null;\n      this.idMitarbeiterstatus = null;\n      this.mitarbeiterstatus = null;\n    }\n  }\n\n  idMitarbeiterstatusChanged(e) {\n    if (this.idMitarbeiterstatus > 0) {\n      this.mitarbeiterstatus = this.mitarbeiterstatusList\n        .filter(c => c.IdMitarbeiterstatus == this.idMitarbeiterstatus)[0] || null;\n    } else {\n      this.mitarbeiterstatus = null;\n    }\n  }\n\n  doNeuerMitarbeiterstatus() {\n    this.arbeitszeitMitarbeiterstatus.show({\n      idArbeitszeitBenutzerZuteilung: this.id,\n      callback: async (arbeitszeitBenutzerZuteilung: IArbeitszeitBenutzerZuteilung) => {\n        this.mitarbeiterstatusErstellen(arbeitszeitBenutzerZuteilung);\n      }\n    });\n  }\n\n  private async mitarbeiterstatusAbgrenzen(austrittsDatum: Date) {\n    this.mitarbeiterstatus.Austrittsdatum = austrittsDatum;\n\n    await this._restService.post({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/austritt`),\n      data: {\n        IdMitarbeiterstatus: this.idMitarbeiterstatus,\n        Austrittsdatum: austrittsDatum\n      }\n    });\n\n    this.loadMitarbeiterstatus();\n  }\n\n  private async loadMitarbeiterstatus() {\n    this.mitarbeiterstatusList = await this._restService.get({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/${this.id}`)\n    });\n\n    if (this.mitarbeiterstatusList.length > 0) {\n      this.idMitarbeiterstatus = this.mitarbeiterstatusList[0].IdMitarbeiterstatus;\n    }\n  }\n\n  private async mitarbeiterstatusErstellen(arbeitszeitBenutzerZuteilung: IArbeitszeitBenutzerZuteilung) {\n    const r = await this._restService.post({\n      url: this._restService.getApiUrl(`ERP/ArbeitszeitMitarbeiterstatus/benutzerzuteilung`),\n      data: {\n        IdArbeitszeitBenutzerZuteilung: this.id,\n        Eintrittsdatum: arbeitszeitBenutzerZuteilung.Eintrittsdatum,\n        IdArbeitszeitmuster: arbeitszeitBenutzerZuteilung.IdArbeitszeitmuster,\n        IdAbrechnungsmodell: arbeitszeitBenutzerZuteilung.IdAbrechnungsmodell,\n        IdKostenstelle: arbeitszeitBenutzerZuteilung.IdKostenstelle,\n        IdAnspruchsgruppe: arbeitszeitBenutzerZuteilung.IdAnspruchsgruppe,\n        IdGehaltsSchema: arbeitszeitBenutzerZuteilung.IdGehaltsSchema,\n        IdKalender: arbeitszeitBenutzerZuteilung.IdKalender,\n        BeschaeftigungsausmassProzent: arbeitszeitBenutzerZuteilung.BeschaeftigungsausmassProzent,\n        Personalnummer: arbeitszeitBenutzerZuteilung.Personalnummer,\n        VordienstzeitenMonate: arbeitszeitBenutzerZuteilung.VordienstzeitenMonate,\n        VordienstzeitenTage: arbeitszeitBenutzerZuteilung.VordienstzeitenTage\n      }\n    });\n\n    await this.loadMitarbeiterstatus();\n    this.idMitarbeiterstatus = r.IdMitarbeiterstatus;\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./arbeitszeit-benutzer-zuteilung.less\\\"></require> <require from=\\\"../../../../../elements/arbeitszeit-beschaeftigungsausmass-zuteilung-list/arbeitszeit-beschaeftigungsausmass-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-kostenstelle-zuteilung-list/arbeitszeit-kostenstelle-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-anspruchsgruppe-zuteilung-list/arbeitszeit-anspruchsgruppe-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-gehaltsschema-zuteilung-list/arbeitszeit-gehaltsschema-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-kalender-zuteilung-list/arbeitszeit-kalender-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list/arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-mitarbeiterstatus/arbeitszeit-mitarbeiterstatus\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-mitarbeiterstatus-austritt/arbeitszeit-mitarbeiterstatus-austritt\\\"> </require> <require from=\\\"../../../../../elements/arbeitszeit-freie-information-list/arbeitszeit-freie-information-list\\\"> </require> <div class=\\\"container small-hpad\\\"> <div class=\\\"col-xs-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Mitarbeiterstatus</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-12 col-lg-12 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Mitarbeiterstatus</div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"mitarbeiterstatusSelectBoxOptions\\\"></dx-widget> </div> <div if.bind=\\\"idMitarbeiterstatus != null\\\" class=\\\"col-xs-12 col-md-6 col-lg-5 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Vordienstzeiten Monate</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"vordienstzeitenMonateNumberBoxOptions\\\"></dx-widget> </div> <div if.bind=\\\"idMitarbeiterstatus != null\\\" class=\\\"col-xs-12 col-md-6 col-lg-5 t--has-editor-caption\\\"> <div class=\\\"t--editor-caption\\\">Vordienstzeiten Tage</div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"vordienstzeitenTageNumberBoxOptions\\\"></dx-widget> </div> <div if.bind=\\\"idMitarbeiterstatus != null && mitarbeiterstatus.Austrittsdatum == null\\\" class=\\\"col-xs-12 col-md-6 col-lg-2\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"austrittMitarbeiterstatusButtonOptions\\\"></dx-widget> </div> </div> </div> </div> <div if.bind=\\\"idMitarbeiterstatus != null\\\" class=\\\"col-xs-12 arbeitszeit-benutzer-zuteilung__container__detail\\\"> <arbeitszeit-beschaeftigungsausmass-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-beschaeftigungsausmass-zuteilung-list> <arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-abrechnungsmodell-arbeitszeitmuster-zuteilung-list> <arbeitszeit-anspruchsgruppe-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-anspruchsgruppe-zuteilung-list> <arbeitszeit-gehaltsschema-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-gehaltsschema-zuteilung-list> <arbeitszeit-kostenstelle-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-kostenstelle-zuteilung-list> <arbeitszeit-kalender-zuteilung-list mitarbeiterstatus.bind=\\\"mitarbeiterstatus\\\"></arbeitszeit-kalender-zuteilung-list> </div> </div> </div> </div> <div class=\\\"col-xs-6\\\" if.bind=\\\"idMitarbeiterstatus != null\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2>Freie Informationen</h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <arbeitszeit-freie-information-list id-partei.bind=\\\"idPartei\\\"></arbeitszeit-freie-information-list> </div> </div> </div> </div> </div> <arbeitszeit-mitarbeiterstatus view-model.ref=\\\"arbeitszeitMitarbeiterstatus\\\"></arbeitszeit-mitarbeiterstatus> <arbeitszeit-mitarbeiterstatus-austritt view-model.ref=\\\"arbeitszeitMitarbeiterstatusAustritt\\\"></arbeitszeit-mitarbeiterstatus-austritt> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".arbeitszeit-benutzer-zuteilung__container__detail {\\n  display: grid;\\n  grid-gap: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArbeitszeitKostenstelleEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"arbeitszeit-kostenstelle-edit\";\n        this.title = \"arbeitszeit-kostenstelle-edit.arbeitszeit-kostenstelle-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitKostenstelle\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitKostenstelle\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"arbeitszeit-kostenstelle-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitKostenstelle\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitKostenstelle.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"arbeitszeit-kostenstelle-edit.r_sortnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitKostenstelle\",\n                \"bindTo\": \"SortNr\",\n                \"bindToFQ\": \"models.data.$m_ArbeitszeitKostenstelle.SortNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sortNr\",\n            \"options\": {\n                \"optionsName\": \"r_sortNrOptions\",\n                \"optionsNameFQ\": \"r_sortNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-10 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: arbeitszeit-kostenstelle-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: arbeitszeit-kostenstelle-edit.r_sortnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sortNrOptions\\\" view-model.ref=\\\"r_sortNr\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArbeitszeitKostenstelleListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"arbeitszeit-kostenstelle-list\";\n        this.title = \"arbeitszeit-kostenstelle-list.arbeitszeit-kostenstelle-list_caption\";\n        this.addModel({\n            \"id\": \"$m_ArbeitszeitKostenstelle\",\n            \"webApiAction\": \"ERP/Arbeitszeit/ArbeitszeitKostenstelle\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_kostenstelleBezeichnung\",\n                \"caption\": \"arbeitszeit-kostenstelle-list.r_kostenstellebezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }, {\n                \"id\": \"r_kostenstelleSortNr\",\n                \"caption\": \"arbeitszeit-kostenstelle-list.r_kostenstellesortnr_caption\",\n                \"bindTo\": \"SortNr\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_arbeitszeitKostenstelleGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitKostenstelleGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_ArbeitszeitKostenstelle\"\n            },\n            \"dataModel\": \"$m_ArbeitszeitKostenstelle\",\n            \"editUrl\": \"ERP/Arbeitszeit/ArbeitszeitKostenstelle\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_arbeitszeitKostenstelleGrid\",\n            \"options\": {\n                \"optionsName\": \"r_arbeitszeitKostenstelleGridOptions\",\n                \"optionsNameFQ\": \"r_arbeitszeitKostenstelleGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_arbeitszeitKostenstelleGridOptions\\\" view-model.ref=\\\"r_arbeitszeitKostenstelleGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    ArtikelEditUtils\n} from \"./artikel-edit-utils\";\n\n@fwx.autoinject\nexport class ArtikelEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_ArtikelEditUtils: ArtikelEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"artikel-edit\";\n        this.title = \"artikel-edit.artikel-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Artikel\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"webApiExpand\": {\n                'Artikelkategorien': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"custom\": {\n                'copyFunc': '$f_ArtikelEditUtils.copyArtikel'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelLieferantRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelLieferant\",\n            \"webApiExpand\": {\n                'Lieferant': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelLieferantEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelLieferant\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelKundeEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelKunde\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelKundeRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelKunde\",\n            \"webApiExpand\": {\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelEinheitEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelEinheit\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelEinheitRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelEinheit\",\n            \"webApiExpand\": {\n                'Einheit': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelMindestbestandRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelMindestbestand\",\n            \"webApiExpand\": {\n                'Filiale': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelMindestbestandEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelMindestbestand\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelStuecklisteRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelStueckliste\",\n            \"webApiExpand\": {\n                'ArtikelRW': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelStueckliste\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelCopy\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EinstandspreisRel\",\n            \"webApiAction\": \"ERP/Kalkulation/Einstandspreis\",\n            \"webApiExpand\": {\n                'Firma': {\n                    'expand': {\n                        'Waehrung': null\n                    }\n                },\n                'Artikel': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'VerknuepfteEntitaet': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EinstandspreisEdit\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ArtikelEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.artikelBestellungErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.artikelBestellungErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.artikelProdAuftragErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.artikelProdAuftragErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.doBestellvorschlagBerechnenCommand\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.doBestellvorschlagBerechnenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.showArtikelartAendernCommand\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.showArtikelartAendernCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelEditUtils.calcLieferterminCommand\",\n                \"bindToFQ\": \"functions.$f_ArtikelEditUtils.calcLieferterminCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"artikelLieferantEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ArtikelLieferantEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ArtikelLieferantEdit.Id\"\n                }\n            }],\n            \"id\": \"artikelLieferantEditPopup\",\n            \"options\": {\n                \"optionsName\": \"artikelLieferantEditPopupOptions\",\n                \"optionsNameFQ\": \"artikelLieferantEditPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.artikellieferanteditpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"1150px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"artikelKundeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ArtikelKundeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ArtikelKundeEdit.Id\"\n                }\n            }],\n            \"id\": \"artikelKundeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"artikelKundeEditPopupOptions\",\n                \"optionsNameFQ\": \"artikelKundeEditPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.artikelkundeeditpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"1150px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"artikelEinheitEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ArtikelEinheitEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ArtikelEinheitEdit.Id\"\n                }\n            }],\n            \"id\": \"artikelEinheitEditPopup\",\n            \"options\": {\n                \"optionsName\": \"artikelEinheitEditPopupOptions\",\n                \"optionsNameFQ\": \"artikelEinheitEditPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.artikeleinheiteditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1150px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"artikelMindestbestandEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ArtikelMindestbestandEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ArtikelMindestbestandEdit.Id\"\n                }\n            }],\n            \"id\": \"artikelMindestbestandEditPopup\",\n            \"options\": {\n                \"optionsName\": \"artikelMindestbestandEditPopupOptions\",\n                \"optionsNameFQ\": \"artikelMindestbestandEditPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.artikelmindestbestandeditpopup_caption\",\n            \"height\": \"400px\",\n            \"width\": \"700px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"artikelStuecklisteEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ArtikelStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ArtikelStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"artikelStuecklisteEditPopup\",\n            \"options\": {\n                \"optionsName\": \"artikelStuecklisteEditPopupOptions\",\n                \"optionsNameFQ\": \"artikelStuecklisteEditPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.artikelstuecklisteeditpopup_caption\",\n            \"height\": \"400px\",\n            \"width\": \"700px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_ArtikelEditUtils\", $f_ArtikelEditUtils, \"functions.$f_ArtikelEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"artikel-edit.r_nummer_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikel && models.data.$m_Artikel.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Nummer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelart\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_artikelart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikel && models.data.$m_Artikel.Id\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IdArtikelart\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IdArtikelart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_ArtikelEditUtils.onArtikelartChanged\",\n            \"id\": \"r_artikelart\",\n            \"options\": {\n                \"optionsName\": \"r_artikelartOptions\",\n                \"optionsNameFQ\": \"r_artikelartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuercode\",\n            \"filter\": [\"ShowInArtikel\", true],\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_steuercode_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Artikel.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IdSteuercode\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IdSteuercode\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_steuercode\",\n            \"options\": {\n                \"optionsName\": \"r_steuercodeOptions\",\n                \"optionsNameFQ\": \"r_steuercodeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"100px\",\n            \"maxLength\": 500,\n            \"caption\": \"artikel-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 500\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabEinstellungen\",\n                \"caption\": \"artikel-edit.r_tabeinstellungen_caption\"\n            }, {\n                \"id\": \"r_tabEinheiten\",\n                \"caption\": \"artikel-edit.r_tabeinheiten_caption\"\n            }, {\n                \"id\": \"r_tabKonditionen\",\n                \"caption\": \"artikel-edit.r_tabkonditionen_caption\"\n            }, {\n                \"id\": \"r_tabLager\",\n                \"caption\": \"artikel-edit.r_tablager_caption\"\n            }, {\n                \"id\": \"r_tabMindestbestand\",\n                \"caption\": \"artikel-edit.r_tabmindestbestand_caption\"\n            }, {\n                \"id\": \"r_tabStueckliste\",\n                \"caption\": \"artikel-edit.r_tabstueckliste_caption\"\n            }, {\n                \"id\": \"r_tabKalkulation\",\n                \"caption\": \"artikel-edit.r_tabkalkulation_caption\"\n            }, {\n                \"id\": \"r_sonstigeDaten\",\n                \"caption\": \"artikel-edit.r_sonstigedaten_caption\"\n            }, {\n                \"id\": \"r_tabDashboard\",\n                \"caption\": \"artikel-edit.r_tabdashboard_caption\",\n                \"if\": \"models.data.$m_Artikel.Id\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelBezugTyp\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_bezugtyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"BezugTyp\",\n                \"bindToFQ\": \"models.data.$m_Artikel.BezugTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_bezugTyp\",\n            \"options\": {\n                \"optionsName\": \"r_bezugTypOptions\",\n                \"optionsNameFQ\": \"r_bezugTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"bestellvorschlagTyp\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_bestellvorschlagtyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"BestellvorschlagTyp\",\n                \"bindToFQ\": \"models.data.$m_Artikel.BestellvorschlagTyp\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_bestellvorschlagTyp\",\n            \"options\": {\n                \"optionsName\": \"r_bestellvorschlagTypOptions\",\n                \"optionsNameFQ\": \"r_bestellvorschlagTypOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 10,\n            \"caption\": \"artikel-edit.r_eindeckperiode_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Eindeckperiode\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Eindeckperiode\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"duration\",\n                    \"parameters\": [{\n                        \"name\": \"durationPeriodType\",\n                        \"value\": \"2\"\n                    }]\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 10\n                    }]\n                }\n            }],\n            \"id\": \"r_eindeckPeriode\",\n            \"options\": {\n                \"optionsName\": \"r_eindeckPeriodeOptions\",\n                \"optionsNameFQ\": \"r_eindeckPeriodeOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_bezeichnungeditierbar_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IsBezeichnungEditierbar\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IsBezeichnungEditierbar\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bezeichnungEditierbar\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungEditierbarOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungEditierbarOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_lagerfuehrend_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IsLagerfuehrend\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IsLagerfuehrend\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lagerfuehrend\",\n            \"options\": {\n                \"optionsName\": \"r_lagerfuehrendOptions\",\n                \"optionsNameFQ\": \"r_lagerfuehrendOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_mhd_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"SupportsMHD\",\n                \"bindToFQ\": \"models.data.$m_Artikel.SupportsMHD\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mhd\",\n            \"options\": {\n                \"optionsName\": \"r_mhdOptions\",\n                \"optionsNameFQ\": \"r_mhdOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_charge_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"SupportsCharge\",\n                \"bindToFQ\": \"models.data.$m_Artikel.SupportsCharge\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_charge\",\n            \"options\": {\n                \"optionsName\": \"r_chargeOptions\",\n                \"optionsNameFQ\": \"r_chargeOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 0,\n            \"acceptType\": \"image/*\",\n            \"height\": \"230px\",\n            \"maxFileSizeMB\": 3,\n            \"showClearButton\": true,\n            \"caption\": \"artikel-edit.r_bild_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Bild\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Bild\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_bild\",\n            \"options\": {\n                \"optionsName\": \"r_bildOptions\",\n                \"optionsNameFQ\": \"r_bildOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einhEinheit\",\n                \"caption\": \"artikel-edit.r_einheinheit_caption\",\n                \"bindTo\": \"Einheit.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einhUmrechner\",\n                \"caption\": \"artikel-edit.r_einhumrechner_caption\",\n                \"bindTo\": \"Umrechner\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_einhEAN\",\n                \"caption\": \"artikel-edit.r_einhean_caption\",\n                \"bindTo\": \"EAN\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einhIsVerkaufseinheit\",\n                \"caption\": \"artikel-edit.r_einhisverkaufseinheit_caption\",\n                \"bindTo\": \"IsVerkaufseinheit\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einhGewichtNetto\",\n                \"caption\": \"artikel-edit.r_einhgewichtnetto_caption\",\n                \"bindTo\": \"GewichtNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_einhGewichtBrutto\",\n                \"caption\": \"artikel-edit.r_einhgewichtbrutto_caption\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_einhLaenge\",\n                \"caption\": \"artikel-edit.r_einhlaenge_caption\",\n                \"bindTo\": \"Laenge\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_einhBreite\",\n                \"caption\": \"artikel-edit.r_einhbreite_caption\",\n                \"bindTo\": \"Breite\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_einhHoehe\",\n                \"caption\": \"artikel-edit.r_einhhoehe_caption\",\n                \"bindTo\": \"Hoehe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_einheitGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_einheitGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_einheitgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArtikelEinheitRel\",\n                \"bindTo\": \"IdArtikel\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheitRel.IdArtikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_ArtikelEinheitEdit\",\n            \"idEditPopup\": \"artikelEinheitEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_einheitGrid\",\n            \"options\": {\n                \"optionsName\": \"r_einheitGridOptions\",\n                \"optionsNameFQ\": \"r_einheitGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_liefGpNummerLieferant\",\n                \"caption\": \"artikel-edit.r_liefgpnummerlieferant_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefFirmenbez1\",\n                \"caption\": \"artikel-edit.r_lieffirmenbez1_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefOrt\",\n                \"caption\": \"artikel-edit.r_liefort_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefEAN\",\n                \"caption\": \"artikel-edit.r_liefean_caption\",\n                \"bindTo\": \"EAN\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefLieferantArtikelNummer\",\n                \"caption\": \"artikel-edit.r_lieflieferantartikelnummer_caption\",\n                \"bindTo\": \"LieferantArtikelNr\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefArtikelbezeichnung\",\n                \"caption\": \"artikel-edit.r_liefartikelbezeichnung_caption\",\n                \"bindTo\": \"LieferantArtikelbezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefHauptlieferant\",\n                \"caption\": \"artikel-edit.r_liefhauptlieferant_caption\",\n                \"bindTo\": \"IsHauptlieferant\",\n                \"width\": \"80px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferantGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferantGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_lieferantgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArtikelLieferantRel\",\n                \"bindTo\": \"IdArtikel\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferantRel.IdArtikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_ArtikelLieferantEdit\",\n            \"idEditPopup\": \"artikelLieferantEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferantGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantGridOptions\",\n                \"optionsNameFQ\": \"r_lieferantGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_kunGpNummerKunde\",\n                \"caption\": \"artikel-edit.r_kungpnummerkunde_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kunFirmenbez1\",\n                \"caption\": \"artikel-edit.r_kunfirmenbez1_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kunOrt\",\n                \"caption\": \"artikel-edit.r_kunort_caption\",\n                \"bindTo\": \"Kunde.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_kunKundeArtikelNummer\",\n                \"caption\": \"artikel-edit.r_kunkundeartikelnummer_caption\",\n                \"bindTo\": \"KundeArtikelNr\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kunArtikelbezeichnung\",\n                \"caption\": \"artikel-edit.r_kunartikelbezeichnung_caption\",\n                \"bindTo\": \"KundeArtikelbezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kundeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kundeGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_kundegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArtikelKundeRel\",\n                \"bindTo\": \"IdArtikel\",\n                \"bindToFQ\": \"models.data.$m_ArtikelKundeRel.IdArtikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_ArtikelKundeEdit\",\n            \"idEditPopup\": \"artikelKundeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kundeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kundeGridOptions\",\n                \"optionsNameFQ\": \"r_kundeGridOptions\"\n            }\n        });\n        this.addNestedForm(\"konditionListNested\", [{\n            \"to\": \"$v_idArtikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_einpVerkEntBezeichnung\",\n                \"caption\": \"artikel-edit.r_einpverkentbezeichnung_caption\",\n                \"minWidth\": 100,\n                \"onCellPrepared\": \"functions.$f_ArtikelEditUtils.onEinstandspreisVerknEntitaetCellPrepared\"\n            }, {\n                \"id\": \"r_einpFirma\",\n                \"caption\": \"artikel-edit.r_einpfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einpDatum\",\n                \"caption\": \"artikel-edit.r_einpdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_einpBestandAlt\",\n                \"caption\": \"artikel-edit.r_einpbestandalt_caption\",\n                \"bindTo\": \"BestandAlt\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpZugang\",\n                \"caption\": \"artikel-edit.r_einpzugang_caption\",\n                \"bindTo\": \"Zugang\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_einpEinheit\",\n                \"caption\": \"artikel-edit.r_einpeinheit_caption\",\n                \"bindTo\": \"Artikel.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_einpBerechnEinstandspreis\",\n                \"caption\": \"artikel-edit.r_einpberechneinstandspreis_caption\",\n                \"bindTo\": \"BerechnEinstandspreis\",\n                \"width\": \"120px\",\n                \"format\": \"n8\"\n            }, {\n                \"id\": \"r_einpDurchschnEinstandspreis\",\n                \"caption\": \"artikel-edit.r_einpdurchschneinstandspreis_caption\",\n                \"bindTo\": \"DurchschnEinstandspreis\",\n                \"width\": \"120px\",\n                \"format\": \"n8\"\n            }, {\n                \"id\": \"r_einpWaehrung\",\n                \"caption\": \"artikel-edit.r_einpwaehrung_caption\",\n                \"bindTo\": \"Firma.Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_einstandspreisGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_einstandspreisGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_einstandspreisgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_EinstandspreisRel\",\n                \"bindTo\": \"IdArtikel\",\n                \"bindToFQ\": \"models.data.$m_EinstandspreisRel.IdArtikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_EinstandspreisEdit\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_einstandspreisGrid\",\n            \"options\": {\n                \"optionsName\": \"r_einstandspreisGridOptions\",\n                \"optionsNameFQ\": \"r_einstandspreisGridOptions\"\n            }\n        });\n        this.addNestedForm(\"lagerbestandListNested\", [{\n            \"to\": \"$v_idArtikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.addNestedForm(\"lagerbestandDetailListNested\", [{\n            \"to\": \"$v_idArtikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.addNestedForm(\"lagerbuchungInfoListNested\", [{\n            \"to\": \"$v_idArtikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.addNestedForm(\"lagerbuchungListNested\", [{\n            \"to\": \"$v_idArtikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Artikel.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_mbFiliale\",\n                \"caption\": \"artikel-edit.r_mbfiliale_caption\",\n                \"bindTo\": \"Filiale.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_mbMindestbestand\",\n                \"caption\": \"artikel-edit.r_mbmindestbestand_caption\",\n                \"bindTo\": \"Mindestbestand\",\n                \"width\": \"120px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_mindestbestandGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_mindestbestandGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_mindestbestandgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArtikelMindestbestandRel\",\n                \"bindTo\": \"IdArtikel\",\n                \"bindToFQ\": \"models.data.$m_ArtikelMindestbestandRel.IdArtikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_ArtikelMindestbestandEdit\",\n            \"idEditPopup\": \"artikelMindestbestandEditPopup\",\n            \"height\": \"150px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_mindestbestandGrid\",\n            \"options\": {\n                \"optionsName\": \"r_mindestbestandGridOptions\",\n                \"optionsNameFQ\": \"r_mindestbestandGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_stklArtikelNr\",\n                \"caption\": \"artikel-edit.r_stklartikelnr_caption\",\n                \"bindTo\": \"ArtikelRW.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_stklArtikelbez\",\n                \"caption\": \"artikel-edit.r_stklartikelbez_caption\",\n                \"bindTo\": \"ArtikelRW.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_stklMenge\",\n                \"caption\": \"artikel-edit.r_stklmenge_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_stklEinheit\",\n                \"caption\": \"artikel-edit.r_stkleinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_stklFaktor\",\n                \"caption\": \"artikel-edit.r_stklfaktor_caption\",\n                \"bindTo\": \"Faktor\",\n                \"width\": \"150px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.StuecklisteFaktorTyp\"\n            }, {\n                \"id\": \"r_stklIsBeistellartikel\",\n                \"caption\": \"artikel-edit.r_stklisbeistellartikel_caption\",\n                \"bindTo\": \"IsBeistellartikel\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_stklBestandRW\",\n                \"caption\": \"artikel-edit.r_stklbestandrw_caption\",\n                \"bindTo\": \"BestandRW\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_stuecklisteGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_stuecklisteGridToolbarOptions\"\n            },\n            \"caption\": \"artikel-edit.r_stuecklistegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ArtikelStuecklisteRel\",\n                \"bindTo\": \"IdArtikelFW\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStuecklisteRel.IdArtikelFW\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editDataContext\": \"$m_ArtikelStuecklisteEdit\",\n            \"idEditPopup\": \"artikelStuecklisteEditPopup\",\n            \"height\": \"300px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_stuecklisteGrid\",\n            \"options\": {\n                \"optionsName\": \"r_stuecklisteGridOptions\",\n                \"optionsNameFQ\": \"r_stuecklisteGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_iswebshop_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\",\n                \"bindTo\": \"IsWebshop\",\n                \"bindToFQ\": \"models.data.$m_Artikel.IsWebshop\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isWebshop\",\n            \"options\": {\n                \"optionsName\": \"r_isWebshopOptions\",\n                \"optionsNameFQ\": \"r_isWebshopOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_copyPopup\",\n            \"options\": {\n                \"optionsName\": \"r_copyPopupOptions\",\n                \"optionsNameFQ\": \"r_copyPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.r_copypopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"700px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_ArtikelEditUtils.doCopyCommand\",\n                    \"bindToFQ\": \"functions.$f_ArtikelEditUtils.doCopyCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"artikel-edit.r_artikelcopynummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelCopy\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_ArtikelCopy.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_artikelCopyNummer\",\n            \"options\": {\n                \"optionsName\": \"r_artikelCopyNummerOptions\",\n                \"optionsNameFQ\": \"r_artikelCopyNummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelart\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_artikelcopyart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelCopy\",\n                \"bindTo\": \"IdArtikelart\",\n                \"bindToFQ\": \"models.data.$m_ArtikelCopy.IdArtikelart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_artikelCopyArt\",\n            \"options\": {\n                \"optionsName\": \"r_artikelCopyArtOptions\",\n                \"optionsNameFQ\": \"r_artikelCopyArtOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_artikelcopynotiz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelCopy\",\n                \"bindTo\": \"DoKopierenNotizen\",\n                \"bindToFQ\": \"models.data.$m_ArtikelCopy.DoKopierenNotizen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_artikelCopyNotiz\",\n            \"options\": {\n                \"optionsName\": \"r_artikelCopyNotizOptions\",\n                \"optionsNameFQ\": \"r_artikelCopyNotizOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-edit.r_artikelcopykonditionen_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelCopy\",\n                \"bindTo\": \"DoKopierenKonditionen\",\n                \"bindToFQ\": \"models.data.$m_ArtikelCopy.DoKopierenKonditionen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_artikelCopyKonditionen\",\n            \"options\": {\n                \"optionsName\": \"r_artikelCopyKonditionenOptions\",\n                \"optionsNameFQ\": \"r_artikelCopyKonditionenOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_artikelArtPopup\",\n            \"options\": {\n                \"optionsName\": \"r_artikelArtPopupOptions\",\n                \"optionsNameFQ\": \"r_artikelArtPopupOptions\"\n            },\n            \"caption\": \"artikel-edit.r_artikelartpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_ArtikelEditUtils.doArtikelartAendernCommand\",\n                    \"bindToFQ\": \"functions.$f_ArtikelEditUtils.doArtikelartAendernCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelart\",\n            \"filters\": [],\n            \"caption\": \"artikel-edit.r_artikelartedit_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_artikelartEdit\",\n            \"options\": {\n                \"optionsName\": \"r_artikelartEditOptions\",\n                \"optionsNameFQ\": \"r_artikelartEditOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./artikel-lieferant-edit-form\\\"></require> <require from=\\\"./artikel-kunde-edit-form\\\"></require> <require from=\\\"./artikel-einheit-edit-form\\\"></require> <require from=\\\"./artikel-mindestbestand-edit-form\\\"></require> <require from=\\\"./artikel-stueckliste-edit-form\\\"></require> <require from=\\\"../../kalkulation/kondition/kondition-list-nested-form\\\"></require> <require from=\\\"../../lager/lagerbestand/lagerbestand-list-nested-form\\\"></require> <require from=\\\"../../lager/lagerbestand/lagerbestand-detail-list-nested-form\\\"></require> <require from=\\\"../../lager/lagerbestand/lagerbuchung-info-list-nested-form\\\"></require> <require from=\\\"../../lager/lagerbestand/lagerbuchung-list-nested-form\\\"></require> <require from=\\\"../../../elements/kalkulation-container/kalkulation-container\\\"></require> <require from=\\\"../../../elements/artikelkategorie/artikelkategorie\\\"></require> <require from=\\\"../../../dashboard/viewer/viewer\\\"></require> <require from=\\\"../../../elements/calc-liefertermin/calc-liefertermin\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"artikelLieferantEditPopupOptions\\\" view-model.ref=\\\"artikelLieferantEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <artikel-lieferant-edit-form view-model.ref=\\\"artikelLieferantEditPopupContent\\\" is-edit-popup=\\\"true\\\"></artikel-lieferant-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"artikelKundeEditPopupOptions\\\" view-model.ref=\\\"artikelKundeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <artikel-kunde-edit-form view-model.ref=\\\"artikelKundeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></artikel-kunde-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"artikelEinheitEditPopupOptions\\\" view-model.ref=\\\"artikelEinheitEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <artikel-einheit-edit-form view-model.ref=\\\"artikelEinheitEditPopupContent\\\" is-edit-popup=\\\"true\\\"></artikel-einheit-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"artikelMindestbestandEditPopupOptions\\\" view-model.ref=\\\"artikelMindestbestandEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <artikel-mindestbestand-edit-form view-model.ref=\\\"artikelMindestbestandEditPopupContent\\\" is-edit-popup=\\\"true\\\"></artikel-mindestbestand-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"artikelStuecklisteEditPopupOptions\\\" view-model.ref=\\\"artikelStuecklisteEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <artikel-stueckliste-edit-form view-model.ref=\\\"artikelStuecklisteEditPopupContent\\\" is-edit-popup=\\\"true\\\"></artikel-stueckliste-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_artikelartOptions\\\" view-model.ref=\\\"r_artikelart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_steuercode_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuercodeOptions\\\" view-model.ref=\\\"r_steuercode\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Artikel\\\" web-api-action=\\\"ERP/Stammdaten/Artikel\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_ArtikelEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-edit.r_bestellvorschlaggroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_bezugtyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bezugTypOptions\\\" view-model.ref=\\\"r_bezugTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_bestellvorschlagtyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bestellvorschlagTypOptions\\\" view-model.ref=\\\"r_bestellvorschlagTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_eindeckperiode_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_eindeckPeriodeOptions\\\" view-model.ref=\\\"r_eindeckPeriode\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-edit.r_einstellungdivgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_bezeichnungeditierbar_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_bezeichnungEditierbarOptions\\\" view-model.ref=\\\"r_bezeichnungEditierbar\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_lagerfuehrend_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_lagerfuehrendOptions\\\" view-model.ref=\\\"r_lagerfuehrend\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_mhd_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_mhdOptions\\\" view-model.ref=\\\"r_mhd\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_charge_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_chargeOptions\\\" view-model.ref=\\\"r_charge\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-edit.r_bildgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <tip-file-uploader-with-viewer options.bind=\\\"r_bildOptions\\\" view-model.ref=\\\"r_bild\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_einheitGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_einheitGridOptions\\\" view-model.ref=\\\"r_einheitGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lieferantGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferantGridOptions\\\" view-model.ref=\\\"r_lieferantGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_kundeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kundeGridOptions\\\" view-model.ref=\\\"r_kundeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kondition-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"konditionListNested\\\"></kondition-list-nested-form> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_einstandspreisGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_einstandspreisGridOptions\\\" view-model.ref=\\\"r_einstandspreisGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <lagerbestand-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"lagerbestandListNested\\\"></lagerbestand-list-nested-form> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Artikel.SupportsMHD || models.data.$m_Artikel.SupportsCharge\\\"> <lagerbestand-detail-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"lagerbestandDetailListNested\\\"></lagerbestand-detail-list-nested-form> </div> <div class=\\\"col-xs-12\\\"> <lagerbuchung-info-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"lagerbuchungInfoListNested\\\"></lagerbuchung-info-list-nested-form> </div> <div class=\\\"col-xs-12\\\"> <lagerbuchung-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"lagerbuchungListNested\\\"></lagerbuchung-list-nested-form> </div> </div> </div> <div ref=\\\"r_tabTabPage4\\\" show.bind=\\\"r_tabSelected === 4\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_mindestbestandGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_mindestbestandGridOptions\\\" view-model.ref=\\\"r_mindestbestandGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage5\\\" show.bind=\\\"r_tabSelected === 5\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_stuecklisteGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_stuecklisteGridOptions\\\" view-model.ref=\\\"r_stuecklisteGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage6\\\" show.bind=\\\"r_tabSelected === 6\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation-container id-berechnungsversion-property=\\\"Id\\\" id-artikel.bind=\\\"models.data.$m_Artikel.Id\\\"></kalkulation-container> </div> </div> </div> <div ref=\\\"r_tabTabPage7\\\" show.bind=\\\"r_tabSelected === 7\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" if.bind=\\\"functions.$f_ArtikelEditUtils.startup.startupInfo.Lizenz.HasKassa\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-edit.r_artikelkategoriegroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikelkategorie view-model.ref=\\\"r_artikelkategorie\\\" main-model.bind=\\\"models.data.$m_Artikel\\\"></artikelkategorie> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"functions.$f_ArtikelEditUtils.startup.startupInfo.Lizenz.HasWebshop || functions.$f_ArtikelEditUtils.startup.startupInfo.Lizenz.HasWooCommerce\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-auto t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_iswebshop_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isWebshopOptions\\\" view-model.ref=\\\"r_isWebshop\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_ArtikelEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> <div ref=\\\"r_tabTabPage8\\\" show.bind=\\\"r_tabSelected === 8\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" if.bind=\\\"functions.$f_ArtikelEditUtils.isDashboardVisible\\\"> <viewer view-model.ref=\\\"r_dashboard\\\" typ.bind=\\\"2\\\" main-model.bind=\\\"models.data.$m_Artikel\\\"></viewer> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_copyPopupOptions\\\" view-model.ref=\\\"r_copyPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelcopynummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_artikelCopyNummerOptions\\\" view-model.ref=\\\"r_artikelCopyNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelcopyart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_artikelCopyArtOptions\\\" view-model.ref=\\\"r_artikelCopyArt\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelcopynotiz_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_artikelCopyNotizOptions\\\" view-model.ref=\\\"r_artikelCopyNotiz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelcopykonditionen_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_artikelCopyKonditionenOptions\\\" view-model.ref=\\\"r_artikelCopyKonditionen\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_artikelArtPopupOptions\\\" view-model.ref=\\\"r_artikelArtPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-edit.r_artikelartedit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_artikelartEditOptions\\\" view-model.ref=\\\"r_artikelartEdit\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <calc-liefertermin view-model.ref=\\\"r_calcLiefertermin\\\"></calc-liefertermin> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArtikelEinheitEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"artikel-einheit-edit\";\n        this.title = \"artikel-einheit-edit.artikel-einheit-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArtikelEinheit\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelEinheit\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"einheit\",\n            \"filters\": [],\n            \"caption\": \"artikel-einheit-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_umrechner_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_ArtikelEinheit.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"Umrechner\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.Umrechner\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_umrechner\",\n            \"options\": {\n                \"optionsName\": \"r_umrechnerOptions\",\n                \"optionsNameFQ\": \"r_umrechnerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 18,\n            \"caption\": \"artikel-einheit-edit.r_ean_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"EAN\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.EAN\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"ean\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 18\n                    }]\n                }\n            }],\n            \"id\": \"r_ean\",\n            \"options\": {\n                \"optionsName\": \"r_eanOptions\",\n                \"optionsNameFQ\": \"r_eanOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-einheit-edit.r_isverkaufseinheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"IsVerkaufseinheit\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.IsVerkaufseinheit\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVerkaufseinheit\",\n            \"options\": {\n                \"optionsName\": \"r_isVerkaufseinheitOptions\",\n                \"optionsNameFQ\": \"r_isVerkaufseinheitOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_gewichtnetto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"GewichtNetto\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.GewichtNetto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtNetto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtNettoOptions\",\n                \"optionsNameFQ\": \"r_gewichtNettoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_gewichtbrutto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.GewichtBrutto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtBruttoOptions\",\n                \"optionsNameFQ\": \"r_gewichtBruttoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_laenge_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"Laenge\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.Laenge\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_laenge\",\n            \"options\": {\n                \"optionsName\": \"r_laengeOptions\",\n                \"optionsNameFQ\": \"r_laengeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_breite_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"Breite\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.Breite\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_breite\",\n            \"options\": {\n                \"optionsName\": \"r_breiteOptions\",\n                \"optionsNameFQ\": \"r_breiteOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"artikel-einheit-edit.r_hoehe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelEinheit\",\n                \"bindTo\": \"Hoehe\",\n                \"bindToFQ\": \"models.data.$m_ArtikelEinheit.Hoehe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hoehe\",\n            \"options\": {\n                \"optionsName\": \"r_hoeheOptions\",\n                \"optionsNameFQ\": \"r_hoeheOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_umrechner_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_umrechnerOptions\\\" view-model.ref=\\\"r_umrechner\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_ean_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_eanOptions\\\" view-model.ref=\\\"r_ean\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_isverkaufseinheit_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVerkaufseinheitOptions\\\" view-model.ref=\\\"r_isVerkaufseinheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: artikel-einheit-edit.r_eanundgewicht_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_gewichtnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtNettoOptions\\\" view-model.ref=\\\"r_gewichtNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_gewichtbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtBruttoOptions\\\" view-model.ref=\\\"r_gewichtBrutto\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: artikel-einheit-edit.r_masse_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_laenge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_laengeOptions\\\" view-model.ref=\\\"r_laenge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_breite_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_breiteOptions\\\" view-model.ref=\\\"r_breite\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-einheit-edit.r_hoehe_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_hoeheOptions\\\" view-model.ref=\\\"r_hoehe\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_ArtikelEinheit\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArtikelKundeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"artikel-kunde-edit\";\n        this.title = \"artikel-kunde-edit.artikel-kunde-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArtikelKunde\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelKunde\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"artikel-kunde-edit.r_artikelnummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelKunde\",\n                \"bindTo\": \"KundeArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_ArtikelKunde.KundeArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_artikelNummer\",\n            \"options\": {\n                \"optionsName\": \"r_artikelNummerOptions\",\n                \"optionsNameFQ\": \"r_artikelNummerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"artikel-kunde-edit.r_kundeartikelbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelKunde\",\n                \"bindTo\": \"KundeArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_ArtikelKunde.KundeArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelbezeichnungOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-kunde-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_ArtikelKunde.IdKunde\\\" show-ansprechperson.bind=\\\"false\\\" main-model.bind=\\\"models.data.$m_ArtikelKunde\\\" where.bind=\\\"['Geschaeftspartnerart.IsKunde', true]\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-kunde-edit.r_detailsgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-kunde-edit.r_artikelnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_artikelNummerOptions\\\" view-model.ref=\\\"r_artikelNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-kunde-edit.r_kundeartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_kundeArtikelbezeichnung\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_ArtikelKunde\\\" is-default.bind=\\\"true\\\" id-vorg-entitaet.bind=\\\"models.data.$m_ArtikelKunde.IdKunde\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArtikelLieferantEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"artikel-lieferant-edit\";\n        this.title = \"artikel-lieferant-edit.artikel-lieferant-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArtikelLieferant\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelLieferant\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Geschaeftspartner': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-lieferant-edit.r_hauptlieferant_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"IsHauptlieferant\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.IsHauptlieferant\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hauptlieferant\",\n            \"options\": {\n                \"optionsName\": \"r_hauptlieferantOptions\",\n                \"optionsNameFQ\": \"r_hauptlieferantOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 18,\n            \"caption\": \"artikel-lieferant-edit.r_ean_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"EAN\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.EAN\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"ean\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 18\n                    }]\n                }\n            }],\n            \"id\": \"r_ean\",\n            \"options\": {\n                \"optionsName\": \"r_eanOptions\",\n                \"optionsNameFQ\": \"r_eanOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"artikel-lieferant-edit.r_lieferantartikelnummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"LieferantArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.LieferantArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelNummer\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelNummerOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelNummerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"artikel-lieferant-edit.r_lieferantartikelbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"LieferantArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.LieferantArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_lieferantArtikelbezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"caption\": \"artikel-lieferant-edit.r_lieferantmindestbestellmengeverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"MindestbestellmengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.MindestbestellmengeVerpEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"models.data.$m_ArtikelLieferant.IdEinheit\"\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantMindestbestellmengeVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantMindestbestellmengeVerpEHOptions\",\n                \"optionsNameFQ\": \"r_lieferantMindestbestellmengeVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\"IdArtikel\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_ArtikelLieferant.IdArtikel\"\n            }],\n            \"filters\": [],\n            \"caption\": \"artikel-lieferant-edit.r_lieferantideinheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"models.data.$m_ArtikelLieferant.MindestbestellmengeVerpEH\"\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferantIdEinheit\",\n            \"options\": {\n                \"optionsName\": \"r_lieferantIdEinheitOptions\",\n                \"optionsNameFQ\": \"r_lieferantIdEinheitOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 10,\n            \"caption\": \"artikel-lieferant-edit.r_beschaffungsperiode_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelLieferant\",\n                \"bindTo\": \"Beschaffungsperiode\",\n                \"bindToFQ\": \"models.data.$m_ArtikelLieferant.Beschaffungsperiode\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"duration\",\n                    \"parameters\": [{\n                        \"name\": \"durationPeriodType\",\n                        \"value\": \"2\"\n                    }]\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 10\n                    }]\n                }\n            }],\n            \"id\": \"r_beschaffungsperiode\",\n            \"options\": {\n                \"optionsName\": \"r_beschaffungsperiodeOptions\",\n                \"optionsNameFQ\": \"r_beschaffungsperiodeOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-lieferant-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner validation-field-name=\\\"Lieferant\\\" id-geschaeftspartner.bind=\\\"models.data.$m_ArtikelLieferant.IdLieferant\\\" main-model.bind=\\\"models.data.$m_ArtikelLieferant\\\" where.bind=\\\"['Geschaeftspartnerart.IsLieferant', true]\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: artikel-lieferant-edit.r_detailsgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_hauptlieferant_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_hauptlieferantOptions\\\" view-model.ref=\\\"r_hauptlieferant\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_ean_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_eanOptions\\\" view-model.ref=\\\"r_ean\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_lieferantartikelnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelNummerOptions\\\" view-model.ref=\\\"r_lieferantArtikelNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-8 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_lieferantartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferantArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_lieferantArtikelbezeichnung\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_lieferantmindestbestellmengeverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_lieferantMindestbestellmengeVerpEHOptions\\\" view-model.ref=\\\"r_lieferantMindestbestellmengeVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_lieferantideinheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferantIdEinheitOptions\\\" view-model.ref=\\\"r_lieferantIdEinheit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-lieferant-edit.r_beschaffungsperiode_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_beschaffungsperiodeOptions\\\" view-model.ref=\\\"r_beschaffungsperiode\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_ArtikelLieferant\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    ArtikelListUtils\n} from \"./artikel-list-utils\";\n\n@fwx.autoinject\nexport class ArtikelListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_ArtikelListUtils: ArtikelListUtils) {\n        super(element, formBaseImport);\n        this.id = \"artikel-list\";\n        this.title = \"artikel-list.artikel-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Artikel\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"webApiExpand\": {\n                'Artikelart': null,\n                'Status': null,\n                'Einheit': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'artikelGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_ArtikelListUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ArtikelListUtils.doBelegExport\",\n                \"bindToFQ\": \"functions.$f_ArtikelListUtils.doBelegExport\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_ArtikelListUtils\", $f_ArtikelListUtils, \"functions.$f_ArtikelListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_artNummer\",\n                \"caption\": \"artikel-list.r_artnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_artArtikelart\",\n                \"caption\": \"artikel-list.r_artartikelart_caption\",\n                \"bindTo\": \"Artikelart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_artBezeichnung\",\n                \"caption\": \"artikel-list.r_artbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_artLagereinheit\",\n                \"caption\": \"artikel-list.r_artlagereinheit_caption\",\n                \"bindTo\": \"Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_artStatus\",\n                \"caption\": \"artikel-list.r_artstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"artikelGridToolbarOptions\",\n                \"optionsNameFQ\": \"artikelGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Artikel\"\n            },\n            \"dataModel\": \"$m_Artikel\",\n            \"editUrl\": \"ERP/Stammdaten/Artikel\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"artikelGrid\",\n            \"options\": {\n                \"optionsName\": \"artikelGridOptions\",\n                \"optionsNameFQ\": \"artikelGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"artikelGridOptions\\\" view-model.ref=\\\"artikelGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ArtikelMindestbestandEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"artikel-mindestbestand-edit\";\n        this.title = \"artikel-mindestbestand-edit.artikel-mindestbestand-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArtikelMindestbestand\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelMindestbestand\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filters\": [],\n            \"caption\": \"artikel-mindestbestand-edit.r_filiale_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelMindestbestand\",\n                \"bindTo\": \"IdFiliale\",\n                \"bindToFQ\": \"models.data.$m_ArtikelMindestbestand.IdFiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_filiale\",\n            \"options\": {\n                \"optionsName\": \"r_filialeOptions\",\n                \"optionsNameFQ\": \"r_filialeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"max\": 2147483647.0,\n            \"format\": \"n2\",\n            \"caption\": \"artikel-mindestbestand-edit.r_mindestbestand_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelMindestbestand\",\n                \"bindTo\": \"Mindestbestand\",\n                \"bindToFQ\": \"models.data.$m_ArtikelMindestbestand.Mindestbestand\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mindestbestand\",\n            \"options\": {\n                \"optionsName\": \"r_mindestbestandOptions\",\n                \"optionsNameFQ\": \"r_mindestbestandOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-mindestbestand-edit.r_filiale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_filialeOptions\\\" view-model.ref=\\\"r_filiale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-mindestbestand-edit.r_mindestbestand_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mindestbestandOptions\\\" view-model.ref=\\\"r_mindestbestand\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ArtikelService\n} from \"../../../services/artikel-service\";\nimport {\n    ArtikelStuecklisteEditUtils\n} from \"./artikel-stueckliste-edit-utils\";\n\n@fwx.autoinject\nexport class ArtikelStuecklisteEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ArtikelService: ArtikelService,\n        private $f_ArtikelStuecklisteEditUtils: ArtikelStuecklisteEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"artikel-stueckliste-edit\";\n        this.title = \"artikel-stueckliste-edit.artikel-stueckliste-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ArtikelStueckliste\",\n            \"webApiAction\": \"ERP/Stammdaten/ArtikelStueckliste\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Artikel\",\n            \"webApiAction\": \"ERP/Stammdaten/Artikel\",\n            \"webApiColumns\": [\"Id\", \"BezugTyp\", \"IdDynamischesFeldContainer\"],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_ArtikelStueckliste.IdArtikelFW\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_ArtikelService\", $f_ArtikelService, \"functions.$f_ArtikelService\");\n        this.addFunction(\"$f_ArtikelStuecklisteEditUtils\", $f_ArtikelStuecklisteEditUtils, \"functions.$f_ArtikelStuecklisteEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 1.0,\n            \"format\": \"n2\",\n            \"caption\": \"artikel-stueckliste-edit.r_mengeverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelStueckliste\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStueckliste.MengeVerpEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_mengeVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\"IdArtikel\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_ArtikelStueckliste.IdArtikelRW\"\n            }],\n            \"filters\": [],\n            \"caption\": \"artikel-stueckliste-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelStueckliste\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStueckliste.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"stuecklisteFaktorTyp\",\n            \"filters\": [],\n            \"caption\": \"artikel-stueckliste-edit.r_faktor_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelStueckliste\",\n                \"bindTo\": \"Faktor\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStueckliste.Faktor\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_faktor\",\n            \"options\": {\n                \"optionsName\": \"r_faktorOptions\",\n                \"optionsNameFQ\": \"r_faktorOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-stueckliste-edit.r_isbeistellartikel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelStueckliste\",\n                \"bindTo\": \"IsBeistellartikel\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStueckliste.IsBeistellartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isBeistellartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isBeistellartikelOptions\",\n                \"optionsNameFQ\": \"r_isBeistellartikelOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"artikel-stueckliste-edit.r_hasvariablersetartikelvorbelegung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_ArtikelStueckliste\",\n                \"bindTo\": \"HasVariablerSetartikelVorbelegung\",\n                \"bindToFQ\": \"models.data.$m_ArtikelStueckliste.HasVariablerSetartikelVorbelegung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hasVariablerSetartikelVorbelegung\",\n            \"options\": {\n                \"optionsName\": \"r_hasVariablerSetartikelVorbelegungOptions\",\n                \"optionsNameFQ\": \"r_hasVariablerSetartikelVorbelegungOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikelRW\\\" id-artikel.bind=\\\"models.data.$m_ArtikelStueckliste.IdArtikelRW\\\" is-read-only.bind=\\\"models.data.$m_ArtikelStueckliste.Id > 0\\\" main-model.bind=\\\"models.data.$m_ArtikelStueckliste\\\" id-artikel-changed.delegate=\\\"functions.$f_ArtikelService.onArtikeldatenChanged($event, models.data.$m_ArtikelStueckliste)\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-stueckliste-edit.r_mengeverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeVerpEHOptions\\\" view-model.ref=\\\"r_mengeVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-stueckliste-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-stueckliste-edit.r_faktor_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_faktorOptions\\\" view-model.ref=\\\"r_faktor\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Artikel.BezugTyp != 1 && models.data.$m_Artikel.BezugTyp != 3\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-stueckliste-edit.r_isbeistellartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isBeistellartikelOptions\\\" view-model.ref=\\\"r_isBeistellartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_ArtikelStuecklisteEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && models.data.$m_Artikel.BezugTyp == 3\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: artikel-stueckliste-edit.r_hasvariablersetartikelvorbelegung_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_hasVariablerSetartikelVorbelegungOptions\\\" view-model.ref=\\\"r_hasVariablerSetartikelVorbelegung\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_ArtikelStueckliste\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AufgabeEditUtils\n} from \"./aufgabe-edit-utils\";\n\n@fwx.autoinject\nexport class AufgabeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_AufgabeEditUtils: AufgabeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"aufgabe-edit\";\n        this.title = \"aufgabe-edit.aufgabe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Aufgabe\",\n            \"webApiAction\": \"ERP/Stammdaten/Aufgabe\",\n            \"webApiExpand\": {\n                'AufgabeInfoBenutzer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AufgabeInfoBenutzer\",\n            \"webApiAction\": \"ERP/Stammdaten/Benutzer\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AufgabeEditUtils.verknuepfteEntitaetCommand\",\n                \"bindToFQ\": \"functions.$f_AufgabeEditUtils.verknuepfteEntitaetCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AufgabeEditUtils\", $f_AufgabeEditUtils, \"functions.$f_AufgabeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"aufgabe-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"aufgabe-edit.r_faelligam_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"FaelligAm\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.FaelligAm\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_faelligAm\",\n            \"options\": {\n                \"optionsName\": \"r_faelligAmOptions\",\n                \"optionsNameFQ\": \"r_faelligAmOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"aufgabe-edit.r_erinnernam_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"ErinnernAm\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.ErinnernAm\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_erinnernAm\",\n            \"options\": {\n                \"optionsName\": \"r_erinnernAmOptions\",\n                \"optionsNameFQ\": \"r_erinnernAmOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"aufgabe-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"aufgabe-edit.r_isprioritaet_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"IsPrioritaet\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.IsPrioritaet\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isPrioritaet\",\n            \"options\": {\n                \"optionsName\": \"r_isPrioritaetOptions\",\n                \"optionsNameFQ\": \"r_isPrioritaetOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"aufgabe-edit.r_betreff_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"125px\",\n            \"caption\": \"aufgabe-edit.r_text_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"Text\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.Text\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_text\",\n            \"options\": {\n                \"optionsName\": \"r_textOptions\",\n                \"optionsNameFQ\": \"r_textOptions\"\n            }\n        });\n        this.widgetCreator.addTagBox(this, {\n            \"caption\": \"aufgabe-edit.r_benutzer_caption\",\n            \"dataContext\": \"$m_Aufgabe\",\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Aufgabe\",\n                \"bindTo\": \"AufgabeInfoBenutzer\",\n                \"bindToFQ\": \"models.data.$m_Aufgabe.AufgabeInfoBenutzer\"\n            },\n            \"relationProperty\": \"IdBenutzer\",\n            \"itemDataContext\": \"$m_AufgabeInfoBenutzer\",\n            \"itemValueExpr\": \"Id\",\n            \"itemDisplayExpr\": \"Name\",\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_benutzer\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerOptions\",\n                \"optionsNameFQ\": \"r_benutzerOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"../../../elements/aufgabe-kommentar/aufgabe-kommentar\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_faelligam_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_faelligAmOptions\\\" view-model.ref=\\\"r_faelligAm\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_erinnernam_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_erinnernAmOptions\\\" view-model.ref=\\\"r_erinnernAm\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_isprioritaet_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isPrioritaetOptions\\\" view-model.ref=\\\"r_isPrioritaet\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Aufgabe.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Aufgabe\\\"></projekt> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_text_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_textOptions\\\" view-model.ref=\\\"r_text\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_benutzer_caption\\\"></div> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"r_benutzerOptions\\\" view-model.ref=\\\"r_benutzer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: aufgabe-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Aufgabe\\\" web-api-action=\\\"ERP/Stammdaten/Aufgabe\\\"></tags> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Aufgabe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <aufgabe-kommentar view-model.ref=\\\"r_aufgabeKommentar\\\" id-aufgabe.bind=\\\"models.data.$m_Aufgabe.Id\\\" aufgabe-kommentar-changed.delegate=\\\"functions.$f_AufgabeEditUtils.onAufgabeKommentarChanged($event)\\\"></aufgabe-kommentar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AufgabeService\n} from \"../../../services/aufgabe-service\";\nimport {\n    AufgabeListUtils\n} from \"./aufgabe-list-utils\";\n\n@fwx.autoinject\nexport class AufgabeListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_AufgabeService: AufgabeService,\n        private $f_AufgabeListUtils: AufgabeListUtils) {\n        super(element, formBaseImport);\n        this.id = \"aufgabe-list\";\n        this.title = \"aufgabe-list.aufgabe-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Aufgabe\",\n            \"webApiAction\": \"ERP/Stammdaten/Aufgabe\",\n            \"webApiExpand\": {\n                'Sachbearbeiter': null,\n                'Status': null,\n                'Geschaeftspartner': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'IdAdresse'\n                    ],\n                    'expand': {\n                        'Adresse': {\n                            'columns': [\n                                'Id',\n                                'Firmenbez1',\n                                'Ort'\n                            ]\n                        }\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_aufgabeGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AufgabeService\", $f_AufgabeService, \"functions.$f_AufgabeService\");\n        this.addFunction(\"$f_AufgabeListUtils\", $f_AufgabeListUtils, \"functions.$f_AufgabeListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_aufgIsPrioritaet\",\n                \"caption\": \"aufgabe-list.r_aufgisprioritaet_caption\",\n                \"bindTo\": \"IsPrioritaet\",\n                \"width\": \"80px\",\n                \"onCellPrepared\": \"functions.$f_AufgabeService.onIsPrioritaetCellPrepared\"\n            }, {\n                \"id\": \"r_aufgSachbearbeiter\",\n                \"caption\": \"aufgabe-list.r_aufgsachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_aufgFaelligAm\",\n                \"caption\": \"aufgabe-list.r_aufgfaelligam_caption\",\n                \"bindTo\": \"FaelligAm\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_AufgabeListUtils.onFaelligAmCellPrepared\"\n            }, {\n                \"id\": \"r_aufgErinnernAm\",\n                \"caption\": \"aufgabe-list.r_aufgerinnernam_caption\",\n                \"bindTo\": \"ErinnernAm\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufgBetreff\",\n                \"caption\": \"aufgabe-list.r_aufgbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufgText\",\n                \"caption\": \"aufgabe-list.r_aufgtext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufgGPNummer\",\n                \"caption\": \"aufgabe-list.r_aufggpnummer_caption\",\n                \"bindTo\": \"Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufgGPFirmenbez1\",\n                \"caption\": \"aufgabe-list.r_aufggpfirmenbez1_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufgGPOrt\",\n                \"caption\": \"aufgabe-list.r_aufggport_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufgStatus\",\n                \"caption\": \"aufgabe-list.r_aufgstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_aufgabeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_aufgabeGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Aufgabe\"\n            },\n            \"dataModel\": \"$m_Aufgabe\",\n            \"editUrl\": \"ERP/Stammdaten/Aufgabe\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_aufgabeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_aufgabeGridOptions\",\n                \"optionsNameFQ\": \"r_aufgabeGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_aufgabeGridOptions\\\" view-model.ref=\\\"r_aufgabeGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BenachrichtigungEditUtils\n} from \"./benachrichtigung-edit-utils\";\n\n@fwx.autoinject\nexport class BenachrichtigungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BenachrichtigungUtils: BenachrichtigungEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"benachrichtigung-edit\";\n        this.title = \"benachrichtigung-edit.benachrichtigung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Benachrichtigung\",\n            \"webApiAction\": \"ERP/Stammdaten/Benachrichtigung\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BenachrichtigungUtils.verknuepfteEntitaetCommand\",\n                \"bindToFQ\": \"functions.$f_BenachrichtigungUtils.verknuepfteEntitaetCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BenachrichtigungUtils.doBenachrichtigungGelesen\",\n                \"bindToFQ\": \"functions.$f_BenachrichtigungUtils.doBenachrichtigungGelesen\"\n            }\n        });\n        this.addFunction(\"$f_BenachrichtigungUtils\", $f_BenachrichtigungUtils, \"functions.$f_BenachrichtigungUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"benachrichtigung-edit.r_benutzervon_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"IdBenutzerVon\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.IdBenutzerVon\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_benutzerVon\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerVonOptions\",\n                \"optionsNameFQ\": \"r_benutzerVonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"benachrichtigung-edit.r_benutzer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"IdBenutzer\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.IdBenutzer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_benutzer\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerOptions\",\n                \"optionsNameFQ\": \"r_benutzerOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"benachrichtigung-edit.r_datum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"benachrichtigung-edit.r_isgelesen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"IsGelesen\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.IsGelesen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isGelesen\",\n            \"options\": {\n                \"optionsName\": \"r_isGelesenOptions\",\n                \"optionsNameFQ\": \"r_isGelesenOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"benachrichtigung-edit.r_betreff_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"benachrichtigung-edit.r_isprioritaet_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"IsPrioritaet\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.IsPrioritaet\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isPrioritaet\",\n            \"options\": {\n                \"optionsName\": \"r_isPrioritaetOptions\",\n                \"optionsNameFQ\": \"r_isPrioritaetOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"benachrichtigung-edit.r_text_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\",\n                \"bindTo\": \"Text\",\n                \"bindToFQ\": \"models.data.$m_Benachrichtigung.Text\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_text\",\n            \"options\": {\n                \"optionsName\": \"r_textOptions\",\n                \"optionsNameFQ\": \"r_textOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_benutzervon_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_benutzerVonOptions\\\" view-model.ref=\\\"r_benutzerVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_benutzer_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_benutzerOptions\\\" view-model.ref=\\\"r_benutzer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_isgelesen_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isGelesenOptions\\\" view-model.ref=\\\"r_isGelesen\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_isprioritaet_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isPrioritaetOptions\\\" view-model.ref=\\\"r_isPrioritaet\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benachrichtigung-edit.r_text_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_textOptions\\\" view-model.ref=\\\"r_text\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BenachrichtigungService\n} from \"../../../services/benachrichtigung-service\";\n\n@fwx.autoinject\nexport class BenachrichtigungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BenachrichtigungService: BenachrichtigungService) {\n        super(element, formBaseImport);\n        this.id = \"benachrichtigung-list\";\n        this.title = \"benachrichtigung-list.benachrichtigung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Benachrichtigung\",\n            \"webApiAction\": \"ERP/Stammdaten/Benachrichtigung\",\n            \"webApiExpand\": {\n                'Benutzer': null,\n                'BenutzerVon': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_BenachrichtigungService\", $f_BenachrichtigungService, \"functions.$f_BenachrichtigungService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_benaIsPrioritaet\",\n                \"caption\": \"benachrichtigung-list.r_benaisprioritaet_caption\",\n                \"bindTo\": \"IsPrioritaet\",\n                \"width\": \"80px\",\n                \"onCellPrepared\": \"functions.$f_BenachrichtigungService.onIsPrioritaetCellPrepared\"\n            }, {\n                \"id\": \"r_benaDatum\",\n                \"caption\": \"benachrichtigung-list.r_benadatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_benaBenutzerVon\",\n                \"caption\": \"benachrichtigung-list.r_benabenutzervon_caption\",\n                \"bindTo\": \"BenutzerVon.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_benaBenutzer\",\n                \"caption\": \"benachrichtigung-list.r_benabenutzer_caption\",\n                \"bindTo\": \"Benutzer.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_benaBetreff\",\n                \"caption\": \"benachrichtigung-list.r_benabetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_benaIsGelesen\",\n                \"caption\": \"benachrichtigung-list.r_benaisgelesen_caption\",\n                \"bindTo\": \"IsGelesen\",\n                \"width\": \"100px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_benachrichtigungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_benachrichtigungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Benachrichtigung\"\n            },\n            \"dataModel\": \"$m_Benachrichtigung\",\n            \"editUrl\": \"ERP/Stammdaten/Benachrichtigung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_benachrichtigungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_benachrichtigungGridOptions\",\n                \"optionsNameFQ\": \"r_benachrichtigungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_benachrichtigungGridOptions\\\" view-model.ref=\\\"r_benachrichtigungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BenutzerEinstellungenEditUtils\n} from \"./benutzer-einstellungen-edit-utils\";\n\n@fwx.autoinject\nexport class BenutzerEinstellungenEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_BenutzerEinstellungenEditUtils: BenutzerEinstellungenEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"benutzer-einstellungen-edit\";\n        this.title = \"benutzer-einstellungen-edit.benutzer-einstellungen-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Benutzer\",\n            \"webApiAction\": \"ERP/Stammdaten/Benutzer\",\n            \"webApiExpand\": {\n                'BenutzerAufgabeBenachrichtigung': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_BenutzerEinstellungenEditUtils.office365AuthCommand\",\n                \"bindToFQ\": \"functions.$f_BenutzerEinstellungenEditUtils.office365AuthCommand\"\n            }\n        });\n        this.addFunction(\"$f_BenutzerEinstellungenEditUtils\", $f_BenutzerEinstellungenEditUtils, \"functions.$f_BenutzerEinstellungenEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"benutzer-einstellungen-edit.r_benutzername_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Benutzername\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Benutzername\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_benutzername\",\n            \"options\": {\n                \"optionsName\": \"r_benutzernameOptions\",\n                \"optionsNameFQ\": \"r_benutzernameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"benutzer-einstellungen-edit.r_vorname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Vorname\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Vorname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_vorname\",\n            \"options\": {\n                \"optionsName\": \"r_vornameOptions\",\n                \"optionsNameFQ\": \"r_vornameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"benutzer-einstellungen-edit.r_nachname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Nachname\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Nachname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_nachname\",\n            \"options\": {\n                \"optionsName\": \"r_nachnameOptions\",\n                \"optionsNameFQ\": \"r_nachnameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"benutzer-einstellungen-edit.r_email_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Email\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Email\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"email\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_email\",\n            \"options\": {\n                \"optionsName\": \"r_emailOptions\",\n                \"optionsNameFQ\": \"r_emailOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"benutzer-einstellungen-edit.r_telefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Telefon\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Telefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_telefon\",\n            \"options\": {\n                \"optionsName\": \"r_telefonOptions\",\n                \"optionsNameFQ\": \"r_telefonOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"benutzer-einstellungen-edit.r_fax_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Fax\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Fax\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_fax\",\n            \"options\": {\n                \"optionsName\": \"r_faxOptions\",\n                \"optionsNameFQ\": \"r_faxOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_bildTab\",\n                \"caption\": \"benutzer-einstellungen-edit.r_bildtab_caption\"\n            }, {\n                \"id\": \"r_2faTab\",\n                \"caption\": \"benutzer-einstellungen-edit.r_2fatab_caption\"\n            }, {\n                \"id\": \"r_benachrTab\",\n                \"caption\": \"benutzer-einstellungen-edit.r_benachrtab_caption\"\n            }],\n            \"id\": \"r_tabs\",\n            \"options\": {\n                \"optionsName\": \"r_tabsOptions\",\n                \"optionsNameFQ\": \"r_tabsOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 0,\n            \"acceptType\": \"image/*\",\n            \"maxFileSizeMB\": 1,\n            \"showClearButton\": false,\n            \"caption\": \"benutzer-einstellungen-edit.r_bild_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"Bild\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.Bild\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_bild\",\n            \"options\": {\n                \"optionsName\": \"r_bildOptions\",\n                \"optionsNameFQ\": \"r_bildOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"benutzer-einstellungen-edit.r_iszweifaaktiv_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"IsZweiFAAktiv\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.IsZweiFAAktiv\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isZweiFAAktiv\",\n            \"options\": {\n                \"optionsName\": \"r_isZweiFAAktivOptions\",\n                \"optionsNameFQ\": \"r_isZweiFAAktivOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_benutzerinfohinz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.BenutzerinfoHinz\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.BenutzerinfoHinz\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_benutzerinfoHinz\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerinfoHinzOptions\",\n                \"optionsNameFQ\": \"r_benutzerinfoHinzOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_benutzerinfoentf_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.BenutzerinfoEntf\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.BenutzerinfoEntf\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_benutzerinfoEntf\",\n            \"options\": {\n                \"optionsName\": \"r_benutzerinfoEntfOptions\",\n                \"optionsNameFQ\": \"r_benutzerinfoEntfOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_erinnerungsdatumerreicht_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.ErinnerungsdatumErreicht\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.ErinnerungsdatumErreicht\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_erinnerungsdatumErreicht\",\n            \"options\": {\n                \"optionsName\": \"r_erinnerungsdatumErreichtOptions\",\n                \"optionsNameFQ\": \"r_erinnerungsdatumErreichtOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_kommentarneu_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.KommentarNeu\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.KommentarNeu\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kommentarNeu\",\n            \"options\": {\n                \"optionsName\": \"r_kommentarNeuOptions\",\n                \"optionsNameFQ\": \"r_kommentarNeuOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_aufgabeneu_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.AufgabeNeu\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.AufgabeNeu\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_aufgabeNeu\",\n            \"options\": {\n                \"optionsName\": \"r_aufgabeNeuOptions\",\n                \"optionsNameFQ\": \"r_aufgabeNeuOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzerAufgabeBenachrichtigungTyp\",\n            \"filters\": [],\n            \"caption\": \"benutzer-einstellungen-edit.r_aufgabeaend_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Benutzer\",\n                \"bindTo\": \"BenutzerAufgabeBenachrichtigung.AufgabeAend\",\n                \"bindToFQ\": \"models.data.$m_Benutzer.BenutzerAufgabeBenachrichtigung.AufgabeAend\",\n                \"propertyPrefix\": \"BenutzerAufgabeBenachrichtigung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_aufgabeAend\",\n            \"options\": {\n                \"optionsName\": \"r_aufgabeAendOptions\",\n                \"optionsNameFQ\": \"r_aufgabeAendOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabsSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./qr-image\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_benutzername_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_benutzernameOptions\\\" view-model.ref=\\\"r_benutzername\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_vorname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_vornameOptions\\\" view-model.ref=\\\"r_vorname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_nachname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_nachnameOptions\\\" view-model.ref=\\\"r_nachname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_email_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_emailOptions\\\" view-model.ref=\\\"r_email\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_telefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_telefonOptions\\\" view-model.ref=\\\"r_telefon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_fax_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_faxOptions\\\" view-model.ref=\\\"r_fax\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Benutzer\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"!functions.$f_BenutzerEinstellungenEditUtils.isSupport\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabsOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabsTabPage0\\\" show.bind=\\\"r_tabsSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_bild_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_bildOptions\\\" view-model.ref=\\\"r_bild\\\"></tip-file-uploader-with-viewer> </div> </div> </div> <div ref=\\\"r_tabsTabPage1\\\" show.bind=\\\"r_tabsSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_iszweifaaktiv_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isZweiFAAktivOptions\\\" view-model.ref=\\\"r_isZweiFAAktiv\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <qr-image view-model.ref=\\\"r_authenticatorQR\\\"></qr-image> </div> </div> </div> <div ref=\\\"r_tabsTabPage2\\\" show.bind=\\\"r_tabsSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_benutzerinfohinz_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_benutzerinfoHinzOptions\\\" view-model.ref=\\\"r_benutzerinfoHinz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_benutzerinfoentf_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_benutzerinfoEntfOptions\\\" view-model.ref=\\\"r_benutzerinfoEntf\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_erinnerungsdatumerreicht_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_erinnerungsdatumErreichtOptions\\\" view-model.ref=\\\"r_erinnerungsdatumErreicht\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_kommentarneu_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_kommentarNeuOptions\\\" view-model.ref=\\\"r_kommentarNeu\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_aufgabeneu_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_aufgabeNeuOptions\\\" view-model.ref=\\\"r_aufgabeNeu\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: benutzer-einstellungen-edit.r_aufgabeaend_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_aufgabeAendOptions\\\" view-model.ref=\\\"r_aufgabeAend\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject } from \"aurelia-framework\";\nimport { RestService, AuthorizationService } from '../../../../framework/base/export';\n\n@autoinject\nexport class QrImage {\n  constructor(\n    private _restService: RestService,\n    private _authorizationService: AuthorizationService\n  ) {\n    \n    const authKey = this._authorizationService.getAuthorizationKey();\n\n    this.urlQrCode = this._restService.getApiUrl(\"ERP/Authenticator/QR\")\n      .concat(`?auth-token=${encodeURIComponent(authKey)}`)\n      .concat(\"&random=\")\n      .concat(new Date().getTime().toString());\n  }\n\n  showCodeButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"QR-Code anzeigen\",\n    onClick: () => {\n      this.showCode = true;\n    }\n  }\n\n  showCode = false;\n  urlQrCode: string;\n}","// Module\nvar code = \"<template> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"showCodeButtonOptions\\\" if.bind=\\\"!showCode && urlQrCode\\\"></dx-widget> <img if.bind=\\\"showCode\\\" src.bind=\\\"urlQrCode\\\"> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    BriefEditUtils\n} from \"./brief-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BriefEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_briefEditUtils: BriefEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"brief-edit\";\n        this.title = \"brief-edit.brief-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Brief\",\n            \"webApiAction\": \"ERP/Stammdaten/Brief\",\n            \"webApiExpand\": {\n                'BriefZuEmpfaenger': {\n                    'where': [\n                        'IdEmpfaenger',\n                        '!=',\n                        null\n                    ]\n                },\n                'BriefZuCC': null,\n                'BriefZuBCC': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EmpfaengerAll\",\n            \"webApiAction\": \"ERP/Stammdaten/BriefZuEmpfaenger\",\n            \"webApiWhere\": [\n                [\"IdBrief\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Brief.Id\"\n                }],\n                [\"VersandStatus\", \"!=\", 0]\n            ],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddEmpfaengerCboBezeichnung\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_briefEditUtils.doVersendenEmail\",\n                \"bindToFQ\": \"functions.$f_briefEditUtils.doVersendenEmail\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_briefEditUtils.doDrucken\",\n                \"bindToFQ\": \"functions.$f_briefEditUtils.doDrucken\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_briefEditUtils.doDruckvorschau\",\n                \"bindToFQ\": \"functions.$f_briefEditUtils.doDruckvorschau\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_briefEditUtils.showDivAdresse\",\n                \"bindToFQ\": \"functions.$f_briefEditUtils.showDivAdresse\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_briefEditUtils.hideDivAdresse\",\n                \"bindToFQ\": \"functions.$f_briefEditUtils.hideDivAdresse\"\n            }\n        });\n        this.addFunction(\"$f_briefEditUtils\", $f_briefEditUtils, \"functions.$f_briefEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"brief-edit.r_firma_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Brief.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"brief-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Brief.IdSachbearbeiter\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"brief-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Brief.Datum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"brief-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Brief.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"brief-edit.r_signaturunterdruecken_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"SignaturUnterdruecken\",\n                \"bindToFQ\": \"models.data.$m_Brief.SignaturUnterdruecken\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_signaturUnterdruecken\",\n            \"options\": {\n                \"optionsName\": \"r_signaturUnterdrueckenOptions\",\n                \"optionsNameFQ\": \"r_signaturUnterdrueckenOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_briefPage\",\n                \"caption\": \"brief-edit.r_briefpage_caption\"\n            }, {\n                \"id\": \"r_briefVersandStatus\",\n                \"caption\": \"brief-edit.r_briefversandstatus_caption\"\n            }],\n            \"id\": \"r_briefTabs\",\n            \"options\": {\n                \"optionsName\": \"r_briefTabsOptions\",\n                \"optionsNameFQ\": \"r_briefTabsOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"brief-edit.r_empfaengeran_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"AnManuell\",\n                \"bindToFQ\": \"models.data.$m_Brief.AnManuell\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"emailMultiple\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_empfaengerAn\",\n            \"options\": {\n                \"optionsName\": \"r_empfaengerAnOptions\",\n                \"optionsNameFQ\": \"r_empfaengerAnOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"brief-edit.r_ccmanuell_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"CCManuell\",\n                \"bindToFQ\": \"models.data.$m_Brief.CCManuell\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"emailMultiple\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_ccManuell\",\n            \"options\": {\n                \"optionsName\": \"r_ccManuellOptions\",\n                \"optionsNameFQ\": \"r_ccManuellOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"brief-edit.r_bccmanuell_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"BCCManuell\",\n                \"bindToFQ\": \"models.data.$m_Brief.BCCManuell\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"emailMultiple\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_bccManuell\",\n            \"options\": {\n                \"optionsName\": \"r_bccManuellOptions\",\n                \"optionsNameFQ\": \"r_bccManuellOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"brief-edit.r_betreff_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_Brief.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addHtmlEditor(this, {\n            \"height\": \"30vh\",\n            \"allowImages\": true,\n            \"caption\": \"brief-edit.r_texthtml_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\",\n                \"bindTo\": \"TextHtml\",\n                \"bindToFQ\": \"models.data.$m_Brief.TextHtml\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_textHtml\",\n            \"options\": {\n                \"optionsName\": \"r_textHtmlOptions\",\n                \"optionsNameFQ\": \"r_textHtmlOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_verEmpf\",\n                \"caption\": \"brief-edit.r_verempf_caption\",\n                \"bindTo\": \"_AddEmpfaengerCboBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_verEmail\",\n                \"caption\": \"brief-edit.r_veremail_caption\",\n                \"bindTo\": \"Email\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_verVersandStatus\",\n                \"caption\": \"brief-edit.r_verversandstatus_caption\",\n                \"bindTo\": \"VersandStatus\",\n                \"width\": \"150px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.BriefEmpfaengerVersandStatus\"\n            }, {\n                \"id\": \"r_verVersandtAm\",\n                \"caption\": \"brief-edit.r_verversandtam_caption\",\n                \"bindTo\": \"VersandDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_versandStatusGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_versandStatusGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_EmpfaengerAll\"\n            },\n            \"dataModel\": \"$m_EmpfaengerAll\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_versandStatusGrid\",\n            \"options\": {\n                \"optionsName\": \"r_versandStatusGridOptions\",\n                \"optionsNameFQ\": \"r_versandStatusGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_briefTabsSelected = 0;\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-lg-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Brief.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Brief\\\"></projekt> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_signaturunterdruecken_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_signaturUnterdrueckenOptions\\\" view-model.ref=\\\"r_signaturUnterdruecken\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Brief\\\" web-api-action=\\\"ERP/Stammdaten/Brief\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_briefTabsOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_briefTabsTabPage0\\\" show.bind=\\\"r_briefTabsSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_briefempfaengertagbox_caption\\\"></div> <dx-widget view-model.ref=\\\"r_briefEmpfaengerTagBox\\\" name=\\\"dxTagBox\\\" options.bind=\\\"functions.$f_briefEditUtils.briefEmpfaengerTagBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_empfaengeran_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_empfaengerAnOptions\\\" view-model.ref=\\\"r_empfaengerAn\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Brief.HasDiverseAdresse\\\"> <adresse view-model.ref=\\\"r_adresse\\\" main-model.bind=\\\"models.data.$m_Brief\\\" id-adresse.bind=\\\"models.data.$m_Brief.IdAdresse\\\" adresse-property-name=\\\"Adresse\\\" is-adresse-read-only.bind=\\\"!models.data.$m_Brief.CanSave\\\" is-delayed.bind=\\\"true\\\"></adresse> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_briefempfaengercctagbox_caption\\\"></div> <dx-widget view-model.ref=\\\"r_briefEmpfaengerCCTagBox\\\" name=\\\"dxTagBox\\\" options.bind=\\\"functions.$f_briefEditUtils.briefEmpfaengerCCTagBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_ccmanuell_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_ccManuellOptions\\\" view-model.ref=\\\"r_ccManuell\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_briefempfaengerbcctagbox_caption\\\"></div> <dx-widget view-model.ref=\\\"r_briefEmpfaengerBCCTagBox\\\" name=\\\"dxTagBox\\\" options.bind=\\\"functions.$f_briefEditUtils.briefEmpfaengerBCCTagBoxOptions\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_bccmanuell_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bccManuellOptions\\\" view-model.ref=\\\"r_bccManuell\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: brief-edit.r_texthtml_caption\\\"></div> <dx-widget name=\\\"dxHtmlEditor\\\" options.bind=\\\"r_textHtmlOptions\\\" view-model.ref=\\\"r_textHtml\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"!functions.$f_briefEditUtils.showEditor\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div tr=\\\"key: brief-edit.r_infohtmlbrief_text\\\"></div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget view-model.ref=\\\"r_showHtmlBrief\\\" name=\\\"dxButton\\\" options.bind=\\\"functions.$f_briefEditUtils.showHtmlBriefOptions\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Brief\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> <div ref=\\\"r_briefTabsTabPage1\\\" show.bind=\\\"r_briefTabsSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_versandStatusGridOptions\\\" view-model.ref=\\\"r_versandStatusGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class BriefListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"brief-list\";\n        this.title = \"brief-list.brief-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Brief\",\n            \"webApiAction\": \"ERP/Stammdaten/Brief\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Projekt': null,\n                'Sachbearbeiter': null,\n                'Firma': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_briefGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_brFirma\",\n                \"caption\": \"brief-list.r_brfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_brSachbearbeiter\",\n                \"caption\": \"brief-list.r_brsachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_brProjekt\",\n                \"caption\": \"brief-list.r_brprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_brDatum\",\n                \"caption\": \"brief-list.r_brdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_empfaenger\",\n                \"caption\": \"brief-list.r_empfaenger_caption\",\n                \"bindTo\": \"EmpfaengerDisplayText\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_brBetreff\",\n                \"caption\": \"brief-list.r_brbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_brText\",\n                \"caption\": \"brief-list.r_brtext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_brAnzAnhaenge\",\n                \"caption\": \"brief-list.r_branzanhaenge_caption\",\n                \"bindTo\": \"AnzAnhaenge\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_brStatus\",\n                \"caption\": \"brief-list.r_brstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_briefGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_briefGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\"\n            },\n            \"dataModel\": \"$m_Brief\",\n            \"editUrl\": \"ERP/Stammdaten/Brief\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_briefGrid\",\n            \"options\": {\n                \"optionsName\": \"r_briefGridOptions\",\n                \"optionsNameFQ\": \"r_briefGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_briefGridOptions\\\" view-model.ref=\\\"r_briefGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class BankverbindungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"bankverbindung-edit\";\n        this.title = \"bankverbindung-edit.bankverbindung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Bankverbindung\",\n            \"webApiAction\": \"ERP/Stammdaten/Bankverbindung\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"bankverbindung-edit.r_iban_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bankverbindung\",\n                \"bindTo\": \"IBAN\",\n                \"bindToFQ\": \"models.data.$m_Bankverbindung.IBAN\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"iban\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 35\n                    }]\n                }\n            }],\n            \"id\": \"r_iban\",\n            \"options\": {\n                \"optionsName\": \"r_ibanOptions\",\n                \"optionsNameFQ\": \"r_ibanOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"bankverbindung-edit.r_bic_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bankverbindung\",\n                \"bindTo\": \"BIC\",\n                \"bindToFQ\": \"models.data.$m_Bankverbindung.BIC\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"bic\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 11\n                    }]\n                }\n            }],\n            \"id\": \"r_bic\",\n            \"options\": {\n                \"optionsName\": \"r_bicOptions\",\n                \"optionsNameFQ\": \"r_bicOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bankverbindung-edit.r_gueltigvon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bankverbindung\",\n                \"bindTo\": \"GueltigVon\",\n                \"bindToFQ\": \"models.data.$m_Bankverbindung.GueltigVon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigVon\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigVonOptions\",\n                \"optionsNameFQ\": \"r_gueltigVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"bankverbindung-edit.r_gueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Bankverbindung\",\n                \"bindTo\": \"GueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Bankverbindung.GueltigBis\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigBisOptions\",\n                \"optionsNameFQ\": \"r_gueltigBisOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bankverbindung-edit.r_iban_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_ibanOptions\\\" view-model.ref=\\\"r_iban\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bankverbindung-edit.r_bic_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bicOptions\\\" view-model.ref=\\\"r_bic\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bankverbindung-edit.r_gueltigvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigVonOptions\\\" view-model.ref=\\\"r_gueltigVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: bankverbindung-edit.r_gueltigbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigBisOptions\\\" view-model.ref=\\\"r_gueltigBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Bankverbindung\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    GeschaeftspartnerEditUtils\n} from \"./geschaeftspartner-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AuftragService\n} from \"../../../services/auftrag-service\";\n\n@fwx.autoinject\nexport class GeschaeftspartnerEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_GeschaeftspartnerEditUtils: GeschaeftspartnerEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_AuftragService: AuftragService) {\n        super(element, formBaseImport);\n        this.id = \"geschaeftspartner-edit\";\n        this.title = \"geschaeftspartner-edit.geschaeftspartner-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Geschaeftspartner\",\n            \"webApiAction\": \"ERP/Stammdaten/Geschaeftspartner\",\n            \"webApiExpand\": {\n                'Geschaeftspartnerart': {\n                    'columns': [\n                        'Id',\n                        'IsKunde',\n                        'IsInteressent',\n                        'IsLieferant',\n                        'IsRechnungsadresse'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"custom\": {\n                'copyFunc': '$f_GeschaeftspartnerEditUtils.copyGeschaeftspartner'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_PersonRel\",\n            \"webApiAction\": \"ERP/Stammdaten/Person\",\n            \"webApiExpand\": {\n                'Anrede': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'gpPersonGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_PersonEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/Person\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BankverbindungRel\",\n            \"webApiAction\": \"ERP/Stammdaten/Bankverbindung\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BankverbindungEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/Bankverbindung\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_GeschaeftspartnerCopy\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_GeschaeftspartnerEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/Geschaeftspartner\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Brief\",\n            \"webApiAction\": \"ERP/Stammdaten/Brief\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Projekt': null,\n                'Sachbearbeiter': null,\n                'Firma': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_kommunikationBrief'\n                ]\n            },\n            \"filters\": [{\n                \"webApiCustomKey\": \"IdGeschaeftspartner\",\n                \"webApiCustomValue\": \"models.data.$m_Geschaeftspartner.Id\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_MailImportItem\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItem\",\n            \"webApiExpand\": {\n                'MailImportDefinition': null,\n                Status: null,\n                Geschaeftspartner: {\n                    expand: {\n                        Adresse: null\n                    }\n                },\n                Person: null\n            },\n            \"webApiWhere\": [\"IdGeschaeftspartner\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_kommunikationMail'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Projekt\",\n            \"webApiAction\": \"ERP/Stammdaten/Projekt\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Projektart': null,\n                'Sachbearbeiter': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewProjektGrid'\n                ]\n            },\n            \"filters\": [{\n                \"webApiCustomKey\": \"IdGeschaeftspartner\",\n                \"webApiCustomValue\": \"models.data.$m_Geschaeftspartner.Id\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_BewAngebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"webApiExpand\": {\n                'Angebotsart': null,\n                'Projekt': null,\n                'Status': null,\n                'Waehrung': null\n            },\n            \"webApiWhere\": [\"Kunde.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewAngebotGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewAuftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Auftagsart': null,\n                'Status': null,\n                'Projekt': null,\n                'Waehrung': null\n            },\n            \"webApiWhere\": [\"Kunde.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewAuftragGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewLieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"Kunde.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewLieferscheinGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewFaktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null\n            },\n            \"webApiWhere\": [\"Rechnungsort.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewFakturaGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewMahnung\",\n            \"webApiAction\": \"ERP/Verkauf/Mahnung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"Rechnungsort.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewMahnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewKundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null\n            },\n            \"webApiWhere\": [\"Kunde.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewKundenreklamationGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewBestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null,\n                'Auftrag': {\n                    'columns': [\n                        'Id',\n                        'Nummer'\n                    ]\n                }\n            },\n            \"webApiWhere\": [\"Lieferant.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewBestellungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewWarenuebernahme\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahme\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null\n            },\n            \"webApiWhere\": [\"Lieferant.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewWarenuebernahmeGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewEingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null\n            },\n            \"webApiWhere\": [\"Lieferant.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewEingangsrechnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Geschaeftspartnerart\",\n            \"webApiAction\": \"ERP/Stammdaten/Geschaeftspartnerart\",\n            \"webApiColumns\": [\"Id\", \"IsKunde\", \"IsLieferant\"],\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Geschaeftspartner.IdGeschaeftspartnerart\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KassaBeleg\",\n            \"webApiAction\": \"ERP/Kassa/KassaBeleg\",\n            \"webApiExpand\": {\n                'Zahlungsart': null,\n                'Waehrung': null,\n                'Status': null,\n                'Kassa': null,\n                'Firma': null\n            },\n            \"webApiWhere\": [\"Kunde.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewKassaBelegGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Zahlung\",\n            \"webApiAction\": \"ERP/Verkauf/Zahlung\",\n            \"webApiExpand\": {\n                'Zahlungsart': null,\n                'Waehrung': null,\n                'Eingangsrechnung': null,\n                'Faktura': null,\n                'KassaBeleg': null\n            },\n            \"webApiWhere\": [\"Geschaeftspartner.Id\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Geschaeftspartner.Id\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_GeschaeftspartnerEditUtils.showGeschaeftspartnerartAendernCommand\",\n                \"bindToFQ\": \"functions.$f_GeschaeftspartnerEditUtils.showGeschaeftspartnerartAendernCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_GeschaeftspartnerEditUtils.gpAngebotErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_GeschaeftspartnerEditUtils.gpAngebotErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_GeschaeftspartnerEditUtils.gpAuftragErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_GeschaeftspartnerEditUtils.gpAuftragErstellenCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"personEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_PersonEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_PersonEdit.Id\"\n                }\n            }],\n            \"id\": \"personEditPopup\",\n            \"options\": {\n                \"optionsName\": \"personEditPopupOptions\",\n                \"optionsNameFQ\": \"personEditPopupOptions\"\n            },\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"bankverbindungEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_BankverbindungEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_BankverbindungEdit.Id\"\n                }\n            }],\n            \"id\": \"bankverbindungEditPopup\",\n            \"options\": {\n                \"optionsName\": \"bankverbindungEditPopupOptions\",\n                \"optionsNameFQ\": \"bankverbindungEditPopupOptions\"\n            },\n            \"commands\": []\n        });\n        this.addFunction(\"$f_GeschaeftspartnerEditUtils\", $f_GeschaeftspartnerEditUtils, \"functions.$f_GeschaeftspartnerEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AuftragService\", $f_AuftragService, \"functions.$f_AuftragService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_nummer_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Geschaeftspartner && models.data.$m_Geschaeftspartner.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"geschaeftspartnerart\",\n            \"filters\": [],\n            \"caption\": \"geschaeftspartner-edit.r_art_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Geschaeftspartner && models.data.$m_Geschaeftspartner.Id\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"IdGeschaeftspartnerart\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.IdGeschaeftspartnerart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_art\",\n            \"options\": {\n                \"optionsName\": \"r_artOptions\",\n                \"optionsNameFQ\": \"r_artOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_isprivatperson_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"IsPrivatperson\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.IsPrivatperson\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isPrivatperson\",\n            \"options\": {\n                \"optionsName\": \"r_isPrivatpersonOptions\",\n                \"optionsNameFQ\": \"r_isPrivatpersonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"geschaeftspartner-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"anrede\",\n            \"filters\": [],\n            \"caption\": \"geschaeftspartner-edit.r_persanrede_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"_IdAnrede\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner._IdAnrede\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_persAnrede\",\n            \"options\": {\n                \"optionsName\": \"r_persAnredeOptions\",\n                \"optionsNameFQ\": \"r_persAnredeOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_perstitelvorne_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"_TitelVorne\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner._TitelVorne\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_persTitelVorne\",\n            \"options\": {\n                \"optionsName\": \"r_persTitelVorneOptions\",\n                \"optionsNameFQ\": \"r_persTitelVorneOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_persvorname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"_Vorname\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner._Vorname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_persVorname\",\n            \"options\": {\n                \"optionsName\": \"r_persVornameOptions\",\n                \"optionsNameFQ\": \"r_persVornameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_persnachname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"_Nachname\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner._Nachname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_persNachname\",\n            \"options\": {\n                \"optionsName\": \"r_persNachnameOptions\",\n                \"optionsNameFQ\": \"r_persNachnameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_perstitelhinten_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"_TitelHinten\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner._TitelHinten\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_persTitelHinten\",\n            \"options\": {\n                \"optionsName\": \"r_persTitelHintenOptions\",\n                \"optionsNameFQ\": \"r_persTitelHintenOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"geschaeftspartner-edit.r_email_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Email\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Email\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"email\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 150\n                    }]\n                }\n            }],\n            \"id\": \"r_email\",\n            \"options\": {\n                \"optionsName\": \"r_emailOptions\",\n                \"optionsNameFQ\": \"r_emailOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"geschaeftspartner-edit.r_homepage_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Homepage\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Homepage\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_homepage\",\n            \"options\": {\n                \"optionsName\": \"r_homepageOptions\",\n                \"optionsNameFQ\": \"r_homepageOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"geschaeftspartner-edit.r_telefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Telefon\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Telefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_telefon\",\n            \"options\": {\n                \"optionsName\": \"r_telefonOptions\",\n                \"optionsNameFQ\": \"r_telefonOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"geschaeftspartner-edit.r_fax_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Fax\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Fax\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_fax\",\n            \"options\": {\n                \"optionsName\": \"r_faxOptions\",\n                \"optionsNameFQ\": \"r_faxOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"geschaeftspartner-edit.r_uidnummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"UIDNummer\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.UIDNummer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_uidNummer\",\n            \"options\": {\n                \"optionsName\": \"r_uidNummerOptions\",\n                \"optionsNameFQ\": \"r_uidNummerOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPersonen\",\n                \"caption\": \"geschaeftspartner-edit.r_tabpersonen_caption\"\n            }, {\n                \"id\": \"r_tabBankverbindung\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbankverbindung_caption\"\n            }, {\n                \"id\": \"r_tabKondition\",\n                \"caption\": \"geschaeftspartner-edit.r_tabkondition_caption\"\n            }, {\n                \"id\": \"r_tabSonstiges\",\n                \"caption\": \"geschaeftspartner-edit.r_tabsonstiges_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_gpPersAnrede\",\n                \"caption\": \"geschaeftspartner-edit.r_gppersanrede_caption\",\n                \"bindTo\": \"Anrede.Bezeichnung\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_gpPersVorname\",\n                \"caption\": \"geschaeftspartner-edit.r_gppersvorname_caption\",\n                \"bindTo\": \"Vorname\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gpPersNachname\",\n                \"caption\": \"geschaeftspartner-edit.r_gppersnachname_caption\",\n                \"bindTo\": \"Nachname\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gpPersEmailPerson\",\n                \"caption\": \"geschaeftspartner-edit.r_gppersemailperson_caption\",\n                \"bindTo\": \"Email\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gpPersTelefonPerson\",\n                \"caption\": \"geschaeftspartner-edit.r_gpperstelefonperson_caption\",\n                \"bindTo\": \"Telefon\",\n                \"width\": \"160px\"\n            }, {\n                \"id\": \"r_gpPersMobiltelefon\",\n                \"caption\": \"geschaeftspartner-edit.r_gppersmobiltelefon_caption\",\n                \"bindTo\": \"Mobiltelefon\",\n                \"width\": \"160px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"gpPersonGridToolbarOptions\",\n                \"optionsNameFQ\": \"gpPersonGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.gppersongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_PersonRel\",\n                \"bindTo\": \"IdGeschaeftspartner\",\n                \"bindToFQ\": \"models.data.$m_PersonRel.IdGeschaeftspartner\"\n            },\n            \"dataModel\": \"$m_Geschaeftspartner\",\n            \"editDataContext\": \"$m_PersonEdit\",\n            \"idEditPopup\": \"personEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"gpPersonGrid\",\n            \"options\": {\n                \"optionsName\": \"gpPersonGridOptions\",\n                \"optionsNameFQ\": \"gpPersonGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_gpBavIban\",\n                \"caption\": \"geschaeftspartner-edit.r_gpbaviban_caption\",\n                \"bindTo\": \"IBAN\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_gpBavBic\",\n                \"caption\": \"geschaeftspartner-edit.r_gpbavbic_caption\",\n                \"bindTo\": \"BIC\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_gpBavGueltigVon\",\n                \"caption\": \"geschaeftspartner-edit.r_gpbavgueltigvon_caption\",\n                \"bindTo\": \"GueltigVon\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_gpBavGueltigBis\",\n                \"caption\": \"geschaeftspartner-edit.r_gpbavgueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"gpBankverbindungGridToolbarOptions\",\n                \"optionsNameFQ\": \"gpBankverbindungGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.gpbankverbindunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_BankverbindungRel\",\n                \"bindTo\": \"IdGeschaeftspartner\",\n                \"bindToFQ\": \"models.data.$m_BankverbindungRel.IdGeschaeftspartner\"\n            },\n            \"dataModel\": \"$m_Geschaeftspartner\",\n            \"editDataContext\": \"$m_BankverbindungEdit\",\n            \"idEditPopup\": \"bankverbindungEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"gpBankverbindungGrid\",\n            \"options\": {\n                \"optionsName\": \"gpBankverbindungGridOptions\",\n                \"optionsNameFQ\": \"gpBankverbindungGridOptions\"\n            }\n        });\n        this.addNestedForm(\"konditionListNested\", [{\n            \"to\": \"$v_idGeschaeftspartner\",\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Geschaeftspartner.Id\",\n                \"propertyPrefix\": null\n            }\n        }]);\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabKommunikationMail\",\n                \"caption\": \"geschaeftspartner-edit.r_tabkommunikationmail_caption\",\n                \"if\": \"functions.$f_GeschaeftspartnerEditUtils.startupService.startupInfo.Lizenz.HasMailImport\"\n            }, {\n                \"id\": \"r_tabKommunikationBrief\",\n                \"caption\": \"geschaeftspartner-edit.r_tabkommunikationbrief_caption\"\n            }, {\n                \"id\": \"r_tabDashboard\",\n                \"caption\": \"geschaeftspartner-edit.r_tabdashboard_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Id\"\n            }, {\n                \"id\": \"r_tabProjekte\",\n                \"caption\": \"geschaeftspartner-edit.r_tabprojekte_caption\"\n            }, {\n                \"id\": \"r_tabBewAngebot\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewangebot_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde || models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsInteressent\"\n            }, {\n                \"id\": \"r_tabBewAuftrag\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewauftrag_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde\"\n            }, {\n                \"id\": \"r_tabBewLieferschein\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewlieferschein_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde\"\n            }, {\n                \"id\": \"r_tabBewFaktura\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewfaktura_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde || models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsRechnungsadresse\"\n            }, {\n                \"id\": \"r_tabBewKundenreklamation\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewkundenreklamation_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde\"\n            }, {\n                \"id\": \"r_tabBewBestellung\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewbestellung_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsLieferant\"\n            }, {\n                \"id\": \"r_tabBewWarenuebernahme\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewwarenuebernahme_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsLieferant\"\n            }, {\n                \"id\": \"r_tabBewEingangsrechnung\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbeweingangsrechnung_caption\",\n                \"if\": \"models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsLieferant\"\n            }, {\n                \"id\": \"r_tabBewKassabelege\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewkassabelege_caption\",\n                \"if\": \"functions.$f_GeschaeftspartnerEditUtils.startupService.startupInfo.Lizenz.HasKassa\"\n            }, {\n                \"id\": \"r_tabBewZahlungen\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewzahlungen_caption\"\n            }, {\n                \"id\": \"r_tabBewMahnung\",\n                \"caption\": \"geschaeftspartner-edit.r_tabbewmahnung_caption\",\n                \"if\": \"(models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsKunde || models.data.$m_Geschaeftspartner.Geschaeftspartnerart.IsRechnungsadresse ) && functions.$f_GeschaeftspartnerEditUtils.hasMahnung\"\n            }],\n            \"id\": \"r_tabBewegung\",\n            \"options\": {\n                \"optionsName\": \"r_tabBewegungOptions\",\n                \"optionsNameFQ\": \"r_tabBewegungOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_maItMailImportDefinition\",\n                \"caption\": \"geschaeftspartner-edit.r_maitmailimportdefinition_caption\",\n                \"bindTo\": \"MailImportDefinition.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_maitdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_maItBetreff\",\n                \"caption\": \"geschaeftspartner-edit.r_maitbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItPerson\",\n                \"caption\": \"geschaeftspartner-edit.r_maitperson_caption\",\n                \"bindTo\": \"Person.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_maItStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_maitstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kommunikationMailToolbarOptions\",\n                \"optionsNameFQ\": \"r_kommunikationMailToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\"\n            },\n            \"dataModel\": \"$m_MailImportItem\",\n            \"editUrl\": \"ERP/Stammdaten/MailImportItem\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kommunikationMail\",\n            \"options\": {\n                \"optionsName\": \"r_kommunikationMailOptions\",\n                \"optionsNameFQ\": \"r_kommunikationMailOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_briefFirma\",\n                \"caption\": \"geschaeftspartner-edit.r_brieffirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefSachbearbeiter\",\n                \"caption\": \"geschaeftspartner-edit.r_briefsachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_briefProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_briefprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_briefDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_briefdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_briefEmpfaenger\",\n                \"caption\": \"geschaeftspartner-edit.r_briefempfaenger_caption\",\n                \"bindTo\": \"EmpfaengerDisplayText\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefBetreff\",\n                \"caption\": \"geschaeftspartner-edit.r_briefbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_briefText\",\n                \"caption\": \"geschaeftspartner-edit.r_brieftext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefAnzAnhaenge\",\n                \"caption\": \"geschaeftspartner-edit.r_briefanzanhaenge_caption\",\n                \"bindTo\": \"AnzAnhaenge\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_briefStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_briefstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kommunikationBriefToolbarOptions\",\n                \"optionsNameFQ\": \"r_kommunikationBriefToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\"\n            },\n            \"dataModel\": \"$m_Brief\",\n            \"editUrl\": \"ERP/Stammdaten/Brief\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kommunikationBrief\",\n            \"options\": {\n                \"optionsName\": \"r_kommunikationBriefOptions\",\n                \"optionsNameFQ\": \"r_kommunikationBriefOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_projeNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_projenummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_projeProjektart\",\n                \"caption\": \"geschaeftspartner-edit.r_projeprojektart_caption\",\n                \"bindTo\": \"Projektart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_projeBezeichnung\",\n                \"caption\": \"geschaeftspartner-edit.r_projebezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_projeSachbearbeiter\",\n                \"caption\": \"geschaeftspartner-edit.r_projesachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_projeStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_projestatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewProjektGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewProjektGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\"\n            },\n            \"dataModel\": \"$m_Projekt\",\n            \"editUrl\": \"ERP/Stammdaten/Projekt\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewProjektGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewProjektGridOptions\",\n                \"optionsNameFQ\": \"r_bewProjektGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_angNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_angnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_angdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_angprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angGueltigBis\",\n                \"caption\": \"geschaeftspartner-edit.r_anggueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_angwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_angwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_angStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_angstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewAngebotGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewAngebotGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewangebotgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewAngebot\"\n            },\n            \"dataModel\": \"$m_BewAngebot\",\n            \"editUrl\": \"ERP/Verkauf/Angebot\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewAngebotGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewAngebotGridOptions\",\n                \"optionsNameFQ\": \"r_bewAngebotGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_aufNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_aufnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_aufdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_aufprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufLieferdatum\",\n                \"caption\": \"geschaeftspartner-edit.r_auflieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_AuftragService.onLieferdatumCellPrepared\"\n            }, {\n                \"id\": \"r_aufReservierungsgrad\",\n                \"caption\": \"geschaeftspartner-edit.r_aufreservierungsgrad_caption\",\n                \"bindTo\": \"Reservierungsgrad\",\n                \"width\": \"80px\",\n                \"format\": \"p0\",\n                \"onCellPrepared\": \"functions.$f_GeschaeftspartnerEditUtils.onReservierungsgradCellPrepared\"\n            }, {\n                \"id\": \"r_aufWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_aufwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_aufwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_aufStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_aufstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewAuftragGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewAuftragGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewauftraggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewAuftrag\"\n            },\n            \"dataModel\": \"$m_BewAuftrag\",\n            \"editUrl\": \"ERP/Verkauf/Auftrag\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewAuftragGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewAuftragGridOptions\",\n                \"optionsNameFQ\": \"r_bewAuftragGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_liefsNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_liefsnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_liefsdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefsProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_liefsprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefsWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_liefswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefsWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_liefswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_liefsStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_liefsstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewLieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewLieferscheinGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewlieferscheingrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewLieferschein\"\n            },\n            \"dataModel\": \"$m_BewLieferschein\",\n            \"editUrl\": \"ERP/Verkauf/Lieferschein\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewLieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewLieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_bewLieferscheinGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_fakNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_faknummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_fakdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_fakProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_fakprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_fakwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_fakWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_fakwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_fakAbschlagsfaktura\",\n                \"caption\": \"geschaeftspartner-edit.r_fakabschlagsfaktura_caption\",\n                \"bindTo\": \"IsAbschlagsfaktura\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakZahlungFaellig\",\n                \"caption\": \"geschaeftspartner-edit.r_fakzahlungfaellig_caption\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_GeschaeftspartnerEditUtils.onZahlungFaelligCellPrepared\"\n            }, {\n                \"id\": \"r_fakMahnstufe\",\n                \"caption\": \"geschaeftspartner-edit.r_fakmahnstufe_caption\",\n                \"bindTo\": \"Mahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_fakStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_fakstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewFakturaGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewFakturaGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewfakturagrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewFaktura\"\n            },\n            \"dataModel\": \"$m_BewFaktura\",\n            \"editUrl\": \"ERP/Verkauf/Faktura\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewFakturaGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewFakturaGridOptions\",\n                \"optionsNameFQ\": \"r_bewFakturaGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_reklNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_reklnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_rekldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_reklProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_reklprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_reklWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_reklwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_reklStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_reklstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewKundenreklamationGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewKundenreklamationGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewkundenreklamationgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewKundenreklamation\"\n            },\n            \"dataModel\": \"$m_BewKundenreklamation\",\n            \"editUrl\": \"ERP/Verkauf/Kundenreklamation\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewKundenreklamationGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewKundenreklamationGridOptions\",\n                \"optionsNameFQ\": \"r_bewKundenreklamationGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_besNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_besnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_besdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_besprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besAuftragNr\",\n                \"caption\": \"geschaeftspartner-edit.r_besauftragnr_caption\",\n                \"bindTo\": \"Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besLieferdatum\",\n                \"caption\": \"geschaeftspartner-edit.r_beslieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_beswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_besWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_beswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_besStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_besstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewBestellungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewBestellungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewBestellung\"\n            },\n            \"dataModel\": \"$m_BewBestellung\",\n            \"editUrl\": \"ERP/Einkauf/Bestellung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewBestellungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewBestellungGridOptions\",\n                \"optionsNameFQ\": \"r_bewBestellungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_waNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_wanummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_waDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_wadatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_waProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_waprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_waWertNetto\",\n                \"caption\": \"geschaeftspartner-edit.r_wawertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_waWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_wawaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_waStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_wastatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewWarenuebernahmeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewWarenuebernahmeGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewWarenuebernahme\"\n            },\n            \"dataModel\": \"$m_BewWarenuebernahme\",\n            \"editUrl\": \"ERP/Einkauf/Warenuebernahme\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewWarenuebernahmeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewWarenuebernahmeGridOptions\",\n                \"optionsNameFQ\": \"r_bewWarenuebernahmeGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_einNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_einnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_eindatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_einProjekt\",\n                \"caption\": \"geschaeftspartner-edit.r_einprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_einwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_einStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_einstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewEingangsrechnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewEingangsrechnungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewEingangsrechnung\"\n            },\n            \"dataModel\": \"$m_BewEingangsrechnung\",\n            \"editUrl\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewEingangsrechnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewEingangsrechnungGridOptions\",\n                \"optionsNameFQ\": \"r_bewEingangsrechnungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_kassaBelKassa\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelkassa_caption\",\n                \"bindTo\": \"Kassa.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelFirma\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelNummer\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaBelDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabeldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_kassaBelTyp\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabeltyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.KassaBelegTyp\"\n            }, {\n                \"id\": \"r_kassaBelText\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabeltext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kassaBelZahlungsart\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelzahlungsart_caption\",\n                \"bindTo\": \"Zahlungsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_kassaBelAufRechnung\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelaufrechnung_caption\",\n                \"bindTo\": \"IsAufRechnung\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassaBelWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_kassaBelZahlbetrag\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelzahlbetrag_caption\",\n                \"bindTo\": \"Zahlbetrag\",\n                \"width\": \"90px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_kassaBelSignaturStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelsignaturstatus_caption\",\n                \"bindTo\": \"SignaturStatus\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.KassaBelegSignaturStatus\"\n            }, {\n                \"id\": \"r_kassaBelStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_kassabelstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewKassaBelegGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewKassaBelegGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewkassabeleggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_KassaBeleg\"\n            },\n            \"dataModel\": \"$m_KassaBeleg\",\n            \"editUrl\": \"ERP/Kassa/KassaBeleg\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewKassaBelegGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewKassaBelegGridOptions\",\n                \"optionsNameFQ\": \"r_bewKassaBelegGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_zahlungKassaBelKassa\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungkassabelkassa_caption\",\n                \"bindTo\": \"Typ\",\n                \"minWidth\": 120,\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.ZahlungTyp\"\n            }, {\n                \"id\": \"r_zahlungKassaBelFirma\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungkassabelfirma_caption\",\n                \"bindTo\": \"Zahlungsart.Bezeichnung\",\n                \"minWidth\": 120\n            }, {\n                \"id\": \"r_zahlungFakturaNr\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungfakturanr_caption\",\n                \"bindTo\": \"Faktura.Nummer\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_zahlungFakturaDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungfakturadatum_caption\",\n                \"bindTo\": \"Faktura.Datum\",\n                \"width\": \"100px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlungEingangsrechnungNr\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungeingangsrechnungnr_caption\",\n                \"bindTo\": \"Eingangsrechnung.Nummer\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_zahlungEingangsrechnungDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungeingangsrechnungdatum_caption\",\n                \"bindTo\": \"Eingangsrechnung.Datum\",\n                \"width\": \"100px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlungKassabelegNr\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungkassabelegnr_caption\",\n                \"bindTo\": \"KassaBeleg.Nummer\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_zahlungKassabelegDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungkassabelegdatum_caption\",\n                \"bindTo\": \"KassaBeleg.Datum\",\n                \"width\": \"100px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlungBelegNr\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungbelegnr_caption\",\n                \"bindTo\": \"BelegNr\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_zahlungBelegdatum\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungbelegdatum_caption\",\n                \"bindTo\": \"Belegdatum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlungBetrag\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungbetrag_caption\",\n                \"bindTo\": \"Betrag\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_zahlungSkonto\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungskonto_caption\",\n                \"bindTo\": \"Skonto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_zahlungWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_zahlungwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"80px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewZahlungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewZahlungGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewzahlunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\"\n            },\n            \"dataModel\": \"$m_Zahlung\",\n            \"editUrl\": \"ERP/Verkauf/Zahlung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewZahlungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewZahlungGridOptions\",\n                \"optionsNameFQ\": \"r_bewZahlungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_mahnDatum\",\n                \"caption\": \"geschaeftspartner-edit.r_mahndatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_mahnBetragOffen\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnbetragoffen_caption\",\n                \"bindTo\": \"BetragOffen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnZinsen\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnzinsen_caption\",\n                \"bindTo\": \"Zinsen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMahnspesen\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnmahnspesen_caption\",\n                \"bindTo\": \"Mahnspesen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMaxMahnstufe\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnmaxmahnstufe_caption\",\n                \"bindTo\": \"MaxMahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_mahnWaehrung\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_mahnStatus\",\n                \"caption\": \"geschaeftspartner-edit.r_mahnstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewMahnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewMahnungGridToolbarOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_bewmahnunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewMahnung\"\n            },\n            \"dataModel\": \"$m_BewMahnung\",\n            \"editUrl\": \"ERP/Verkauf/Mahnung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewMahnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewMahnungGridOptions\",\n                \"optionsNameFQ\": \"r_bewMahnungGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_copyPopup\",\n            \"options\": {\n                \"optionsName\": \"r_copyPopupOptions\",\n                \"optionsNameFQ\": \"r_copyPopupOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_copypopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"700px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_GeschaeftspartnerEditUtils.doCopyCommand\",\n                    \"bindToFQ\": \"functions.$f_GeschaeftspartnerEditUtils.doCopyCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnercopynummer_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_GeschaeftspartnerCopy\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_GeschaeftspartnerCopy.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnerCopyNummer\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerCopyNummerOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerCopyNummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"geschaeftspartnerart\",\n            \"filters\": [],\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnercopyart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_GeschaeftspartnerCopy\",\n                \"bindTo\": \"IdGeschaeftspartnerart\",\n                \"bindToFQ\": \"models.data.$m_GeschaeftspartnerCopy.IdGeschaeftspartnerart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnerCopyArt\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerCopyArtOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerCopyArtOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnercopynotiz_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_GeschaeftspartnerCopy\",\n                \"bindTo\": \"DoKopierenNotizen\",\n                \"bindToFQ\": \"models.data.$m_GeschaeftspartnerCopy.DoKopierenNotizen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnerCopyNotiz\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerCopyNotizOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerCopyNotizOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnercopykonditionen_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_GeschaeftspartnerCopy\",\n                \"bindTo\": \"DoKopierenKonditionen\",\n                \"bindToFQ\": \"models.data.$m_GeschaeftspartnerCopy.DoKopierenKonditionen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnerCopyKonditionen\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerCopyKonditionenOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerCopyKonditionenOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_geschaeftspartnerartPopup\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerartPopupOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerartPopupOptions\"\n            },\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnerartpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_GeschaeftspartnerEditUtils.doGeschaeftspartnerartAendernCommand\",\n                    \"bindToFQ\": \"functions.$f_GeschaeftspartnerEditUtils.doGeschaeftspartnerartAendernCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"geschaeftspartnerart\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"NummerGeschaeftspartner\",\n                \"webApiCustomValue\": \"models.data.$m_Geschaeftspartner.Nummer\"\n            }],\n            \"caption\": \"geschaeftspartner-edit.r_geschaeftspartnerartedit_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_geschaeftspartnerartEdit\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerartEditOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerartEditOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n    r_tabBewegungSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./geschaeftspartner-edit-form.less\\\"></require> <require from=\\\"../person/person-edit-form\\\"></require> <require from=\\\"./bankverbindung-edit-form\\\"></require> <require from=\\\"../../kalkulation/kondition/kondition-list-nested-form\\\"></require> <require from=\\\"../../../dashboard/viewer/viewer\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"personEditPopupOptions\\\" view-model.ref=\\\"personEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <person-edit-form view-model.ref=\\\"personEditPopupContent\\\" is-edit-popup=\\\"true\\\"></person-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"bankverbindungEditPopupOptions\\\" view-model.ref=\\\"bankverbindungEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <bankverbindung-edit-form view-model.ref=\\\"bankverbindungEditPopupContent\\\" is-edit-popup=\\\"true\\\"></bankverbindung-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_art_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_artOptions\\\" view-model.ref=\\\"r_art\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_isprivatperson_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isPrivatpersonOptions\\\" view-model.ref=\\\"r_isPrivatperson\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"!models.data.$m_Geschaeftspartner.Id && models.data.$m_Geschaeftspartner.IsPrivatperson\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_persanrede_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_persAnredeOptions\\\" view-model.ref=\\\"r_persAnrede\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_perstitelvorne_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_persTitelVorneOptions\\\" view-model.ref=\\\"r_persTitelVorne\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_persvorname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_persVornameOptions\\\" view-model.ref=\\\"r_persVorname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_persnachname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_persNachnameOptions\\\" view-model.ref=\\\"r_persNachname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_perstitelhinten_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_persTitelHintenOptions\\\" view-model.ref=\\\"r_persTitelHinten\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <adresse main-model.bind=\\\"models.data.$m_Geschaeftspartner\\\" id-adresse.bind=\\\"models.data.$m_Geschaeftspartner.IdAdresse\\\" adresse-property-name=\\\"Adresse\\\" is-adresse-read-only.bind=\\\"false\\\" is-firmenbez-hidden.bind=\\\"models.data.$m_Geschaeftspartner.IsPrivatperson && !models.data.$m_Geschaeftspartner.Id\\\"></adresse> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_email_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_emailOptions\\\" view-model.ref=\\\"r_email\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_homepage_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_homepageOptions\\\" view-model.ref=\\\"r_homepage\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_telefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_telefonOptions\\\" view-model.ref=\\\"r_telefon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_fax_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_faxOptions\\\" view-model.ref=\\\"r_fax\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_uidnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_uidNummerOptions\\\" view-model.ref=\\\"r_uidNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Geschaeftspartner\\\" web-api-action=\\\"ERP/Stammdaten/Geschaeftspartner\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_GeschaeftspartnerEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"gpPersonGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gpPersonGridOptions\\\" view-model.ref=\\\"gpPersonGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"gpBankverbindungGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"gpBankverbindungGridOptions\\\" view-model.ref=\\\"gpBankverbindungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kondition-list-nested-form class=\\\"t--is-nested-form\\\" is-nested-form=\\\"true\\\" view-model.ref=\\\"konditionListNested\\\"></kondition-list-nested-form> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_GeschaeftspartnerEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Geschaeftspartner.Id > 0\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabBewegungOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabBewegungTabPage0\\\" if.bind=\\\"r_tabBewegungSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kommunikationMailOptions\\\" view-model.ref=\\\"r_kommunikationMail\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage1\\\" if.bind=\\\"r_tabBewegungSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kommunikationBriefOptions\\\" view-model.ref=\\\"r_kommunikationBrief\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage2\\\" if.bind=\\\"r_tabBewegungSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <viewer view-model.ref=\\\"r_dashboard\\\" typ.bind=\\\"1\\\" main-model.bind=\\\"models.data.$m_Geschaeftspartner\\\"></viewer> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage3\\\" if.bind=\\\"r_tabBewegungSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewProjektGridOptions\\\" view-model.ref=\\\"r_bewProjektGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage4\\\" if.bind=\\\"r_tabBewegungSelected === 4\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewAngebotGridOptions\\\" view-model.ref=\\\"r_bewAngebotGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage5\\\" if.bind=\\\"r_tabBewegungSelected === 5\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewAuftragGridOptions\\\" view-model.ref=\\\"r_bewAuftragGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage6\\\" if.bind=\\\"r_tabBewegungSelected === 6\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewLieferscheinGridOptions\\\" view-model.ref=\\\"r_bewLieferscheinGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage7\\\" if.bind=\\\"r_tabBewegungSelected === 7\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewFakturaGridOptions\\\" view-model.ref=\\\"r_bewFakturaGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage8\\\" if.bind=\\\"r_tabBewegungSelected === 8\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewKundenreklamationGridOptions\\\" view-model.ref=\\\"r_bewKundenreklamationGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage9\\\" if.bind=\\\"r_tabBewegungSelected === 9\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewBestellungGridOptions\\\" view-model.ref=\\\"r_bewBestellungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage10\\\" if.bind=\\\"r_tabBewegungSelected === 10\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewWarenuebernahmeGridOptions\\\" view-model.ref=\\\"r_bewWarenuebernahmeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage11\\\" if.bind=\\\"r_tabBewegungSelected === 11\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewEingangsrechnungGridOptions\\\" view-model.ref=\\\"r_bewEingangsrechnungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage12\\\" if.bind=\\\"r_tabBewegungSelected === 12\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewKassaBelegGridOptions\\\" view-model.ref=\\\"r_bewKassaBelegGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage13\\\" if.bind=\\\"r_tabBewegungSelected === 13\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewZahlungGridOptions\\\" view-model.ref=\\\"r_bewZahlungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage14\\\" if.bind=\\\"r_tabBewegungSelected === 14\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewMahnungGridOptions\\\" view-model.ref=\\\"r_bewMahnungGrid\\\"></dx-widget> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_copyPopupOptions\\\" view-model.ref=\\\"r_copyPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_geschaeftspartnercopynummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_geschaeftspartnerCopyNummerOptions\\\" view-model.ref=\\\"r_geschaeftspartnerCopyNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_geschaeftspartnercopyart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_geschaeftspartnerCopyArtOptions\\\" view-model.ref=\\\"r_geschaeftspartnerCopyArt\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_geschaeftspartnercopynotiz_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_geschaeftspartnerCopyNotizOptions\\\" view-model.ref=\\\"r_geschaeftspartnerCopyNotiz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_geschaeftspartnercopykonditionen_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_geschaeftspartnerCopyKonditionenOptions\\\" view-model.ref=\\\"r_geschaeftspartnerCopyKonditionen\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_geschaeftspartnerartPopupOptions\\\" view-model.ref=\\\"r_geschaeftspartnerartPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: geschaeftspartner-edit.r_geschaeftspartnerartedit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_geschaeftspartnerartEditOptions\\\" view-model.ref=\\\"r_geschaeftspartnerartEdit\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    GeschaeftspartnerListUtils\n} from \"./geschaeftspartner-list-utils\";\n\n@fwx.autoinject\nexport class GeschaeftspartnerListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_GeschaeftspartnerListUtils: GeschaeftspartnerListUtils) {\n        super(element, formBaseImport);\n        this.id = \"geschaeftspartner-list\";\n        this.title = \"geschaeftspartner-list.geschaeftspartner-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Geschaeftspartner\",\n            \"webApiAction\": \"ERP/Stammdaten/Geschaeftspartner\",\n            \"webApiExpand\": {\n                'Adresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                },\n                'Geschaeftspartnerart': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_geschaeftspartnerGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_GeschaeftspartnerListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_GeschaeftspartnerListUtils.doExport\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_GeschaeftspartnerListUtils\", $f_GeschaeftspartnerListUtils, \"functions.$f_GeschaeftspartnerListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_gespNummer\",\n                \"caption\": \"geschaeftspartner-list.r_gespnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_gespArt\",\n                \"caption\": \"geschaeftspartner-list.r_gespart_caption\",\n                \"bindTo\": \"Geschaeftspartnerart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_gespFirmenbez1\",\n                \"caption\": \"geschaeftspartner-list.r_gespfirmenbez1_caption\",\n                \"bindTo\": \"Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gespFirmenbez2\",\n                \"caption\": \"geschaeftspartner-list.r_gespfirmenbez2_caption\",\n                \"bindTo\": \"Adresse.Firmenbez2\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gespStrasse\",\n                \"caption\": \"geschaeftspartner-list.r_gespstrasse_caption\",\n                \"bindTo\": \"Adresse.Strasse\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gespLand\",\n                \"caption\": \"geschaeftspartner-list.r_gespland_caption\",\n                \"bindTo\": \"Adresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_gespPlz\",\n                \"caption\": \"geschaeftspartner-list.r_gespplz_caption\",\n                \"bindTo\": \"Adresse.PLZ\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_gespOrt\",\n                \"caption\": \"geschaeftspartner-list.r_gesport_caption\",\n                \"bindTo\": \"Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_gespStatus\",\n                \"caption\": \"geschaeftspartner-list.r_gespstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_geschaeftspartnerGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Geschaeftspartner\"\n            },\n            \"dataModel\": \"$m_Geschaeftspartner\",\n            \"editUrl\": \"ERP/Stammdaten/Geschaeftspartner\",\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_geschaeftspartnerGrid\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerGridOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_geschaeftspartnerGridOptions\\\" view-model.ref=\\\"r_geschaeftspartnerGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    IntrastatSyncEditUtils\n} from \"./intrastat-sync-edit-utils\";\n\n@fwx.autoinject\nexport class IntrastatSyncEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_IntrastatSyncJobEditUtils: IntrastatSyncEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"intrastat-sync-edit\";\n        this.title = \"intrastat-sync-edit.intrastat-sync-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_IntrastatSync\",\n            \"webApiAction\": \"ERP/Stammdaten/IntrastatSync\",\n            \"webApiExpand\": {\n                'Firma': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                },\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_IntrastatSyncJobEditUtils.doSynchronisierungStarten\",\n                \"bindToFQ\": \"functions.$f_IntrastatSyncJobEditUtils.doSynchronisierungStarten\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_IntrastatSyncJobEditUtils\", $f_IntrastatSyncJobEditUtils, \"functions.$f_IntrastatSyncJobEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"intrastatSyncTyp\",\n            \"filters\": [],\n            \"caption\": \"intrastat-sync-edit.r_synctyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.Typ\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_syncTyp\",\n            \"options\": {\n                \"optionsName\": \"r_syncTypOptions\",\n                \"optionsNameFQ\": \"r_syncTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"intrastat-sync-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"intrastat-sync-edit.r_datumvon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"DatumVon\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.DatumVon\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datumVon\",\n            \"options\": {\n                \"optionsName\": \"r_datumVonOptions\",\n                \"optionsNameFQ\": \"r_datumVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"intrastat-sync-edit.r_datumbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"DatumBis\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.DatumBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datumBis\",\n            \"options\": {\n                \"optionsName\": \"r_datumBisOptions\",\n                \"optionsNameFQ\": \"r_datumBisOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"intrastat-sync-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.Firma.Bezeichnung\",\n                \"propertyPrefix\": \"Firma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"intrastat-sync-edit.r_dmslink_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_IntrastatSync.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmslink\",\n            \"options\": {\n                \"optionsName\": \"r_dmslinkOptions\",\n                \"optionsNameFQ\": \"r_dmslinkOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_synctyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_syncTypOptions\\\" view-model.ref=\\\"r_syncTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_datumvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumVonOptions\\\" view-model.ref=\\\"r_datumVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_datumbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumBisOptions\\\" view-model.ref=\\\"r_datumBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmslinkOptions\\\" view-model.ref=\\\"r_dmslink\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    IntrastatSyncListUtils\n} from \"./intrastat-sync-list-utils\";\n\n@fwx.autoinject\nexport class IntrastatSyncListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_IntrastatSyncListUtils: IntrastatSyncListUtils) {\n        super(element, formBaseImport);\n        this.id = \"intrastat-sync-list\";\n        this.title = \"intrastat-sync-list.intrastat-sync-list_caption\";\n        this.addModel({\n            \"id\": \"$m_IntrastatSync\",\n            \"webApiAction\": \"ERP/Stammdaten/IntrastatSync\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_IntrastatSyncListUtils.showSynchronsierenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_IntrastatSyncListUtils.showSynchronsierenPopupCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_IntrastatSyncListUtils\", $f_IntrastatSyncListUtils, \"functions.$f_IntrastatSyncListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_intrastatSyncTyp\",\n                \"caption\": \"intrastat-sync-list.r_intrastatsynctyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.IntrastatSyncTyp\"\n            }, {\n                \"id\": \"r_intrastatSyncDatumVon\",\n                \"caption\": \"intrastat-sync-list.r_intrastatsyncdatumvon_caption\",\n                \"bindTo\": \"DatumVon\",\n                \"width\": \"120px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_intrastatSyncDatumBis\",\n                \"caption\": \"intrastat-sync-list.r_intrastatsyncdatumbis_caption\",\n                \"bindTo\": \"DatumBis\",\n                \"width\": \"120px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_intrastatSyncFirma\",\n                \"caption\": \"intrastat-sync-list.r_intrastatsyncfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_intrastatSyncStatus\",\n                \"caption\": \"intrastat-sync-list.r_intrastatsyncstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_intrastatSyncGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_intrastatSyncGridToolbarOptions\"\n            },\n            \"caption\": \"intrastat-sync-list.r_intrastatsyncgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_IntrastatSync\"\n            },\n            \"dataModel\": \"$m_IntrastatSync\",\n            \"editUrl\": \"ERP/Stammdaten/IntrastatSync\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_intrastatSyncGrid\",\n            \"options\": {\n                \"optionsName\": \"r_intrastatSyncGridOptions\",\n                \"optionsNameFQ\": \"r_intrastatSyncGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_intrastatSyncPopup\",\n            \"options\": {\n                \"optionsName\": \"r_intrastatSyncPopupOptions\",\n                \"optionsNameFQ\": \"r_intrastatSyncPopupOptions\"\n            },\n            \"caption\": \"intrastat-sync-list.r_intrastatsyncpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_IntrastatSyncListUtils.doSynchronisierenCommand\",\n                    \"bindToFQ\": \"functions.$f_IntrastatSyncListUtils.doSynchronisierenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"intrastatSyncTyp\",\n            \"filters\": [],\n            \"caption\": \"intrastat-sync-list.r_intrastatsynctyp_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_intrastatSyncTyp\",\n            \"options\": {\n                \"optionsName\": \"r_intrastatSyncTypOptions\",\n                \"optionsNameFQ\": \"r_intrastatSyncTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"intrastat-sync-list.r_firma_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"intrastat-sync-list.r_datumvon_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datumVon\",\n            \"options\": {\n                \"optionsName\": \"r_datumVonOptions\",\n                \"optionsNameFQ\": \"r_datumVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"intrastat-sync-list.r_datumbis_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datumBis\",\n            \"options\": {\n                \"optionsName\": \"r_datumBisOptions\",\n                \"optionsNameFQ\": \"r_datumBisOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_intrastatSyncGridOptions\\\" view-model.ref=\\\"r_intrastatSyncGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_intrastatSyncPopupOptions\\\" view-model.ref=\\\"r_intrastatSyncPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-list.r_intrastatsynctyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_intrastatSyncTypOptions\\\" view-model.ref=\\\"r_intrastatSyncTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-list.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-list.r_datumvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumVonOptions\\\" view-model.ref=\\\"r_datumVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: intrastat-sync-list.r_datumbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumBisOptions\\\" view-model.ref=\\\"r_datumBis\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class MailImportItemAnhangEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"mail-import-item-anhang-edit\";\n        this.title = \"mail-import-item-anhang-edit.mail-import-item-anhang-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_MailImportItemAnhang\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItemAnhang\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"allowDelete\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_MailImportItem\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItem\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_MailImportItemAnhang.IdMailImportItem\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"mail-import-item-anhang-edit.r_bezeichnung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItemAnhang\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_MailImportItemAnhang.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"dokumentenart\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"IsMailImport\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"IsMailImport\",\n                \"webApiCustomValue\": \"true\"\n            }],\n            \"caption\": \"mail-import-item-anhang-edit.r_dokumentenart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItemAnhang\",\n                \"bindTo\": \"IdDokumentenart\",\n                \"bindToFQ\": \"models.data.$m_MailImportItemAnhang.IdDokumentenart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_dokumentenart\",\n            \"options\": {\n                \"optionsName\": \"r_dokumentenartOptions\",\n                \"optionsNameFQ\": \"r_dokumentenartOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-anhang-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-anhang-edit.r_dokumentenart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_dokumentenartOptions\\\" view-model.ref=\\\"r_dokumentenart\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    MailImportItemEditUtils\n} from \"./mail-import-item-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class MailImportItemEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_MailImportItemEditUtils: MailImportItemEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"mail-import-item-edit\";\n        this.title = \"mail-import-item-edit.mail-import-item-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_MailImportItem\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItem\",\n            \"webApiExpand\": {\n                'MailImportItemAnhaenge': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_MailImportItemAnhangRel\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItemAnhang\",\n            \"webApiExpand\": {\n                'Dokumentenart': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_MailImportItemAnhangEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItemAnhang\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Kunde': null,\n                'KundeAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdKunde\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Kunde': null,\n                'KundeAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdKunde\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Faktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"webApiExpand\": {\n                'Rechnungsort': null,\n                'RechnungsortAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"IdRechnungsort\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n                }],\n                [\"Status.Typ\", 1]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Angebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"webApiExpand\": {\n                'Kunde': null,\n                'KundeAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdKunde\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Kundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"webApiExpand\": {\n                'Kunde': null,\n                'KundeAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdKunde\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Bestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"webApiExpand\": {\n                'Lieferant': null,\n                'LieferantAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdLieferant\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Eingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"webApiExpand\": {\n                'Lieferant': null,\n                'LieferantAdresse': null,\n                'Projekt': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdLieferant\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_MailImportItemEditUtils.neuCommand\",\n                \"bindToFQ\": \"functions.$f_MailImportItemEditUtils.neuCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_MailImportItemEditUtils.verknuepfenCommand\",\n                \"bindToFQ\": \"functions.$f_MailImportItemEditUtils.verknuepfenCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"mailImportItemAnhangEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_MailImportItemAnhangEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_MailImportItemAnhangEdit.Id\"\n                }\n            }],\n            \"id\": \"mailImportItemAnhangEditPopup\",\n            \"options\": {\n                \"optionsName\": \"mailImportItemAnhangEditPopupOptions\",\n                \"optionsNameFQ\": \"mailImportItemAnhangEditPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.mailimportitemanhangeditpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"700px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_MailImportItemEditUtils\", $f_MailImportItemEditUtils, \"functions.$f_MailImportItemEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"mailImportDefinition\",\n            \"filters\": [],\n            \"caption\": \"mail-import-item-edit.r_mailimportdef_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"IdMailImportDefinition\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.IdMailImportDefinition\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_mailImportDef\",\n            \"options\": {\n                \"optionsName\": \"r_mailImportDefOptions\",\n                \"optionsNameFQ\": \"r_mailImportDefOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"g\",\n            \"caption\": \"mail-import-item-edit.r_datum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.Datum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"mail-import-item-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"mail-import-item-edit.r_absenderemail_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"AbsenderEmail\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.AbsenderEmail\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_absenderEmail\",\n            \"options\": {\n                \"optionsName\": \"r_absenderEmailOptions\",\n                \"optionsNameFQ\": \"r_absenderEmailOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"mail-import-item-edit.r_emfpaengeremail_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"EmpfaengerEmail\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.EmpfaengerEmail\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_emfpaengerEmail\",\n            \"options\": {\n                \"optionsName\": \"r_emfpaengerEmailOptions\",\n                \"optionsNameFQ\": \"r_emfpaengerEmailOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"mail-import-item-edit.r_betreff_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"person\",\n            \"filter\": [\"IdGeschaeftspartner\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_MailImportItem.IdGeschaeftspartner\"\n            }],\n            \"filters\": [],\n            \"caption\": \"mail-import-item-edit.r_person_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\",\n                \"bindTo\": \"IdPerson\",\n                \"bindToFQ\": \"models.data.$m_MailImportItem.IdPerson\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_person\",\n            \"options\": {\n                \"optionsName\": \"r_personOptions\",\n                \"optionsNameFQ\": \"r_personOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_anhangBezeichnung\",\n                \"caption\": \"mail-import-item-edit.r_anhangbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }, {\n                \"id\": \"r_anhangDokumentenart\",\n                \"caption\": \"mail-import-item-edit.r_anhangdokumentenart_caption\",\n                \"bindTo\": \"Dokumentenart.Bezeichnung\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_mailImportItemAnhangGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_mailImportItemAnhangGridToolbarOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_mailimportitemanhanggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_MailImportItemAnhangRel\",\n                \"bindTo\": \"IdMailImportItem\",\n                \"bindToFQ\": \"models.data.$m_MailImportItemAnhangRel.IdMailImportItem\"\n            },\n            \"dataModel\": \"$m_MailImportItem\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onAnhangClicked($event)\",\n            \"showToolbarTitle\": true,\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_MailImportItem\",\n                    \"bindTo\": \"$f_MailImportItemEditUtils.herunterladenCommand\",\n                    \"bindToFQ\": \"functions.$f_MailImportItemEditUtils.herunterladenCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_MailImportItem\",\n                    \"bindTo\": \"$f_MailImportItemEditUtils.versendenCommand\",\n                    \"bindToFQ\": \"functions.$f_MailImportItemEditUtils.versendenCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_MailImportItem\",\n                    \"bindTo\": \"$f_MailImportItemEditUtils.dokumentenartZuteilenCommand\",\n                    \"bindToFQ\": \"functions.$f_MailImportItemEditUtils.dokumentenartZuteilenCommand\"\n                }\n            }],\n            \"id\": \"r_mailImportItemAnhangGrid\",\n            \"options\": {\n                \"optionsName\": \"r_mailImportItemAnhangGridOptions\",\n                \"optionsNameFQ\": \"r_mailImportItemAnhangGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_angebotPopup\",\n            \"options\": {\n                \"optionsName\": \"r_angebotPopupOptions\",\n                \"optionsNameFQ\": \"r_angebotPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_angebotpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_angAngebotNummer\",\n                \"caption\": \"mail-import-item-edit.r_angangebotnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angDatum\",\n                \"caption\": \"mail-import-item-edit.r_angdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angProjekt\",\n                \"caption\": \"mail-import-item-edit.r_angprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angKundeNr\",\n                \"caption\": \"mail-import-item-edit.r_angkundenr_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_angFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_angfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angStatus\",\n                \"caption\": \"mail-import-item-edit.r_angstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\"\n            },\n            \"dataModel\": \"$m_Angebot\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_angebotPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_angebotGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotGridOptions\",\n                \"optionsNameFQ\": \"r_angebotGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_auftragPopup\",\n            \"options\": {\n                \"optionsName\": \"r_auftragPopupOptions\",\n                \"optionsNameFQ\": \"r_auftragPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_auftragpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_auftAuftragNummer\",\n                \"caption\": \"mail-import-item-edit.r_auftauftragnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_auftDatum\",\n                \"caption\": \"mail-import-item-edit.r_auftdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_auftProjekt\",\n                \"caption\": \"mail-import-item-edit.r_auftprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_auftKundeNr\",\n                \"caption\": \"mail-import-item-edit.r_auftkundenr_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_auftFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_auftfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_auftStatus\",\n                \"caption\": \"mail-import-item-edit.r_auftstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_auftragPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_auftragGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragGridOptions\",\n                \"optionsNameFQ\": \"r_auftragGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_lieferscheinPopup\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinPopupOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_lieferscheinpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_lieferscheinNummer\",\n                \"caption\": \"mail-import-item-edit.r_lieferscheinnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefDatum\",\n                \"caption\": \"mail-import-item-edit.r_liefdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefProjekt\",\n                \"caption\": \"mail-import-item-edit.r_liefprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefKundeNr\",\n                \"caption\": \"mail-import-item-edit.r_liefkundenr_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_liefFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_lieffirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefStatus\",\n                \"caption\": \"mail-import-item-edit.r_liefstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_lieferscheinPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_fakturaPopup\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaPopupOptions\",\n                \"optionsNameFQ\": \"r_fakturaPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_fakturapopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_faktNummer\",\n                \"caption\": \"mail-import-item-edit.r_faktnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_faktDatum\",\n                \"caption\": \"mail-import-item-edit.r_faktdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_faktProjekt\",\n                \"caption\": \"mail-import-item-edit.r_faktprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_faktKundeNr\",\n                \"caption\": \"mail-import-item-edit.r_faktkundenr_caption\",\n                \"bindTo\": \"Rechnungsort.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_faktFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_faktfirmenbez1_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_faktStatus\",\n                \"caption\": \"mail-import-item-edit.r_faktstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fakturaGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fakturaGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\"\n            },\n            \"dataModel\": \"$m_Faktura\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_fakturaPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fakturaGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaGridOptions\",\n                \"optionsNameFQ\": \"r_fakturaGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_kundenreklamationPopup\",\n            \"options\": {\n                \"optionsName\": \"r_kundenreklamationPopupOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_kundenreklamationpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_kurlNummer\",\n                \"caption\": \"mail-import-item-edit.r_kurlnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kurlDatum\",\n                \"caption\": \"mail-import-item-edit.r_kurldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_kurlProjekt\",\n                \"caption\": \"mail-import-item-edit.r_kurlprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kurlKundeNr\",\n                \"caption\": \"mail-import-item-edit.r_kurlkundenr_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_kurlFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_kurlfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_kurlStatus\",\n                \"caption\": \"mail-import-item-edit.r_kurlstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kundenreklamationGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\"\n            },\n            \"dataModel\": \"$m_Kundenreklamation\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_kundenreklamationPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kundenreklamationGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kundenreklamationGridOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_bestellungPopup\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungPopupOptions\",\n                \"optionsNameFQ\": \"r_bestellungPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_bestellungpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_bestNummer\",\n                \"caption\": \"mail-import-item-edit.r_bestnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_bestDatum\",\n                \"caption\": \"mail-import-item-edit.r_bestdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_bestProjekt\",\n                \"caption\": \"mail-import-item-edit.r_bestprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bestLieferantNr\",\n                \"caption\": \"mail-import-item-edit.r_bestlieferantnr_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_bestFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_bestfirmenbez1_caption\",\n                \"bindTo\": \"LieferantAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_bestStatus\",\n                \"caption\": \"mail-import-item-edit.r_beststatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bestellungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bestellungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Bestellung\"\n            },\n            \"dataModel\": \"$m_Bestellung\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_bestellungPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bestellungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bestellungGridOptions\",\n                \"optionsNameFQ\": \"r_bestellungGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_eingangsrechnungPopup\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungPopupOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungPopupOptions\"\n            },\n            \"caption\": \"mail-import-item-edit.r_eingangsrechnungpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": []\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_eingrNummer\",\n                \"caption\": \"mail-import-item-edit.r_eingrnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_eingrDatum\",\n                \"caption\": \"mail-import-item-edit.r_eingrdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_eingrRENummer\",\n                \"caption\": \"mail-import-item-edit.r_eingrrenummer_caption\",\n                \"bindTo\": \"LieferantRechnungNr\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_eingrREDatum\",\n                \"caption\": \"mail-import-item-edit.r_eingrredatum_caption\",\n                \"bindTo\": \"LieferantRechnungsdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_eingrProjekt\",\n                \"caption\": \"mail-import-item-edit.r_eingrprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_eingrLieferantNr\",\n                \"caption\": \"mail-import-item-edit.r_eingrlieferantnr_caption\",\n                \"bindTo\": \"Lieferant.Nummer\",\n                \"width\": \"90px\"\n            }, {\n                \"id\": \"r_eingrFirmenbez1\",\n                \"caption\": \"mail-import-item-edit.r_eingrfirmenbez1_caption\",\n                \"bindTo\": \"LieferantAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_eingrStatus\",\n                \"caption\": \"mail-import-item-edit.r_eingrstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_eingangsrechnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Eingangsrechnung\"\n            },\n            \"dataModel\": \"$m_Eingangsrechnung\",\n            \"onItemClick\": \"functions.$f_MailImportItemEditUtils.onVerknuepfenItemClicked('r_eingangsrechnungPopup', $event)\",\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_eingangsrechnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungGridOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./mail-import-item-edit-form.less\\\"></require> <require from=\\\"./mail-import-item-anhang-edit-form\\\"></require> <require from=\\\"../../../elements/dokument-viewer/dokument-viewer\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"mailImportItemAnhangEditPopupOptions\\\" view-model.ref=\\\"mailImportItemAnhangEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <mail-import-item-anhang-edit-form view-model.ref=\\\"mailImportItemAnhangEditPopupContent\\\" is-edit-popup=\\\"true\\\"></mail-import-item-anhang-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 mail-item-viewer-container\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-5\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_mailimportdef_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_mailImportDefOptions\\\" view-model.ref=\\\"r_mailImportDef\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_MailImportItem.IdProjekt\\\" main-model.bind=\\\"models.data.$m_MailImportItem\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_MailImportItem\\\" web-api-action=\\\"ERP/Stammdaten/MailImportItem\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: mail-import-item-edit.r_mailgroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_absenderemail_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_absenderEmailOptions\\\" view-model.ref=\\\"r_absenderEmail\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_emfpaengeremail_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_emfpaengerEmailOptions\\\" view-model.ref=\\\"r_emfpaengerEmail\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: mail-import-item-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner id-geschaeftspartner.bind=\\\"models.data.$m_MailImportItem.IdGeschaeftspartner\\\" id-adresse.bind=\\\"models.data.$m_MailImportItem.IdAresse\\\" main-model.bind=\\\"models.data.$m_MailImportItem\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_MailImportItemEditUtils.onGeschaeftspartnerChanged()\\\"></geschaeftspartner> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mail-import-item-edit.r_person_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_personOptions\\\" view-model.ref=\\\"r_person\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: mail-import-item-edit.r_anhanggroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_mailImportItemAnhangGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_mailImportItemAnhangGridOptions\\\" view-model.ref=\\\"r_mailImportItemAnhangGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-7 mail-item-viewer\\\"> <dokument-viewer view-model.ref=\\\"r_dokumentViewer\\\" dms-link.bind=\\\"functions.$f_MailImportItemEditUtils.currentDokument.DMSLink\\\" mime-type.bind=\\\"functions.$f_MailImportItemEditUtils.currentDokument.MimeType\\\"></dokument-viewer> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_angebotPopupOptions\\\" view-model.ref=\\\"r_angebotPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotGridOptions\\\" view-model.ref=\\\"r_angebotGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_auftragPopupOptions\\\" view-model.ref=\\\"r_auftragPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragGridOptions\\\" view-model.ref=\\\"r_auftragGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_lieferscheinPopupOptions\\\" view-model.ref=\\\"r_lieferscheinPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinGridOptions\\\" view-model.ref=\\\"r_lieferscheinGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_fakturaPopupOptions\\\" view-model.ref=\\\"r_fakturaPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fakturaGridOptions\\\" view-model.ref=\\\"r_fakturaGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_kundenreklamationPopupOptions\\\" view-model.ref=\\\"r_kundenreklamationPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kundenreklamationGridOptions\\\" view-model.ref=\\\"r_kundenreklamationGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_bestellungPopupOptions\\\" view-model.ref=\\\"r_bestellungPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bestellungGridOptions\\\" view-model.ref=\\\"r_bestellungGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_eingangsrechnungPopupOptions\\\" view-model.ref=\\\"r_eingangsrechnungPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_eingangsrechnungGridOptions\\\" view-model.ref=\\\"r_eingangsrechnungGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--parent-container-set-height > .container > div.mail-item-viewer-container.col-xs-12 ~ .aenderung-info {\\n  height: auto;\\n  margin-top: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class MailImportItemListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"mail-import-item-list\";\n        this.title = \"mail-import-item-list.mail-import-item-list_caption\";\n        this.addModel({\n            \"id\": \"$m_MailImportItem\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItem\",\n            \"webApiExpand\": {\n                'MailImportDefinition': null,\n                Status: null,\n                Geschaeftspartner: {\n                    expand: {\n                        Adresse: null\n                    }\n                },\n                Person: null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_mailImportItemGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_maItMailImportDefinition\",\n                \"caption\": \"mail-import-item-list.r_maitmailimportdefinition_caption\",\n                \"bindTo\": \"MailImportDefinition.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItDatum\",\n                \"caption\": \"mail-import-item-list.r_maitdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_maItBetreff\",\n                \"caption\": \"mail-import-item-list.r_maitbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItGpNummer\",\n                \"caption\": \"mail-import-item-list.r_maitgpnummer_caption\",\n                \"bindTo\": \"Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_maItFirmenbez\",\n                \"caption\": \"mail-import-item-list.r_maitfirmenbez_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItPerson\",\n                \"caption\": \"mail-import-item-list.r_maitperson_caption\",\n                \"bindTo\": \"Person.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_maItStatus\",\n                \"caption\": \"mail-import-item-list.r_maitstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_mailImportItemGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_mailImportItemGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\"\n            },\n            \"dataModel\": \"$m_MailImportItem\",\n            \"editUrl\": \"ERP/Stammdaten/MailImportItem\",\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_mailImportItemGrid\",\n            \"options\": {\n                \"optionsName\": \"r_mailImportItemGridOptions\",\n                \"optionsNameFQ\": \"r_mailImportItemGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_mailImportItemGridOptions\\\" view-model.ref=\\\"r_mailImportItemGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    MandantWechselnUtils\n} from \"./mandant-wechseln-utils\";\n\n@fwx.autoinject\nexport class MandantWechselnForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_mandantWechselenUtils: MandantWechselnUtils) {\n        super(element, formBaseImport);\n        this.id = \"mandant-wechseln\";\n        this.title = \"mandant-wechseln.mandant-wechseln_caption\";\n        this.addModel({\n            \"id\": \"$m_Mandant\",\n            \"webApiAction\": \"ERP/Stammdaten/Mandant\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"allowSave\": \"false\",\n            \"allowDelete\": \"false\",\n            \"custom\": {\n                'showAendinfo': false\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_mandantWechselenUtils.mandantWechselnCommand\",\n                \"bindToFQ\": \"functions.$f_mandantWechselenUtils.mandantWechselnCommand\"\n            }\n        });\n        this.addFunction(\"$f_mandantWechselenUtils\", $f_mandantWechselenUtils, \"functions.$f_mandantWechselenUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"mandant\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"IdBenutzer\",\n                \"webApiCustomValue\": \"functions.$f_mandantWechselenUtils.startupService.startupInfo.Benutzer.Id\"\n            }],\n            \"binding\": {\n                \"dataContext\": \"$m_Mandant\",\n                \"bindTo\": \"Id\",\n                \"bindToFQ\": \"models.data.$m_Mandant.Id\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mandant_to_wechseln\",\n            \"options\": {\n                \"optionsName\": \"r_mandant_to_wechselnOptions\",\n                \"optionsNameFQ\": \"r_mandant_to_wechselnOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_mandant_to_wechselnOptions\\\" view-model.ref=\\\"r_mandant_to_wechseln\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class MedienEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"medien-edit\";\n        this.title = \"medien-edit.medien-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Media\",\n            \"webApiAction\": \"ERP/Stammdaten/Medien\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"medien-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Media\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Media.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"medien-edit.r_dmslink_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Media\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_Media.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmsLink\",\n            \"options\": {\n                \"optionsName\": \"r_dmsLinkOptions\",\n                \"optionsNameFQ\": \"r_dmsLinkOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"medien-edit.r_downloadurl_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Media\",\n                \"bindTo\": \"_DownloadUrl\",\n                \"bindToFQ\": \"models.data.$m_Media._DownloadUrl\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_downloadUrl\",\n            \"options\": {\n                \"optionsName\": \"r_downloadUrlOptions\",\n                \"optionsNameFQ\": \"r_downloadUrlOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"medien-edit.r_inlineurl_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Media\",\n                \"bindTo\": \"_InlineUrl\",\n                \"bindToFQ\": \"models.data.$m_Media._InlineUrl\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_inlineUrl\",\n            \"options\": {\n                \"optionsName\": \"r_inlineUrlOptions\",\n                \"optionsNameFQ\": \"r_inlineUrlOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: medien-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: medien-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmsLinkOptions\\\" view-model.ref=\\\"r_dmsLink\\\"></tip-file-uploader-with-viewer> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: medien-edit.r_downloadurl_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_downloadUrlOptions\\\" view-model.ref=\\\"r_downloadUrl\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: medien-edit.r_inlineurl_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_inlineUrlOptions\\\" view-model.ref=\\\"r_inlineUrl\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class MedienListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"medien-list\";\n        this.title = \"medien-list.medien-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Medien\",\n            \"webApiAction\": \"ERP/Stammdaten/Medien\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_medienBezeichnung\",\n                \"caption\": \"medien-list.r_medienbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_medienGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_medienGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Medien\"\n            },\n            \"dataModel\": \"$m_Medien\",\n            \"editUrl\": \"ERP/Stammdaten/Medien\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_medienGrid\",\n            \"options\": {\n                \"optionsName\": \"r_medienGridOptions\",\n                \"optionsNameFQ\": \"r_medienGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_medienGridOptions\\\" view-model.ref=\\\"r_medienGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    NewsletterEmpfaengerEditUtils\n} from \"./newsletter-empfaenger-edit-utils\";\n\n@fwx.autoinject\nexport class NewsletterEmpfaengerEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_NewsletterEmpfaengerEditUtils: NewsletterEmpfaengerEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"newsletter-empfaenger-edit\";\n        this.title = \"newsletter-empfaenger-edit.newsletter-empfaenger-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Empfaenger\",\n            \"webApiAction\": \"ERP/Stammdaten/NewsletterEmpfaenger\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_EmpfaengerElementRel\",\n            \"webApiAction\": \"ERP/Stammdaten/NewsletterEmpfaengerElement\",\n            \"webApiExpand\": {\n                'Person': {\n                    'expand': {\n                        'Geschaeftspartner': {\n                            'expand': {\n                                'Adresse': null\n                            }\n                        },\n                        'Anrede': null\n                    }\n                }\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f_NewsletterEmpfaengerEditUtils\", $f_NewsletterEmpfaengerEditUtils, \"functions.$f_NewsletterEmpfaengerEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"newsletter-empfaenger-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Empfaenger\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Empfaenger.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_persAnrede\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persanrede_caption\",\n                \"bindTo\": \"Person.Anrede.Bezeichnung\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_persTitelVorne\",\n                \"caption\": \"newsletter-empfaenger-edit.r_perstitelvorne_caption\",\n                \"bindTo\": \"TitelVorne\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_persVorname\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persvorname_caption\",\n                \"bindTo\": \"Vorname\"\n            }, {\n                \"id\": \"r_persNachname\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persnachname_caption\",\n                \"bindTo\": \"Nachname\"\n            }, {\n                \"id\": \"r_persTitelHinten\",\n                \"caption\": \"newsletter-empfaenger-edit.r_perstitelhinten_caption\",\n                \"bindTo\": \"TitelHinten\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_persEmail\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persemail_caption\",\n                \"bindTo\": \"Email\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_persGPNummer\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persgpnummer_caption\",\n                \"bindTo\": \"Person.Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_persGPFirmenbez1\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persgpfirmenbez1_caption\",\n                \"bindTo\": \"Person.Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_persGPOrt\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persgport_caption\",\n                \"bindTo\": \"Person.Geschaeftspartner.Adresse.Ort\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_persBriefanrede\",\n                \"caption\": \"newsletter-empfaenger-edit.r_persbriefanrede_caption\",\n                \"bindTo\": \"Briefanrede\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_ElementGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_ElementGridToolbarOptions\"\n            },\n            \"caption\": \"newsletter-empfaenger-edit.r_elementgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Empfaenger\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_EmpfaengerElementRel\",\n                \"bindTo\": \"IdNewsletterEmpfaenger\",\n                \"bindToFQ\": \"models.data.$m_EmpfaengerElementRel.IdNewsletterEmpfaenger\"\n            },\n            \"dataModel\": \"$m_Empfaenger\",\n            \"onItemClick\": \"functions.$f_NewsletterEmpfaengerEditUtils.onPersonClick($event)\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Empfaenger\",\n                    \"bindTo\": \"$f_NewsletterEmpfaengerEditUtils.deleteSelectedCommand\",\n                    \"bindToFQ\": \"functions.$f_NewsletterEmpfaengerEditUtils.deleteSelectedCommand\"\n                }\n            }],\n            \"id\": \"r_ElementGrid\",\n            \"options\": {\n                \"optionsName\": \"r_ElementGridOptions\",\n                \"optionsNameFQ\": \"r_ElementGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-empfaenger-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_ElementGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_ElementGridOptions\\\" view-model.ref=\\\"r_ElementGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    NewsletterEmpfaengerListUtils\n} from \"./newsletter-empfaenger-list-utils\";\n\n@fwx.autoinject\nexport class NewsletterEmpfaengerListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_NewsletterEmpfaengerListUtils: NewsletterEmpfaengerListUtils) {\n        super(element, formBaseImport);\n        this.id = \"newsletter-empfaenger-list\";\n        this.title = \"newsletter-empfaenger-list.newsletter-empfaenger-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Empfaenger\",\n            \"webApiAction\": \"ERP/Stammdaten/NewsletterEmpfaenger\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Import\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_NewsletterEmpfaengerListUtils.showImportCommand\",\n                \"bindToFQ\": \"functions.$f_NewsletterEmpfaengerListUtils.showImportCommand\"\n            }\n        });\n        this.addFunction(\"$f_NewsletterEmpfaengerListUtils\", $f_NewsletterEmpfaengerListUtils, \"functions.$f_NewsletterEmpfaengerListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_empfBezeichnung\",\n                \"caption\": \"newsletter-empfaenger-list.r_empfbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_empfaengerToolbarOptions\",\n                \"optionsNameFQ\": \"r_empfaengerToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Empfaenger\"\n            },\n            \"dataModel\": \"$m_Empfaenger\",\n            \"editUrl\": \"ERP/Stammdaten/NewsletterEmpfaenger\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_empfaenger\",\n            \"options\": {\n                \"optionsName\": \"r_empfaengerOptions\",\n                \"optionsNameFQ\": \"r_empfaengerOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_import\",\n            \"options\": {\n                \"optionsName\": \"r_importOptions\",\n                \"optionsNameFQ\": \"r_importOptions\"\n            },\n            \"caption\": \"newsletter-empfaenger-list.r_import_caption\",\n            \"height\": \"385px\",\n            \"width\": \"600px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_NewsletterEmpfaengerListUtils.doImportCommand\",\n                    \"bindToFQ\": \"functions.$f_NewsletterEmpfaengerListUtils.doImportCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"newsletter-empfaenger-list.r_impbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Import.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_impBezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_impBezeichnungOptions\",\n                \"optionsNameFQ\": \"r_impBezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"caption\": \"newsletter-empfaenger-list.r_impfile_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Import\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_Import.DMSLink\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_impFile\",\n            \"options\": {\n                \"optionsName\": \"r_impFileOptions\",\n                \"optionsNameFQ\": \"r_impFileOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_empfaengerOptions\\\" view-model.ref=\\\"r_empfaenger\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_importOptions\\\" view-model.ref=\\\"r_import\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-empfaenger-list.r_impbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_impBezeichnungOptions\\\" view-model.ref=\\\"r_impBezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div tr=\\\"key: newsletter-empfaenger-list.r_impinfo_text\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-empfaenger-list.r_impfile_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_impFileOptions\\\" view-model.ref=\\\"r_impFile\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    NewsletterEditUtils\n} from \"./newsletter-edit-utils\";\n\n@fwx.autoinject\nexport class NewsletterEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_NewsletterEditUtils: NewsletterEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"newsletter-edit\";\n        this.title = \"newsletter-edit.newsletter-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Newsletter\",\n            \"webApiAction\": \"ERP/Stammdaten/Newsletter\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_NewsletterVersandStatusRel\",\n            \"webApiAction\": \"ERP/Stammdaten/NewsletterVersandStatus\",\n            \"webApiExpand\": {\n                'Person': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_NewsletterEditUtils.versendenCommand\",\n                \"bindToFQ\": \"functions.$f_NewsletterEditUtils.versendenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_NewsletterEditUtils.testVersendenCommand\",\n                \"bindToFQ\": \"functions.$f_NewsletterEditUtils.testVersendenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_NewsletterEditUtils.doExportGridCommand\",\n                \"bindToFQ\": \"functions.$f_NewsletterEditUtils.doExportGridCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_NewsletterEditUtils\", $f_NewsletterEditUtils, \"functions.$f_NewsletterEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"newsletter-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Newsletter.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"newsletter-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Newsletter.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"newsletter-edit.r_betreff_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_Newsletter.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"mailVorlage\",\n            \"filter\": [\"Entitaet\", \"TIP.ERP.Business.Entitaeten.Stammdaten.Newsletter\"],\n            \"filters\": [],\n            \"caption\": \"newsletter-edit.r_mailvorlage_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\",\n                \"bindTo\": \"IdMailVorlage\",\n                \"bindToFQ\": \"models.data.$m_Newsletter.IdMailVorlage\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_mailVorlage\",\n            \"options\": {\n                \"optionsName\": \"r_mailVorlageOptions\",\n                \"optionsNameFQ\": \"r_mailVorlageOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"newsletterEmpfaenger\",\n            \"filters\": [],\n            \"caption\": \"newsletter-edit.r_empfaenger_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\",\n                \"bindTo\": \"IdNewsletterEmpfaenger\",\n                \"bindToFQ\": \"models.data.$m_Newsletter.IdNewsletterEmpfaenger\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_empfaenger\",\n            \"options\": {\n                \"optionsName\": \"r_empfaengerOptions\",\n                \"optionsNameFQ\": \"r_empfaengerOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_versVorname\",\n                \"caption\": \"newsletter-edit.r_versvorname_caption\",\n                \"bindTo\": \"Vorname\"\n            }, {\n                \"id\": \"r_versNachname\",\n                \"caption\": \"newsletter-edit.r_versnachname_caption\",\n                \"bindTo\": \"Nachname\"\n            }, {\n                \"id\": \"r_versEmail\",\n                \"caption\": \"newsletter-edit.r_versemail_caption\",\n                \"bindTo\": \"Email\"\n            }, {\n                \"id\": \"r_versVersandDatum\",\n                \"caption\": \"newsletter-edit.r_versversanddatum_caption\",\n                \"bindTo\": \"VersandDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_versLeseDatum\",\n                \"caption\": \"newsletter-edit.r_verslesedatum_caption\",\n                \"bindTo\": \"LeseDatum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_versStatus\",\n                \"caption\": \"newsletter-edit.r_versstatus_caption\",\n                \"bindTo\": \"VersandStatusTyp\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.NewsletterVersandStatusTyp\"\n            }, {\n                \"id\": \"r_versFehlerInfo\",\n                \"caption\": \"newsletter-edit.r_versfehlerinfo_caption\",\n                \"bindTo\": \"Fehlerinfo\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_versGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_versGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_NewsletterVersandStatusRel\",\n                \"bindTo\": \"IdNewsletter\",\n                \"bindToFQ\": \"models.data.$m_NewsletterVersandStatusRel.IdNewsletter\"\n            },\n            \"dataModel\": \"$m_Newsletter\",\n            \"editUrl\": \"ERP/Stammdaten/Person\",\n            \"editUrlIdProperty\": \"IdPerson\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_versGrid\",\n            \"options\": {\n                \"optionsName\": \"r_versGridOptions\",\n                \"optionsNameFQ\": \"r_versGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_testMailPopup\",\n            \"options\": {\n                \"optionsName\": \"r_testMailPopupOptions\",\n                \"optionsNameFQ\": \"r_testMailPopupOptions\"\n            },\n            \"caption\": \"newsletter-edit.r_testmailpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_NewsletterEditUtils.testVersendenNowCommand\",\n                    \"bindToFQ\": \"functions.$f_NewsletterEditUtils.testVersendenNowCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"mode\": \"email\",\n            \"caption\": \"newsletter-edit.r_testmailempfaenger_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_testMailEmpfaenger\",\n            \"options\": {\n                \"optionsName\": \"r_testMailEmpfaengerOptions\",\n                \"optionsNameFQ\": \"r_testMailEmpfaengerOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_mailvorlage_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_mailVorlageOptions\\\" view-model.ref=\\\"r_mailVorlage\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_empfaenger_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_empfaengerOptions\\\" view-model.ref=\\\"r_empfaenger\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_versGridOptions\\\" view-model.ref=\\\"r_versGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_testMailPopupOptions\\\" view-model.ref=\\\"r_testMailPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: newsletter-edit.r_testmailempfaenger_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_testMailEmpfaengerOptions\\\" view-model.ref=\\\"r_testMailEmpfaenger\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class NewsletterListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"newsletter-list\";\n        this.title = \"newsletter-list.newsletter-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Newsletter\",\n            \"webApiAction\": \"ERP/Stammdaten/Newsletter\",\n            \"webApiExpand\": {\n                'NewsletterEmpfaenger': null,\n                'MailVorlage': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_newsletterBezeichnung\",\n                \"caption\": \"newsletter-list.r_newsletterbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_newsletterMailVorlage\",\n                \"caption\": \"newsletter-list.r_newslettermailvorlage_caption\",\n                \"bindTo\": \"MailVorlage.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_newsletterEmpfaenger\",\n                \"caption\": \"newsletter-list.r_newsletterempfaenger_caption\",\n                \"bindTo\": \"NewsletterEmpfaenger.Bezeichnung\"\n            }, {\n                \"id\": \"r_newsletterStatus\",\n                \"caption\": \"newsletter-list.r_newsletterstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_newsletterGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_newsletterGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Newsletter\"\n            },\n            \"dataModel\": \"$m_Newsletter\",\n            \"editUrl\": \"ERP/Stammdaten/Newsletter\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_newsletterGrid\",\n            \"options\": {\n                \"optionsName\": \"r_newsletterGridOptions\",\n                \"optionsNameFQ\": \"r_newsletterGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_newsletterGridOptions\\\" view-model.ref=\\\"r_newsletterGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class NotizEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"notiz-edit\";\n        this.title = \"notiz-edit.notiz-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Notiz\",\n            \"webApiAction\": \"ERP/Stammdaten/Notiz\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addRadioGroup(this, {\n            \"idSelect\": \"notiztyp\",\n            \"filters\": [],\n            \"caption\": \"notiz-edit.r_notiztyp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Notiz\",\n                \"bindTo\": \"IdNotiztyp\",\n                \"bindToFQ\": \"models.data.$m_Notiz.IdNotiztyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_notiztyp\",\n            \"options\": {\n                \"optionsName\": \"r_notiztypOptions\",\n                \"optionsNameFQ\": \"r_notiztypOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 200,\n            \"caption\": \"notiz-edit.r_betreff_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Notiz\",\n                \"bindTo\": \"Betreff\",\n                \"bindToFQ\": \"models.data.$m_Notiz.Betreff\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"!models.data.$m_Notiz.Text\"\n                    }]\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 200\n                    }]\n                }\n            }],\n            \"id\": \"r_betreff\",\n            \"options\": {\n                \"optionsName\": \"r_betreffOptions\",\n                \"optionsNameFQ\": \"r_betreffOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"200px\",\n            \"caption\": \"notiz-edit.r_text_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Notiz\",\n                \"bindTo\": \"Text\",\n                \"bindToFQ\": \"models.data.$m_Notiz.Text\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_text\",\n            \"options\": {\n                \"optionsName\": \"r_textOptions\",\n                \"optionsNameFQ\": \"r_textOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"notiz-edit.r_gueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Notiz\",\n                \"bindTo\": \"GueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Notiz.GueltigBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigBisOptions\",\n                \"optionsNameFQ\": \"r_gueltigBisOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"notiz-edit.r_iswichtig_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Notiz\",\n                \"bindTo\": \"IsWichtig\",\n                \"bindToFQ\": \"models.data.$m_Notiz.IsWichtig\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isWichtig\",\n            \"options\": {\n                \"optionsName\": \"r_isWichtigOptions\",\n                \"optionsNameFQ\": \"r_isWichtigOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: notiz-edit.r_notiztyp_caption\\\"></div> <dx-widget name=\\\"dxRadioGroup\\\" options.bind=\\\"r_notiztypOptions\\\" view-model.ref=\\\"r_notiztyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: notiz-edit.r_betreff_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_betreffOptions\\\" view-model.ref=\\\"r_betreff\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: notiz-edit.r_text_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_textOptions\\\" view-model.ref=\\\"r_text\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: notiz-edit.r_gueltigbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigBisOptions\\\" view-model.ref=\\\"r_gueltigBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: notiz-edit.r_iswichtig_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isWichtigOptions\\\" view-model.ref=\\\"r_isWichtig\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    PersonEditUtils\n} from \"./person-edit-utils\";\n\n@fwx.autoinject\nexport class PersonEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_PersonEditUtils: PersonEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"person-edit\";\n        this.title = \"person-edit.person-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Person\",\n            \"webApiAction\": \"ERP/Stammdaten/Person\",\n            \"webApiExpand\": {\n                'Personaktionen': null,\n                'Personfunktionen': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Personaktionen\",\n            \"webApiAction\": \"ERP/Stammdaten/Personenaktion\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Personfunktionen\",\n            \"webApiAction\": \"ERP/Stammdaten/Personenfunktion\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_PersonEditUtils.webshopAktivierenCommand\",\n                \"bindToFQ\": \"functions.$f_PersonEditUtils.webshopAktivierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_PersonEditUtils.webshopDeaktivierenCommand\",\n                \"bindToFQ\": \"functions.$f_PersonEditUtils.webshopDeaktivierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_PersonEditUtils.webshopNeuesPasswortCommand\",\n                \"bindToFQ\": \"functions.$f_PersonEditUtils.webshopNeuesPasswortCommand\"\n            }\n        });\n        this.addFunction(\"$f_PersonEditUtils\", $f_PersonEditUtils, \"functions.$f_PersonEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"anrede\",\n            \"filters\": [],\n            \"caption\": \"person-edit.r_anrede_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"IdAnrede\",\n                \"bindToFQ\": \"models.data.$m_Person.IdAnrede\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_anrede\",\n            \"options\": {\n                \"optionsName\": \"r_anredeOptions\",\n                \"optionsNameFQ\": \"r_anredeOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"person-edit.r_vorname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Vorname\",\n                \"bindToFQ\": \"models.data.$m_Person.Vorname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_vorname\",\n            \"options\": {\n                \"optionsName\": \"r_vornameOptions\",\n                \"optionsNameFQ\": \"r_vornameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"person-edit.r_nachname_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Nachname\",\n                \"bindToFQ\": \"models.data.$m_Person.Nachname\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_nachname\",\n            \"options\": {\n                \"optionsName\": \"r_nachnameOptions\",\n                \"optionsNameFQ\": \"r_nachnameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"person-edit.r_titelvorne_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"TitelVorne\",\n                \"bindToFQ\": \"models.data.$m_Person.TitelVorne\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_titelVorne\",\n            \"options\": {\n                \"optionsName\": \"r_titelVorneOptions\",\n                \"optionsNameFQ\": \"r_titelVorneOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"person-edit.r_titelhinten_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"TitelHinten\",\n                \"bindToFQ\": \"models.data.$m_Person.TitelHinten\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_titelHinten\",\n            \"options\": {\n                \"optionsName\": \"r_titelHintenOptions\",\n                \"optionsNameFQ\": \"r_titelHintenOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"person-edit.r_email_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Email\",\n                \"bindToFQ\": \"models.data.$m_Person.Email\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"email\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_email\",\n            \"options\": {\n                \"optionsName\": \"r_emailOptions\",\n                \"optionsNameFQ\": \"r_emailOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"person-edit.r_telefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Telefon\",\n                \"bindToFQ\": \"models.data.$m_Person.Telefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_telefon\",\n            \"options\": {\n                \"optionsName\": \"r_telefonOptions\",\n                \"optionsNameFQ\": \"r_telefonOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"person-edit.r_mobiltelefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Mobiltelefon\",\n                \"bindToFQ\": \"models.data.$m_Person.Mobiltelefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_mobiltelefon\",\n            \"options\": {\n                \"optionsName\": \"r_mobiltelefonOptions\",\n                \"optionsNameFQ\": \"r_mobiltelefonOptions\"\n            }\n        });\n        this.widgetCreator.addTagBox(this, {\n            \"caption\": \"person-edit.r_aktionen_caption\",\n            \"dataContext\": \"$m_Person\",\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Personaktionen\",\n                \"bindToFQ\": \"models.data.$m_Person.Personaktionen\"\n            },\n            \"relationProperty\": \"IdPersonenaktion\",\n            \"itemDataContext\": \"$m_Personaktionen\",\n            \"itemValueExpr\": \"Id\",\n            \"itemDisplayExpr\": \"Bezeichnung\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_aktionen\",\n            \"options\": {\n                \"optionsName\": \"r_aktionenOptions\",\n                \"optionsNameFQ\": \"r_aktionenOptions\"\n            }\n        });\n        this.widgetCreator.addTagBox(this, {\n            \"caption\": \"person-edit.r_funktionen_caption\",\n            \"dataContext\": \"$m_Person\",\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Person\",\n                \"bindTo\": \"Personfunktionen\",\n                \"bindToFQ\": \"models.data.$m_Person.Personfunktionen\"\n            },\n            \"relationProperty\": \"IdPersonenfunktion\",\n            \"itemDataContext\": \"$m_Personfunktionen\",\n            \"itemValueExpr\": \"Id\",\n            \"itemDisplayExpr\": \"Bezeichnung\",\n            \"binding\": {\n                \"dataContext\": \"$m_Person\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_funktionen\",\n            \"options\": {\n                \"optionsName\": \"r_funktionenOptions\",\n                \"optionsNameFQ\": \"r_funktionenOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: person-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner id-geschaeftspartner.bind=\\\"models.data.$m_Person.IdGeschaeftspartner\\\" main-model.bind=\\\"models.data.$m_Person\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: person-edit.r_persongroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_anrede_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_anredeOptions\\\" view-model.ref=\\\"r_anrede\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_vorname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_vornameOptions\\\" view-model.ref=\\\"r_vorname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_nachname_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_nachnameOptions\\\" view-model.ref=\\\"r_nachname\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_titelvorne_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_titelVorneOptions\\\" view-model.ref=\\\"r_titelVorne\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_titelhinten_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_titelHintenOptions\\\" view-model.ref=\\\"r_titelHinten\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_email_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_emailOptions\\\" view-model.ref=\\\"r_email\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_telefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_telefonOptions\\\" view-model.ref=\\\"r_telefon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_mobiltelefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_mobiltelefonOptions\\\" view-model.ref=\\\"r_mobiltelefon\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_aktionen_caption\\\"></div> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"r_aktionenOptions\\\" view-model.ref=\\\"r_aktionen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_funktionen_caption\\\"></div> <dx-widget name=\\\"dxTagBox\\\" options.bind=\\\"r_funktionenOptions\\\" view-model.ref=\\\"r_funktionen\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Person\\\" web-api-action=\\\"ERP/Stammdaten/Person\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"functions.$f_PersonEditUtils.statusNewsletter\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: person-edit.r_infonewslettergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div tr=\\\"key: person-edit.r_infonewsletter_text\\\"></div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Person\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    PersonListUtils\n} from \"./person-list-utils\";\n\n@fwx.autoinject\nexport class PersonListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_PersonListUtils: PersonListUtils) {\n        super(element, formBaseImport);\n        this.id = \"person-list\";\n        this.title = \"person-list.person-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Person\",\n            \"webApiAction\": \"ERP/Stammdaten/Person\",\n            \"webApiExpand\": {\n                'Geschaeftspartner': {\n                    'expand': {\n                        'Adresse': {\n                            'expand': {\n                                'Land': null\n                            }\n                        }\n                    }\n                },\n                'Anrede': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_personGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_PersonListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_PersonListUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_PersonListUtils.newsletterEmpfErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_PersonListUtils.newsletterEmpfErstellenCommand\"\n            }\n        });\n        this.addFunction(\"$f_PersonListUtils\", $f_PersonListUtils, \"functions.$f_PersonListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_perAnrede\",\n                \"caption\": \"person-list.r_peranrede_caption\",\n                \"bindTo\": \"Anrede.Bezeichnung\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_perTitelVorne\",\n                \"caption\": \"person-list.r_pertitelvorne_caption\",\n                \"bindTo\": \"TitelVorne\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_perVorname\",\n                \"caption\": \"person-list.r_pervorname_caption\",\n                \"bindTo\": \"Vorname\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perNachname\",\n                \"caption\": \"person-list.r_pernachname_caption\",\n                \"bindTo\": \"Nachname\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perTitelHinten\",\n                \"caption\": \"person-list.r_pertitelhinten_caption\",\n                \"bindTo\": \"TitelHinten\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_perEmail\",\n                \"caption\": \"person-list.r_peremail_caption\",\n                \"bindTo\": \"Email\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perTelefon\",\n                \"caption\": \"person-list.r_pertelefon_caption\",\n                \"bindTo\": \"Telefon\",\n                \"width\": \"160px\"\n            }, {\n                \"id\": \"r_perMobiltelefon\",\n                \"caption\": \"person-list.r_permobiltelefon_caption\",\n                \"bindTo\": \"Mobiltelefon\",\n                \"width\": \"160px\"\n            }, {\n                \"id\": \"r_perNummer\",\n                \"caption\": \"person-list.r_pernummer_caption\",\n                \"bindTo\": \"Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_perFirmenbez1\",\n                \"caption\": \"person-list.r_perfirmenbez1_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perFirmenbez2\",\n                \"caption\": \"person-list.r_perfirmenbez2_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez2\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perFirmenbez3\",\n                \"caption\": \"person-list.r_perfirmenbez3_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez3\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perStrasse\",\n                \"caption\": \"person-list.r_perstrasse_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Strasse\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_perLand\",\n                \"caption\": \"person-list.r_perland_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_perPlz\",\n                \"caption\": \"person-list.r_perplz_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.PLZ\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_perOrt\",\n                \"caption\": \"person-list.r_perort_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Ort\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_personGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_personGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Person\"\n            },\n            \"dataModel\": \"$m_Person\",\n            \"editUrl\": \"ERP/Stammdaten/Person\",\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_personGrid\",\n            \"options\": {\n                \"optionsName\": \"r_personGridOptions\",\n                \"optionsNameFQ\": \"r_personGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_newsletterEmpf\",\n            \"options\": {\n                \"optionsName\": \"r_newsletterEmpfOptions\",\n                \"optionsNameFQ\": \"r_newsletterEmpfOptions\"\n            },\n            \"height\": \"auto\",\n            \"width\": \"400px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_PersonListUtils.newsletterEmpfErstellenExCommand\",\n                    \"bindToFQ\": \"functions.$f_PersonListUtils.newsletterEmpfErstellenExCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"r_newsletterEmpfValidationGroup\",\n            \"options\": {\n                \"optionsName\": \"r_newsletterEmpfValidationGroupOptions\",\n                \"optionsNameFQ\": \"r_newsletterEmpfValidationGroupOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"person-list.r_newsletterempfbezeichnung_caption\",\n            \"binding\": {},\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_newsletterEmpfBezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_newsletterEmpfBezeichnungOptions\",\n                \"optionsNameFQ\": \"r_newsletterEmpfBezeichnungOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_personGridOptions\\\" view-model.ref=\\\"r_personGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_newsletterEmpfOptions\\\" view-model.ref=\\\"r_newsletterEmpf\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"r_newsletterEmpfValidationGroupOptions\\\" view-model.ref=\\\"r_newsletterEmpfValidationGroup\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: person-list.r_newsletterempfbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_newsletterEmpfBezeichnungOptions\\\" view-model.ref=\\\"r_newsletterEmpfBezeichnung\\\"></dx-widget> </div> </div> </dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    ProjektEditUtils\n} from \"./projekt-edit-utils\";\nimport {\n    AuftragService\n} from \"../../../services/auftrag-service\";\n\n@fwx.autoinject\nexport class ProjektEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_ProjektEditUtils: ProjektEditUtils,\n        private $f_AuftragService: AuftragService) {\n        super(element, formBaseImport);\n        this.id = \"projekt-edit\";\n        this.title = \"projekt-edit.projekt-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Projekt\",\n            \"webApiAction\": \"ERP/Stammdaten/Projekt\",\n            \"webApiExpand\": {\n                'Projektart': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ProjektZuGeschaeftspartnerRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ProjektZuGeschaeftspartner\",\n            \"webApiExpand\": {\n                'Geschaeftspartner': {\n                    'expand': {\n                        'Geschaeftspartnerart': null,\n                        'Status': null,\n                        'Adresse': {\n                            'expand': {\n                                'Land': null\n                            }\n                        }\n                    }\n                }\n            },\n            \"webApiWhere\": [],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"InklIdStatusFarbe\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_TaetigkeitRel\",\n            \"webApiAction\": \"ERP/Stammdaten/ProjektTaetigkeit\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Taetigkeit': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"!models.data.$m_Projekt.Status.Typ\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_TaetigkeitEdit\",\n            \"webApiAction\": \"ERP/Stammdaten/ProjektTaetigkeit\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ProjektplanungZuBenutzer\",\n            \"webApiAction\": \"ERP/Stammdaten/ProjektplanungZuBenutzer\",\n            \"webApiExpand\": {\n                'Projektplanung': null,\n                'Benutzer': null\n            },\n            \"webApiWhere\": [\n                [\"Projektplanung.IdProjekt\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Projekt.Id\"\n                }]\n            ],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Projektplanung.DatumVon\",\n                \"sortOrder\": 1\n            }],\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewAngebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"webApiExpand\": {\n                'Angebotsart': null,\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n                'Waehrung': null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewAngebotGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewAuftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Auftagsart': null,\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n                'Waehrung': null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewAuftragGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewLieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewLieferscheinGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewFaktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Rechnungsort': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewFakturaGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewMahnung\",\n            \"webApiAction\": \"ERP/Verkauf/Mahnung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Rechnungsort': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewMahnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewKundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewKundenreklamationGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewBestellung\",\n            \"webApiAction\": \"ERP/Einkauf/Bestellung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Lieferant': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n                'Auftrag': {\n                    'columns': [\n                        'Id',\n                        'Nummer'\n                    ]\n                }\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewBestellungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewWarenuebernahme\",\n            \"webApiAction\": \"ERP/Einkauf/Warenuebernahme\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Lieferant': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewWarenuebernahmeGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_BewEingangsrechnung\",\n            \"webApiAction\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Lieferant': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Status': null,\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"webApiOrderBy\": [{\n                \"columnName\": \"Id\",\n                \"sortOrder\": 1\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_bewEingangsrechnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Brief\",\n            \"webApiAction\": \"ERP/Stammdaten/Brief\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Sachbearbeiter': null,\n                'Firma': null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_kommunikationBrief'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_MailImportItem\",\n            \"webApiAction\": \"ERP/Stammdaten/MailImportItem\",\n            \"webApiExpand\": {\n                'MailImportDefinition': null,\n                Status: null,\n                Geschaeftspartner: {\n                    expand: {\n                        Adresse: null\n                    }\n                },\n                Person: null\n            },\n            \"webApiWhere\": [\"IdProjekt\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Projekt.Id\"\n            }],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_kommunikationMail'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ProjektEditUtils.projektdateienCommand\",\n                \"bindToFQ\": \"functions.$f_ProjektEditUtils.projektdateienCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"projektTaetigkeitEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_TaetigkeitEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_TaetigkeitEdit.Id\"\n                }\n            }],\n            \"id\": \"projektTaetigkeitEditPopup\",\n            \"options\": {\n                \"optionsName\": \"projektTaetigkeitEditPopupOptions\",\n                \"optionsNameFQ\": \"projektTaetigkeitEditPopupOptions\"\n            },\n            \"caption\": \"projekt-edit.projekttaetigkeiteditpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"800px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_ProjektEditUtils\", $f_ProjektEditUtils, \"functions.$f_ProjektEditUtils\");\n        this.addFunction(\"$f_AuftragService\", $f_AuftragService, \"functions.$f_AuftragService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"projekt-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Projekt.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"projektart\",\n            \"filters\": [],\n            \"caption\": \"projekt-edit.r_projektart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\",\n                \"bindTo\": \"IdProjektart\",\n                \"bindToFQ\": \"models.data.$m_Projekt.IdProjektart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_projektart\",\n            \"options\": {\n                \"optionsName\": \"r_projektartOptions\",\n                \"optionsNameFQ\": \"r_projektartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"projekt-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Projekt.IdSachbearbeiter\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"projekt-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Projekt.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"projekt-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Projekt.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_tabgeschaeftspartner_caption\"\n            }, {\n                \"id\": \"r_tabTaetigkeiten\",\n                \"caption\": \"projekt-edit.r_tabtaetigkeiten_caption\",\n                \"if\": \"functions.$f_ProjektEditUtils.showTaetigkeiten\"\n            }, {\n                \"id\": \"r_tabProjektplanung\",\n                \"caption\": \"projekt-edit.r_tabprojektplanung_caption\",\n                \"if\": \"functions.$f_ProjektEditUtils.startupService.startupInfo.Lizenz.HasProjektplanung\"\n            }, {\n                \"id\": \"r_tabKommunikationMail\",\n                \"caption\": \"projekt-edit.r_tabkommunikationmail_caption\",\n                \"if\": \"functions.$f_ProjektEditUtils.startupService.startupInfo.Lizenz.HasMailImport\"\n            }, {\n                \"id\": \"r_tabKommunikationBrief\",\n                \"caption\": \"projekt-edit.r_tabkommunikationbrief_caption\"\n            }, {\n                \"id\": \"r_tabBewAngebot\",\n                \"caption\": \"projekt-edit.r_tabbewangebot_caption\"\n            }, {\n                \"id\": \"r_tabBewAuftrag\",\n                \"caption\": \"projekt-edit.r_tabbewauftrag_caption\"\n            }, {\n                \"id\": \"r_tabBewLieferschein\",\n                \"caption\": \"projekt-edit.r_tabbewlieferschein_caption\"\n            }, {\n                \"id\": \"r_tabBewFaktura\",\n                \"caption\": \"projekt-edit.r_tabbewfaktura_caption\"\n            }, {\n                \"id\": \"r_tabBewMahnung\",\n                \"caption\": \"projekt-edit.r_tabbewmahnung_caption\",\n                \"if\": \"functions.$f_ProjektEditUtils.startupService.startupInfo.Lizenz.HasMahnung\"\n            }, {\n                \"id\": \"r_tabBewKundenreklamation\",\n                \"caption\": \"projekt-edit.r_tabbewkundenreklamation_caption\"\n            }, {\n                \"id\": \"r_tabBewBestellung\",\n                \"caption\": \"projekt-edit.r_tabbewbestellung_caption\"\n            }, {\n                \"id\": \"r_tabBewWarenuebernahme\",\n                \"caption\": \"projekt-edit.r_tabbewwarenuebernahme_caption\"\n            }, {\n                \"id\": \"r_tabBewEingangsrechnung\",\n                \"caption\": \"projekt-edit.r_tabbeweingangsrechnung_caption\"\n            }],\n            \"id\": \"r_tabBewegung\",\n            \"options\": {\n                \"optionsName\": \"r_tabBewegungOptions\",\n                \"optionsNameFQ\": \"r_tabBewegungOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_proGeschaeftspartnerNummer\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnernummer_caption\",\n                \"bindTo\": \"Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerGeschaeftspartnerart\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnergeschaeftspartnerart_caption\",\n                \"bindTo\": \"Geschaeftspartner.Geschaeftspartnerart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerFirmenbez1\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerfirmenbez1_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_proGeschaeftspartnerFirmenbez2\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerfirmenbez2_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez2\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_proGeschaeftspartnerStrasse\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerstrasse_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Strasse\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_proGeschaeftspartnerLand\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerland_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerPLZ\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerplz_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.PLZ\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerOrt\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerort_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerStatus\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerstatus_caption\",\n                \"bindTo\": \"Geschaeftspartner.Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }, {\n                \"id\": \"r_proGeschaeftspartnerIsManuell\",\n                \"caption\": \"projekt-edit.r_progeschaeftspartnerismanuell_caption\",\n                \"bindTo\": \"IsManuell\",\n                \"width\": \"100px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_proGeschaeftspartnerGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_proGeschaeftspartnerGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ProjektZuGeschaeftspartnerRel\",\n                \"bindTo\": \"IdProjekt\",\n                \"bindToFQ\": \"models.data.$m_ProjektZuGeschaeftspartnerRel.IdProjekt\"\n            },\n            \"dataModel\": \"$m_Projekt\",\n            \"editUrl\": \"ERP/Stammdaten/Geschaeftspartner\",\n            \"editUrlIdProperty\": \"IdGeschaeftspartner\",\n            \"selectionMode\": 2,\n            \"pageSize\": 10,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Projekt\",\n                    \"bindTo\": \"$f_ProjektEditUtils.geschaeftspartnerZuordnenCommand\",\n                    \"bindToFQ\": \"functions.$f_ProjektEditUtils.geschaeftspartnerZuordnenCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Projekt\",\n                    \"bindTo\": \"$f_ProjektEditUtils.doGeschaeftspartnerZuordnungenEntfernen\",\n                    \"bindToFQ\": \"functions.$f_ProjektEditUtils.doGeschaeftspartnerZuordnungenEntfernen\"\n                }\n            }],\n            \"id\": \"r_proGeschaeftspartnerGrid\",\n            \"options\": {\n                \"optionsName\": \"r_proGeschaeftspartnerGridOptions\",\n                \"optionsNameFQ\": \"r_proGeschaeftspartnerGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_taetTaetigkeit\",\n                \"caption\": \"projekt-edit.r_taettaetigkeit_caption\",\n                \"bindTo\": \"Taetigkeit.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_taetStundenGeplant\",\n                \"caption\": \"projekt-edit.r_taetstundengeplant_caption\",\n                \"bindTo\": \"StundenGeplant\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_taetStundenGeleistet\",\n                \"caption\": \"projekt-edit.r_taetstundengeleistet_caption\",\n                \"bindTo\": \"StundenGeleistet\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_taetStatus\",\n                \"caption\": \"projekt-edit.r_taetstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_proTaetigkeitGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_proTaetigkeitGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_TaetigkeitRel\",\n                \"bindTo\": \"IdProjekt\",\n                \"bindToFQ\": \"models.data.$m_TaetigkeitRel.IdProjekt\"\n            },\n            \"dataModel\": \"$m_Projekt\",\n            \"editDataContext\": \"$m_TaetigkeitEdit\",\n            \"idEditPopup\": \"projektTaetigkeitEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_proTaetigkeitGrid\",\n            \"options\": {\n                \"optionsName\": \"r_proTaetigkeitGridOptions\",\n                \"optionsNameFQ\": \"r_proTaetigkeitGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_projektplanungDatumVon\",\n                \"caption\": \"projekt-edit.r_projektplanungdatumvon_caption\",\n                \"bindTo\": \"Projektplanung.DatumVon\",\n                \"width\": \"110px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_projektplanungDatumBis\",\n                \"caption\": \"projekt-edit.r_projektplanungdatumbis_caption\",\n                \"bindTo\": \"Projektplanung.DatumBis\",\n                \"width\": \"110px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_projektplanungBenutzer\",\n                \"caption\": \"projekt-edit.r_projektplanungbenutzer_caption\",\n                \"bindTo\": \"Benutzer.Name\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_projektplanungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_projektplanungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_ProjektplanungZuBenutzer\"\n            },\n            \"dataModel\": \"$m_ProjektplanungZuBenutzer\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_projektplanungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_projektplanungGridOptions\",\n                \"optionsNameFQ\": \"r_projektplanungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_maItMailImportDefinition\",\n                \"caption\": \"projekt-edit.r_maitmailimportdefinition_caption\",\n                \"bindTo\": \"MailImportDefinition.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItDatum\",\n                \"caption\": \"projekt-edit.r_maitdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"120px\",\n                \"format\": \"g\"\n            }, {\n                \"id\": \"r_maItBetreff\",\n                \"caption\": \"projekt-edit.r_maitbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_maItPerson\",\n                \"caption\": \"projekt-edit.r_maitperson_caption\",\n                \"bindTo\": \"Person.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_maItStatus\",\n                \"caption\": \"projekt-edit.r_maitstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kommunikationMailToolbarOptions\",\n                \"optionsNameFQ\": \"r_kommunikationMailToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_MailImportItem\"\n            },\n            \"dataModel\": \"$m_MailImportItem\",\n            \"editUrl\": \"ERP/Stammdaten/MailImportItem\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kommunikationMail\",\n            \"options\": {\n                \"optionsName\": \"r_kommunikationMailOptions\",\n                \"optionsNameFQ\": \"r_kommunikationMailOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_briefFirma\",\n                \"caption\": \"projekt-edit.r_brieffirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefSachbearbeiter\",\n                \"caption\": \"projekt-edit.r_briefsachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_briefDatum\",\n                \"caption\": \"projekt-edit.r_briefdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_briefEmpfaenger\",\n                \"caption\": \"projekt-edit.r_briefempfaenger_caption\",\n                \"bindTo\": \"EmpfaengerDisplayText\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefBetreff\",\n                \"caption\": \"projekt-edit.r_briefbetreff_caption\",\n                \"bindTo\": \"Betreff\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_briefText\",\n                \"caption\": \"projekt-edit.r_brieftext_caption\",\n                \"bindTo\": \"Text\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_briefAnzAnhaenge\",\n                \"caption\": \"projekt-edit.r_briefanzanhaenge_caption\",\n                \"bindTo\": \"AnzAnhaenge\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_briefStatus\",\n                \"caption\": \"projekt-edit.r_briefstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kommunikationBriefToolbarOptions\",\n                \"optionsNameFQ\": \"r_kommunikationBriefToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Brief\"\n            },\n            \"dataModel\": \"$m_Brief\",\n            \"editUrl\": \"ERP/Stammdaten/Brief\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kommunikationBrief\",\n            \"options\": {\n                \"optionsName\": \"r_kommunikationBriefOptions\",\n                \"optionsNameFQ\": \"r_kommunikationBriefOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_angNummer\",\n                \"caption\": \"projekt-edit.r_angnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angDatum\",\n                \"caption\": \"projekt-edit.r_angdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_anggeschaeftspartner_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angGueltigBis\",\n                \"caption\": \"projekt-edit.r_anggueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angWertNetto\",\n                \"caption\": \"projekt-edit.r_angwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angWaehrung\",\n                \"caption\": \"projekt-edit.r_angwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_angStatus\",\n                \"caption\": \"projekt-edit.r_angstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewAngebotGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewAngebotGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewangebotgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewAngebot\"\n            },\n            \"dataModel\": \"$m_BewAngebot\",\n            \"editUrl\": \"ERP/Verkauf/Angebot\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewAngebotGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewAngebotGridOptions\",\n                \"optionsNameFQ\": \"r_bewAngebotGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_aufNummer\",\n                \"caption\": \"projekt-edit.r_aufnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufDatum\",\n                \"caption\": \"projekt-edit.r_aufdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_aufgeschaeftspartner_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufLieferdatum\",\n                \"caption\": \"projekt-edit.r_auflieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_AuftragService.onLieferdatumCellPrepared\"\n            }, {\n                \"id\": \"r_aufReservierungsgrad\",\n                \"caption\": \"projekt-edit.r_aufreservierungsgrad_caption\",\n                \"bindTo\": \"Reservierungsgrad\",\n                \"width\": \"80px\",\n                \"format\": \"p0\",\n                \"onCellPrepared\": \"functions.$f_ProjektEditUtils.onReservierungsgradCellPrepared\"\n            }, {\n                \"id\": \"r_aufWertNetto\",\n                \"caption\": \"projekt-edit.r_aufwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufWaehrung\",\n                \"caption\": \"projekt-edit.r_aufwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_aufStatus\",\n                \"caption\": \"projekt-edit.r_aufstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewAuftragGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewAuftragGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewauftraggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewAuftrag\"\n            },\n            \"dataModel\": \"$m_BewAuftrag\",\n            \"editUrl\": \"ERP/Verkauf/Auftrag\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewAuftragGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewAuftragGridOptions\",\n                \"optionsNameFQ\": \"r_bewAuftragGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_liefsNummer\",\n                \"caption\": \"projekt-edit.r_liefsnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsDatum\",\n                \"caption\": \"projekt-edit.r_liefsdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_liefgeschaeftspartner_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefsWertNetto\",\n                \"caption\": \"projekt-edit.r_liefswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefsWaehrung\",\n                \"caption\": \"projekt-edit.r_liefswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_liefsStatus\",\n                \"caption\": \"projekt-edit.r_liefsstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewLieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewLieferscheinGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewlieferscheingrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewLieferschein\"\n            },\n            \"dataModel\": \"$m_BewLieferschein\",\n            \"editUrl\": \"ERP/Verkauf/Lieferschein\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewLieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewLieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_bewLieferscheinGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_fakNummer\",\n                \"caption\": \"projekt-edit.r_faknummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakDatum\",\n                \"caption\": \"projekt-edit.r_fakdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_fakGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_fakgeschaeftspartner_caption\",\n                \"bindTo\": \"Rechnungsort.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakWertNetto\",\n                \"caption\": \"projekt-edit.r_fakwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_fakWaehrung\",\n                \"caption\": \"projekt-edit.r_fakwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_fakAbschlagsfaktura\",\n                \"caption\": \"projekt-edit.r_fakabschlagsfaktura_caption\",\n                \"bindTo\": \"IsAbschlagsfaktura\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakZahlungFaellig\",\n                \"caption\": \"projekt-edit.r_fakzahlungfaellig_caption\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_ProjektEditUtils.onZahlungFaelligCellPrepared\"\n            }, {\n                \"id\": \"r_fakMahnstufe\",\n                \"caption\": \"projekt-edit.r_fakmahnstufe_caption\",\n                \"bindTo\": \"Mahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_fakStatus\",\n                \"caption\": \"projekt-edit.r_fakstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewFakturaGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewFakturaGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewfakturagrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewFaktura\"\n            },\n            \"dataModel\": \"$m_BewFaktura\",\n            \"editUrl\": \"ERP/Verkauf/Faktura\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewFakturaGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewFakturaGridOptions\",\n                \"optionsNameFQ\": \"r_bewFakturaGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_mahnDatum\",\n                \"caption\": \"projekt-edit.r_mahndatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_mahnBetragOffen\",\n                \"caption\": \"projekt-edit.r_mahnbetragoffen_caption\",\n                \"bindTo\": \"BetragOffen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_mahngeschaeftspartner_caption\",\n                \"bindTo\": \"Rechnungsort.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_mahnZinsen\",\n                \"caption\": \"projekt-edit.r_mahnzinsen_caption\",\n                \"bindTo\": \"Zinsen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMahnspesen\",\n                \"caption\": \"projekt-edit.r_mahnmahnspesen_caption\",\n                \"bindTo\": \"Mahnspesen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMaxMahnstufe\",\n                \"caption\": \"projekt-edit.r_mahnmaxmahnstufe_caption\",\n                \"bindTo\": \"MaxMahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_mahnWaehrung\",\n                \"caption\": \"projekt-edit.r_mahnwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_mahnStatus\",\n                \"caption\": \"projekt-edit.r_mahnstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewMahnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewMahnungGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewmahnunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewMahnung\"\n            },\n            \"dataModel\": \"$m_BewMahnung\",\n            \"editUrl\": \"ERP/Verkauf/Mahnung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewMahnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewMahnungGridOptions\",\n                \"optionsNameFQ\": \"r_bewMahnungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_reklNummer\",\n                \"caption\": \"projekt-edit.r_reklnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklDatum\",\n                \"caption\": \"projekt-edit.r_rekldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_reklGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_reklgeschaeftspartner_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_reklWaehrung\",\n                \"caption\": \"projekt-edit.r_reklwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_reklStatus\",\n                \"caption\": \"projekt-edit.r_reklstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewKundenreklamationGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewKundenreklamationGridToolbarOptions\"\n            },\n            \"caption\": \"projekt-edit.r_bewkundenreklamationgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_BewKundenreklamation\"\n            },\n            \"dataModel\": \"$m_BewKundenreklamation\",\n            \"editUrl\": \"ERP/Verkauf/Kundenreklamation\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewKundenreklamationGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewKundenreklamationGridOptions\",\n                \"optionsNameFQ\": \"r_bewKundenreklamationGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_besNummer\",\n                \"caption\": \"projekt-edit.r_besnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besDatum\",\n                \"caption\": \"projekt-edit.r_besdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_besgeschaeftspartner_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_besAuftragNr\",\n                \"caption\": \"projekt-edit.r_besauftragnr_caption\",\n                \"bindTo\": \"Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_besLieferdatum\",\n                \"caption\": \"projekt-edit.r_beslieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_besWertNetto\",\n                \"caption\": \"projekt-edit.r_beswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_besWaehrung\",\n                \"caption\": \"projekt-edit.r_beswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_besStatus\",\n                \"caption\": \"projekt-edit.r_besstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewBestellungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewBestellungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewBestellung\"\n            },\n            \"dataModel\": \"$m_BewBestellung\",\n            \"editUrl\": \"ERP/Einkauf/Bestellung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewBestellungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewBestellungGridOptions\",\n                \"optionsNameFQ\": \"r_bewBestellungGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_waNummer\",\n                \"caption\": \"projekt-edit.r_wanummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_waDatum\",\n                \"caption\": \"projekt-edit.r_wadatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_waGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_wageschaeftspartner_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_waWertNetto\",\n                \"caption\": \"projekt-edit.r_wawertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_waWaehrung\",\n                \"caption\": \"projekt-edit.r_wawaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_waStatus\",\n                \"caption\": \"projekt-edit.r_wastatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewWarenuebernahmeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewWarenuebernahmeGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewWarenuebernahme\"\n            },\n            \"dataModel\": \"$m_BewWarenuebernahme\",\n            \"editUrl\": \"ERP/Einkauf/Warenuebernahme\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewWarenuebernahmeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewWarenuebernahmeGridOptions\",\n                \"optionsNameFQ\": \"r_bewWarenuebernahmeGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_einNummer\",\n                \"caption\": \"projekt-edit.r_einnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_einDatum\",\n                \"caption\": \"projekt-edit.r_eindatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_einGeschaeftspartner\",\n                \"caption\": \"projekt-edit.r_eingeschaeftspartner_caption\",\n                \"bindTo\": \"Lieferant.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_einWaehrung\",\n                \"caption\": \"projekt-edit.r_einwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_einStatus\",\n                \"caption\": \"projekt-edit.r_einstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_bewEingangsrechnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_bewEingangsrechnungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_BewEingangsrechnung\"\n            },\n            \"dataModel\": \"$m_BewEingangsrechnung\",\n            \"editUrl\": \"ERP/Einkauf/Eingangsrechnung\",\n            \"height\": \"620px\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_bewEingangsrechnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_bewEingangsrechnungGridOptions\",\n                \"optionsNameFQ\": \"r_bewEingangsrechnungGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_geschaeftspartnerZuordnenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_geschaeftspartnerZuordnenPopupOptions\",\n                \"optionsNameFQ\": \"r_geschaeftspartnerZuordnenPopupOptions\"\n            },\n            \"caption\": \"projekt-edit.r_geschaeftspartnerzuordnenpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"800px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_ProjektEditUtils.doGeschaeftspartnerZuordnen\",\n                    \"bindToFQ\": \"functions.$f_ProjektEditUtils.doGeschaeftspartnerZuordnen\"\n                }\n            }]\n        });\n        super.onConstructionFinished();\n    }\n    r_tabBewegungSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./projekt-edit-form.less\\\"></require> <require from=\\\"./projekt-taetigkeit-edit-form\\\"></require> <require from=\\\"../../../elements/projekt-dms-viewer/projekt-dms-viewer\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"projektTaetigkeitEditPopupOptions\\\" view-model.ref=\\\"projektTaetigkeitEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <projekt-taetigkeit-edit-form view-model.ref=\\\"projektTaetigkeitEditPopupContent\\\" is-edit-popup=\\\"true\\\"></projekt-taetigkeit-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <projekt-dms-viewer view-model.ref=\\\"r_projektDmsViewerElement\\\"></projekt-dms-viewer> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_projektart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_projektartOptions\\\" view-model.ref=\\\"r_projektart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Projekt\\\" web-api-action=\\\"ERP/Stammdaten/Projekt\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Projekt\\\" id-art-property-name=\\\"$m_Projekt.IdProjektart\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabBewegungOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabBewegungTabPage0\\\" if.bind=\\\"r_tabBewegungSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_proGeschaeftspartnerGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_proGeschaeftspartnerGridOptions\\\" view-model.ref=\\\"r_proGeschaeftspartnerGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage1\\\" if.bind=\\\"r_tabBewegungSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_proTaetigkeitGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_proTaetigkeitGridOptions\\\" view-model.ref=\\\"r_proTaetigkeitGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage2\\\" if.bind=\\\"r_tabBewegungSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_projektplanungGridOptions\\\" view-model.ref=\\\"r_projektplanungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage3\\\" if.bind=\\\"r_tabBewegungSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kommunikationMailOptions\\\" view-model.ref=\\\"r_kommunikationMail\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage4\\\" if.bind=\\\"r_tabBewegungSelected === 4\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kommunikationBriefOptions\\\" view-model.ref=\\\"r_kommunikationBrief\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage5\\\" if.bind=\\\"r_tabBewegungSelected === 5\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewAngebotGridOptions\\\" view-model.ref=\\\"r_bewAngebotGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage6\\\" if.bind=\\\"r_tabBewegungSelected === 6\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewAuftragGridOptions\\\" view-model.ref=\\\"r_bewAuftragGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage7\\\" if.bind=\\\"r_tabBewegungSelected === 7\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewLieferscheinGridOptions\\\" view-model.ref=\\\"r_bewLieferscheinGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage8\\\" if.bind=\\\"r_tabBewegungSelected === 8\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewFakturaGridOptions\\\" view-model.ref=\\\"r_bewFakturaGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage9\\\" if.bind=\\\"r_tabBewegungSelected === 9\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewMahnungGridOptions\\\" view-model.ref=\\\"r_bewMahnungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage10\\\" if.bind=\\\"r_tabBewegungSelected === 10\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewKundenreklamationGridOptions\\\" view-model.ref=\\\"r_bewKundenreklamationGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage11\\\" if.bind=\\\"r_tabBewegungSelected === 11\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewBestellungGridOptions\\\" view-model.ref=\\\"r_bewBestellungGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage12\\\" if.bind=\\\"r_tabBewegungSelected === 12\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewWarenuebernahmeGridOptions\\\" view-model.ref=\\\"r_bewWarenuebernahmeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabBewegungTabPage13\\\" if.bind=\\\"r_tabBewegungSelected === 13\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_bewEingangsrechnungGridOptions\\\" view-model.ref=\\\"r_bewEingangsrechnungGrid\\\"></dx-widget> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_geschaeftspartnerZuordnenPopupOptions\\\" view-model.ref=\\\"r_geschaeftspartnerZuordnenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_geschaeftspartnerElement\\\" id-geschaeftspartner.bind=\\\"functions.$f_ProjektEditUtils.idGeschaeftspartner\\\" main-model.bind=\\\"models.data.$m_Projekt\\\"></geschaeftspartner> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"div.projekt-edit-bew-item {\\n  padding: 12px;\\n  margin: -6px;\\n}\\ndiv.projekt-edit-bew-item div {\\n  align-items: center;\\n}\\n.erp--projekt-text-with-leading-label-badge > div {\\n  position: relative;\\n  display: grid;\\n  grid-template-columns: auto 1fr auto;\\n  grid-gap: 6px;\\n  align-items: center;\\n  justify-content: start;\\n}\\n.erp--projekt-text-with-leading-label-badge > div .projekt-edit-bew-item-bezeichnung {\\n  display: flex;\\n  background-color: #808080;\\n  color: white;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  overflow-x: hidden;\\n}\\n.erp--projekt-text-with-leading-label-badge > div .projekt-edit-bew-item-bezeichnung.erp--empty-badge {\\n  overflow: hidden;\\n  width: 0;\\n  padding: 0;\\n  margin: 0;\\n}\\n.erp--projekt-text-with-leading-label-badge > div .erp-projekt-edit-satus {\\n  border-left: 4px solid;\\n}\\n.erp--projekt-text-with-leading-label-badge > div .erp-projekt-bewegung > div {\\n  padding: 2px 6px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ProjektListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"projekt-list\";\n        this.title = \"projekt-list.projekt-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Projekt\",\n            \"webApiAction\": \"ERP/Stammdaten/Projekt\",\n            \"webApiExpand\": {\n                'Projektart': null,\n                'Status': null,\n                'Sachbearbeiter': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_projektGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_proNummer\",\n                \"caption\": \"projekt-list.r_pronummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_proProjektart\",\n                \"caption\": \"projekt-list.r_proprojektart_caption\",\n                \"bindTo\": \"Projektart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_proBezeichnung\",\n                \"caption\": \"projekt-list.r_probezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_proKunde\",\n                \"caption\": \"projekt-list.r_prokunde_caption\",\n                \"bindTo\": \"Kunde\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_proSachbearbeiter\",\n                \"caption\": \"projekt-list.r_prosachbearbeiter_caption\",\n                \"bindTo\": \"Sachbearbeiter.Name\",\n                \"width\": \"140px\"\n            }, {\n                \"id\": \"r_proStatus\",\n                \"caption\": \"projekt-list.r_prostatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_projektGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_projektGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Projekt\"\n            },\n            \"dataModel\": \"$m_Projekt\",\n            \"editUrl\": \"ERP/Stammdaten/Projekt\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_projektGrid\",\n            \"options\": {\n                \"optionsName\": \"r_projektGridOptions\",\n                \"optionsNameFQ\": \"r_projektGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_projektGridOptions\\\" view-model.ref=\\\"r_projektGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ProjektTaetigkeitEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"projekt-taetigkeit-edit\";\n        this.title = \"projekt-taetigkeit-edit.projekt-taetigkeit-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Taetigkeit\",\n            \"webApiAction\": \"ERP/Stammdaten/ProjektTaetigkeit\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Taetigkeit.CanSave\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"projekt-taetigkeit-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Taetigkeit.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"projekt-taetigkeit-edit.r_sortnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"SortNr\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.SortNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_sortNr\",\n            \"options\": {\n                \"optionsName\": \"r_sortNrOptions\",\n                \"optionsNameFQ\": \"r_sortNrOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"taetigkeit\",\n            \"filters\": [],\n            \"caption\": \"projekt-taetigkeit-edit.r_taetigkeit_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Taetigkeit.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"IdTaetigkeit\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.IdTaetigkeit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_taetigkeit\",\n            \"options\": {\n                \"optionsName\": \"r_taetigkeitOptions\",\n                \"optionsNameFQ\": \"r_taetigkeitOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"projekt-taetigkeit-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"max\": 100000.0,\n            \"format\": \"n2\",\n            \"caption\": \"projekt-taetigkeit-edit.r_stundengeplant_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"StundenGeplant\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.StundenGeplant\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_stundenGeplant\",\n            \"options\": {\n                \"optionsName\": \"r_stundenGeplantOptions\",\n                \"optionsNameFQ\": \"r_stundenGeplantOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"projekt-taetigkeit-edit.r_erledigeninappsperren_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"ErledigenInAppSperren\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.ErledigenInAppSperren\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_erledigenInAppSperren\",\n            \"options\": {\n                \"optionsName\": \"r_erledigenInAppSperrenOptions\",\n                \"optionsNameFQ\": \"r_erledigenInAppSperrenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"projekt-taetigkeit-edit.r_stundengeleistet_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Taetigkeit\",\n                \"bindTo\": \"StundenGeleistet\",\n                \"bindToFQ\": \"models.data.$m_Taetigkeit.StundenGeleistet\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_stundenGeleistet\",\n            \"options\": {\n                \"optionsName\": \"r_stundenGeleistetOptions\",\n                \"optionsNameFQ\": \"r_stundenGeleistetOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-8 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_sortnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sortNrOptions\\\" view-model.ref=\\\"r_sortNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_taetigkeit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_taetigkeitOptions\\\" view-model.ref=\\\"r_taetigkeit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_stundengeplant_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_stundenGeplantOptions\\\" view-model.ref=\\\"r_stundenGeplant\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_erledigeninappsperren_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_erledigenInAppSperrenOptions\\\" view-model.ref=\\\"r_erledigenInAppSperren\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: projekt-taetigkeit-edit.r_stundengeleistet_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_stundenGeleistetOptions\\\" view-model.ref=\\\"r_stundenGeleistet\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ProvisionsfeldEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"provisionsfeld-edit\";\n        this.title = \"provisionsfeld-edit.provisionsfeld-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Provisionsfeld\",\n            \"webApiAction\": \"ERP/Provision/Provisionsfeld\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"entitaet\",\n            \"customs\": [{\n                \"key\": \"KonditionArtikel\",\n                \"value\": \"true\"\n            }],\n            \"filters\": [],\n            \"caption\": \"provisionsfeld-edit.r_artikel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsfeld\",\n                \"bindTo\": \"IdArtikelInfo\",\n                \"bindToFQ\": \"models.data.$m_Provisionsfeld.IdArtikelInfo\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_artikel\",\n            \"options\": {\n                \"optionsName\": \"r_artikelOptions\",\n                \"optionsNameFQ\": \"r_artikelOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n4\",\n            \"caption\": \"provisionsfeld-edit.r_mulitplikator_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsfeld\",\n                \"bindTo\": \"Multiplikator\",\n                \"bindToFQ\": \"models.data.$m_Provisionsfeld.Multiplikator\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_mulitplikator\",\n            \"options\": {\n                \"optionsName\": \"r_mulitplikatorOptions\",\n                \"optionsNameFQ\": \"r_mulitplikatorOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"provisionsfeld-edit.r_sortnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsfeld\",\n                \"bindTo\": \"SortNr\",\n                \"bindToFQ\": \"models.data.$m_Provisionsfeld.SortNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sortNr\",\n            \"options\": {\n                \"optionsName\": \"r_sortNrOptions\",\n                \"optionsNameFQ\": \"r_sortNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsfeld-edit.r_artikel_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_artikelOptions\\\" view-model.ref=\\\"r_artikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsfeld-edit.r_bedingung_caption\\\"></div> <code-editor view-model.ref=\\\"r_bedingung\\\" language=\\\"sql\\\" value.bind=\\\"models.data.$m_Provisionsfeld.Bedingung\\\" main-model.bind=\\\"models.data.$m_Provisionsfeld\\\"></code-editor> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsfeld-edit.r_mulitplikator_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mulitplikatorOptions\\\" view-model.ref=\\\"r_mulitplikator\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsfeld-edit.r_sortnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_sortNrOptions\\\" view-model.ref=\\\"r_sortNr\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class VolltextThesaurusEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"volltext-thesaurus-edit\";\n        this.title = \"volltext-thesaurus-edit.volltext-thesaurus-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_VolltextThesaurus\",\n            \"webApiAction\": \"ERP/Volltext/Thesaurus\",\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"volltext-thesaurus-edit.r_textquelle_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_VolltextThesaurus\",\n                \"bindTo\": \"TextQuelle\",\n                \"bindToFQ\": \"models.data.$m_VolltextThesaurus.TextQuelle\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_textQuelle\",\n            \"options\": {\n                \"optionsName\": \"r_textQuelleOptions\",\n                \"optionsNameFQ\": \"r_textQuelleOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"volltext-thesaurus-edit.r_textziel_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_VolltextThesaurus\",\n                \"bindTo\": \"TextZiel\",\n                \"bindToFQ\": \"models.data.$m_VolltextThesaurus.TextZiel\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_textZiel\",\n            \"options\": {\n                \"optionsName\": \"r_textZielOptions\",\n                \"optionsNameFQ\": \"r_textZielOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: volltext-thesaurus-edit.r_textquelle_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_textQuelleOptions\\\" view-model.ref=\\\"r_textQuelle\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-sm-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: volltext-thesaurus-edit.r_textziel_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_textZielOptions\\\" view-model.ref=\\\"r_textZiel\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class VolltextThesaurusListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"volltext-thesaurus-list\";\n        this.title = \"volltext-thesaurus-list.volltext-thesaurus-list_caption\";\n        this.addModel({\n            \"id\": \"$m_VolltextThesaurus\",\n            \"webApiAction\": \"ERP/Volltext/Thesaurus\",\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_thesaurusTextQuelle\",\n                \"caption\": \"volltext-thesaurus-list.r_thesaurustextquelle_caption\",\n                \"bindTo\": \"TextQuelle\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_thesaurusTextZiel\",\n                \"caption\": \"volltext-thesaurus-list.r_thesaurustextziel_caption\",\n                \"bindTo\": \"TextZiel\",\n                \"minWidth\": 100\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_volltextThesaurusGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_volltextThesaurusGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_VolltextThesaurus\"\n            },\n            \"dataModel\": \"$m_VolltextThesaurus\",\n            \"editUrl\": \"ERP/Volltext/Thesaurus\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_volltextThesaurusGrid\",\n            \"options\": {\n                \"optionsName\": \"r_volltextThesaurusGridOptions\",\n                \"optionsNameFQ\": \"r_volltextThesaurusGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_volltextThesaurusGridOptions\\\" view-model.ref=\\\"r_volltextThesaurusGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AngebotEditUtils\n} from \"./angebot-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class AngebotEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AngebotEditUtils: AngebotEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"angebot-edit\";\n        this.title = \"angebot-edit.angebot-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Angebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"webApiExpand\": {\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotspositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Angebotsgruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Angebot.CanSave\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotspositionEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotsgruppeRel\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Angebot.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotsgruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Angebotsposition\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null\n            },\n            \"webApiWhere\": [\n                [\"IdAngebot\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Angebot.Id\"\n                }],\n                [\"Status.Typ\", \"0\"]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.auftragErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.auftragErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.neueKonditionenLaden\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.neueKonditionenLaden\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.angebotKopieErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.angebotKopieErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.positionenSortierenCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.positionenSortierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotEditUtils.refreshGewichtCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotEditUtils.refreshGewichtCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"angebotspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AngebotspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AngebotspositionEdit.Id\"\n                }\n            }],\n            \"id\": \"angebotspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"angebotspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"angebotspositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"angebotsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AngebotsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AngebotsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"angebotsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"angebotsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"angebotsgruppeEditPopupOptions\"\n            },\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_AngebotEditUtils\", $f_AngebotEditUtils, \"functions.$f_AngebotEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"angebot-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Angebot.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"angebotsart\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_angebotsart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Angebot.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdAngebotsart\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdAngebotsart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_angebotsart\",\n            \"options\": {\n                \"optionsName\": \"r_angebotsartOptions\",\n                \"optionsNameFQ\": \"r_angebotsartOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"angebot-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Angebot.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"angebot-edit.r_gueltigvon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"GueltigVon\",\n                \"bindToFQ\": \"models.data.$m_Angebot.GueltigVon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigVon\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigVonOptions\",\n                \"optionsNameFQ\": \"r_gueltigVonOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"angebot-edit.r_gueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"GueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Angebot.GueltigBis\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_gueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigBisOptions\",\n                \"optionsNameFQ\": \"r_gueltigBisOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"angebot-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabGruppen\",\n                \"caption\": \"angebot-edit.r_tabgruppen_caption\"\n            }, {\n                \"id\": \"r_tabAdressen\",\n                \"caption\": \"angebot-edit.r_tabadressen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"angebot-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_angpPosNr\",\n                \"caption\": \"angebot-edit.r_angpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_angpArtikelNr\",\n                \"caption\": \"angebot-edit.r_angpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angpBezeichnung\",\n                \"caption\": \"angebot-edit.r_angpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angpMengeVerpEH\",\n                \"caption\": \"angebot-edit.r_angpmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpEinheit\",\n                \"caption\": \"angebot-edit.r_angpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpPositionsart\",\n                \"caption\": \"angebot-edit.r_angppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpAngebotsgruppe\",\n                \"caption\": \"angebot-edit.r_angpangebotsgruppe_caption\",\n                \"bindTo\": \"Angebotsgruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angpVariante\",\n                \"caption\": \"angebot-edit.r_angpvariante_caption\",\n                \"bindTo\": \"IsVariante\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_angpWertNetto\",\n                \"caption\": \"angebot-edit.r_angpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpArtStatus\",\n                \"caption\": \"angebot-edit.r_angpartstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionGridToolbarOptions\"\n            },\n            \"caption\": \"angebot-edit.r_angebotspositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AngebotspositionRel\",\n                \"bindTo\": \"IdAngebot\",\n                \"bindToFQ\": \"models.data.$m_AngebotspositionRel.IdAngebot\"\n            },\n            \"dataModel\": \"$m_Angebot\",\n            \"editDataContext\": \"$m_AngebotspositionEdit\",\n            \"idEditPopup\": \"angebotspositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AngebotEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_AngebotEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"bindTo\": \"$f_AngebotEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_AngebotEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_angebotspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotspositionGridOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_anggPosNr\",\n                \"caption\": \"angebot-edit.r_anggposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_anggBezeichnung\",\n                \"caption\": \"angebot-edit.r_anggbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_anggIsVariante\",\n                \"caption\": \"angebot-edit.r_anggisvariante_caption\",\n                \"bindTo\": \"IsVariante\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_anggWertnetto\",\n                \"caption\": \"angebot-edit.r_anggwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotsgruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotsgruppeGridToolbarOptions\"\n            },\n            \"caption\": \"angebot-edit.r_angebotsgruppegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AngebotsgruppeRel\",\n                \"bindTo\": \"IdAngebot\",\n                \"bindToFQ\": \"models.data.$m_AngebotsgruppeRel.IdAngebot\"\n            },\n            \"dataModel\": \"$m_Angebot\",\n            \"editDataContext\": \"$m_AngebotsgruppeEdit\",\n            \"idEditPopup\": \"angebotsgruppeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_angebotsgruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotsgruppeGridOptions\",\n                \"optionsNameFQ\": \"r_angebotsgruppeGridOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"angebot-edit.r_lieferorttelefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"LieferortTelefon\",\n                \"bindToFQ\": \"models.data.$m_Angebot.LieferortTelefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferortTelefon\",\n            \"options\": {\n                \"optionsName\": \"r_lieferortTelefonOptions\",\n                \"optionsNameFQ\": \"r_lieferortTelefonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Angebot.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Angebot.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Angebot.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Angebot.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_lieferlager_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Angebot.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"angebot-edit.r_preisdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Angebot.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"angebot-edit.r_gewichtbrutto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"bindToFQ\": \"models.data.$m_Angebot.GewichtBrutto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtBruttoOptions\",\n                \"optionsNameFQ\": \"r_gewichtBruttoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"angebot-edit.r_gewichtverp_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"GewichtVerpackung\",\n                \"bindToFQ\": \"models.data.$m_Angebot.GewichtVerpackung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtVerp\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtVerpOptions\",\n                \"optionsNameFQ\": \"r_gewichtVerpOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"angebot-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Angebot.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./angebotsposition-edit-form\\\"></require> <require from=\\\"./angebotsgruppe-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"angebotspositionEditPopupOptions\\\" view-model.ref=\\\"angebotspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <angebotsposition-edit-form view-model.ref=\\\"angebotspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></angebotsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"angebotsgruppeEditPopupOptions\\\" view-model.ref=\\\"angebotsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <angebotsgruppe-edit-form view-model.ref=\\\"angebotsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></angebotsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebot-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_angebotsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_angebotsartOptions\\\" view-model.ref=\\\"r_angebotsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_gueltigvon_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigVonOptions\\\" view-model.ref=\\\"r_gueltigVon\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_gueltigbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigBisOptions\\\" view-model.ref=\\\"r_gueltigBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Angebot.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Angebot\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Angebot\\\" web-api-action=\\\"ERP/Verkauf/Angebot\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebot-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" validation-field-name=\\\"Kunde\\\" main-model.bind=\\\"models.data.$m_Angebot\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Angebot.IdKunde\\\" id-adresse.bind=\\\"models.data.$m_Angebot.IdKundeAdresse\\\" adresse-property-name=\\\"KundeAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Angebot.IdKundeAnsprechperson\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_AngebotEditUtils.onKundeChanged($event)\\\" person-typ.bind=\\\"0\\\" show-ansprechperson.bind=\\\"true\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AngebotEditUtils.onKundeAdresseChanged($event)\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_AngebotEditUtils.onKundeAnsprechpersonChanged($event)\\\" where.bind=\\\"[[['Geschaeftspartnerart.IsKunde', true], 'or', ['Geschaeftspartnerart.IsInteressent', true]], ['Status.Typ', 0]]\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_AngebotEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_angebotspositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotspositionGridOptions\\\" view-model.ref=\\\"r_angebotspositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebot-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" id-berechnungsversion.bind=\\\"models.data.$m_Angebot.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Angebot.IdKunde\\\" datum.bind=\\\"models.data.$m_Angebot.Preisdatum\\\" main-model.bind=\\\"models.data.$m_Angebot\\\" is-kalkulation-kopf.bind=\\\"true\\\" id-waehrung.bind=\\\"models.data.$m_Angebot.IdWaehrung\\\" id-filiale.bind=\\\"models.data.$m_Angebot.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Angebot.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Angebot.IdFirma\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_angebotsgruppeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotsgruppeGridOptions\\\" view-model.ref=\\\"r_angebotsgruppeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: angebot-edit.r_headerlieferortkunde_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferort\\\" validation-field-name=\\\"Lieferort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Angebot.IdLieferort\\\" id-adresse.bind=\\\"models.data.$m_Angebot.IdLieferortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Angebot.IdLieferortAnsprechperson\\\" person-typ.bind=\\\"2\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Angebot\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AngebotEditUtils.onLieferortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferortAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_AngebotEditUtils.onLieferortAnsprechpersonChanged($event)\\\"></geschaeftspartner> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_lieferorttelefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferortTelefonOptions\\\" view-model.ref=\\\"r_lieferortTelefon\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: angebot-edit.r_headerangebotrechnungsort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Angebot.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Angebot.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Angebot.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Angebot\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AngebotEditUtils.onRechnungsortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsRechnungsadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"RechnungsortAdresse\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_gewichtbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtBruttoOptions\\\" view-model.ref=\\\"r_gewichtBrutto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_gewichtverp_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtVerpOptions\\\" view-model.ref=\\\"r_gewichtVerp\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebot-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_AngebotEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AngebotListUtils\n} from \"./angebot-list-utils\";\n\n@fwx.autoinject\nexport class AngebotListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_AngebotListUtils: AngebotListUtils) {\n        super(element, formBaseImport);\n        this.id = \"angebot-list\";\n        this.title = \"angebot-list.angebot-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Angebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"webApiExpand\": {\n                'Angebotsart': null,\n                'Projekt': null,\n                'Status': null,\n                'Waehrung': null,\n                'Kunde': null,\n                'KundeAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_angebotGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_AngebotListUtils.doExport\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AngebotListUtils\", $f_AngebotListUtils, \"functions.$f_AngebotListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_angNummer\",\n                \"caption\": \"angebot-list.r_angnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angDatum\",\n                \"caption\": \"angebot-list.r_angdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angProjekt\",\n                \"caption\": \"angebot-list.r_angprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_angGueltigBis\",\n                \"caption\": \"angebot-list.r_anggueltigbis_caption\",\n                \"bindTo\": \"GueltigBis\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angKundeNummer\",\n                \"caption\": \"angebot-list.r_angkundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angFirmenbez1\",\n                \"caption\": \"angebot-list.r_angfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angStrasse\",\n                \"caption\": \"angebot-list.r_angstrasse_caption\",\n                \"bindTo\": \"KundeAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angLand\",\n                \"caption\": \"angebot-list.r_angland_caption\",\n                \"bindTo\": \"KundeAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angOrt\",\n                \"caption\": \"angebot-list.r_angort_caption\",\n                \"bindTo\": \"KundeAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angWertNetto\",\n                \"caption\": \"angebot-list.r_angwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angWaehrung\",\n                \"caption\": \"angebot-list.r_angwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_angStatus\",\n                \"caption\": \"angebot-list.r_angstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotGridToolbarOptions\"\n            },\n            \"caption\": \"angebot-list.r_angebotgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebot\"\n            },\n            \"dataModel\": \"$m_Angebot\",\n            \"editUrl\": \"ERP/Verkauf/Angebot\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_angebotGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotGridOptions\",\n                \"optionsNameFQ\": \"r_angebotGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotGridOptions\\\" view-model.ref=\\\"r_angebotGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AngebotsgruppeEditUtils\n} from \"./angebotsgruppe-edit-utils\";\n\n@fwx.autoinject\nexport class AngebotsgruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AngebotsgruppeEditUtils: AngebotsgruppeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"angebotsgruppe-edit\";\n        this.title = \"angebotsgruppe-edit.angebotsgruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Angebotsgruppe\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Angebot.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Angebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Angebotsgruppe.IdAngebot\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_AngebotsgruppeEditUtils\", $f_AngebotsgruppeEditUtils, \"functions.$f_AngebotsgruppeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"angebotsgruppe-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsgruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Angebotsgruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"angebotsgruppe-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsgruppe\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Angebotsgruppe.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"angebotsgruppe-edit.r_isvariante_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsgruppe\",\n                \"bindTo\": \"IsVariante\",\n                \"bindToFQ\": \"models.data.$m_Angebotsgruppe.IsVariante\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariante\",\n            \"options\": {\n                \"optionsName\": \"r_isVarianteOptions\",\n                \"optionsNameFQ\": \"r_isVarianteOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsgruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsgruppe-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebotsgruppe-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsgruppe-edit.r_isvariante_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVarianteOptions\\\" view-model.ref=\\\"r_isVariante\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Angebotsgruppe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AngebotspositionEditUtils\n} from \"./angebotsposition-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class AngebotspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AngebotspositionEditUtils: AngebotspositionEditUtils,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"angebotsposition-edit\";\n        this.title = \"angebotsposition-edit.angebotsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Angebotsposition\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Angebot.CanSave && models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\",\n            \"custom\": {\n                'copyFunc': '$f_AngebotspositionEditUtils.copyAngebotsposition'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Angebot\",\n            \"webApiAction\": \"ERP/Verkauf/Angebot\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Angebotsposition.IdAngebot\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotsgruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotspositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Angebotsgruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'AngebotspositionStuecklisteInfo': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AngebotspositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotspositionEditUtils.showArtikelErsetzenCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotspositionEditUtils.showArtikelErsetzenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotspositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotspositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AngebotspositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_AngebotspositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"angebotspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AngebotspositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AngebotspositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"angebotspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"angebotspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"angebotspositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"angebotsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AngebotsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AngebotsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"angebotsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"angebotsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"angebotsgruppeEditPopupOptions\"\n            },\n            \"caption\": \"angebotsposition-edit.angebotsgruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_AngebotspositionEditUtils\", $f_AngebotspositionEditUtils, \"functions.$f_AngebotspositionEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"angebotsposition-edit.r_menge_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.MengeVerpEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_AngebotspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_menge\",\n            \"options\": {\n                \"optionsName\": \"r_mengeOptions\",\n                \"optionsNameFQ\": \"r_mengeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Angebotsposition.IdArtikel\"\n                }],\n                [\"IsVerkaufseinheit\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"angebotsposition-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_AngebotspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_angpPosNr\",\n                \"caption\": \"angebotsposition-edit.r_angpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_angpArtikelNr\",\n                \"caption\": \"angebotsposition-edit.r_angpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angpBezeichnung\",\n                \"caption\": \"angebotsposition-edit.r_angpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angpMengeVerpEH\",\n                \"caption\": \"angebotsposition-edit.r_angpmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpEinheit\",\n                \"caption\": \"angebotsposition-edit.r_angpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpFaktor\",\n                \"caption\": \"angebotsposition-edit.r_angpfaktor_caption\",\n                \"bindTo\": \"AngebotspositionStuecklisteInfo.Faktor\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.StuecklisteFaktorTyp\"\n            }, {\n                \"id\": \"r_angpPositionsart\",\n                \"caption\": \"angebotsposition-edit.r_angppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpWertNetto\",\n                \"caption\": \"angebotsposition-edit.r_angpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpWertSteuer\",\n                \"caption\": \"angebotsposition-edit.r_angpwertsteuer_caption\",\n                \"bindTo\": \"KalkulationContainer.WertSteuer\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpWertBrutto\",\n                \"caption\": \"angebotsposition-edit.r_angpwertbrutto_caption\",\n                \"bindTo\": \"KalkulationContainer.WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotspositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"angebotsposition-edit.r_angebotspositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AngebotspositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelAngebotsposition\",\n                \"bindToFQ\": \"models.data.$m_AngebotspositionStuecklisteRel.IdSetartikelAngebotsposition\"\n            },\n            \"dataModel\": \"$m_Angebotsposition\",\n            \"editDataContext\": \"$m_AngebotspositionStuecklisteEdit\",\n            \"idEditPopup\": \"angebotspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_angebotspositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotspositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"angebotsposition-edit.r_isvariablersetartikel_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Angebotsposition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IsVariablerSetartikel\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IsVariablerSetartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariablerSetartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isVariablerSetartikelOptions\",\n                \"optionsNameFQ\": \"r_isVariablerSetartikelOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"angebotsgruppe\",\n            \"filter\": [\"IdAngebot\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Angebotsposition.IdAngebot\"\n            }],\n            \"filters\": [],\n            \"caption\": \"angebotsposition-edit.r_angebotsgruppe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IdAngebotsgruppe\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IdAngebotsgruppe\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_AngebotspositionEditUtils.onAngebotsgruppeChanged\",\n            \"id\": \"r_angebotsgruppe\",\n            \"options\": {\n                \"optionsName\": \"r_angebotsgruppeOptions\",\n                \"optionsNameFQ\": \"r_angebotsgruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"angebotsposition-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"angebotsposition-edit.r_isvariante_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IsVariante\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IsVariante\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariante\",\n            \"options\": {\n                \"optionsName\": \"r_isVarianteOptions\",\n                \"optionsNameFQ\": \"r_isVarianteOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"angebotsposition-edit.r_kundeartikelnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"KundeArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.KundeArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelNr\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelNrOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelNrOptions\"\n            },\n            \"tooltip\": \"Artikel-Nr. des Kunden\"\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"angebotsposition-edit.r_kundeartikelbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"KundeArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.KundeArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelbezeichnungOptions\"\n            },\n            \"tooltip\": \"Artikelbezeichnung des Kunden\"\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"angebotsposition-edit.r_positionsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"angebotsposition-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Angebotsposition.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_artikelErsetzenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_artikelErsetzenPopupOptions\",\n                \"optionsNameFQ\": \"r_artikelErsetzenPopupOptions\"\n            },\n            \"caption\": \"angebotsposition-edit.r_artikelersetzenpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AngebotspositionEditUtils.doArtikelErsetzen\",\n                    \"bindToFQ\": \"functions.$f_AngebotspositionEditUtils.doArtikelErsetzen\"\n                }\n            }]\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./angebotsposition-edit-form\\\"></require> <require from=\\\"./angebotsgruppe-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"angebotspositionEditPopupOptions\\\" view-model.ref=\\\"angebotspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <angebotsposition-edit-form view-model.ref=\\\"angebotspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></angebotsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"angebotsgruppeEditPopupOptions\\\" view-model.ref=\\\"angebotsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <angebotsgruppe-edit-form view-model.ref=\\\"angebotsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></angebotsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-komponenten-auswahl view-model.ref=\\\"r_variablerSetartikelKomponentenAuswahlElement\\\"></variabler-setartikel-komponenten-auswahl> </div> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12\\\"> <artikel id-artikel.bind=\\\"models.data.$m_Angebotsposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Angebotsposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel-changed.delegate=\\\"functions.$f_AngebotspositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Angebotsposition.Id > 0\\\" main-model.bind=\\\"models.data.$m_Angebotsposition\\\" where.bind=\\\"[['Status.Typ', 0],  ['Artikelart.IsVerkaufsartikel', true]]\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_menge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeOptions\\\" view-model.ref=\\\"r_menge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Angebotsposition.Id > 0 && models.data.$m_Angebotsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebotsposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotspositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_angebotspositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebotsposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_AngebotspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"functions.$f_AngebotspositionEditUtils.showVariablerSetartikelCheckbox\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_isvariablersetartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVariablerSetartikelOptions\\\" view-model.ref=\\\"r_isVariablerSetartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_angebotsgruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_angebotsgruppeOptions\\\" view-model.ref=\\\"r_angebotsgruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_isvariante_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVarianteOptions\\\" view-model.ref=\\\"r_isVariante\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_kundeartikelnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelNrOptions\\\" view-model.ref=\\\"r_kundeArtikelNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_kundeartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_kundeArtikelbezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Angebotsposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: angebotsposition-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Angebotsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Angebotsposition.IsPositionVariableStuecklistenkomponente == true\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: angebotsposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" id-berechnungsversion.bind=\\\"models.data.$m_Angebot.IdBerechnungsversion\\\" id-artikel.bind=\\\"models.data.$m_Angebotsposition.IdArtikel\\\" id-kunde.bind=\\\"models.data.$m_Angebot.IdKunde\\\" datum.bind=\\\"models.data.$m_Angebot.Preisdatum\\\" menge-verp-eh.bind=\\\"models.data.$m_Angebotsposition.MengeVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Angebotsposition.IdEinheit\\\" main-model.bind=\\\"models.data.$m_Angebotsposition\\\" id-waehrung.bind=\\\"models.data.$m_Angebot.IdWaehrung\\\" steuersatz.bind=\\\"models.data.$m_Angebotsposition.Steuersatz\\\" is-gratis.bind=\\\"models.data.$m_Angebotsposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Angebot.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Angebot.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Angebot.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Verkauf.Angebotsposition\\\" id-kopf.bind=\\\"models.data.$m_Angebotsposition.IdAngebot\\\" id-pos.bind=\\\"models.data.$m_Angebotsposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Angebotsposition.IsVariablerSetartikel\\\"></kalkulation> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Angebotsposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_AngebotspositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_artikelErsetzenPopupOptions\\\" view-model.ref=\\\"r_artikelErsetzenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikelErsetzenElement\\\" where.bind=\\\"[['Status.Typ', 0],  ['Artikelart.IsVerkaufsartikel', true]]\\\" id-artikel.bind=\\\"functions.$f_AngebotspositionEditUtils.idArtikelErsetzen\\\"></artikel> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AbschlagfakturaEditUtils\n} from \"./abschlagfaktura-edit-utils\";\n\n@fwx.autoinject\nexport class AbschlagsfakturaEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AbschlagfakturaEditUtils: AbschlagfakturaEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"abschlagsfaktura-edit\";\n        this.title = \"abschlagsfaktura-edit.abschlagsfaktura-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Abschlagsfaktura\",\n            \"webApiAction\": \"ERP/Verkauf/Abschlagfaktura\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Abschlagsfaktura.IdAuftrag\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_AbschlagfakturaEditUtils\", $f_AbschlagfakturaEditUtils, \"functions.$f_AbschlagfakturaEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"showClearButton\": true,\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_wertprozent_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Abschlagsfaktura.IdFaktura > 0 || (models.data.$m_Abschlagsfaktura.WertProzent == null && models.data.$m_Abschlagsfaktura.WertNetto > 0)\",\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"WertProzent\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.WertProzent\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_AbschlagfakturaEditUtils.onWertProzentValueChanged\",\n            \"id\": \"r_wertProzent\",\n            \"options\": {\n                \"optionsName\": \"r_wertProzentOptions\",\n                \"optionsNameFQ\": \"r_wertProzentOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_wertnetto_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Abschlagsfaktura.IdFaktura > 0 || models.data.$m_Abschlagsfaktura.WertProzent > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"WertNetto\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.WertNetto\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_wertNetto\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoOptions\",\n                \"optionsNameFQ\": \"r_wertNettoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_steuersatz_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Abschlagsfaktura.IdFaktura > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"Steuersatz\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.Steuersatz\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_steuersatz\",\n            \"options\": {\n                \"optionsName\": \"r_steuersatzOptions\",\n                \"optionsNameFQ\": \"r_steuersatzOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"abschlagsfaktura-edit.r_bezeichnung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Abschlagsfaktura.IdFaktura > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"abschlagsfaktura-edit.r_isvorausinkasso_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"IsVorausinkasso\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.IsVorausinkasso\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVorausinkasso\",\n            \"options\": {\n                \"optionsName\": \"r_isVorausinkassoOptions\",\n                \"optionsNameFQ\": \"r_isVorausinkassoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_auftrwertnetto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"WertNetto\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.WertNetto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_auftrWertNetto\",\n            \"options\": {\n                \"optionsName\": \"r_auftrWertNettoOptions\",\n                \"optionsNameFQ\": \"r_auftrWertNettoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_auftabschlagoffen_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"AbschlagsfakturaOffen\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.AbschlagsfakturaOffen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_auftAbschlagOffen\",\n            \"options\": {\n                \"optionsName\": \"r_auftAbschlagOffenOptions\",\n                \"optionsNameFQ\": \"r_auftAbschlagOffenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_betragbezahltvorauskassa_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"BetragBezahltVorauskassa\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.BetragBezahltVorauskassa\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahltVorauskassa\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltVorauskassaOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltVorauskassaOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"abschlagsfaktura-edit.r_betragbezahltgutschein_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Abschlagsfaktura\",\n                \"bindTo\": \"BetragBezahltGutschein\",\n                \"bindToFQ\": \"models.data.$m_Abschlagsfaktura.BetragBezahltGutschein\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahltGutschein\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltGutscheinOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltGutscheinOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_wertprozent_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertProzentOptions\\\" view-model.ref=\\\"r_wertProzent\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_wertnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoOptions\\\" view-model.ref=\\\"r_wertNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_steuersatz_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_steuersatzOptions\\\" view-model.ref=\\\"r_steuersatz\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_isvorausinkasso_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVorausinkassoOptions\\\" view-model.ref=\\\"r_isVorausinkasso\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: abschlagsfaktura-edit.r_groupauftrag_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_auftrwertnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_auftrWertNettoOptions\\\" view-model.ref=\\\"r_auftrWertNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_auftabschlagoffen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_auftAbschlagOffenOptions\\\" view-model.ref=\\\"r_auftAbschlagOffen\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_betragbezahltvorauskassa_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltVorauskassaOptions\\\" view-model.ref=\\\"r_betragBezahltVorauskassa\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: abschlagsfaktura-edit.r_betragbezahltgutschein_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltGutscheinOptions\\\" view-model.ref=\\\"r_betragBezahltGutschein\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AuftragEditUtils\n} from \"./auftrag-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class AuftragEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AuftragEditUtils: AuftragEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"auftrag-edit\";\n        this.title = \"auftrag-edit.auftrag-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragspositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'Auftragsgruppe': null,\n                'Angebotsposition': {\n                    columns: [\"IdAngebot\"],\n                    'expand': {\n                        'Angebot': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragspositionEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Angebotsposition\",\n            \"webApiAction\": \"ERP/Verkauf/Angebotsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'Angebot': {\n                    'expand': {\n                        'KundeAdresse': null,\n                        'Kunde': null\n                    }\n                }\n            },\n            \"webApiWhere\": [\n                [\"Status.Typ\", \"0\"],\n                [\"IsPositionStuecklistenkomponente\", false],\n                [\"Angebot.IdKunde\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftrag.IdKunde\"\n                }],\n                [\"Angebot.IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftrag.IdFirma\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Kunde': null,\n                'KundeAdresse': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"Status.Typ\", \"0\"],\n                [\"IdKunde\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftrag.IdKunde\"\n                }],\n                [\"IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftrag.IdFirma\"\n                }],\n                [\"MergeKey\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftrag.MergeKey\"\n                }]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"IdAuftrag\",\n                \"webApiCustomValue\": \"models.data.$m_Auftrag.Id\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_AbschlagsfakturaRel\",\n            \"webApiAction\": \"ERP/Verkauf/Abschlagfaktura\",\n            \"webApiExpand\": {\n                'Faktura': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AbschlagsfakturaEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Abschlagfaktura\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragsgruppeRel\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragsgruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.showLieferscheinErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.showLieferscheinErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.bestellungErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.bestellungErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.icBestellungErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.icBestellungErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.bestaetigenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.bestaetigenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.reservierenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.reservierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.reservierungEntfernenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.reservierungEntfernenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.showImportAngebotspositionenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.showImportAngebotspositionenPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.neueKonditionenLaden\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.neueKonditionenLaden\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.auftragKopieErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.auftragKopieErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.positionenSortierenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.positionenSortierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.refreshGewichtCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.refreshGewichtCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragEditUtils.recalcLieferdatumCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragEditUtils.recalcLieferdatumCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"auftragspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AuftragspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AuftragspositionEdit.Id\"\n                }\n            }, {\n                \"to\": \"$v_idGeschaeftspartner\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Auftrag\",\n                    \"bindTo\": \"IdKunde\",\n                    \"bindToFQ\": \"models.data.$m_Auftrag.IdKunde\"\n                }\n            }],\n            \"id\": \"auftragspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"auftragspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"auftragspositionEditPopupOptions\"\n            },\n            \"caption\": \"auftrag-edit.auftragspositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"abschlagsfakturaEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AbschlagsfakturaEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AbschlagsfakturaEdit.Id\"\n                }\n            }],\n            \"id\": \"abschlagsfakturaEditPopup\",\n            \"options\": {\n                \"optionsName\": \"abschlagsfakturaEditPopupOptions\",\n                \"optionsNameFQ\": \"abschlagsfakturaEditPopupOptions\"\n            },\n            \"caption\": \"auftrag-edit.abschlagsfakturaeditpopup_caption\",\n            \"height\": \"400px\",\n            \"width\": \"700px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"auftragsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AuftragsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AuftragsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"auftragsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"auftragsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"auftragsgruppeEditPopupOptions\"\n            },\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_AuftragEditUtils\", $f_AuftragEditUtils, \"functions.$f_AuftragEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"auftrag-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"auftragsart\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_auftragsart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdAuftragsart\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdAuftragsart\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_auftragsart\",\n            \"options\": {\n                \"optionsName\": \"r_auftragsartOptions\",\n                \"optionsNameFQ\": \"r_auftragsartOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"auftrag-edit.r_datum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"auftrag-edit.r_lieferdatum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"Lieferdatum\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.Lieferdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_AuftragEditUtils.onLieferdatumValueChanged\",\n            \"id\": \"r_lieferdatum\",\n            \"options\": {\n                \"optionsName\": \"r_lieferdatumOptions\",\n                \"optionsNameFQ\": \"r_lieferdatumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"auftrag-edit.r_berechnlieferdatum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"BerechnetLieferdatum\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.BerechnetLieferdatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_berechnLieferdatum\",\n            \"options\": {\n                \"optionsName\": \"r_berechnLieferdatumOptions\",\n                \"optionsNameFQ\": \"r_berechnLieferdatumOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"auftrag-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabGruppen\",\n                \"caption\": \"auftrag-edit.r_tabgruppen_caption\"\n            }, {\n                \"id\": \"r_tabAbschlagsfaktura\",\n                \"caption\": \"auftrag-edit.r_tababschlagsfaktura_caption\"\n            }, {\n                \"id\": \"r_tabAdressen\",\n                \"caption\": \"auftrag-edit.r_tabadressen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"auftrag-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_aufpPosNr\",\n                \"caption\": \"auftrag-edit.r_aufpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_aufpArtikelNr\",\n                \"caption\": \"auftrag-edit.r_aufpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufpBezeichnung\",\n                \"caption\": \"auftrag-edit.r_aufpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufpAngebotNr\",\n                \"caption\": \"auftrag-edit.r_aufpangebotnr_caption\",\n                \"bindTo\": \"Angebotsposition.Angebot.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufpMengeVerpEH\",\n                \"caption\": \"auftrag-edit.r_aufpmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"auto\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeOffenVerpEH\",\n                \"caption\": \"auftrag-edit.r_aufpmengeoffenverpeh_caption\",\n                \"bindTo\": \"MengeOffenVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeResVerpEH\",\n                \"caption\": \"auftrag-edit.r_aufpmengeresverpeh_caption\",\n                \"bindTo\": \"MengeReserviertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"onCellPrepared\": \"functions.$f_AuftragEditUtils.onMengeReserviertCellPrepared\"\n            }, {\n                \"id\": \"r_aufpMengeLieferscheinVerpEH\",\n                \"caption\": \"auftrag-edit.r_aufpmengelieferscheinverpeh_caption\",\n                \"bindTo\": \"MengeLieferscheinVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeGeliefertVerpEH\",\n                \"caption\": \"auftrag-edit.r_aufpmengegeliefertverpeh_caption\",\n                \"bindTo\": \"MengeGeliefertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpEinheit\",\n                \"caption\": \"auftrag-edit.r_aufpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufpPositionsart\",\n                \"caption\": \"auftrag-edit.r_aufppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufpAuftragsgruppe\",\n                \"caption\": \"auftrag-edit.r_aufpauftragsgruppe_caption\",\n                \"bindTo\": \"Auftragsgruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufpWertNetto\",\n                \"caption\": \"auftrag-edit.r_aufpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpBerechnLieferdatum\",\n                \"caption\": \"auftrag-edit.r_aufpberechnlieferdatum_caption\",\n                \"bindTo\": \"BerechnetLieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_AuftragEditUtils.onBerechnLieferdatumCellPrepared\"\n            }, {\n                \"id\": \"r_aufpStatus\",\n                \"caption\": \"auftrag-edit.r_aufpstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragspositionGridToolbarOptions\"\n            },\n            \"caption\": \"auftrag-edit.r_auftragspositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AuftragspositionRel\",\n                \"bindTo\": \"IdAuftrag\",\n                \"bindToFQ\": \"models.data.$m_AuftragspositionRel.IdAuftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"editDataContext\": \"$m_AuftragspositionEdit\",\n            \"idEditPopup\": \"auftragspositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Auftrag\",\n                    \"bindTo\": \"$f_AuftragEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Auftrag\",\n                    \"bindTo\": \"$f_AuftragEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_auftragspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragspositionGridOptions\",\n                \"optionsNameFQ\": \"r_auftragspositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_anggPosNr\",\n                \"caption\": \"auftrag-edit.r_anggposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_anggBezeichnung\",\n                \"caption\": \"auftrag-edit.r_anggbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_anggWertnetto\",\n                \"caption\": \"auftrag-edit.r_anggwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragsgruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragsgruppeGridToolbarOptions\"\n            },\n            \"caption\": \"auftrag-edit.r_auftragsgruppegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AuftragsgruppeRel\",\n                \"bindTo\": \"IdAuftrag\",\n                \"bindToFQ\": \"models.data.$m_AuftragsgruppeRel.IdAuftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"editDataContext\": \"$m_AuftragsgruppeEdit\",\n            \"idEditPopup\": \"auftragsgruppeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_auftragsgruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragsgruppeGridOptions\",\n                \"optionsNameFQ\": \"r_auftragsgruppeGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_abfBezeichnung\",\n                \"caption\": \"auftrag-edit.r_abfbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_abfWertNetto\",\n                \"caption\": \"auftrag-edit.r_abfwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_abfSteuersatz\",\n                \"caption\": \"auftrag-edit.r_abfsteuersatz_caption\",\n                \"bindTo\": \"Steuersatz\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_abfVorausinkasso\",\n                \"caption\": \"auftrag-edit.r_abfvorausinkasso_caption\",\n                \"bindTo\": \"IsVorausinkasso\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_abfIsSchluss\",\n                \"caption\": \"auftrag-edit.r_abfisschluss_caption\",\n                \"bindTo\": \"IsSchluss\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_abfNummer\",\n                \"caption\": \"auftrag-edit.r_abfnummer_caption\",\n                \"bindTo\": \"Faktura.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_abfDatum\",\n                \"caption\": \"auftrag-edit.r_abfdatum_caption\",\n                \"bindTo\": \"Faktura.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_abfBezahlt\",\n                \"caption\": \"auftrag-edit.r_abfbezahlt_caption\",\n                \"bindTo\": \"Faktura.BezahltTyp\",\n                \"width\": \"100px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.FakturaBezahltTyp\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_abschlagsfakturaGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_abschlagsfakturaGridToolbarOptions\"\n            },\n            \"caption\": \"auftrag-edit.r_abschlagsfakturagrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AbschlagsfakturaRel\",\n                \"bindTo\": \"IdAuftrag\",\n                \"bindToFQ\": \"models.data.$m_AbschlagsfakturaRel.IdAuftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"editDataContext\": \"$m_AbschlagsfakturaEdit\",\n            \"idEditPopup\": \"abschlagsfakturaEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$f_AuftragEditUtils\",\n                    \"bindTo\": \"vorauskasseCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.vorauskasseCommand\"\n                }\n            }],\n            \"id\": \"r_abschlagsfakturaGrid\",\n            \"options\": {\n                \"optionsName\": \"r_abschlagsfakturaGridOptions\",\n                \"optionsNameFQ\": \"r_abschlagsfakturaGridOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"auftrag-edit.r_lieferorttelefon_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"LieferortTelefon\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.LieferortTelefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferortTelefon\",\n            \"options\": {\n                \"optionsName\": \"r_lieferortTelefonOptions\",\n                \"optionsNameFQ\": \"r_lieferortTelefonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Auftrag.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Auftrag.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_lieferlager_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsStreckengeschaeft || models.data.$m_Auftrag.IsIcAuftrag || models.data.$m_Auftrag.IsIntercompany\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_sachbearbeiter_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_waehrung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"auftrag-edit.r_preisdatum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"auftrag-edit.r_gewichtbrutto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.GewichtBrutto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtBruttoOptions\",\n                \"optionsNameFQ\": \"r_gewichtBruttoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"auftrag-edit.r_gewichtverpackung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"GewichtVerpackung\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.GewichtVerpackung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtVerpackung\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtVerpackungOptions\",\n                \"optionsNameFQ\": \"r_gewichtVerpackungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"intercompany\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_intercompany_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"IdIntercompany\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.IdIntercompany\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_intercompany\",\n            \"options\": {\n                \"optionsName\": \"r_intercompanyOptions\",\n                \"optionsNameFQ\": \"r_intercompanyOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"auftrag-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Auftrag.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_angebotspositionenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_angebotspositionenPopupOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionenPopupOptions\"\n            },\n            \"caption\": \"auftrag-edit.r_angebotspositionenpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AuftragEditUtils.importAngebotspositionenCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.importAngebotspositionenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_angpAngebotNummer\",\n                \"caption\": \"auftrag-edit.r_angpangebotnummer_caption\",\n                \"bindTo\": \"Angebot.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angpDatum\",\n                \"caption\": \"auftrag-edit.r_angpdatum_caption\",\n                \"bindTo\": \"Angebot.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_angpArtikelNummer\",\n                \"caption\": \"auftrag-edit.r_angpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_angpBezeichnung\",\n                \"caption\": \"auftrag-edit.r_angpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_angpMengeVerpEH\",\n                \"caption\": \"auftrag-edit.r_angpmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"auto\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_angpEinheit\",\n                \"caption\": \"auftrag-edit.r_angpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpPositionsart\",\n                \"caption\": \"auftrag-edit.r_angppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_angpStatus\",\n                \"caption\": \"auftrag-edit.r_angpstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_angebotspositionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionenGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Angebotsposition\"\n            },\n            \"dataModel\": \"$m_Angebotsposition\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_angebotspositionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_angebotspositionenGridOptions\",\n                \"optionsNameFQ\": \"r_angebotspositionenGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_lieferscheinErstellenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinErstellenPopupOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinErstellenPopupOptions\"\n            },\n            \"caption\": \"auftrag-edit.r_lieferscheinerstellenpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AuftragEditUtils.zuMarkiertemLieferscheinHinzufuegenCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.zuMarkiertemLieferscheinHinzufuegenCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"bindTo\": \"$f_AuftragEditUtils.neuenLieferscheinErstellenCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragEditUtils.neuenLieferscheinErstellenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_liefsLieferscheinNummer\",\n                \"caption\": \"auftrag-edit.r_liefslieferscheinnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsDatum\",\n                \"caption\": \"auftrag-edit.r_liefsdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefsKundeNummer\",\n                \"caption\": \"auftrag-edit.r_liefskundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsFirmenbez1\",\n                \"caption\": \"auftrag-edit.r_liefsfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefsStatus\",\n                \"caption\": \"auftrag-edit.r_liefsstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"selectionMode\": 1,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./auftragsposition-edit-form\\\"></require> <require from=\\\"./abschlagsfaktura-edit-form\\\"></require> <require from=\\\"./auftragsgruppe-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"auftragspositionEditPopupOptions\\\" view-model.ref=\\\"auftragspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <auftragsposition-edit-form view-model.ref=\\\"auftragspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></auftragsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"abschlagsfakturaEditPopupOptions\\\" view-model.ref=\\\"abschlagsfakturaEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <abschlagsfaktura-edit-form view-model.ref=\\\"abschlagsfakturaEditPopupContent\\\" is-edit-popup=\\\"true\\\"></abschlagsfaktura-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"auftragsgruppeEditPopupOptions\\\" view-model.ref=\\\"auftragsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <auftragsgruppe-edit-form view-model.ref=\\\"auftragsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></auftragsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftrag-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_auftragsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_auftragsartOptions\\\" view-model.ref=\\\"r_auftragsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_lieferdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_lieferdatumOptions\\\" view-model.ref=\\\"r_lieferdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_AuftragEditUtils.startupService.startupInfo.Mandant.IsBerechnungLieferdatumAktiv\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_berechnlieferdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_berechnLieferdatumOptions\\\" view-model.ref=\\\"r_berechnLieferdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Auftrag.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" web-api-action=\\\"ERP/Verkauf/Auftrag\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftrag-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\" validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Auftrag.IdKunde\\\" id-adresse.bind=\\\"models.data.$m_Auftrag.IdKundeAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Auftrag.IdKundeAnsprechperson\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_AuftragEditUtils.onKundeChanged($event)\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AuftragEditUtils.onKundeAdresseChanged($event)\\\" person-typ.bind=\\\"1\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" where.bind=\\\"[['Geschaeftspartnerart.IsKunde', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"KundeAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_AuftragEditUtils.onKundeAnsprechpersonChanged($event)\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_AuftragEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_auftragspositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragspositionGridOptions\\\" view-model.ref=\\\"r_auftragspositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftrag-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\" datum.bind=\\\"models.data.$m_Auftrag.Preisdatum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Auftrag.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Auftrag.IdKunde\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" id-filiale.bind=\\\"models.data.$m_Auftrag.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Auftrag.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Auftrag.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Auftrag.IdWaehrung\\\" is-from-webshop.bind=\\\"models.data.$m_Auftrag.IsFromWebshop\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_auftragsgruppeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragsgruppeGridOptions\\\" view-model.ref=\\\"r_auftragsgruppeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_abschlagsfakturaGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_abschlagsfakturaGridOptions\\\" view-model.ref=\\\"r_abschlagsfakturaGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: auftrag-edit.r_headerauftraglieferort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferort\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\" validation-field-name=\\\"Lieferort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Auftrag.IdLieferort\\\" id-adresse.bind=\\\"models.data.$m_Auftrag.IdLieferortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Auftrag.IdLieferortAnsprechperson\\\" person-typ.bind=\\\"2\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AuftragEditUtils.onLieferortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferortAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_AuftragEditUtils.onLieferortAnsprechpersonChanged($event)\\\"></geschaeftspartner> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_lieferorttelefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferortTelefonOptions\\\" view-model.ref=\\\"r_lieferortTelefon\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: auftrag-edit.r_headerauftragrechnungsort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" is-read-only.bind=\\\"models.data.$m_Auftrag.IsIcAuftrag\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Auftrag.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Auftrag.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Auftrag.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Auftrag\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_AuftragEditUtils.onRechnungsortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsRechnungsadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"RechnungsortAdresse\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage4\\\" show.bind=\\\"r_tabSelected === 4\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_gewichtbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtBruttoOptions\\\" view-model.ref=\\\"r_gewichtBrutto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_gewichtverpackung_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtVerpackungOptions\\\" view-model.ref=\\\"r_gewichtVerpackung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_AuftragEditUtils.startupService.startupInfo.Lizenz.HasIntercompany\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_intercompany_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_intercompanyOptions\\\" view-model.ref=\\\"r_intercompany\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_AuftragEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_angebotspositionenPopupOptions\\\" view-model.ref=\\\"r_angebotspositionenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_angebotspositionenGridOptions\\\" view-model.ref=\\\"r_angebotspositionenGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_lieferscheinErstellenPopupOptions\\\" view-model.ref=\\\"r_lieferscheinErstellenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinGridOptions\\\" view-model.ref=\\\"r_lieferscheinGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AuftragService\n} from \"../../../services/auftrag-service\";\nimport {\n    AuftragListUtils\n} from \"./auftrag-list-utils\";\n\n@fwx.autoinject\nexport class AuftragListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_AuftragService: AuftragService,\n        private $f_AuftragListUtils: AuftragListUtils) {\n        super(element, formBaseImport);\n        this.id = \"auftrag-list\";\n        this.title = \"auftrag-list.auftrag-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Auftagsart': null,\n                'Status': null,\n                'Projekt': null,\n                'Waehrung': null,\n                'Kunde': null,\n                'KundeAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_auftragGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_AuftragListUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragListUtils.bestaetigenSetzenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragListUtils.bestaetigenSetzenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragListUtils.bestaetigenEntfernenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragListUtils.bestaetigenEntfernenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragListUtils.lieferdatumAendernCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragListUtils.lieferdatumAendernCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AuftragService\", $f_AuftragService, \"functions.$f_AuftragService\");\n        this.addFunction(\"$f_AuftragListUtils\", $f_AuftragListUtils, \"functions.$f_AuftragListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_aufNummer\",\n                \"caption\": \"auftrag-list.r_aufnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufDatum\",\n                \"caption\": \"auftrag-list.r_aufdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufProjekt\",\n                \"caption\": \"auftrag-list.r_aufprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_aufLieferdatum\",\n                \"caption\": \"auftrag-list.r_auflieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_AuftragService.onLieferdatumCellPrepared\"\n            }, {\n                \"id\": \"r_aufKundeNummer\",\n                \"caption\": \"auftrag-list.r_aufkundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufFirmenbez1\",\n                \"caption\": \"auftrag-list.r_auffirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufStrasse\",\n                \"caption\": \"auftrag-list.r_aufstrasse_caption\",\n                \"bindTo\": \"KundeAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufLand\",\n                \"caption\": \"auftrag-list.r_aufland_caption\",\n                \"bindTo\": \"KundeAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufOrt\",\n                \"caption\": \"auftrag-list.r_aufort_caption\",\n                \"bindTo\": \"KundeAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufReservierungsgrad\",\n                \"caption\": \"auftrag-list.r_aufreservierungsgrad_caption\",\n                \"bindTo\": \"Reservierungsgrad\",\n                \"width\": \"80px\",\n                \"format\": \"p0\",\n                \"onCellPrepared\": \"functions.$f_AuftragListUtils.onReservierungsgradCellPrepared\"\n            }, {\n                \"id\": \"r_aufWertNetto\",\n                \"caption\": \"auftrag-list.r_aufwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufWaehrung\",\n                \"caption\": \"auftrag-list.r_aufwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_aufStatus\",\n                \"caption\": \"auftrag-list.r_aufstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragGridToolbarOptions\"\n            },\n            \"caption\": \"auftrag-list.r_auftraggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"editUrl\": \"ERP/Verkauf/Auftrag\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_auftragGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragGridOptions\",\n                \"optionsNameFQ\": \"r_auftragGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_auftragLieferdatumAendernPopup\",\n            \"options\": {\n                \"optionsName\": \"r_auftragLieferdatumAendernPopupOptions\",\n                \"optionsNameFQ\": \"r_auftragLieferdatumAendernPopupOptions\"\n            },\n            \"caption\": \"auftrag-list.r_auftraglieferdatumaendernpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AuftragListUtils.doLieferdatumAendernCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragListUtils.doLieferdatumAendernCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"auftrag-list.r_datum_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragGridOptions\\\" view-model.ref=\\\"r_auftragGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_auftragLieferdatumAendernPopupOptions\\\" view-model.ref=\\\"r_auftragLieferdatumAendernPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftrag-list.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    AuftragsgruppeEditUtils\n} from \"./auftragsgruppe-edit-utils\";\n\n@fwx.autoinject\nexport class AuftragsgruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_AuftragsgruppeEditUtils: AuftragsgruppeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"auftragsgruppe-edit\";\n        this.title = \"auftragsgruppe-edit.auftragsgruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Auftragsgruppe\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Auftragsgruppe.IdAuftrag\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_AuftragsgruppeEditUtils\", $f_AuftragsgruppeEditUtils, \"functions.$f_AuftragsgruppeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"auftragsgruppe-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsgruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Auftragsgruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"auftragsgruppe-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsgruppe\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Auftragsgruppe.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsgruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsgruppe-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Auftragsgruppe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    AuftragspositionEditUtils\n} from \"./auftragsposition-edit-utils\";\n\n@fwx.autoinject\nexport class AuftragspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_AuftragspositionEditUtils: AuftragspositionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"auftragsposition-edit\";\n        this.title = \"auftragsposition-edit.auftragsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Auftragsposition\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Auftrag.CanSave && !models.data.$m_Auftrag.IsIcAuftrag && models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\",\n            \"custom\": {\n                'copyFunc': '$f_AuftragspositionEditUtils.copyAuftragsposition'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Auftragsposition.IdAuftrag\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragsgruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsgruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragspositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Auftragsgruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'AuftragspositionStuecklisteInfo': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_AuftragspositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Auftragsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idGeschaeftspartner\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragspositionEditUtils.showArtikelErsetzenCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.showArtikelErsetzenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragspositionEditUtils.calcLieferdatumCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.calcLieferdatumCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragspositionEditUtils.recalcLieferdatumCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.recalcLieferdatumCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragspositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_AuftragspositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"auftragspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AuftragspositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AuftragspositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"auftragspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"auftragspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"auftragspositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"auftragsgruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_AuftragsgruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_AuftragsgruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"auftragsgruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"auftragsgruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"auftragsgruppeEditPopupOptions\"\n            },\n            \"caption\": \"auftragsposition-edit.auftragsgruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_AuftragspositionEditUtils\", $f_AuftragspositionEditUtils, \"functions.$f_AuftragspositionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"auftragsposition-edit.r_menge_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.MengeVerpEH\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_AuftragspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_menge\",\n            \"options\": {\n                \"optionsName\": \"r_mengeOptions\",\n                \"optionsNameFQ\": \"r_mengeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Auftragsposition.IdArtikel\"\n                }],\n                [\"IsVerkaufseinheit\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"auftragsposition-edit.r_einheit_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_AuftragspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_aufpPosNr\",\n                \"caption\": \"auftragsposition-edit.r_aufpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_aufpArtikelNr\",\n                \"caption\": \"auftragsposition-edit.r_aufpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufpBezeichnung\",\n                \"caption\": \"auftragsposition-edit.r_aufpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufpMengeVerpEH\",\n                \"caption\": \"auftragsposition-edit.r_aufpmengeverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeOffenVerpEH\",\n                \"caption\": \"auftragsposition-edit.r_aufpmengeoffenverpeh_caption\",\n                \"bindTo\": \"MengeOffenVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeResVerpEH\",\n                \"caption\": \"auftragsposition-edit.r_aufpmengeresverpeh_caption\",\n                \"bindTo\": \"MengeReserviertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"onCellPrepared\": \"functions.$f_AuftragspositionEditUtils.onMengeReserviertCellPrepared\"\n            }, {\n                \"id\": \"r_aufpMengeLieferscheinVerpEH\",\n                \"caption\": \"auftragsposition-edit.r_aufpmengelieferscheinverpeh_caption\",\n                \"bindTo\": \"MengeLieferscheinVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpMengeGeliefertVerpEH\",\n                \"caption\": \"auftragsposition-edit.r_aufpmengegeliefertverpeh_caption\",\n                \"bindTo\": \"MengeGeliefertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpEinheit\",\n                \"caption\": \"auftragsposition-edit.r_aufpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufpFaktor\",\n                \"caption\": \"auftragsposition-edit.r_aufpfaktor_caption\",\n                \"bindTo\": \"AuftragspositionStuecklisteInfo.Faktor\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.StuecklisteFaktorTyp\"\n            }, {\n                \"id\": \"r_aufpWertNetto\",\n                \"caption\": \"auftragsposition-edit.r_aufpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpWertSteuer\",\n                \"caption\": \"auftragsposition-edit.r_aufpwertsteuer_caption\",\n                \"bindTo\": \"KalkulationContainer.WertSteuer\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufpWertBrutto\",\n                \"caption\": \"auftragsposition-edit.r_aufpwertbrutto_caption\",\n                \"bindTo\": \"KalkulationContainer.WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragspositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragspositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"auftragsposition-edit.r_auftragspositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_AuftragspositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelAuftragsposition\",\n                \"bindToFQ\": \"models.data.$m_AuftragspositionStuecklisteRel.IdSetartikelAuftragsposition\"\n            },\n            \"dataModel\": \"$m_Auftragsposition\",\n            \"editDataContext\": \"$m_AuftragspositionStuecklisteEdit\",\n            \"idEditPopup\": \"auftragspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_auftragspositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragspositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_auftragspositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"auftragsposition-edit.r_isvariablersetartikel_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftragsposition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IsVariablerSetartikel\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IsVariablerSetartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariablerSetartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isVariablerSetartikelOptions\",\n                \"optionsNameFQ\": \"r_isVariablerSetartikelOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"auftragsgruppe\",\n            \"filter\": [\"IdAuftrag\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Auftragsposition.IdAuftrag\"\n            }],\n            \"filters\": [],\n            \"caption\": \"auftragsposition-edit.r_auftragsgruppe_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IdAuftragsgruppe\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IdAuftragsgruppe\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_AuftragspositionEditUtils.onAuftragsgruppeChanged\",\n            \"id\": \"r_auftragsgruppe\",\n            \"options\": {\n                \"optionsName\": \"r_auftragsgruppeOptions\",\n                \"optionsNameFQ\": \"r_auftragsgruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"auftragsposition-edit.r_posnr_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"auftragsposition-edit.r_kundeartikelnr_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"KundeArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.KundeArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelNr\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelNrOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelNrOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"auftragsposition-edit.r_kundeartikelbezeichnung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"KundeArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.KundeArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelbezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"auftragsposition-edit.r_positionsart_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Auftrag.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"auftragsposition-edit.r_lieferlager_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsStreckengeschaeft || models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IdLieferlager\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"auftragsposition-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"isReadOnlyExpression\": \"models.data.$m_Auftrag.IsIcAuftrag\",\n            \"binding\": {\n                \"dataContext\": \"$m_Auftragsposition\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Auftragsposition.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_artikelErsetzenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_artikelErsetzenPopupOptions\",\n                \"optionsNameFQ\": \"r_artikelErsetzenPopupOptions\"\n            },\n            \"caption\": \"auftragsposition-edit.r_artikelersetzenpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_AuftragspositionEditUtils.doArtikelErsetzenCommand\",\n                    \"bindToFQ\": \"functions.$f_AuftragspositionEditUtils.doArtikelErsetzenCommand\"\n                }\n            }]\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./auftragsposition-edit-form\\\"></require> <require from=\\\"./auftragsgruppe-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <require from=\\\"../../../elements/calc-liefertermin/calc-liefertermin\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"auftragspositionEditPopupOptions\\\" view-model.ref=\\\"auftragspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <auftragsposition-edit-form view-model.ref=\\\"auftragspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></auftragsposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"auftragsgruppeEditPopupOptions\\\" view-model.ref=\\\"auftragsgruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <auftragsgruppe-edit-form view-model.ref=\\\"auftragsgruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></auftragsgruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-komponenten-auswahl view-model.ref=\\\"r_variablerSetartikelKomponentenAuswahlElement\\\"></variabler-setartikel-komponenten-auswahl> </div> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12\\\"> <artikel id-artikel.bind=\\\"models.data.$m_Auftragsposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Auftragsposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel-changed.delegate=\\\"functions.$f_AuftragspositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Auftragsposition.Id > 0\\\" main-model.bind=\\\"models.data.$m_Auftragsposition\\\" where.bind=\\\"[['Status.Typ', 0], ['Artikelart.IsVerkaufsartikel', true]]\\\"></artikel> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_menge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeOptions\\\" view-model.ref=\\\"r_menge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Auftragsposition.Id > 0 && models.data.$m_Auftragsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftragsposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragspositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_auftragspositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftragsposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_AuftragspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"functions.$f_AuftragspositionEditUtils.showVariablerSetartikelCheckbox\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_isvariablersetartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVariablerSetartikelOptions\\\" view-model.ref=\\\"r_isVariablerSetartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_auftragsgruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_auftragsgruppeOptions\\\" view-model.ref=\\\"r_auftragsgruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_kundeartikelnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelNrOptions\\\" view-model.ref=\\\"r_kundeArtikelNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_kundeartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_kundeArtikelbezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Auftragsposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: auftragsposition-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Auftragsposition.IsPositionStuecklistenkomponente == false || models.data.$m_Auftragsposition.IsPositionVariableStuecklistenkomponente == true\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: auftragsposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Auftrag.Preisdatum\\\" id-artikel.bind=\\\"models.data.$m_Auftragsposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Auftrag.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Auftrag.IdKunde\\\" main-model.bind=\\\"models.data.$m_Auftragsposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Auftragsposition.MengeVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Auftragsposition.IdEinheit\\\" is-from-webshop.bind=\\\"models.data.$m_Auftrag.IsFromWebshop\\\" is-gratis.bind=\\\"models.data.$m_Auftragsposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Auftrag.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Auftrag.IdLieferlager\\\" id-waehrung.bind=\\\"models.data.$m_Auftrag.IdWaehrung\\\" steuersatz.bind=\\\"models.data.$m_Auftragsposition.Steuersatz\\\" id-firma.bind=\\\"models.data.$m_Auftrag.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Verkauf.Auftragsposition\\\" id-kopf.bind=\\\"models.data.$m_Auftragsposition.IdAuftrag\\\" id-pos.bind=\\\"models.data.$m_Auftragsposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Auftragsposition.IsVariablerSetartikel || models.data.$m_Auftrag.IsIcAuftrag\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Auftragsposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_AuftragspositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_artikelErsetzenPopupOptions\\\" view-model.ref=\\\"r_artikelErsetzenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikelErsetzenElement\\\" where.bind=\\\"[['Status.Typ', 0],  ['Artikelart.IsVerkaufsartikel', true]]\\\" id-artikel.bind=\\\"functions.$f_AuftragspositionEditUtils.idArtikelErsetzen\\\"></artikel> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <calc-liefertermin view-model.ref=\\\"r_calcLiefertermin\\\"></calc-liefertermin> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    FakturaEditUtils\n} from \"./faktura-edit-utils\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class FakturaEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_FakturaEditUtils: FakturaEditUtils,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"faktura-edit\";\n        this.title = \"faktura-edit.faktura-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Faktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturapositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturaposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Fakturagruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'StornoVon': {\n                    columns: [\"IdFaktura\"],\n                    'expand': {\n                        'Faktura': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                },\n                'Positionsart': null\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Faktura.CanSave && models.data.$m_Faktura.Typ != 1\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_FakturapositionEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturaposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturagruppeRel\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturagruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Faktura.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturagruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturagruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaEditUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_FakturaEditUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaEditUtils.doStornierenCommand\",\n                \"bindToFQ\": \"functions.$f_FakturaEditUtils.doStornierenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaEditUtils.doBezahltAendernCommand\",\n                \"bindToFQ\": \"functions.$f_FakturaEditUtils.doBezahltAendernCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaEditUtils.doMahnenCommand\",\n                \"bindToFQ\": \"functions.$f_FakturaEditUtils.doMahnenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaEditUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_FakturaEditUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"fakturapositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_FakturapositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_FakturapositionEdit.Id\"\n                }\n            }],\n            \"id\": \"fakturapositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"fakturapositionEditPopupOptions\",\n                \"optionsNameFQ\": \"fakturapositionEditPopupOptions\"\n            },\n            \"caption\": \"faktura-edit.fakturapositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"fakturagruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_FakturagruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_FakturagruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"fakturagruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"fakturagruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"fakturagruppeEditPopupOptions\"\n            },\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"zahlungseingangEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$v_IdFaktura\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Faktura\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_Faktura.Id\"\n                }\n            }, {\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$f_FakturaEditUtils\",\n                    \"bindTo\": \"id0\",\n                    \"bindToFQ\": \"functions.$f_FakturaEditUtils.id0\"\n                }\n            }],\n            \"id\": \"zahlungseingangEditPopup\",\n            \"options\": {\n                \"optionsName\": \"zahlungseingangEditPopupOptions\",\n                \"optionsNameFQ\": \"zahlungseingangEditPopupOptions\"\n            },\n            \"height\": \"auto\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_FakturaEditUtils\", $f_FakturaEditUtils, \"functions.$f_FakturaEditUtils\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"faktura-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Faktura.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Faktura.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"faktura-edit.r_datum_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Faktura.Nummer\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Faktura.Datum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fakturaBezahltTyp\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_bezahlttyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BezahltTyp\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BezahltTyp\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bezahltTyp\",\n            \"options\": {\n                \"optionsName\": \"r_bezahltTypOptions\",\n                \"optionsNameFQ\": \"r_bezahltTypOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"faktura-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabGruppen\",\n                \"caption\": \"faktura-edit.r_tabgruppen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"faktura-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fakpPosNr\",\n                \"caption\": \"faktura-edit.r_fakpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_fakpArtikelNummer\",\n                \"caption\": \"faktura-edit.r_fakpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakpBezeichnung\",\n                \"caption\": \"faktura-edit.r_fakpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakpStornoVon\",\n                \"caption\": \"faktura-edit.r_fakpstornovon_caption\",\n                \"bindTo\": \"StornoVon.Faktura.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakpMengeIstVerpEH\",\n                \"caption\": \"faktura-edit.r_fakpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_fakpMengeStorniertVerpEH\",\n                \"caption\": \"faktura-edit.r_fakpmengestorniertverpeh_caption\",\n                \"bindTo\": \"MengeStorniertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_fakpEinheit\",\n                \"caption\": \"faktura-edit.r_fakpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakpPositionsart\",\n                \"caption\": \"faktura-edit.r_fakppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakpFakturagruppe\",\n                \"caption\": \"faktura-edit.r_fakpfakturagruppe_caption\",\n                \"bindTo\": \"Fakturagruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakpWertNetto\",\n                \"caption\": \"faktura-edit.r_fakpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fakturapositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fakturapositionGridToolbarOptions\"\n            },\n            \"caption\": \"faktura-edit.r_fakturapositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_FakturapositionRel\",\n                \"bindTo\": \"IdFaktura\",\n                \"bindToFQ\": \"models.data.$m_FakturapositionRel.IdFaktura\"\n            },\n            \"dataModel\": \"$m_Faktura\",\n            \"editDataContext\": \"$m_FakturapositionEdit\",\n            \"idEditPopup\": \"fakturapositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Faktura\",\n                    \"bindTo\": \"$f_FakturaEditUtils.doCopyPosCommand\",\n                    \"bindToFQ\": \"functions.$f_FakturaEditUtils.doCopyPosCommand\"\n                }\n            }, {\n                \"binding\": {\n                    \"dataContext\": \"$m_Faktura\",\n                    \"bindTo\": \"$f_FakturaEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_FakturaEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_fakturapositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fakturapositionGridOptions\",\n                \"optionsNameFQ\": \"r_fakturapositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_anggPosNr\",\n                \"caption\": \"faktura-edit.r_anggposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_anggBezeichnung\",\n                \"caption\": \"faktura-edit.r_anggbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_anggWertnetto\",\n                \"caption\": \"faktura-edit.r_anggwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fakturagruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fakturagruppeGridToolbarOptions\"\n            },\n            \"caption\": \"faktura-edit.r_fakturagruppegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_FakturagruppeRel\",\n                \"bindTo\": \"IdFaktura\",\n                \"bindToFQ\": \"models.data.$m_FakturagruppeRel.IdFaktura\"\n            },\n            \"dataModel\": \"$m_Faktura\",\n            \"editDataContext\": \"$m_FakturagruppeEdit\",\n            \"idEditPopup\": \"fakturagruppeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fakturagruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fakturagruppeGridOptions\",\n                \"optionsNameFQ\": \"r_fakturagruppeGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Faktura.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Faktura.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Faktura.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"faktura-edit.r_preisdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Faktura.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Faktura.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"faktura-edit.r_uidnummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"UidNummer\",\n                \"bindToFQ\": \"models.data.$m_Faktura.UidNummer\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_uidNummer\",\n            \"options\": {\n                \"optionsName\": \"r_uidNummerOptions\",\n                \"optionsNameFQ\": \"r_uidNummerOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"faktura-edit.r_zahlungfaelligkeit_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"bindToFQ\": \"models.data.$m_Faktura.ZahlungFaelligkeit\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zahlungFaelligkeit\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungFaelligkeitOptions\",\n                \"optionsNameFQ\": \"r_zahlungFaelligkeitOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragbezahltvorauskassa_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragBezahltVorauskassa\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragBezahltVorauskassa\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahltVorauskassa\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltVorauskassaOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltVorauskassaOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragbezahltgutschein_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragBezahltGutschein\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragBezahltGutschein\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahltGutschein\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltGutscheinOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltGutscheinOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragbezahltabschlagsfakturen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragBezahltAbschlagsfakturen\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragBezahltAbschlagsfakturen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahltAbschlagsfakturen\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltAbschlagsfakturenOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltAbschlagsfakturenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragbezahlt_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragBezahlt\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragBezahlt\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragBezahlt\",\n            \"options\": {\n                \"optionsName\": \"r_betragBezahltOptions\",\n                \"optionsNameFQ\": \"r_betragBezahltOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragskontoabzug_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragSkontoAbzug\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragSkontoAbzug\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragSkontoAbzug\",\n            \"options\": {\n                \"optionsName\": \"r_betragSkontoAbzugOptions\",\n                \"optionsNameFQ\": \"r_betragSkontoAbzugOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"faktura-edit.r_betragoffen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"BetragOffen\",\n                \"bindToFQ\": \"models.data.$m_Faktura.BetragOffen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragOffen\",\n            \"options\": {\n                \"optionsName\": \"r_betragOffenOptions\",\n                \"optionsNameFQ\": \"r_betragOffenOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"faktura-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Faktura.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./fakturaposition-edit-form\\\"></require> <require from=\\\"./fakturagruppe-edit-form\\\"></require> <require from=\\\"../zahlung/zahlung-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"fakturapositionEditPopupOptions\\\" view-model.ref=\\\"fakturapositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <fakturaposition-edit-form view-model.ref=\\\"fakturapositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></fakturaposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"fakturagruppeEditPopupOptions\\\" view-model.ref=\\\"fakturagruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <fakturagruppe-edit-form view-model.ref=\\\"fakturagruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></fakturagruppe-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"zahlungseingangEditPopupOptions\\\" view-model.ref=\\\"zahlungseingangEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <zahlung-edit-form view-model.ref=\\\"zahlungseingangEditPopupContent\\\" is-edit-popup=\\\"true\\\"></zahlung-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: faktura-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_bezahlttyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_bezahltTypOptions\\\" view-model.ref=\\\"r_bezahltTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Faktura.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Faktura\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Faktura\\\" web-api-action=\\\"ERP/Verkauf/Faktura\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: faktura-edit.r_grouprechnungsort_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_FakturaEditUtils.onRechnungsortChanged($event)\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Faktura.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Faktura.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Faktura.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Faktura\\\" where.bind=\\\"[['Geschaeftspartnerart.IsRechnungsadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"RechnungsortAdresse\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_FakturaEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_fakturapositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fakturapositionGridOptions\\\" view-model.ref=\\\"r_fakturapositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-lg-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: faktura-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Faktura.Preisdatum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Faktura.IdBerechnungsversion\\\" id-rechnungsort.bind=\\\"models.data.$m_Faktura.IdRechnungsort\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Faktura\\\" id-filiale.bind=\\\"models.data.$m_Faktura.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Faktura.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Faktura.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Faktura.IdWaehrung\\\" is-from-webshop.bind=\\\"models.data.$m_Faktura.IsFromWebshop\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_fakturagruppeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fakturagruppeGridOptions\\\" view-model.ref=\\\"r_fakturagruppeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_uidnummer_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_uidNummerOptions\\\" view-model.ref=\\\"r_uidNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_zahlungfaelligkeit_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_zahlungFaelligkeitOptions\\\" view-model.ref=\\\"r_zahlungFaelligkeit\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragbezahltvorauskassa_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltVorauskassaOptions\\\" view-model.ref=\\\"r_betragBezahltVorauskassa\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragbezahltgutschein_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltGutscheinOptions\\\" view-model.ref=\\\"r_betragBezahltGutschein\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Faktura.Typ == 2\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragbezahltabschlagsfakturen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltAbschlagsfakturenOptions\\\" view-model.ref=\\\"r_betragBezahltAbschlagsfakturen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragbezahlt_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragBezahltOptions\\\" view-model.ref=\\\"r_betragBezahlt\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragskontoabzug_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragSkontoAbzugOptions\\\" view-model.ref=\\\"r_betragSkontoAbzug\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_betragoffen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragOffenOptions\\\" view-model.ref=\\\"r_betragOffen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: faktura-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_FakturaEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    FakturaListUtils\n} from \"./faktura-list-utils\";\n\n@fwx.autoinject\nexport class FakturaListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_FakturaListUtils: FakturaListUtils) {\n        super(element, formBaseImport);\n        this.id = \"faktura-list\";\n        this.title = \"faktura-list.faktura-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Faktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Projekt': null,\n                'Rechnungsort': null,\n                'RechnungsortAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_fakturaGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaListUtils.doExport\",\n                \"bindToFQ\": \"functions.$f_FakturaListUtils.doExport\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturaListUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_FakturaListUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_FakturaListUtils\", $f_FakturaListUtils, \"functions.$f_FakturaListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_fakNummer\",\n                \"caption\": \"faktura-list.r_faknummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakDatum\",\n                \"caption\": \"faktura-list.r_fakdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_fakProjekt\",\n                \"caption\": \"faktura-list.r_fakprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_fakKundeNummer\",\n                \"caption\": \"faktura-list.r_fakkundenummer_caption\",\n                \"bindTo\": \"Rechnungsort.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakFirmenbez1\",\n                \"caption\": \"faktura-list.r_fakfirmenbez1_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakStrasse\",\n                \"caption\": \"faktura-list.r_fakstrasse_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakLand\",\n                \"caption\": \"faktura-list.r_fakland_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakOrt\",\n                \"caption\": \"faktura-list.r_fakort_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakWertNetto\",\n                \"caption\": \"faktura-list.r_fakwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_fakWaehrung\",\n                \"caption\": \"faktura-list.r_fakwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_fakAbschlagsfaktura\",\n                \"caption\": \"faktura-list.r_fakabschlagsfaktura_caption\",\n                \"bindTo\": \"IsAbschlagsfaktura\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_fakZahlungFaellig\",\n                \"caption\": \"faktura-list.r_fakzahlungfaellig_caption\",\n                \"bindTo\": \"ZahlungFaelligkeit\",\n                \"width\": \"90px\",\n                \"format\": \"d\",\n                \"onCellPrepared\": \"functions.$f_FakturaListUtils.onZahlungFaelligCellPrepared\"\n            }, {\n                \"id\": \"r_mahnstufe\",\n                \"caption\": \"faktura-list.r_mahnstufe_caption\",\n                \"bindTo\": \"Mahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_fakStatus\",\n                \"caption\": \"faktura-list.r_fakstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fakturaGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fakturaGridToolbarOptions\"\n            },\n            \"caption\": \"faktura-list.r_fakturagrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Faktura\"\n            },\n            \"dataModel\": \"$m_Faktura\",\n            \"editUrl\": \"ERP/Verkauf/Faktura\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fakturaGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaGridOptions\",\n                \"optionsNameFQ\": \"r_fakturaGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fakturaGridOptions\\\" view-model.ref=\\\"r_fakturaGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    FakturagruppeEditUtils\n} from \"./fakturagruppe-edit-utils\";\n\n@fwx.autoinject\nexport class FakturagruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_FakturagruppeEditUtils: FakturagruppeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"fakturagruppe-edit\";\n        this.title = \"fakturagruppe-edit.fakturagruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Fakturagruppe\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturagruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Faktura.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Faktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Fakturagruppe.IdFaktura\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_FakturagruppeEditUtils\", $f_FakturagruppeEditUtils, \"functions.$f_FakturagruppeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"fakturagruppe-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturagruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Fakturagruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"fakturagruppe-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturagruppe\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Fakturagruppe.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturagruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturagruppe-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Fakturagruppe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    FakturapositionEditUtils\n} from \"./fakturaposition-edit-utils\";\n\n@fwx.autoinject\nexport class FakturapositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_FakturapositionEditUtils: FakturapositionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"fakturaposition-edit\";\n        this.title = \"fakturaposition-edit.fakturaposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Fakturaposition\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturaposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Faktura.CanSave && !models.data.$m_Faktura.Typ && models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false\",\n            \"custom\": {\n                'copyFunc': '$f_FakturapositionEditUtils.copyFakturaposition'\n            },\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Faktura\",\n            \"webApiAction\": \"ERP/Verkauf/Faktura\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Fakturaposition.IdFaktura\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturagruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturagruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturapositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturaposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Fakturagruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n                'FakturapositionStuecklisteInfo': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_FakturapositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Fakturaposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturapositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\",\n                \"bindToFQ\": \"functions.$f_FakturapositionEditUtils.showVariablerSetartikelKomponentenAuswahlCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_FakturapositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_FakturapositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"fakturapositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_FakturapositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_FakturapositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"fakturapositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"fakturapositionEditPopupOptions\",\n                \"optionsNameFQ\": \"fakturapositionEditPopupOptions\"\n            },\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"fakturagruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_FakturagruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_FakturagruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"fakturagruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"fakturagruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"fakturagruppeEditPopupOptions\"\n            },\n            \"caption\": \"fakturaposition-edit.fakturagruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_FakturapositionEditUtils\", $f_FakturapositionEditUtils, \"functions.$f_FakturapositionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"fakturaposition-edit.r_mengesollverpeh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.MengeSollVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeSollVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeSollVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeSollVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"fakturaposition-edit.r_mengeistverpeh_caption\",\n            \"isReadOnlyExpression\": \"$m_IsVariablerSetartikel && $m_Lieferscheinposition\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.MengeIstVerpEH\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_FakturapositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_mengeIstVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeIstVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeIstVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Fakturaposition.IdArtikel\"\n                }],\n                [\"IsVerkaufseinheit\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"fakturaposition-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_FakturapositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_faktpPosNr\",\n                \"caption\": \"fakturaposition-edit.r_faktpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_faktpArtikelNr\",\n                \"caption\": \"fakturaposition-edit.r_faktpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_faktpBezeichnung\",\n                \"caption\": \"fakturaposition-edit.r_faktpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_faktpMengeIstVerpEH\",\n                \"caption\": \"fakturaposition-edit.r_faktpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_faktpEinheit\",\n                \"caption\": \"fakturaposition-edit.r_faktpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_faktpFaktor\",\n                \"caption\": \"fakturaposition-edit.r_faktpfaktor_caption\",\n                \"bindTo\": \"FakturapositionStuecklisteInfo.Faktor\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.StuecklisteFaktorTyp\"\n            }, {\n                \"id\": \"r_faktpWertNetto\",\n                \"caption\": \"fakturaposition-edit.r_faktpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_faktpWertSteuer\",\n                \"caption\": \"fakturaposition-edit.r_faktpwertsteuer_caption\",\n                \"bindTo\": \"KalkulationContainer.WertSteuer\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_faktpWertBrutto\",\n                \"caption\": \"fakturaposition-edit.r_faktpwertbrutto_caption\",\n                \"bindTo\": \"KalkulationContainer.WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_fakturapositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_fakturapositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"fakturaposition-edit.r_fakturapositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_FakturapositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelFakturaposition\",\n                \"bindToFQ\": \"models.data.$m_FakturapositionStuecklisteRel.IdSetartikelFakturaposition\"\n            },\n            \"dataModel\": \"$m_Fakturaposition\",\n            \"editDataContext\": \"$m_FakturapositionStuecklisteEdit\",\n            \"idEditPopup\": \"fakturapositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_fakturapositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_fakturapositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_fakturapositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"fakturaposition-edit.r_isvariablersetartikel_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Fakturaposition.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"IsVariablerSetartikel\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.IsVariablerSetartikel\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isVariablerSetartikel\",\n            \"options\": {\n                \"optionsName\": \"r_isVariablerSetartikelOptions\",\n                \"optionsNameFQ\": \"r_isVariablerSetartikelOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"fakturagruppe\",\n            \"filter\": [\"IdFaktura\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Fakturaposition.IdFaktura\"\n            }],\n            \"filters\": [],\n            \"caption\": \"fakturaposition-edit.r_fakturagruppe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"IdFakturagruppe\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.IdFakturagruppe\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_FakturapositionEditUtils.onFakturagruppeChanged\",\n            \"id\": \"r_fakturagruppe\",\n            \"options\": {\n                \"optionsName\": \"r_fakturagruppeOptions\",\n                \"optionsNameFQ\": \"r_fakturagruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"fakturaposition-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"fakturaposition-edit.r_kundeartikelnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"KundeArtikelNr\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.KundeArtikelNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelNr\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelNrOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelNrOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"fakturaposition-edit.r_kundeartikelbezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"KundeArtikelbezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.KundeArtikelbezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_kundeArtikelbezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_kundeArtikelbezeichnungOptions\",\n                \"optionsNameFQ\": \"r_kundeArtikelbezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"fakturaposition-edit.r_positionsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Fakturaposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Fakturaposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./fakturaposition-edit-form\\\"></require> <require from=\\\"./fakturagruppe-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"fakturapositionEditPopupOptions\\\" view-model.ref=\\\"fakturapositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <fakturaposition-edit-form view-model.ref=\\\"fakturapositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></fakturaposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"fakturagruppeEditPopupOptions\\\" view-model.ref=\\\"fakturagruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <fakturagruppe-edit-form view-model.ref=\\\"fakturagruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></fakturagruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-komponenten-auswahl view-model.ref=\\\"r_variablerSetartikelKomponentenAuswahlElement\\\"></variabler-setartikel-komponenten-auswahl> </div> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel id-artikel.bind=\\\"models.data.$m_Fakturaposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Fakturaposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel-changed.delegate=\\\"functions.$f_FakturapositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Fakturaposition.Id > 0\\\" main-model.bind=\\\"models.data.$m_Fakturaposition\\\" where.bind=\\\"['Status.Typ', 0]\\\"></artikel> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_mengesollverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeSollVerpEHOptions\\\" view-model.ref=\\\"r_mengeSollVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_mengeistverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeIstVerpEHOptions\\\" view-model.ref=\\\"r_mengeIstVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Fakturaposition.Id > 0 && models.data.$m_Fakturaposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: fakturaposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_fakturapositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_fakturapositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: fakturaposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_FakturapositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"functions.$f_FakturapositionEditUtils.showVariablerSetartikelCheckbox\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_isvariablersetartikel_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isVariablerSetartikelOptions\\\" view-model.ref=\\\"r_isVariablerSetartikel\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_fakturagruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fakturagruppeOptions\\\" view-model.ref=\\\"r_fakturagruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_kundeartikelnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelNrOptions\\\" view-model.ref=\\\"r_kundeArtikelNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_kundeartikelbezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_kundeArtikelbezeichnungOptions\\\" view-model.ref=\\\"r_kundeArtikelbezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false || models.data.$m_Fakturaposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: fakturaposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Fakturaposition.IsPositionStuecklistenkomponente == false  || models.data.$m_Fakturaposition.IsPositionVariableStuecklistenkomponente == true\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: fakturaposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Faktura.Preisdatum\\\" id-artikel.bind=\\\"models.data.$m_Fakturaposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Faktura.IdBerechnungsversion\\\" main-model.bind=\\\"models.data.$m_Fakturaposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Fakturaposition.MengeIstVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Fakturaposition.IdEinheit\\\" id-kunde.bind=\\\"models.data.$m_Faktura.IdRechnungsort\\\" is-from-webshop.bind=\\\"models.data.$m_Faktura.IsFromWebshop\\\" is-gratis.bind=\\\"models.data.$m_Fakturaposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Faktura.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Faktura.IdLieferlager\\\" id-waehrung.bind=\\\"models.data.$m_Faktura.IdWaehrung\\\" steuersatz.bind=\\\"models.data.$m_Fakturaposition.Steuersatz\\\" id-firma.bind=\\\"models.data.$m_Faktura.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Verkauf.Fakturaposition\\\" id-kopf.bind=\\\"models.data.$m_Fakturaposition.IdFaktura\\\" id-pos.bind=\\\"models.data.$m_Fakturaposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Fakturaposition.IsVariablerSetartikel\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Fakturaposition\\\" is-default.bind=\\\"true\\\" dyn-felder-data-service.bind=\\\"functions.$f_FakturapositionEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    GutscheinEditUtils\n} from \"./gutschein-edit-utils\";\n\n@fwx.autoinject\nexport class GutscheinEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_GutscheinEditUtils: GutscheinEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"gutschein-edit\";\n        this.title = \"gutschein-edit.gutschein-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Gutschein\",\n            \"webApiAction\": \"ERP/Verkauf/Gutschein\",\n            \"webApiExpand\": {\n                'Folgegutschein': {\n                    'columns': [\n                        'Id',\n                        'Code'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_GutscheinEditUtils\", $f_GutscheinEditUtils, \"functions.$f_GutscheinEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"gutschein-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Gutschein.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_GutscheinEditUtils.onFirmaChanged\",\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 40,\n            \"caption\": \"gutschein-edit.r_code_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"Code\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.Code\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_code\",\n            \"options\": {\n                \"optionsName\": \"r_codeOptions\",\n                \"optionsNameFQ\": \"r_codeOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"gutschein-edit.r_name_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"Name\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.Name\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_name\",\n            \"options\": {\n                \"optionsName\": \"r_nameOptions\",\n                \"optionsNameFQ\": \"r_nameOptions\"\n            }\n        });\n        this.widgetCreator.addTextArea(this, {\n            \"height\": \"150px\",\n            \"maxLength\": 500,\n            \"caption\": \"gutschein-edit.r_text_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"Text\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.Text\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 500\n                    }]\n                }\n            }],\n            \"id\": \"r_text\",\n            \"options\": {\n                \"optionsName\": \"r_textOptions\",\n                \"optionsNameFQ\": \"r_textOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"gutschein-edit.r_wertgesamt_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"WertGesamt\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.WertGesamt\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_wertGesamt\",\n            \"options\": {\n                \"optionsName\": \"r_wertGesamtOptions\",\n                \"optionsNameFQ\": \"r_wertGesamtOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"gutschein-edit.r_waehrung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"gutschein-edit.r_wertreserviert_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"WertReserviert\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.WertReserviert\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertReserviert\",\n            \"options\": {\n                \"optionsName\": \"r_wertReserviertOptions\",\n                \"optionsNameFQ\": \"r_wertReserviertOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"gutschein-edit.r_werteingeloest_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"WertEingeloest\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.WertEingeloest\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertEingeloest\",\n            \"options\": {\n                \"optionsName\": \"r_wertEingeloestOptions\",\n                \"optionsNameFQ\": \"r_wertEingeloestOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"gutschein-edit.r_wertoffen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"WertOffen\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.WertOffen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertOffen\",\n            \"options\": {\n                \"optionsName\": \"r_wertOffenOptions\",\n                \"optionsNameFQ\": \"r_wertOffenOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"gutschein-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"gutschein-edit.r_ismehrfachverwendbar_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Gutschein.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"IsMehrfachVerwendbar\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.IsMehrfachVerwendbar\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isMehrfachVerwendbar\",\n            \"options\": {\n                \"optionsName\": \"r_isMehrfachVerwendbarOptions\",\n                \"optionsNameFQ\": \"r_isMehrfachVerwendbarOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"gutschein-edit.r_gueltigbis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\",\n                \"bindTo\": \"GueltigBis\",\n                \"bindToFQ\": \"models.data.$m_Gutschein.GueltigBis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gueltigBis\",\n            \"options\": {\n                \"optionsName\": \"r_gueltigBisOptions\",\n                \"optionsNameFQ\": \"r_gueltigBisOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_code_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_codeOptions\\\" view-model.ref=\\\"r_code\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_name_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_nameOptions\\\" view-model.ref=\\\"r_name\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_text_caption\\\"></div> <dx-widget name=\\\"dxTextArea\\\" options.bind=\\\"r_textOptions\\\" view-model.ref=\\\"r_text\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_wertgesamt_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertGesamtOptions\\\" view-model.ref=\\\"r_wertGesamt\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_wertreserviert_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertReserviertOptions\\\" view-model.ref=\\\"r_wertReserviert\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_werteingeloest_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertEingeloestOptions\\\" view-model.ref=\\\"r_wertEingeloest\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_wertoffen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertOffenOptions\\\" view-model.ref=\\\"r_wertOffen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_ismehrfachverwendbar_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isMehrfachVerwendbarOptions\\\" view-model.ref=\\\"r_isMehrfachVerwendbar\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"models.data.$m_Gutschein.IsMehrfachVerwendbar == true\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_gueltigbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_gueltigBisOptions\\\" view-model.ref=\\\"r_gueltigBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6\\\" if.bind=\\\"models.data.$m_Gutschein.Folgegutschein.Id\\\"> <div tr=\\\"key: gutschein-edit.r_folgegutschein_text;is-html: true\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: gutschein-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Gutschein\\\" web-api-action=\\\"ERP/Verkauf/Gutschein\\\"></tags> </div> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: gutschein-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner validation-field-name=\\\"Geschaeftspartner\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Gutschein.IdGeschaeftspartner\\\" id-ansprechperson.bind=\\\"models.data.$m_Gutschein.IdPerson\\\" show-ansprechperson.bind=\\\"true\\\" is-required.bind=\\\"false\\\" main-model.bind=\\\"models.data.$m_Gutschein\\\" where.bind=\\\"['Geschaeftspartnerart.IsKunde', true]\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Gutschein\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class GutscheinListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"gutschein-list\";\n        this.title = \"gutschein-list.gutschein-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Gutschein\",\n            \"webApiAction\": \"ERP/Verkauf/Gutschein\",\n            \"webApiExpand\": {\n                'Geschaeftspartner': {\n                    'columns': [\n                        'Id',\n                        'EntitaetBezeichnung'\n                    ]\n                },\n                'Waehrung': null,\n                'Status': null,\n                'Folgegutschein': {\n                    'columns': [\n                        'Id',\n                        'Code'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_gutscheinGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_gutsCode\",\n                \"caption\": \"gutschein-list.r_gutscode_caption\",\n                \"bindTo\": \"Code\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_gutsFolgegutschein\",\n                \"caption\": \"gutschein-list.r_gutsfolgegutschein_caption\",\n                \"bindTo\": \"Folgegutschein.Code\",\n                \"width\": \"100px\"\n            }, {\n                \"id\": \"r_gutsGeschaeftspartner\",\n                \"caption\": \"gutschein-list.r_gutsgeschaeftspartner_caption\",\n                \"bindTo\": \"Geschaeftspartner.EntitaetBezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_gutsWertGesamt\",\n                \"caption\": \"gutschein-list.r_gutswertgesamt_caption\",\n                \"bindTo\": \"WertGesamt\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_gutsWertReserviert\",\n                \"caption\": \"gutschein-list.r_gutswertreserviert_caption\",\n                \"bindTo\": \"WertReserviert\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_gutsWertEingeloest\",\n                \"caption\": \"gutschein-list.r_gutswerteingeloest_caption\",\n                \"bindTo\": \"WertEingeloest\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_gutsWertOffen\",\n                \"caption\": \"gutschein-list.r_gutswertoffen_caption\",\n                \"bindTo\": \"WertOffen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_gutsWertWaehrung\",\n                \"caption\": \"gutschein-list.r_gutswertwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_gutsStatus\",\n                \"caption\": \"gutschein-list.r_gutsstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_gutscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_gutscheinGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Gutschein\"\n            },\n            \"dataModel\": \"$m_Gutschein\",\n            \"editUrl\": \"ERP/Verkauf/Gutschein\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_gutscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_gutscheinGridOptions\",\n                \"optionsNameFQ\": \"r_gutscheinGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_gutscheinGridOptions\\\" view-model.ref=\\\"r_gutscheinGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    KundenreklamationEditUtils\n} from \"./kundenreklamation-edit-utils\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class KundenreklamationEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_KundenreklamationEditUtils: KundenreklamationEditUtils,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"kundenreklamation-edit\";\n        this.title = \"kundenreklamation-edit.kundenreklamation-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Kundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KundenreklamationspositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamationsposition\",\n            \"webApiExpand\": {\n                'Lieferscheinposition': {\n                    columns: [\"IdLieferschein\"],\n                    'expand': {\n                        'Lieferschein': {\n                            columns: [\"Nummer\"]\n                        }\n                    }\n                },\n                'Artikel': null,\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'IdEinheit'\n                    ],\n                    'expand': {\n                        'Einheit': {\n                            'columns': [\n                                'Bezeichnung'\n                            ]\n                        }\n                    }\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KundenreklamationspositionEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamationsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferscheinpositionen\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"webApiExpand\": {\n                'Lieferschein': {\n                    'expand': {\n                        'Waehrung': null\n                    }\n                },\n                'Status': null,\n                'Artikel': null\n            },\n            \"webApiWhere\": [\n                [\"Lieferschein.IdKunde\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Kundenreklamation.IdKunde\"\n                }],\n                [\"Lieferschein.Status.Typ\", \"1\"],\n                [\"MengeReklamationOffenVerpEH\", \">\", 0],\n                [\"Lieferschein.IdFirma\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Kundenreklamation.IdFirma\"\n                }],\n                [\"IsPositionStuecklistenkomponente\", false]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_KundenreklamationEditUtils.warenuebernahmeErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_KundenreklamationEditUtils.warenuebernahmeErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_KundenreklamationEditUtils.reklamationAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_KundenreklamationEditUtils.reklamationAbschliessenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_KundenreklamationEditUtils.showImportLieferscheinpositionenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_KundenreklamationEditUtils.showImportLieferscheinpositionenPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_KundenreklamationEditUtils.ersatzlieferscheinErstellenCommand\",\n                \"bindToFQ\": \"functions.$f_KundenreklamationEditUtils.ersatzlieferscheinErstellenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"kundenreklamationspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_KundenreklamationspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_KundenreklamationspositionEdit.Id\"\n                }\n            }, {\n                \"to\": \"$v_idGeschaeftspartner\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Kundenreklamation\",\n                    \"bindTo\": \"IdKunde\",\n                    \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdKunde\"\n                }\n            }],\n            \"id\": \"kundenreklamationspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"kundenreklamationspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"kundenreklamationspositionEditPopupOptions\"\n            },\n            \"caption\": \"kundenreklamation-edit.kundenreklamationspositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_KundenreklamationEditUtils\", $f_KundenreklamationEditUtils, \"functions.$f_KundenreklamationEditUtils\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"kundenreklamation-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"kundenreklamation-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"reklamationsgrund\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_reklamationsgrund_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdReklamationsgrund\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdReklamationsgrund\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_reklamationsgrund\",\n            \"options\": {\n                \"optionsName\": \"r_reklamationsgrundOptions\",\n                \"optionsNameFQ\": \"r_reklamationsgrundOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"kundenreklamation-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabAdressen\",\n                \"caption\": \"kundenreklamation-edit.r_tabadressen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"kundenreklamation-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_reklpArtikelNummer\",\n                \"caption\": \"kundenreklamation-edit.r_reklpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklpBezeichnug\",\n                \"caption\": \"kundenreklamation-edit.r_reklpbezeichnug_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_reklpLieferscheinNummer\",\n                \"caption\": \"kundenreklamation-edit.r_reklplieferscheinnummer_caption\",\n                \"bindTo\": \"Lieferscheinposition.Lieferschein.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklpMengelVerpEH\",\n                \"caption\": \"kundenreklamation-edit.r_reklpmengelverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpMengeRetourniertVerpEH\",\n                \"caption\": \"kundenreklamation-edit.r_reklpmengeretourniertverpeh_caption\",\n                \"bindTo\": \"MengeRetourniertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpMengeGutschriftVerpEH\",\n                \"caption\": \"kundenreklamation-edit.r_reklpmengegutschriftverpeh_caption\",\n                \"bindTo\": \"MengeGutschriftVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpEinheit\",\n                \"caption\": \"kundenreklamation-edit.r_reklpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kundenreklamationspositionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationspositionenGridToolbarOptions\"\n            },\n            \"caption\": \"kundenreklamation-edit.r_kundenreklamationspositionengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_KundenreklamationspositionRel\",\n                \"bindTo\": \"IdKundenreklamation\",\n                \"bindToFQ\": \"models.data.$m_KundenreklamationspositionRel.IdKundenreklamation\"\n            },\n            \"dataModel\": \"$m_Kundenreklamation\",\n            \"editDataContext\": \"$m_KundenreklamationspositionEdit\",\n            \"idEditPopup\": \"kundenreklamationspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kundenreklamationspositionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kundenreklamationspositionenGridOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationspositionenGridOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"kundenreklamation-edit.r_lieferorttelefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"LieferortTelefon\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.LieferortTelefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferortTelefon\",\n            \"options\": {\n                \"optionsName\": \"r_lieferortTelefonOptions\",\n                \"optionsNameFQ\": \"r_lieferortTelefonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_firma_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Kundenreklamation.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_lieferfiliale_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filter\": [\"IdFiliale\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Kundenreklamation.IdLieferfiliale\"\n            }],\n            \"filters\": [],\n            \"caption\": \"kundenreklamation-edit.r_lieferlager_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"kundenreklamation-edit.r_scandokumentnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\",\n                \"bindTo\": \"ScanDokumentNr\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamation.ScanDokumentNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_scanDokumentNr\",\n            \"options\": {\n                \"optionsName\": \"r_scanDokumentNrOptions\",\n                \"optionsNameFQ\": \"r_scanDokumentNrOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_lieferscheinpositionenEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinpositionenEditPopupOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionenEditPopupOptions\"\n            },\n            \"caption\": \"kundenreklamation-edit.r_lieferscheinpositioneneditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_KundenreklamationEditUtils.importLieferscheinpositionenCommand\",\n                    \"bindToFQ\": \"functions.$f_KundenreklamationEditUtils.importLieferscheinpositionenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_liefLieferscheinNummer\",\n                \"caption\": \"kundenreklamation-edit.r_lieflieferscheinnummer_caption\",\n                \"bindTo\": \"Lieferschein.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefLieferscheinDatum\",\n                \"caption\": \"kundenreklamation-edit.r_lieflieferscheindatum_caption\",\n                \"bindTo\": \"Lieferschein.Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefArtikelNr\",\n                \"caption\": \"kundenreklamation-edit.r_liefartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefBezeichnung\",\n                \"caption\": \"kundenreklamation-edit.r_liefbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\"\n            }, {\n                \"id\": \"r_liefMengeIstVerpEH\",\n                \"caption\": \"kundenreklamation-edit.r_liefmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefMengeReklamiertVerpEH\",\n                \"caption\": \"kundenreklamation-edit.r_liefmengereklamiertverpeh_caption\",\n                \"bindTo\": \"MengeReklamiertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefWertNetto\",\n                \"caption\": \"kundenreklamation-edit.r_liefwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefWaehrung\",\n                \"caption\": \"kundenreklamation-edit.r_liefwaehrung_caption\",\n                \"bindTo\": \"Lieferschein.Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinpositionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionenGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinpositionen\"\n            },\n            \"dataModel\": \"$m_Lieferscheinpositionen\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinpositionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinpositionenGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionenGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./kundenreklamationsposition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"kundenreklamationspositionEditPopupOptions\\\" view-model.ref=\\\"kundenreklamationspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <kundenreklamationsposition-edit-form view-model.ref=\\\"kundenreklamationspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></kundenreklamationsposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamation-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_reklamationsgrund_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_reklamationsgrundOptions\\\" view-model.ref=\\\"r_reklamationsgrund\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Kundenreklamation.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\" web-api-action=\\\"ERP/Verkauf/Kundenreklamation\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamation-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Kundenreklamation.IdKunde\\\" id-adresse.bind=\\\"models.data.$m_Kundenreklamation.IdKundeAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Kundenreklamation.IdKundeAnsprechperson\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\" where.bind=\\\"['Geschaeftspartnerart.IsKunde', true]\\\" adresse-property-name=\\\"KundeAdresse\\\" person-typ.bind=\\\"1\\\" is-read-only.bind=\\\"models.data.$m_Kundenreklamation.Id\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onKundeChanged($event)\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onKundeAdresseChanged($event)\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onKundeAnsprechpersonChanged($event)\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_KundenreklamationEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_kundenreklamationspositionenGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kundenreklamationspositionenGridOptions\\\" view-model.ref=\\\"r_kundenreklamationspositionenGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamation-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Kundenreklamation.Datum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Kundenreklamation.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Kundenreklamation.IdKunde\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\" id-filiale.bind=\\\"models.data.$m_Kundenreklamation.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Kundenreklamation.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Kundenreklamation.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Kundenreklamation.IdWaehrung\\\" is-from-webshop.bind=\\\"models.data.$m_Kundenreklamation.IsFromWebshop\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: kundenreklamation-edit.r_headerkundenreklamationlieferort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferort\\\" validation-field-name=\\\"Lieferort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Kundenreklamation.IdLieferort\\\" id-adresse.bind=\\\"models.data.$m_Kundenreklamation.IdLieferortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Kundenreklamation.IdLieferortAnsprechperson\\\" person-typ.bind=\\\"2\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onLieferortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferortAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onLieferortAnsprechpersonChanged($event)\\\"></geschaeftspartner> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_lieferorttelefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferortTelefonOptions\\\" view-model.ref=\\\"r_lieferortTelefon\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: kundenreklamation-edit.r_headerkundenreklamationrechnungsort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Kundenreklamation.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Kundenreklamation.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Kundenreklamation.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Kundenreklamation\\\" geschaeftspartner-data-changed.delegate=\\\"functions.$f_KundenreklamationEditUtils.onRechnungsortAdresseChanged($event)\\\" where.bind=\\\"[['Geschaeftspartnerart.IsRechnungsadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"RechnungsortAdresse\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamation-edit.r_scandokumentnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_scanDokumentNrOptions\\\" view-model.ref=\\\"r_scanDokumentNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_KundenreklamationEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_lieferscheinpositionenEditPopupOptions\\\" view-model.ref=\\\"r_lieferscheinpositionenEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinpositionenGridOptions\\\" view-model.ref=\\\"r_lieferscheinpositionenGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class KundenreklamationListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"kundenreklamation-list\";\n        this.title = \"kundenreklamation-list.kundenreklamation-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Kundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Status': null,\n                'Kunde': null,\n                'Projekt': null,\n                'KundeAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_kundenreklamationGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_reklNummer\",\n                \"caption\": \"kundenreklamation-list.r_reklnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklDatum\",\n                \"caption\": \"kundenreklamation-list.r_rekldatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_reklProjekt\",\n                \"caption\": \"kundenreklamation-list.r_reklprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_reklKundeNummer\",\n                \"caption\": \"kundenreklamation-list.r_reklkundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklFirmenbez1\",\n                \"caption\": \"kundenreklamation-list.r_reklfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_reklStrasse\",\n                \"caption\": \"kundenreklamation-list.r_reklstrasse_caption\",\n                \"bindTo\": \"KundeAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_reklLand\",\n                \"caption\": \"kundenreklamation-list.r_reklland_caption\",\n                \"bindTo\": \"KundeAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_reklOrt\",\n                \"caption\": \"kundenreklamation-list.r_reklort_caption\",\n                \"bindTo\": \"KundeAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_reklWertNetto\",\n                \"caption\": \"kundenreklamation-list.r_reklwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklWaehrung\",\n                \"caption\": \"kundenreklamation-list.r_reklwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_reklStatus\",\n                \"caption\": \"kundenreklamation-list.r_reklstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kundenreklamationGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationGridToolbarOptions\"\n            },\n            \"caption\": \"kundenreklamation-list.r_kundenreklamationgrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamation\"\n            },\n            \"dataModel\": \"$m_Kundenreklamation\",\n            \"editUrl\": \"ERP/Verkauf/Kundenreklamation\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kundenreklamationGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kundenreklamationGridOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kundenreklamationGridOptions\\\" view-model.ref=\\\"r_kundenreklamationGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    KundenreklamationspositionEditUtils\n} from \"./kundenreklamationsposition-edit-utils\";\n\n@fwx.autoinject\nexport class KundenreklamationspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_KundenreklamationspositionEditUtils: KundenreklamationspositionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"kundenreklamationsposition-edit\";\n        this.title = \"kundenreklamationsposition-edit.kundenreklamationsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Kundenreklamationsposition\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamationsposition\",\n            \"webApiExpand\": {\n                'Lieferscheinposition': {\n                    'expand': {\n                        'Lieferschein': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Kundenreklamation\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamation\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Kundenreklamationsposition.IdKundenreklamation\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KundenreklamationspositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamationsposition\",\n            \"webApiExpand\": {\n                'Lieferscheinposition': {\n                    'expand': {\n                        'Lieferschein': null\n                    }\n                },\n                'Artikel': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_KundenreklamationspositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Kundenreklamationsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addVariable({\n            \"id\": \"$v_idGeschaeftspartner\"\n        });\n        this.addEditPopup({\n            \"idContent\": \"kundenreklamationspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_KundenreklamationspositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_KundenreklamationspositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"kundenreklamationspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"kundenreklamationspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"kundenreklamationspositionEditPopupOptions\"\n            },\n            \"caption\": \"kundenreklamationsposition-edit.kundenreklamationspositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_KundenreklamationspositionEditUtils\", $f_KundenreklamationspositionEditUtils, \"functions.$f_KundenreklamationspositionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kundenreklamationsposition-edit.r_mengeverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.MengeVerpEH\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_KundenreklamationspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_mengeVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kundenreklamationsposition-edit.r_mengegutschriftverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"MengeGutschriftVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.MengeGutschriftVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeGutschriftVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeGutschriftVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeGutschriftVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kundenreklamationsposition-edit.r_mengeersatzverpeh_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Kundenreklamationsposition.IdErsatzAuftragsposition || models.data.$m_Kundenreklamationsposition.IdErsatzLieferscheinposition\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"MengeErsatzVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.MengeErsatzVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeErsatzVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeErsatzVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeErsatzVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kundenreklamationsposition-edit.r_mengeersatzverrverpeh_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"MengeErsatzVerrVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.MengeErsatzVerrVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeErsatzVerrVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeErsatzVerrVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeErsatzVerrVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Kundenreklamationsposition.IdArtikel\"\n                }],\n                [\"IsVerkaufseinheit\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"kundenreklamationsposition-edit.r_einheit_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Kundenreklamationsposition.IdErsatzAuftragsposition || models.data.$m_Kundenreklamationsposition.IdErsatzLieferscheinposition\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_KundenreklamationspositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"kundenreklamationsposition-edit.r_iswarenruecksendungerforderlich_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"IsWarenruecksendungErforderlich\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.IsWarenruecksendungErforderlich\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_isWarenruecksendungErforderlich\",\n            \"options\": {\n                \"optionsName\": \"r_isWarenruecksendungErforderlichOptions\",\n                \"optionsNameFQ\": \"r_isWarenruecksendungErforderlichOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_reklpArtikelNummer\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklpBezeichnug\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpbezeichnug_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_reklpLieferscheinNummer\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklplieferscheinnummer_caption\",\n                \"bindTo\": \"Lieferscheinposition.Lieferschein.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_reklpMengelVerpEH\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpmengelverpeh_caption\",\n                \"bindTo\": \"MengeVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpMengeRetourniertVerpEH\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpmengeretourniertverpeh_caption\",\n                \"bindTo\": \"MengeRetourniertVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpMengeGutschriftVerpEH\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpmengegutschriftverpeh_caption\",\n                \"bindTo\": \"MengeGutschriftVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_reklpEinheit\",\n                \"caption\": \"kundenreklamationsposition-edit.r_reklpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_kundenreklamationspositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationspositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"kundenreklamationsposition-edit.r_kundenreklamationspositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_KundenreklamationspositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelKundenreklamationsposition\",\n                \"bindToFQ\": \"models.data.$m_KundenreklamationspositionStuecklisteRel.IdSetartikelKundenreklamationsposition\"\n            },\n            \"dataModel\": \"$m_Kundenreklamationsposition\",\n            \"editDataContext\": \"$m_KundenreklamationspositionStuecklisteEdit\",\n            \"idEditPopup\": \"kundenreklamationspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_kundenreklamationspositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_kundenreklamationspositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_kundenreklamationspositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n2\",\n            \"caption\": \"kundenreklamationsposition-edit.r_mengeretourverpeh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"MengeRetourniertVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.MengeRetourniertVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeRetourVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeRetourVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeRetourVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"kundenreklamationsposition-edit.r_lieferscheinpositionnummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"Lieferscheinposition.Lieferschein.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.Lieferscheinposition.Lieferschein.Nummer\",\n                \"propertyPrefix\": \"Lieferscheinposition.Lieferschein\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_lieferscheinpositionNummer\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinpositionNummerOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionNummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"reklamationsgrund\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamationsposition-edit.r_reklamationsgrund_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"IdReklamationsgrund\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.IdReklamationsgrund\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_reklamationsgrund\",\n            \"options\": {\n                \"optionsName\": \"r_reklamationsgrundOptions\",\n                \"optionsNameFQ\": \"r_reklamationsgrundOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"kundenreklamationErsatzartikelPreisbasis\",\n            \"filters\": [],\n            \"caption\": \"kundenreklamationsposition-edit.r_ersatzartikelpreisbasis_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Kundenreklamationsposition.IdErsatzAuftragsposition || models.data.$m_Kundenreklamationsposition.IdErsatzLieferscheinposition || !models.data.$m_Kundenreklamationsposition.IdErsatzartikel\",\n            \"binding\": {\n                \"dataContext\": \"$m_Kundenreklamationsposition\",\n                \"bindTo\": \"ErsatzartikelPreisbasis\",\n                \"bindToFQ\": \"models.data.$m_Kundenreklamationsposition.ErsatzartikelPreisbasis\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"conditionalRequired\",\n                    \"parameters\": [{\n                        \"name\": \"condition\",\n                        \"value\": \"models.data.$m_Kundenreklamationsposition.IdErsatzartikel\"\n                    }]\n                }\n            }],\n            \"id\": \"r_ersatzartikelPreisbasis\",\n            \"options\": {\n                \"optionsName\": \"r_ersatzartikelPreisbasisOptions\",\n                \"optionsNameFQ\": \"r_ersatzartikelPreisbasisOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./kundenreklamationsposition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"kundenreklamationspositionEditPopupOptions\\\" view-model.ref=\\\"kundenreklamationspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <kundenreklamationsposition-edit-form view-model.ref=\\\"kundenreklamationspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></kundenreklamationsposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel is-read-only.bind=\\\"models.data.$m_Kundenreklamationsposition.Id > 0\\\" bezeichnung.bind=\\\"models.data.$m_Kundenreklamationsposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel.bind=\\\"models.data.$m_Kundenreklamationsposition.IdArtikel\\\" main-model.bind=\\\"models.data.$m_Kundenreklamationsposition\\\" where.bind=\\\"[['Status.Typ', 0], ['Artikelart.IsVerkaufsartikel', true]]\\\"></artikel> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_mengeverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeVerpEHOptions\\\" view-model.ref=\\\"r_mengeVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_mengegutschriftverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeGutschriftVerpEHOptions\\\" view-model.ref=\\\"r_mengeGutschriftVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_mengeersatzverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeErsatzVerpEHOptions\\\" view-model.ref=\\\"r_mengeErsatzVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_mengeersatzverrverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeErsatzVerrVerpEHOptions\\\" view-model.ref=\\\"r_mengeErsatzVerrVerpEH\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_iswarenruecksendungerforderlich_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_isWarenruecksendungErforderlichOptions\\\" view-model.ref=\\\"r_isWarenruecksendungErforderlich\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Kundenreklamationsposition.Id > 0 && models.data.$m_Kundenreklamationsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamationsposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_kundenreklamationspositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_kundenreklamationspositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamationsposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_mengeretourverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeRetourVerpEHOptions\\\" view-model.ref=\\\"r_mengeRetourVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_lieferscheinpositionnummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_lieferscheinpositionNummerOptions\\\" view-model.ref=\\\"r_lieferscheinpositionNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_reklamationsgrund_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_reklamationsgrundOptions\\\" view-model.ref=\\\"r_reklamationsgrund\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" show.bind=\\\"models.data.$m_Kundenreklamationsposition.MengeErsatzVerpEH > 0 || models.data.$m_Kundenreklamationsposition.MengeErsatzVerrVerpEH > 0 && models.data.$m_Kundenreklamationsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamationsposition-edit.r_groupersatzartikel_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel is-required.bind=\\\"false\\\" is-read-only.bind=\\\"!models.data.$m_Kundenreklamationsposition.CanSave || models.data.$m_Kundenreklamationsposition.IdErsatzAuftragsposition || models.data.$m_Kundenreklamationsposition.IdErsatzLieferscheinposition\\\" id-artikel.bind=\\\"models.data.$m_Kundenreklamationsposition.IdErsatzartikel\\\" main-model.bind=\\\"models.data.$m_Kundenreklamationsposition\\\" where.bind=\\\"[['Status.Typ', 0], ['Artikelart.IsVerkaufsartikel', true]]\\\" id-artikel-changed.delegate=\\\"functions.$f_KundenreklamationspositionEditUtils.onErsatzartikelChanged($event)\\\"></artikel> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: kundenreklamationsposition-edit.r_ersatzartikelpreisbasis_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_ersatzartikelPreisbasisOptions\\\" view-model.ref=\\\"r_ersatzartikelPreisbasis\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Kundenreklamationsposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: kundenreklamationsposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Kundenreklamation.Datum\\\" id-artikel.bind=\\\"models.data.$m_Kundenreklamationsposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Kundenreklamation.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Kundenreklamation.IdKunde\\\" main-model.bind=\\\"models.data.$m_Kundenreklamationsposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Kundenreklamationsposition.MengeVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Kundenreklamationsposition.IdEinheit\\\" is-from-webshop.bind=\\\"models.data.$m_Kundenreklamation.IsFromWebshop\\\" is-gratis.bind=\\\"models.data.$m_Kundenreklamationsposition.IsGratis\\\" id-filiale.bind=\\\"models.data.$m_Kundenreklamation.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Kundenreklamation.IdLieferlager\\\" id-waehrung.bind=\\\"models.data.$m_Kundenreklamation.IdWaehrung\\\" steuersatz.bind=\\\"models.data.$m_Kundenreklamationsposition.Steuersatz\\\" id-firma.bind=\\\"models.data.$m_Kundenreklamation.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Verkauf.Kundenreklamationsposition\\\" id-kopf.bind=\\\"models.data.$m_Kundenreklamationsposition.IdKundenreklamation\\\" id-pos.bind=\\\"models.data.$m_Kundenreklamationsposition.Id\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Kundenreklamationsposition\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    LadelisteEditUtils\n} from \"./ladeliste-edit-utils\";\n\n@fwx.autoinject\nexport class LadelisteEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_LadelisteEditUtils: LadelisteEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"ladeliste-edit\";\n        this.title = \"ladeliste-edit.ladeliste-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Ladeliste\",\n            \"webApiAction\": \"ERP/Verkauf/Ladeliste\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Ladelistenposition\",\n            \"webApiAction\": \"ERP/Verkauf/Ladelistenposition\",\n            \"webApiExpand\": {\n                'Lieferschein': {\n                    'expand': {\n                        'Kunde': {\n                            'expand': {\n                                'Adresse': null\n                            }\n                        }\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Kunde': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                }\n            },\n            \"webApiWhere\": [\n                [\"Status.Typ\", \"1\"],\n                [\"IdLadelistenposition\", \"null\"]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"IdLadeliste\",\n                \"webApiCustomValue\": \"models.data.$m_Ladeliste.Id\"\n            }]\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LadelisteEditUtils.showImportLieferscheinPopupCommand\",\n                \"bindToFQ\": \"functions.$f_LadelisteEditUtils.showImportLieferscheinPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LadelisteEditUtils.lieferscheinEntfernenCommand\",\n                \"bindToFQ\": \"functions.$f_LadelisteEditUtils.lieferscheinEntfernenCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_LadelisteEditUtils\", $f_LadelisteEditUtils, \"functions.$f_LadelisteEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"ladeliste-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"ladeliste-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"ladeliste-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"ladeliste-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"ladeliste-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_ladepNummer\",\n                \"caption\": \"ladeliste-edit.r_ladepnummer_caption\",\n                \"bindTo\": \"Lieferschein.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_ladepDatum\",\n                \"caption\": \"ladeliste-edit.r_ladepdatum_caption\",\n                \"bindTo\": \"Lieferschein.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_ladepKundenNr\",\n                \"caption\": \"ladeliste-edit.r_ladepkundennr_caption\",\n                \"bindTo\": \"Lieferschein.Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_ladepFirmenbez1\",\n                \"caption\": \"ladeliste-edit.r_ladepfirmenbez1_caption\",\n                \"bindTo\": \"Lieferschein.Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_ladepStrasse\",\n                \"caption\": \"ladeliste-edit.r_ladepstrasse_caption\",\n                \"bindTo\": \"Lieferschein.Kunde.Adresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_ladepPLZ\",\n                \"caption\": \"ladeliste-edit.r_ladepplz_caption\",\n                \"bindTo\": \"Lieferschein.Kunde.Adresse.PLZ\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_ladepOrt\",\n                \"caption\": \"ladeliste-edit.r_ladeport_caption\",\n                \"bindTo\": \"Lieferschein.Kunde.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_ladepGewichtBrutto\",\n                \"caption\": \"ladeliste-edit.r_ladepgewichtbrutto_caption\",\n                \"bindTo\": \"Lieferschein.GewichtBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_ladelistenpositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_ladelistenpositionGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_Ladelistenposition\",\n                \"bindTo\": \"IdLadeliste\",\n                \"bindToFQ\": \"models.data.$m_Ladelistenposition.IdLadeliste\"\n            },\n            \"dataModel\": \"$m_Ladeliste\",\n            \"addShortscuts\": true,\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_ladelistenpositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_ladelistenpositionGridOptions\",\n                \"optionsNameFQ\": \"r_ladelistenpositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"ladeliste-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Ladeliste.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Ladeliste.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"ladeliste-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Ladeliste.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"spediteur\",\n            \"filters\": [],\n            \"caption\": \"ladeliste-edit.r_spediteur_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\",\n                \"bindTo\": \"IdSpediteur\",\n                \"bindToFQ\": \"models.data.$m_Ladeliste.IdSpediteur\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_spediteur\",\n            \"options\": {\n                \"optionsName\": \"r_spediteurOptions\",\n                \"optionsNameFQ\": \"r_spediteurOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_lieferscheinEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinEditPopupOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinEditPopupOptions\"\n            },\n            \"caption\": \"ladeliste-edit.r_lieferscheineditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_LadelisteEditUtils.importLieferscheinpositionCommand\",\n                    \"bindToFQ\": \"functions.$f_LadelisteEditUtils.importLieferscheinpositionCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_liefLieferscheinNummer\",\n                \"caption\": \"ladeliste-edit.r_lieflieferscheinnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefDatum\",\n                \"caption\": \"ladeliste-edit.r_liefdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefKundenNummer\",\n                \"caption\": \"ladeliste-edit.r_liefkundennummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefFirmenbez1\",\n                \"caption\": \"ladeliste-edit.r_lieffirmenbez1_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefStrasse\",\n                \"caption\": \"ladeliste-edit.r_liefstrasse_caption\",\n                \"bindTo\": \"Kunde.Adresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefPLZ\",\n                \"caption\": \"ladeliste-edit.r_liefplz_caption\",\n                \"bindTo\": \"Kunde.Adresse.PLZ\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefOrt\",\n                \"caption\": \"ladeliste-edit.r_liefort_caption\",\n                \"bindTo\": \"Kunde.Adresse.Ort\",\n                \"width\": \"120px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: ladeliste-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Ladeliste\\\" web-api-action=\\\"ERP/Verkauf/Ladeliste\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_LadelisteEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_ladelistenpositionGridOptions\\\" view-model.ref=\\\"r_ladelistenpositionGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: ladeliste-edit.r_spediteur_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_spediteurOptions\\\" view-model.ref=\\\"r_spediteur\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_lieferscheinEditPopupOptions\\\" view-model.ref=\\\"r_lieferscheinEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinGridOptions\\\" view-model.ref=\\\"r_lieferscheinGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class LadelisteListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"ladeliste-list\";\n        this.title = \"ladeliste-list.ladeliste-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Ladeliste\",\n            \"webApiAction\": \"ERP/Verkauf/Ladeliste\",\n            \"webApiExpand\": {\n                'Spediteur': null,\n                'Firma': null,\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_ladelisteGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_ladeNummer\",\n                \"caption\": \"ladeliste-list.r_ladenummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_ladeDatum\",\n                \"caption\": \"ladeliste-list.r_ladedatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_ladeSpediteur\",\n                \"caption\": \"ladeliste-list.r_ladespediteur_caption\",\n                \"bindTo\": \"Spediteur.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_ladeFirma\",\n                \"caption\": \"ladeliste-list.r_ladefirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_ladeStatus\",\n                \"caption\": \"ladeliste-list.r_ladestatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_ladelisteGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_ladelisteGridToolbarOptions\"\n            },\n            \"caption\": \"ladeliste-list.r_ladelistegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Ladeliste\"\n            },\n            \"dataModel\": \"$m_Ladeliste\",\n            \"editUrl\": \"ERP/Verkauf/Ladeliste\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_ladelisteGrid\",\n            \"options\": {\n                \"optionsName\": \"r_ladelisteGridOptions\",\n                \"optionsNameFQ\": \"r_ladelisteGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_ladelisteGridOptions\\\" view-model.ref=\\\"r_ladelisteGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LieferscheinEditUtils\n} from \"./lieferschein-edit-utils\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    UpdateManuelleTexteUtils\n} from \"../../../utils/update-manuelle-texte-utils\";\n\n@fwx.autoinject\nexport class LieferscheinEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_LieferscheinEditUtils: LieferscheinEditUtils,\n        private $f_StatusService: StatusService,\n        private $f_UpdateManuelleTexteUtils: UpdateManuelleTexteUtils) {\n        super(element, formBaseImport);\n        this.id = \"lieferschein-edit\";\n        this.title = \"lieferschein-edit.lieferschein-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Status': null,\n                'Steuer': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheinpositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'Lieferscheingruppe': null,\n                'Auftragsposition': {\n                    'columns': [\n                        'Bezeichnung',\n                        'IdAuftrag'\n                    ],\n                    'expand': {\n                        'Auftrag': {\n                            'columns': [\n                                'Nummer'\n                            ]\n                        }\n                    }\n                },\n                'Einheit': {\n                    'columns': [\n                        'Id',\n                        'IdEinheit'\n                    ],\n                    'expand': {\n                        'Einheit': {\n                            'columns': [\n                                'Bezeichnung'\n                            ]\n                        }\n                    }\n                },\n                'Positionsart': {\n                    'columns': [\n                        'Bezeichnung'\n                    ]\n                }\n            },\n            \"webApiWhere\": [\"IsPositionStuecklistenkomponente\", false],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"AddMehrfachbearbeitungTypeName\",\n                \"webApiCustomValue\": \"true\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheinpositionEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Auftrag\",\n            \"webApiAction\": \"ERP/Verkauf/Auftrag\",\n            \"webApiExpand\": {\n                'Kunde': {\n                    'expand': {\n                        'Adresse': {\n                            'expand': {\n                                'Land': null\n                            }\n                        }\n                    }\n                },\n                'Waehrung': null,\n                'Status': null\n            },\n            \"webApiWhere\": [\n                [\"IdKunde\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Lieferschein.IdKunde\"\n                }],\n                [\"MergeKey\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Lieferschein.MergeKey\"\n                }],\n                [\"IsBestaetigt\", \"true\"],\n                [\"Status.Typ\", \"0\"]\n            ],\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": [{\n                \"webApiCustomKey\": \"HasLieferposition\",\n                \"webApiCustomValue\": \"true\"\n            }, {\n                \"webApiCustomKey\": \"IdLieferschein\",\n                \"webApiCustomValue\": \"models.data.$m_Lieferschein.Id\"\n            }]\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheingruppeRel\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheingruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"models.data.$m_Lieferschein.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheingruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheingruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinEditUtils.fakturaStatusAendernCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.fakturaStatusAendernCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinEditUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinEditUtils.showImportAuftragPopupCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.showImportAuftragPopupCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinEditUtils.refreshGewichtCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.refreshGewichtCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateKopftextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateKopftextCommand\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_UpdateManuelleTexteUtils.updateFusstextCommand\",\n                \"bindToFQ\": \"functions.$f_UpdateManuelleTexteUtils.updateFusstextCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"lieferscheinpositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_LieferscheinpositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_LieferscheinpositionEdit.Id\"\n                }\n            }],\n            \"id\": \"lieferscheinpositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"lieferscheinpositionEditPopupOptions\",\n                \"optionsNameFQ\": \"lieferscheinpositionEditPopupOptions\"\n            },\n            \"caption\": \"lieferschein-edit.lieferscheinpositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"lieferscheingruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_LieferscheingruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_LieferscheingruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"lieferscheingruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"lieferscheingruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"lieferscheingruppeEditPopupOptions\"\n            },\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_LieferscheinEditUtils\", $f_LieferscheinEditUtils, \"functions.$f_LieferscheinEditUtils\");\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_UpdateManuelleTexteUtils\", $f_UpdateManuelleTexteUtils, \"functions.$f_UpdateManuelleTexteUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"lieferschein-edit.r_nummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Nummer\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Nummer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_nummer\",\n            \"options\": {\n                \"optionsName\": \"r_nummerOptions\",\n                \"optionsNameFQ\": \"r_nummerOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lieferschein-edit.r_datum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Datum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lieferschein-edit.r_versanddatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Versanddatum\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Versanddatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_versanddatum\",\n            \"options\": {\n                \"optionsName\": \"r_versanddatumOptions\",\n                \"optionsNameFQ\": \"r_versanddatumOptions\"\n            }\n        });\n        this.widgetCreator.addTab(this, {\n            \"pages\": [{\n                \"id\": \"r_tabPositionen\",\n                \"caption\": \"lieferschein-edit.r_tabpositionen_caption\"\n            }, {\n                \"id\": \"r_tabGruppen\",\n                \"caption\": \"lieferschein-edit.r_tabgruppen_caption\"\n            }, {\n                \"id\": \"r_tabAdressen\",\n                \"caption\": \"lieferschein-edit.r_tabadressen_caption\"\n            }, {\n                \"id\": \"r_tabWeitere\",\n                \"caption\": \"lieferschein-edit.r_tabweitere_caption\"\n            }],\n            \"id\": \"r_tab\",\n            \"options\": {\n                \"optionsName\": \"r_tabOptions\",\n                \"optionsNameFQ\": \"r_tabOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_liefpPosNr\",\n                \"caption\": \"lieferschein-edit.r_liefpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_liefpArtikelNummer\",\n                \"caption\": \"lieferschein-edit.r_liefpartikelnummer_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefpBezeichnug\",\n                \"caption\": \"lieferschein-edit.r_liefpbezeichnug_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefpAuftragsNummer\",\n                \"caption\": \"lieferschein-edit.r_liefpauftragsnummer_caption\",\n                \"bindTo\": \"Auftragsposition.Auftrag.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefpMengeSollVerpEH\",\n                \"caption\": \"lieferschein-edit.r_liefpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpMengeIstVerpEH\",\n                \"caption\": \"lieferschein-edit.r_liefpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpEinheit\",\n                \"caption\": \"lieferschein-edit.r_liefpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefpPositionsart\",\n                \"caption\": \"lieferschein-edit.r_liefppositionsart_caption\",\n                \"bindTo\": \"Positionsart.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefpLieferscheingruppe\",\n                \"caption\": \"lieferschein-edit.r_liefplieferscheingruppe_caption\",\n                \"bindTo\": \"Lieferscheingruppe.Bezeichnung\",\n                \"minWidth\": 100\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinpositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionGridToolbarOptions\"\n            },\n            \"caption\": \"lieferschein-edit.r_lieferscheinpositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_LieferscheinpositionRel\",\n                \"bindTo\": \"IdLieferschein\",\n                \"bindToFQ\": \"models.data.$m_LieferscheinpositionRel.IdLieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"editDataContext\": \"$m_LieferscheinpositionEdit\",\n            \"idEditPopup\": \"lieferscheinpositionEditPopup\",\n            \"selectionMode\": 2,\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [{\n                \"binding\": {\n                    \"dataContext\": \"$m_Lieferschein\",\n                    \"bindTo\": \"$f_LieferscheinEditUtils.doDeletePosCommand\",\n                    \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.doDeletePosCommand\"\n                }\n            }],\n            \"id\": \"r_lieferscheinpositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinpositionGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionGridOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferschein-edit.r_gewichtbrutto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.GewichtBrutto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtBruttoOptions\",\n                \"optionsNameFQ\": \"r_gewichtBruttoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferschein-edit.r_gewichtverpackung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"GewichtVerpackung\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.GewichtVerpackung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtVerpackung\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtVerpackungOptions\",\n                \"optionsNameFQ\": \"r_gewichtVerpackungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"lieferschein-edit.r_laenge_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Laenge\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Laenge\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_laenge\",\n            \"options\": {\n                \"optionsName\": \"r_laengeOptions\",\n                \"optionsNameFQ\": \"r_laengeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"lieferschein-edit.r_breite_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Breite\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Breite\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_breite\",\n            \"options\": {\n                \"optionsName\": \"r_breiteOptions\",\n                \"optionsNameFQ\": \"r_breiteOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n0\",\n            \"caption\": \"lieferschein-edit.r_hoehe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Hoehe\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Hoehe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_hoehe\",\n            \"options\": {\n                \"optionsName\": \"r_hoeheOptions\",\n                \"optionsNameFQ\": \"r_hoeheOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_anggPosNr\",\n                \"caption\": \"lieferschein-edit.r_anggposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_anggBezeichnung\",\n                \"caption\": \"lieferschein-edit.r_anggbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_anggWertnetto\",\n                \"caption\": \"lieferschein-edit.r_anggwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheingruppeGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheingruppeGridToolbarOptions\"\n            },\n            \"caption\": \"lieferschein-edit.r_lieferscheingruppegrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_LieferscheingruppeRel\",\n                \"bindTo\": \"IdLieferschein\",\n                \"bindToFQ\": \"models.data.$m_LieferscheingruppeRel.IdLieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"editDataContext\": \"$m_LieferscheingruppeEdit\",\n            \"idEditPopup\": \"lieferscheingruppeEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheingruppeGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheingruppeGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheingruppeGridOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"lieferschein-edit.r_lieferorttelefon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"LieferortTelefon\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.LieferortTelefon\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_lieferortTelefon\",\n            \"options\": {\n                \"optionsName\": \"r_lieferortTelefonOptions\",\n                \"optionsNameFQ\": \"r_lieferortTelefonOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_waehrung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"lieferschein-edit.r_preisdatum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Preisdatum\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Preisdatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_preisdatum\",\n            \"options\": {\n                \"optionsName\": \"r_preisdatumOptions\",\n                \"optionsNameFQ\": \"r_preisdatumOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Lieferschein.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"filiale\",\n            \"filter\": [\"IdFirma\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Lieferschein.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_lieferfiliale_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Lieferschein.Id > 0\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"IdLieferfiliale\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.IdLieferfiliale\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferfiliale\",\n            \"options\": {\n                \"optionsName\": \"r_lieferfilialeOptions\",\n                \"optionsNameFQ\": \"r_lieferfilialeOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"lieferschein-edit.r_trackingnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"TrackingNr\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.TrackingNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 150\n                    }]\n                }\n            }],\n            \"id\": \"r_trackingNr\",\n            \"options\": {\n                \"optionsName\": \"r_trackingNrOptions\",\n                \"optionsNameFQ\": \"r_trackingNrOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lieferscheinFakturaStatus\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_fakturastatus_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"FakturaStatus\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.FakturaStatus\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fakturaStatus\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaStatusOptions\",\n                \"optionsNameFQ\": \"r_fakturaStatusOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"steuerTyp\",\n            \"filters\": [],\n            \"caption\": \"lieferschein-edit.r_steuersteuertyp_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\",\n                \"bindTo\": \"Steuer.SteuerTyp\",\n                \"bindToFQ\": \"models.data.$m_Lieferschein.Steuer.SteuerTyp\",\n                \"propertyPrefix\": \"Steuer\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_steuerSteuertyp\",\n            \"options\": {\n                \"optionsName\": \"r_steuerSteuertypOptions\",\n                \"optionsNameFQ\": \"r_steuerSteuertypOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_auftragEditPopup\",\n            \"options\": {\n                \"optionsName\": \"r_auftragEditPopupOptions\",\n                \"optionsNameFQ\": \"r_auftragEditPopupOptions\"\n            },\n            \"caption\": \"lieferschein-edit.r_auftrageditpopup_caption\",\n            \"height\": \"800px\",\n            \"width\": \"1300px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_LieferscheinEditUtils.importAuftraegeCommand\",\n                    \"bindToFQ\": \"functions.$f_LieferscheinEditUtils.importAuftraegeCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_aufAuftragNummer\",\n                \"caption\": \"lieferschein-edit.r_aufauftragnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufDatum\",\n                \"caption\": \"lieferschein-edit.r_aufdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufLieferdatum\",\n                \"caption\": \"lieferschein-edit.r_auflieferdatum_caption\",\n                \"bindTo\": \"Lieferdatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_aufKundenNummer\",\n                \"caption\": \"lieferschein-edit.r_aufkundennummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_aufFirmenbez1\",\n                \"caption\": \"lieferschein-edit.r_auffirmenbez1_caption\",\n                \"bindTo\": \"Kunde.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_aufLand\",\n                \"caption\": \"lieferschein-edit.r_aufland_caption\",\n                \"bindTo\": \"Kunde.Adresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufOrt\",\n                \"caption\": \"lieferschein-edit.r_aufort_caption\",\n                \"bindTo\": \"Kunde.Adresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufStrasse\",\n                \"caption\": \"lieferschein-edit.r_aufstrasse_caption\",\n                \"bindTo\": \"Kunde.Adresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_aufWertNetto\",\n                \"caption\": \"lieferschein-edit.r_aufwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_aufWaehrung\",\n                \"caption\": \"lieferschein-edit.r_aufwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_aufStatus\",\n                \"caption\": \"lieferschein-edit.r_aufstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_auftragGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_auftragGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Auftrag\"\n            },\n            \"dataModel\": \"$m_Auftrag\",\n            \"selectionMode\": 2,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_auftragGrid\",\n            \"options\": {\n                \"optionsName\": \"r_auftragGridOptions\",\n                \"optionsNameFQ\": \"r_auftragGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n    r_tabSelected = 0;\n}","// Module\nvar code = \"<template> <require from=\\\"./lieferscheinposition-edit-form\\\"></require> <require from=\\\"./lieferscheingruppe-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"lieferscheinpositionEditPopupOptions\\\" view-model.ref=\\\"lieferscheinpositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <lieferscheinposition-edit-form view-model.ref=\\\"lieferscheinpositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></lieferscheinposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"lieferscheingruppeEditPopupOptions\\\" view-model.ref=\\\"lieferscheingruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <lieferscheingruppe-edit-form view-model.ref=\\\"lieferscheingruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></lieferscheingruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferschein-edit.r_groupkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_nummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_nummerOptions\\\" view-model.ref=\\\"r_nummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_versanddatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_versanddatumOptions\\\" view-model.ref=\\\"r_versanddatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Lieferschein.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\"></projekt> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\" web-api-action=\\\"ERP/Verkauf/Lieferschein\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferschein-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" validation-field-name=\\\"Kunde\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Lieferschein.IdKunde\\\" id-adresse.bind=\\\"models.data.$m_Lieferschein.IdKundeAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Lieferschein.IdKundeAnsprechperson\\\" id-geschaeftspartner-changed.delegate=\\\"functions.$f_LieferscheinEditUtils.onKundeChanged($event)\\\" person-typ.bind=\\\"1\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\" where.bind=\\\"[['Geschaeftspartnerart.IsKunde', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"KundeAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_LieferscheinEditUtils.onKundeAnsprechpersonChanged($event)\\\" is-read-only.bind=\\\"true\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_LieferscheinEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxTabs\\\" options.bind=\\\"r_tabOptions\\\"></dx-widget> <div class=\\\"t--tab-pages\\\"> <div ref=\\\"r_tabTabPage0\\\" show.bind=\\\"r_tabSelected === 0\\\" data-tab-page-activated=\\\"true\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lieferscheinpositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinpositionGridOptions\\\" view-model.ref=\\\"r_lieferscheinpositionGrid\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferschein-edit.r_groupkalkulationergebnis_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Lieferschein.Preisdatum\\\" id-berechnungsversion.bind=\\\"models.data.$m_Lieferschein.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Lieferschein.IdKunde\\\" is-kalkulation-kopf.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\" id-filiale.bind=\\\"models.data.$m_Lieferschein.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Lieferschein.IdLieferlager\\\" id-firma.bind=\\\"models.data.$m_Lieferschein.IdFirma\\\" id-waehrung.bind=\\\"models.data.$m_Lieferschein.IdWaehrung\\\" is-from-webshop.bind=\\\"models.data.$m_Lieferschein.IsFromWebshop\\\"></kalkulation> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferschein-edit.r_massegroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_gewichtbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtBruttoOptions\\\" view-model.ref=\\\"r_gewichtBrutto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_gewichtverpackung_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtVerpackungOptions\\\" view-model.ref=\\\"r_gewichtVerpackung\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_laenge_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_laengeOptions\\\" view-model.ref=\\\"r_laenge\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_breite_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_breiteOptions\\\" view-model.ref=\\\"r_breite\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_hoehe_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_hoeheOptions\\\" view-model.ref=\\\"r_hoehe\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage1\\\" show.bind=\\\"r_tabSelected === 1\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_lieferscheingruppeGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheingruppeGridOptions\\\" view-model.ref=\\\"r_lieferscheingruppeGrid\\\"></dx-widget> </div> </div> </div> <div ref=\\\"r_tabTabPage2\\\" show.bind=\\\"r_tabSelected === 2\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: lieferschein-edit.r_headerlieferscheinlieferort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_lieferort\\\" validation-field-name=\\\"Lieferort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Lieferschein.IdLieferort\\\" id-adresse.bind=\\\"models.data.$m_Lieferschein.IdLieferortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Lieferschein.IdLieferortAnsprechperson\\\" person-typ.bind=\\\"2\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\" where.bind=\\\"[['Geschaeftspartnerart.IsLieferadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"LieferortAdresse\\\" id-ansprechperson-changed.delegate=\\\"functions.$f_LieferscheinEditUtils.onLieferortAnsprechpersonChanged($event)\\\" is-read-only.bind=\\\"true\\\"></geschaeftspartner> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_lieferorttelefon_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_lieferortTelefonOptions\\\" view-model.ref=\\\"r_lieferortTelefon\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2><span tr=\\\"key: lieferschein-edit.r_headerlieferscheinrechnungsort_text; markdown: false\\\"></span></h2> </div> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Lieferschein.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Lieferschein.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Lieferschein.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Lieferschein\\\" where.bind=\\\"[['Geschaeftspartnerart.IsRechnungsadresse', true], ['Status.Typ', 0]]\\\" adresse-property-name=\\\"RechnungsortAdresse\\\" is-read-only.bind=\\\"true\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> <div ref=\\\"r_tabTabPage3\\\" show.bind=\\\"r_tabSelected === 3\\\" data-tab-page-activated=\\\"false\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_preisdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_preisdatumOptions\\\" view-model.ref=\\\"r_preisdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_lieferfiliale_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferfilialeOptions\\\" view-model.ref=\\\"r_lieferfiliale\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_trackingnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_trackingNrOptions\\\" view-model.ref=\\\"r_trackingNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_fakturastatus_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_fakturaStatusOptions\\\" view-model.ref=\\\"r_fakturaStatus\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferschein-edit.r_steuersteuertyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_steuerSteuertypOptions\\\" view-model.ref=\\\"r_steuerSteuertyp\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerSonstige\\\" anzeigeort=\\\"Sonstige Daten\\\" dyn-felder-data-service.bind=\\\"functions.$f_LieferscheinEditUtils.dynFelderData\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </div> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_auftragEditPopupOptions\\\" view-model.ref=\\\"r_auftragEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container t--parent-container-set-height\\\" gr-size> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_auftragGridOptions\\\" view-model.ref=\\\"r_auftragGrid\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    LieferscheinListUtils\n} from \"./lieferschein-list-utils\";\n\n@fwx.autoinject\nexport class LieferscheinListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_LieferscheinListUtils: LieferscheinListUtils) {\n        super(element, formBaseImport);\n        this.id = \"lieferschein-list\";\n        this.title = \"lieferschein-list.lieferschein-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Projekt': null,\n                'Status': null,\n                'Kunde': null,\n                'KundeAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_lieferscheinGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinListUtils.doAbschliessenCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinListUtils.doAbschliessenCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_LieferscheinListUtils\", $f_LieferscheinListUtils, \"functions.$f_LieferscheinListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_liefsNummer\",\n                \"caption\": \"lieferschein-list.r_liefsnummer_caption\",\n                \"bindTo\": \"Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsDatum\",\n                \"caption\": \"lieferschein-list.r_liefsdatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_liefsProjekt\",\n                \"caption\": \"lieferschein-list.r_liefsprojekt_caption\",\n                \"bindTo\": \"Projekt.Bezeichnung\",\n                \"width\": \"150px\"\n            }, {\n                \"id\": \"r_liefsKundeNummer\",\n                \"caption\": \"lieferschein-list.r_liefskundenummer_caption\",\n                \"bindTo\": \"Kunde.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefsFirmenbez1\",\n                \"caption\": \"lieferschein-list.r_liefsfirmenbez1_caption\",\n                \"bindTo\": \"KundeAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefsStrasse\",\n                \"caption\": \"lieferschein-list.r_liefsstrasse_caption\",\n                \"bindTo\": \"KundeAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefsLand\",\n                \"caption\": \"lieferschein-list.r_liefsland_caption\",\n                \"bindTo\": \"KundeAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefsOrt\",\n                \"caption\": \"lieferschein-list.r_liefsort_caption\",\n                \"bindTo\": \"KundeAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefsWertNetto\",\n                \"caption\": \"lieferschein-list.r_liefswertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefsWaehrung\",\n                \"caption\": \"lieferschein-list.r_liefswaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_liefsStatus\",\n                \"caption\": \"lieferschein-list.r_liefsstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridToolbarOptions\"\n            },\n            \"caption\": \"lieferschein-list.r_lieferscheingrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferschein\"\n            },\n            \"dataModel\": \"$m_Lieferschein\",\n            \"editUrl\": \"ERP/Verkauf/Lieferschein\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinGridOptions\\\" view-model.ref=\\\"r_lieferscheinGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    LieferscheingruppeEditUtils\n} from \"./lieferscheingruppe-edit-utils\";\n\n@fwx.autoinject\nexport class LieferscheingruppeEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_LieferscheingruppeEditUtils: LieferscheingruppeEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"lieferscheingruppe-edit\";\n        this.title = \"lieferscheingruppe-edit.lieferscheingruppe-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Lieferscheingruppe\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheingruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"models.data.$m_Lieferschein.CanSave\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Lieferscheingruppe.IdLieferschein\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addFunction(\"$f_LieferscheingruppeEditUtils\", $f_LieferscheingruppeEditUtils, \"functions.$f_LieferscheingruppeEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"lieferscheingruppe-edit.r_bezeichnung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheingruppe\",\n                \"bindTo\": \"Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheingruppe.Bezeichnung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_bezeichnung\",\n            \"options\": {\n                \"optionsName\": \"r_bezeichnungOptions\",\n                \"optionsNameFQ\": \"r_bezeichnungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferscheingruppe-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheingruppe\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheingruppe.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheingruppe-edit.r_bezeichnung_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_bezeichnungOptions\\\" view-model.ref=\\\"r_bezeichnung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheingruppe-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Lieferscheingruppe\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    LieferscheinpositionEditUtils\n} from \"./lieferscheinposition-edit-utils\";\n\n@fwx.autoinject\nexport class LieferscheinpositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_LieferscheinpositionEditUtils: LieferscheinpositionEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"lieferscheinposition-edit\";\n        this.title = \"lieferscheinposition-edit.lieferscheinposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Lieferscheinposition\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"webApiExpand\": {\n                'Auftragsposition': null,\n                'Lager': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Lieferschein\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferschein\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"models.data.$m_Lieferscheinposition.IdLieferschein\",\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheingruppeEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheingruppe\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheinpositionStuecklisteRel\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"webApiExpand\": {\n                'Artikel': null,\n                'KalkulationContainer': null,\n                'Lieferscheingruppe': null,\n                'Einheit': {\n                    'expand': {\n                        'Einheit': null\n                    }\n                },\n                'Status': null,\n                'Positionsart': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_LieferscheinpositionStuecklisteEdit\",\n            \"webApiAction\": \"ERP/Verkauf/Lieferscheinposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_LieferscheinpositionEditUtils.showVariablerSetartikelPreisAendernCommand\",\n                \"bindToFQ\": \"functions.$f_LieferscheinpositionEditUtils.showVariablerSetartikelPreisAendernCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"lieferscheinpositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_LieferscheinpositionStuecklisteEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_LieferscheinpositionStuecklisteEdit.Id\"\n                }\n            }],\n            \"id\": \"lieferscheinpositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"lieferscheinpositionEditPopupOptions\",\n                \"optionsNameFQ\": \"lieferscheinpositionEditPopupOptions\"\n            },\n            \"caption\": \"lieferscheinposition-edit.lieferscheinpositioneditpopup_caption\",\n            \"width\": \"85%\",\n            \"commands\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"lieferscheingruppeEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_LieferscheingruppeEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_LieferscheingruppeEdit.Id\"\n                }\n            }],\n            \"id\": \"lieferscheingruppeEditPopup\",\n            \"options\": {\n                \"optionsName\": \"lieferscheingruppeEditPopupOptions\",\n                \"optionsNameFQ\": \"lieferscheingruppeEditPopupOptions\"\n            },\n            \"caption\": \"lieferscheinposition-edit.lieferscheingruppeeditpopup_caption\",\n            \"height\": \"500px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_LieferscheinpositionEditUtils\", $f_LieferscheinpositionEditUtils, \"functions.$f_LieferscheinpositionEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"lieferscheinposition-edit.r_mengesollverpeh_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.MengeSollVerpEH\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mengeSollVerpEH\",\n            \"options\": {\n                \"optionsName\": \"r_mengeSollVerpEHOptions\",\n                \"optionsNameFQ\": \"r_mengeSollVerpEHOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"artikelEinheit\",\n            \"filter\": [\n                [\"IdArtikel\", {\n                    \"isBound\": true,\n                    \"expression\": \"models.data.$m_Lieferscheinposition.IdArtikel\"\n                }],\n                [\"IsVerkaufseinheit\", true]\n            ],\n            \"filters\": [],\n            \"caption\": \"lieferscheinposition-edit.r_einheit_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"IdEinheit\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.IdEinheit\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_LieferscheinpositionEditUtils.onReloadStuecklistenkomponentenChanged\",\n            \"id\": \"r_einheit\",\n            \"options\": {\n                \"optionsName\": \"r_einheitOptions\",\n                \"optionsNameFQ\": \"r_einheitOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_liefpPosNr\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpposnr_caption\",\n                \"bindTo\": \"PosNr\",\n                \"width\": \"40px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_liefpArtikelNr\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpartikelnr_caption\",\n                \"bindTo\": \"Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_liefpBezeichnung\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpbezeichnung_caption\",\n                \"bindTo\": \"Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_liefpMengeSollVerpEH\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpmengesollverpeh_caption\",\n                \"bindTo\": \"MengeSollVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpMengeIstVerpEH\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpmengeistverpeh_caption\",\n                \"bindTo\": \"MengeIstVerpEH\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpEinheit\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpeinheit_caption\",\n                \"bindTo\": \"Einheit.Einheit.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_liefpWertNetto\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpWertSteuer\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpwertsteuer_caption\",\n                \"bindTo\": \"KalkulationContainer.WertSteuer\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_liefpWertBrutto\",\n                \"caption\": \"lieferscheinposition-edit.r_liefpwertbrutto_caption\",\n                \"bindTo\": \"KalkulationContainer.WertBrutto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_lieferscheinpositionStuecklistenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionStuecklistenGridToolbarOptions\"\n            },\n            \"caption\": \"lieferscheinposition-edit.r_lieferscheinpositionstuecklistengrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_LieferscheinpositionStuecklisteRel\",\n                \"bindTo\": \"IdSetartikelLieferscheinposition\",\n                \"bindToFQ\": \"models.data.$m_LieferscheinpositionStuecklisteRel.IdSetartikelLieferscheinposition\"\n            },\n            \"dataModel\": \"$m_Lieferscheinposition\",\n            \"editDataContext\": \"$m_LieferscheinpositionStuecklisteEdit\",\n            \"idEditPopup\": \"lieferscheinpositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_lieferscheinpositionStuecklistenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheinpositionStuecklistenGridOptions\",\n                \"optionsNameFQ\": \"r_lieferscheinpositionStuecklistenGridOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lieferscheingruppe\",\n            \"filter\": [\"IdLieferschein\", {\n                \"isBound\": true,\n                \"expression\": \"models.data.$m_Lieferscheinposition.IdLieferschein\"\n            }],\n            \"filters\": [],\n            \"caption\": \"lieferscheinposition-edit.r_lieferscheingruppe_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"IdLieferscheingruppe\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.IdLieferscheingruppe\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_LieferscheinpositionEditUtils.onLieferscheingruppeChanged\",\n            \"id\": \"r_lieferscheingruppe\",\n            \"options\": {\n                \"optionsName\": \"r_lieferscheingruppeOptions\",\n                \"optionsNameFQ\": \"r_lieferscheingruppeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferscheinposition-edit.r_posnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"PosNr\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.PosNr\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_posNr\",\n            \"options\": {\n                \"optionsName\": \"r_posNrOptions\",\n                \"optionsNameFQ\": \"r_posNrOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"positionsart\",\n            \"filters\": [],\n            \"caption\": \"lieferscheinposition-edit.r_positionsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"IdPositionsart\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.IdPositionsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_positionsart\",\n            \"options\": {\n                \"optionsName\": \"r_positionsartOptions\",\n                \"optionsNameFQ\": \"r_positionsartOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"lagerVerkauf\",\n            \"filters\": [],\n            \"caption\": \"lieferscheinposition-edit.r_lieferlager_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"IdLieferlager\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.IdLieferlager\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_lieferlager\",\n            \"options\": {\n                \"optionsName\": \"r_lieferlagerOptions\",\n                \"optionsNameFQ\": \"r_lieferlagerOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferscheinposition-edit.r_gewichtnetto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"GewichtNetto\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.GewichtNetto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtNetto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtNettoOptions\",\n                \"optionsNameFQ\": \"r_gewichtNettoOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferscheinposition-edit.r_gewichtverpackung_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"GewichtVerpackung\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.GewichtVerpackung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtVerpackung\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtVerpackungOptions\",\n                \"optionsNameFQ\": \"r_gewichtVerpackungOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"lieferscheinposition-edit.r_gewichtbrutto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Lieferscheinposition\",\n                \"bindTo\": \"GewichtBrutto\",\n                \"bindToFQ\": \"models.data.$m_Lieferscheinposition.GewichtBrutto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_gewichtBrutto\",\n            \"options\": {\n                \"optionsName\": \"r_gewichtBruttoOptions\",\n                \"optionsNameFQ\": \"r_gewichtBruttoOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./lieferscheinposition-edit-form\\\"></require> <require from=\\\"./lieferscheingruppe-edit-form\\\"></require> <require from=\\\"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"lieferscheinpositionEditPopupOptions\\\" view-model.ref=\\\"lieferscheinpositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <lieferscheinposition-edit-form view-model.ref=\\\"lieferscheinpositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></lieferscheinposition-edit-form> </dx-template> </dx-widget> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"lieferscheingruppeEditPopupOptions\\\" view-model.ref=\\\"lieferscheingruppeEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <lieferscheingruppe-edit-form view-model.ref=\\\"lieferscheingruppeEditPopupContent\\\" is-edit-popup=\\\"true\\\"></lieferscheingruppe-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <variabler-setartikel-preis-aendern view-model.ref=\\\"r_variablerSetartikelPreisAendernElement\\\"></variabler-setartikel-preis-aendern> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <artikel bezeichnung.bind=\\\"models.data.$m_Lieferscheinposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" id-artikel.bind=\\\"models.data.$m_Lieferscheinposition.IdArtikel\\\" id-artikel-changed.delegate=\\\"functions.$f_LieferscheinpositionEditUtils.idArtikelChanged($event)\\\" is-read-only.bind=\\\"models.data.$m_Lieferscheinposition.Id > 0\\\" main-model.bind=\\\"models.data.$m_Lieferscheinposition\\\" where.bind=\\\"['Status.Typ', 0]\\\"></artikel> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_mengesollverpeh_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mengeSollVerpEHOptions\\\" view-model.ref=\\\"r_mengeSollVerpEH\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_mengeistverpeh_caption\\\"></div> <mhd-charge-menge-ausw view-model.ref=\\\"r_mengeIstVerpEH\\\" main-model.bind=\\\"models.data.$m_Lieferscheinposition\\\" id-artikel.bind=\\\"models.data.$m_Lieferscheinposition.IdArtikel\\\" menge-property=\\\"MengeIstVerpEH\\\" id-einheit.bind=\\\"models.data.$m_Lieferscheinposition.IdEinheit\\\" id-lager.bind=\\\"models.data.$m_Lieferscheinposition.IdLieferlager\\\" menge-ziel.bind=\\\"models.data.$m_Lieferscheinposition.MengeSollVerpEH\\\" is-read-only.bind=\\\"models.data.$m_Lieferscheinposition.IsVariablerSetartikel\\\" is-mhd-charge-lager-deaktiviert.bind=\\\"models.data.$m_Lieferscheinposition.Lager.IsMHDChargeDeaktiviert\\\"></mhd-charge-menge-ausw> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_einheit_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_einheitOptions\\\" view-model.ref=\\\"r_einheit\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Lieferscheinposition.Id > 0 && models.data.$m_Lieferscheinposition.Auftragsposition.IsSetartikel\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferscheinposition-edit.r_groupstuecklisten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_lieferscheinpositionStuecklistenGridOptions\\\" view-model.ref=\\\"r_lieferscheinpositionStuecklistenGrid\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferscheinposition-edit.r_groupweitereeinstellungen_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" if.bind=\\\"functions.$f_LieferscheinpositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_lieferscheingruppe_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferscheingruppeOptions\\\" view-model.ref=\\\"r_lieferscheingruppe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_posnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_posNrOptions\\\" view-model.ref=\\\"r_posNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false || models.data.$m_Lieferscheinposition.IsPositionVariableStuecklistenkomponente\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_positionsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_positionsartOptions\\\" view-model.ref=\\\"r_positionsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_lieferlager_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_lieferlagerOptions\\\" view-model.ref=\\\"r_lieferlager\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_gewichtnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtNettoOptions\\\" view-model.ref=\\\"r_gewichtNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_gewichtverpackung_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtVerpackungOptions\\\" view-model.ref=\\\"r_gewichtVerpackung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: lieferscheinposition-edit.r_gewichtbrutto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_gewichtBruttoOptions\\\" view-model.ref=\\\"r_gewichtBrutto\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\" show.bind=\\\"models.data.$m_Lieferscheinposition.IsPositionStuecklistenkomponente == false\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: lieferscheinposition-edit.r_groupkalkulation_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <kalkulation view-model.ref=\\\"r_kalkulation\\\" datum.bind=\\\"models.data.$m_Lieferschein.Preisdatum\\\" id-artikel.bind=\\\"models.data.$m_Lieferscheinposition.IdArtikel\\\" id-berechnungsversion.bind=\\\"models.data.$m_Lieferschein.IdBerechnungsversion\\\" id-kunde.bind=\\\"models.data.$m_Lieferschein.IdKunde\\\" main-model.bind=\\\"models.data.$m_Lieferscheinposition\\\" menge-verp-eh.bind=\\\"models.data.$m_Lieferscheinposition.MengeVerpEH\\\" id-artikel-einheit.bind=\\\"models.data.$m_Lieferscheinposition.IdEinheit\\\" id-filiale.bind=\\\"models.data.$m_Lieferschein.IdLieferfiliale\\\" id-lager.bind=\\\"models.data.$m_Lieferschein.IdLieferlager\\\" is-from-webshop.bind=\\\"models.data.$m_Lieferschein.IsFromWebshop\\\" is-gratis.bind=\\\"models.data.$m_Lieferscheinposition.IsGratis\\\" id-waehrung.bind=\\\"models.data.$m_Lieferschein.IdWaehrung\\\" steuersatz.bind=\\\"models.data.$m_Lieferscheinposition.Steuersatz\\\" id-firma.bind=\\\"models.data.$m_Lieferschein.IdFirma\\\" type-name=\\\"TIP.ERP.Business.Entitaeten.Verkauf.Lieferscheinposition\\\" id-kopf.bind=\\\"models.data.$m_Lieferscheinposition.IdLieferschein\\\" id-pos.bind=\\\"models.data.$m_Lieferscheinposition.Id\\\" is-read-only.bind=\\\"models.data.$m_Lieferscheinposition.IsVariablerSetartikel\\\"></kalkulation> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainer\\\" id-main-model=\\\"$m_Lieferscheinposition\\\" is-default.bind=\\\"true\\\"></dyn-feld-container> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    MahnungEditUtils\n} from \"./mahnung-edit-utils\";\n\n@fwx.autoinject\nexport class MahnungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_MahnungEditUtils: MahnungEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"mahnung-edit\";\n        this.title = \"mahnung-edit.mahnung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Mahnung\",\n            \"webApiAction\": \"ERP/Verkauf/Mahnung\",\n            \"webApiExpand\": {\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_MahnungspositionRel\",\n            \"webApiAction\": \"ERP/Verkauf/Mahnungsposition\",\n            \"webApiExpand\": {\n                'Faktura': {\n                    'expand': {\n                        'Status': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_MahnungEditUtils.doMahnungVersenden\",\n                \"bindToFQ\": \"functions.$f_MahnungEditUtils.doMahnungVersenden\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_MahnungEditUtils\", $f_MahnungEditUtils, \"functions.$f_MahnungEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"mahnung-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"mahnung-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.IdStatus\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"mahnung-edit.r_datum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"Datum\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.Datum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"mahnung-edit.r_betragoffen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"BetragOffen\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.BetragOffen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragOffen\",\n            \"options\": {\n                \"optionsName\": \"r_betragOffenOptions\",\n                \"optionsNameFQ\": \"r_betragOffenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"mahnung-edit.r_zinsen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"Zinsen\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.Zinsen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zinsen\",\n            \"options\": {\n                \"optionsName\": \"r_zinsenOptions\",\n                \"optionsNameFQ\": \"r_zinsenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"mahnung-edit.r_spesen_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"Mahnspesen\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.Mahnspesen\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_spesen\",\n            \"options\": {\n                \"optionsName\": \"r_spesenOptions\",\n                \"optionsNameFQ\": \"r_spesenOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n0\",\n            \"caption\": \"mahnung-edit.r_mahnstufe_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"MaxMahnstufe\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.MaxMahnstufe\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_mahnstufe\",\n            \"options\": {\n                \"optionsName\": \"r_mahnstufeOptions\",\n                \"optionsNameFQ\": \"r_mahnstufeOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"mahnung-edit.r_betraggesamt_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"BetragGesamt\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.BetragGesamt\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_betragGesamt\",\n            \"options\": {\n                \"optionsName\": \"r_betragGesamtOptions\",\n                \"optionsNameFQ\": \"r_betragGesamtOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"mahnung-edit.r_waehrung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"benutzer\",\n            \"filters\": [],\n            \"caption\": \"mahnung-edit.r_sachbearbeiter_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\",\n                \"bindTo\": \"IdSachbearbeiter\",\n                \"bindToFQ\": \"models.data.$m_Mahnung.IdSachbearbeiter\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_sachbearbeiter\",\n            \"options\": {\n                \"optionsName\": \"r_sachbearbeiterOptions\",\n                \"optionsNameFQ\": \"r_sachbearbeiterOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_mahnposFakturaNummer\",\n                \"caption\": \"mahnung-edit.r_mahnposfakturanummer_caption\",\n                \"bindTo\": \"Faktura.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_mahnposFakturaDatum\",\n                \"caption\": \"mahnung-edit.r_mahnposfakturadatum_caption\",\n                \"bindTo\": \"Faktura.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_mahnposFakturaFaelligkeit\",\n                \"caption\": \"mahnung-edit.r_mahnposfakturafaelligkeit_caption\",\n                \"bindTo\": \"Faktura.ZahlungFaelligkeit\",\n                \"width\": \"90px\",\n                \"sortOrder\": \"asc\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_mahnposBetragOffen\",\n                \"caption\": \"mahnung-edit.r_mahnposbetragoffen_caption\",\n                \"bindTo\": \"BetragOffen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnposZinsen\",\n                \"caption\": \"mahnung-edit.r_mahnposzinsen_caption\",\n                \"bindTo\": \"Zinsen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnposMahnstufe\",\n                \"caption\": \"mahnung-edit.r_mahnposmahnstufe_caption\",\n                \"bindTo\": \"Mahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_mahnposTageVerzug\",\n                \"caption\": \"mahnung-edit.r_mahnpostageverzug_caption\",\n                \"bindTo\": \"TageVerzug\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_mahnposStatus\",\n                \"caption\": \"mahnung-edit.r_mahnposstatus_caption\",\n                \"bindTo\": \"Faktura.Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_mahnpositionenGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_mahnpositionenGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_MahnungspositionRel\",\n                \"bindTo\": \"IdMahnung\",\n                \"bindToFQ\": \"models.data.$m_MahnungspositionRel.IdMahnung\"\n            },\n            \"dataModel\": \"$m_Mahnung\",\n            \"editUrl\": \"ERP/Verkauf/Faktura\",\n            \"editUrlIdProperty\": \"IdFaktura\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_mahnpositionenGrid\",\n            \"options\": {\n                \"optionsName\": \"r_mahnpositionenGridOptions\",\n                \"optionsNameFQ\": \"r_mahnpositionenGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: mahnung-edit.r_mahnkopfdaten_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_betragoffen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragOffenOptions\\\" view-model.ref=\\\"r_betragOffen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_zinsen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_zinsenOptions\\\" view-model.ref=\\\"r_zinsen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_spesen_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_spesenOptions\\\" view-model.ref=\\\"r_spesen\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_mahnstufe_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_mahnstufeOptions\\\" view-model.ref=\\\"r_mahnstufe\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_betraggesamt_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragGesamtOptions\\\" view-model.ref=\\\"r_betragGesamt\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_sachbearbeiter_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_sachbearbeiterOptions\\\" view-model.ref=\\\"r_sachbearbeiter\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: mahnung-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Mahnung\\\" web-api-action=\\\"ERP/Verkauf/Mahnung\\\"></tags> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: mahnung-edit.r_mahnrechnungsort_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_rechnungsort\\\" validation-field-name=\\\"Rechnungsort\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Mahnung.IdRechnungsort\\\" id-adresse.bind=\\\"models.data.$m_Mahnung.IdRechnungsortAdresse\\\" id-ansprechperson.bind=\\\"models.data.$m_Mahnung.IdRechnungsortAnsprechperson\\\" person-typ.bind=\\\"3\\\" show-ansprechperson.bind=\\\"true\\\" main-model.bind=\\\"models.data.$m_Mahnung\\\" adresse-property-name=\\\"RechnungsortAdresse\\\" is-read-only.bind=\\\"true\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_MahnungEditUtils.dynFelderData\\\"></dyn-feld-container> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_mahnpositionenGridOptions\\\" view-model.ref=\\\"r_mahnpositionenGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    MahnungListUtils\n} from \"./mahnung-list-utils\";\n\n@fwx.autoinject\nexport class MahnungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_MahnungListUtils: MahnungListUtils) {\n        super(element, formBaseImport);\n        this.id = \"mahnung-list\";\n        this.title = \"mahnung-list.mahnung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Mahnung\",\n            \"webApiAction\": \"ERP/Verkauf/Mahnung\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Status': null,\n                'Rechnungsort': null,\n                'Waehrung': null,\n                'RechnungsortAdresse': {\n                    'expand': {\n                        'Land': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true,\n                'addTagToDataGrids': [\n                    'r_mahnungGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_MahnungListUtils.doMahnungErstellen\",\n                \"bindToFQ\": \"functions.$f_MahnungListUtils.doMahnungErstellen\"\n            }\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_MahnungListUtils.doMahnungenVersenden\",\n                \"bindToFQ\": \"functions.$f_MahnungListUtils.doMahnungenVersenden\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_MahnungListUtils\", $f_MahnungListUtils, \"functions.$f_MahnungListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_mahnFirma\",\n                \"caption\": \"mahnung-list.r_mahnfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_mahnDatum\",\n                \"caption\": \"mahnung-list.r_mahndatum_caption\",\n                \"bindTo\": \"Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_mahnKundennr\",\n                \"caption\": \"mahnung-list.r_mahnkundennr_caption\",\n                \"bindTo\": \"Rechnungsort.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_mahnFirmenbez1\",\n                \"caption\": \"mahnung-list.r_mahnfirmenbez1_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_mahnStrasse\",\n                \"caption\": \"mahnung-list.r_mahnstrasse_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Strasse\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_mahnLand\",\n                \"caption\": \"mahnung-list.r_mahnland_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Land.Bezeichnung\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_mahnOrt\",\n                \"caption\": \"mahnung-list.r_mahnort_caption\",\n                \"bindTo\": \"RechnungsortAdresse.Ort\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_mahnBetragOffen\",\n                \"caption\": \"mahnung-list.r_mahnbetragoffen_caption\",\n                \"bindTo\": \"BetragOffen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnZinsen\",\n                \"caption\": \"mahnung-list.r_mahnzinsen_caption\",\n                \"bindTo\": \"Zinsen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMahnspesen\",\n                \"caption\": \"mahnung-list.r_mahnmahnspesen_caption\",\n                \"bindTo\": \"Mahnspesen\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_mahnMaxMahnstufe\",\n                \"caption\": \"mahnung-list.r_mahnmaxmahnstufe_caption\",\n                \"bindTo\": \"MaxMahnstufe\",\n                \"width\": \"80px\",\n                \"format\": \"n0\"\n            }, {\n                \"id\": \"r_mahnWaehrung\",\n                \"caption\": \"mahnung-list.r_mahnwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }, {\n                \"id\": \"r_mahnStatus\",\n                \"caption\": \"mahnung-list.r_mahnstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_mahnungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_mahnungGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Mahnung\"\n            },\n            \"dataModel\": \"$m_Mahnung\",\n            \"editUrl\": \"ERP/Verkauf/Mahnung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_mahnungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_mahnungGridOptions\",\n                \"optionsNameFQ\": \"r_mahnungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_mahnungGridOptions\\\" view-model.ref=\\\"r_mahnungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ProvisionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"provision-edit\";\n        this.title = \"provision-edit.provision-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Provision\",\n            \"webApiAction\": \"ERP/Provision/Provision\",\n            \"webApiExpand\": {\n                'Vertreter': null,\n                'Firma': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ProvisionspositionRel\",\n            \"webApiAction\": \"ERP/Provision/Provisionsposition\",\n            \"webApiExpand\": {\n                'Fakturaposition': {\n                    'columns': [\n                        'Id',\n                        'IdFaktura',\n                        'Bezeichnung',\n                        'IdArtikel'\n                    ],\n                    'expand': {\n                        'Faktura': {\n                            'columns': [\n                                'Id',\n                                'IdRechnungsortAdresse',\n                                'Nummer',\n                                'Datum'\n                            ],\n                            'expand': {\n                                'RechnungsortAdresse': {\n                                    'columns': [\n                                        'Firmenbez1',\n                                        'Ort'\n                                    ]\n                                }\n                            }\n                        },\n                        'Artikel': {\n                            'columns': [\n                                'Id',\n                                'Nummer'\n                            ]\n                        }\n                    }\n                },\n                'Vertreter': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_ProvisionspositionEdit\",\n            \"webApiAction\": \"ERP/Provision/Provisionsposition\",\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addEditPopup({\n            \"idContent\": \"provisionspositionEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_ProvisionspositionEdit\",\n                    \"bindTo\": \"Id\",\n                    \"bindToFQ\": \"models.data.$m_ProvisionspositionEdit.Id\"\n                }\n            }],\n            \"id\": \"provisionspositionEditPopup\",\n            \"options\": {\n                \"optionsName\": \"provisionspositionEditPopupOptions\",\n                \"optionsNameFQ\": \"provisionspositionEditPopupOptions\"\n            },\n            \"caption\": \"provision-edit.provisionspositioneditpopup_caption\",\n            \"height\": \"750px\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"provision-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_Provision.Firma.Bezeichnung\",\n                \"propertyPrefix\": \"Firma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"provision-edit.r_wertnetto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\",\n                \"bindTo\": \"WertNetto\",\n                \"bindToFQ\": \"models.data.$m_Provision.WertNetto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertNetto\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoOptions\",\n                \"optionsNameFQ\": \"r_wertNettoOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"provision-edit.r_bis_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\",\n                \"bindTo\": \"Bis\",\n                \"bindToFQ\": \"models.data.$m_Provision.Bis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_bis\",\n            \"options\": {\n                \"optionsName\": \"r_bisOptions\",\n                \"optionsNameFQ\": \"r_bisOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"provision-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_Provision.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"showFilterRow\": true,\n            \"columns\": [{\n                \"id\": \"r_provposFakturaNr\",\n                \"caption\": \"provision-edit.r_provposfakturanr_caption\",\n                \"bindTo\": \"Fakturaposition.Faktura.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_provposFakturaDatum\",\n                \"caption\": \"provision-edit.r_provposfakturadatum_caption\",\n                \"bindTo\": \"Fakturaposition.Faktura.Datum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_provposRechnungsortFirmenbez1\",\n                \"caption\": \"provision-edit.r_provposrechnungsortfirmenbez1_caption\",\n                \"bindTo\": \"Fakturaposition.Faktura.RechnungsortAdresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_provposRechnungsortOrt\",\n                \"caption\": \"provision-edit.r_provposrechnungsortort_caption\",\n                \"bindTo\": \"Fakturaposition.Faktura.RechnungsortAdresse.Ort\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_provposArtikelNr\",\n                \"caption\": \"provision-edit.r_provposartikelnr_caption\",\n                \"bindTo\": \"Fakturaposition.Artikel.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_provposArtikelBezeichnung\",\n                \"caption\": \"provision-edit.r_provposartikelbezeichnung_caption\",\n                \"bindTo\": \"Fakturaposition.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_provposBasis\",\n                \"caption\": \"provision-edit.r_provposbasis_caption\",\n                \"bindTo\": \"Basis\",\n                \"width\": \"100px\",\n                \"format\": \"n4\"\n            }, {\n                \"id\": \"r_provposMultiplikator\",\n                \"caption\": \"provision-edit.r_provposmultiplikator_caption\",\n                \"bindTo\": \"Multiplikator\",\n                \"width\": \"100px\",\n                \"format\": \"n4\"\n            }, {\n                \"id\": \"r_provposWertNetto\",\n                \"caption\": \"provision-edit.r_provposwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }],\n            \"createToolbar\": true,\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_provisionspositionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_provisionspositionGridToolbarOptions\"\n            },\n            \"caption\": \"provision-edit.r_provisionspositiongrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\"\n            },\n            \"isRelation\": true,\n            \"relationBinding\": {\n                \"dataContext\": \"$m_ProvisionspositionRel\",\n                \"bindTo\": \"IdProvision\",\n                \"bindToFQ\": \"models.data.$m_ProvisionspositionRel.IdProvision\"\n            },\n            \"dataModel\": \"$m_Provision\",\n            \"editDataContext\": \"$m_ProvisionspositionEdit\",\n            \"idEditPopup\": \"provisionspositionEditPopup\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_provisionspositionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_provisionspositionGridOptions\",\n                \"optionsNameFQ\": \"r_provisionspositionGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"./provisionsposition-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"provisionspositionEditPopupOptions\\\" view-model.ref=\\\"provisionspositionEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <provisionsposition-edit-form view-model.ref=\\\"provisionspositionEditPopupContent\\\" is-edit-popup=\\\"true\\\"></provisionsposition-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: provision-edit.r_groupadresse_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <adresse view-model.ref=\\\"r_adresseElement\\\" id-adresse.bind=\\\"models.data.$m_Provision.Vertreter.IdAdresse\\\" adresse-property-name=\\\"Adresse\\\" main-model.bind=\\\"models.data.$m_Provision\\\" is-adresse-read-only.bind=\\\"true\\\"></adresse> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-2 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-edit.r_wertnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoOptions\\\" view-model.ref=\\\"r_wertNetto\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-edit.r_bis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_bisOptions\\\" view-model.ref=\\\"r_bis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-edit.r_tags_caption\\\"></div> <tags view-model.ref=\\\"r_tags\\\" main-model.bind=\\\"models.data.$m_Provision\\\" web-api-action=\\\"ERP/Verkauf/Provision\\\"></tags> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\"> <toolbar class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"r_provisionspositionGridToolbarOptions\\\"></toolbar> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_provisionspositionGridOptions\\\" view-model.ref=\\\"r_provisionspositionGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\nimport {\n    ProvisionListUtils\n} from \"./provision-list-utils\";\n\n@fwx.autoinject\nexport class ProvisionListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService,\n        private $f_ProvisionListUtils: ProvisionListUtils) {\n        super(element, formBaseImport);\n        this.id = \"provision-list\";\n        this.title = \"provision-list.provision-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Provision\",\n            \"webApiAction\": \"ERP/Provision/Provision\",\n            \"webApiExpand\": {\n                'Vertreter': {\n                    'expand': {\n                        'Adresse': {\n                            'expand': {\n                                'Land': null\n                            }\n                        }\n                    }\n                },\n                'Status': null,\n                'Firma': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addTagToDataGrids': [\n                    'r_provisionGrid'\n                ]\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ProvisionListUtils.provisionBerechnenCommand\",\n                \"bindToFQ\": \"functions.$f_ProvisionListUtils.provisionBerechnenCommand\"\n            }\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.addFunction(\"$f_ProvisionListUtils\", $f_ProvisionListUtils, \"functions.$f_ProvisionListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_provFirma\",\n                \"caption\": \"provision-list.r_provfirma_caption\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_provFirmenbez1\",\n                \"caption\": \"provision-list.r_provfirmenbez1_caption\",\n                \"bindTo\": \"Vertreter.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_provBis\",\n                \"caption\": \"provision-list.r_provbis_caption\",\n                \"bindTo\": \"Bis\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_provWertNetto\",\n                \"caption\": \"provision-list.r_provwertnetto_caption\",\n                \"bindTo\": \"WertNetto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\",\n                \"showTotalAggSum\": true\n            }, {\n                \"id\": \"r_provStatus\",\n                \"caption\": \"provision-list.r_provstatus_caption\",\n                \"bindTo\": \"Status.Bezeichnung\",\n                \"width\": \"120px\",\n                \"onCellPrepared\": \"functions.$f_StatusService.onCellPrepared\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_provisionGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_provisionGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Provision\"\n            },\n            \"dataModel\": \"$m_Provision\",\n            \"editUrl\": \"ERP/Provision/Provision\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_provisionGrid\",\n            \"options\": {\n                \"optionsName\": \"r_provisionGridOptions\",\n                \"optionsNameFQ\": \"r_provisionGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_provisionBerechnenBisPopup\",\n            \"options\": {\n                \"optionsName\": \"r_provisionBerechnenBisPopupOptions\",\n                \"optionsNameFQ\": \"r_provisionBerechnenBisPopupOptions\"\n            },\n            \"caption\": \"provision-list.r_provisionberechnenbispopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_ProvisionListUtils.doProvisionBerechnenCommand\",\n                    \"bindToFQ\": \"functions.$f_ProvisionListUtils.doProvisionBerechnenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"provision-list.r_fakturenbis_caption\",\n            \"binding\": {},\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_fakturenBis\",\n            \"options\": {\n                \"optionsName\": \"r_fakturenBisOptions\",\n                \"optionsNameFQ\": \"r_fakturenBisOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"provision-list.r_firmaselectbox_caption\",\n            \"binding\": {},\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firmaSelectBox\",\n            \"options\": {\n                \"optionsName\": \"r_firmaSelectBoxOptions\",\n                \"optionsNameFQ\": \"r_firmaSelectBoxOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_provisionGridOptions\\\" view-model.ref=\\\"r_provisionGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_provisionBerechnenBisPopupOptions\\\" view-model.ref=\\\"r_provisionBerechnenBisPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-list.r_fakturenbis_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_fakturenBisOptions\\\" view-model.ref=\\\"r_fakturenBis\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provision-list.r_firmaselectbox_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaSelectBoxOptions\\\" view-model.ref=\\\"r_firmaSelectBox\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ProvisionspositionEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"provisionsposition-edit\";\n        this.title = \"provisionsposition-edit.provisionsposition-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Provisionsposition\",\n            \"webApiAction\": \"ERP/Provision/Provisionsposition\",\n            \"webApiExpand\": {\n                'Fakturaposition': {\n                    'expand': {\n                        'Faktura': {\n                            'expand': {\n                                'RechnungsortAdresse': null\n                            }\n                        },\n                        'Artikel': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addVariable({\n            \"id\": \"$id\"\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"provisionsposition-edit.r_fakturanummer_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsposition\",\n                \"bindTo\": \"Fakturaposition.Faktura.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Provisionsposition.Fakturaposition.Faktura.Nummer\",\n                \"propertyPrefix\": \"Fakturaposition.Faktura\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fakturaNummer\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaNummerOptions\",\n                \"optionsNameFQ\": \"r_fakturaNummerOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"provisionsposition-edit.r_fakturadatum_caption\",\n            \"isReadOnly\": true,\n            \"isReadOnlyExpression\": \"models.data.$m_Provisionsposition.Fakturaposition.Faktura.Nummer\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsposition\",\n                \"bindTo\": \"Fakturaposition.Faktura.Datum\",\n                \"bindToFQ\": \"models.data.$m_Provisionsposition.Fakturaposition.Faktura.Datum\",\n                \"propertyPrefix\": \"Fakturaposition.Faktura\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fakturaDatum\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaDatumOptions\",\n                \"optionsNameFQ\": \"r_fakturaDatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n4\",\n            \"caption\": \"provisionsposition-edit.r_basis_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsposition\",\n                \"bindTo\": \"Basis\",\n                \"bindToFQ\": \"models.data.$m_Provisionsposition.Basis\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_basis\",\n            \"options\": {\n                \"optionsName\": \"r_basisOptions\",\n                \"optionsNameFQ\": \"r_basisOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"min\": 0.0,\n            \"format\": \"n4\",\n            \"caption\": \"provisionsposition-edit.r_multiplikator_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsposition\",\n                \"bindTo\": \"Multiplikator\",\n                \"bindToFQ\": \"models.data.$m_Provisionsposition.Multiplikator\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_multiplikator\",\n            \"options\": {\n                \"optionsName\": \"r_multiplikatorOptions\",\n                \"optionsNameFQ\": \"r_multiplikatorOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"provisionsposition-edit.r_wertnetto_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Provisionsposition\",\n                \"bindTo\": \"WertNetto\",\n                \"bindToFQ\": \"models.data.$m_Provisionsposition.WertNetto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_wertNetto\",\n            \"options\": {\n                \"optionsName\": \"r_wertNettoOptions\",\n                \"optionsNameFQ\": \"r_wertNettoOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-8 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsposition-edit.r_fakturanummer_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_fakturaNummerOptions\\\" view-model.ref=\\\"r_fakturaNummer\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-4 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsposition-edit.r_fakturadatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_fakturaDatumOptions\\\" view-model.ref=\\\"r_fakturaDatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <adresse view-model.ref=\\\"r_adresseElement\\\" main-model.bind=\\\"models.data.$m_Provisionsposition\\\" id-adresse.bind=\\\"models.data.$m_Provisionsposition.Fakturaposition.Faktura.IdRechnungsortAdresse\\\" is-adresse-read-only.bind=\\\"true\\\" adresse-property-name=\\\"Adresse\\\"></adresse> </div> <div class=\\\"col-xs-12\\\"> <artikel view-model.ref=\\\"r_artikelElement\\\" main-model.bind=\\\"models.data.$m_Provisionsposition\\\" id-artikel.bind=\\\"models.data.$m_Provisionsposition.Fakturaposition.IdArtikel\\\" bezeichnung.bind=\\\"models.data.$m_Provisionsposition.Fakturaposition.Bezeichnung\\\" has-own-bezeichnung.bind=\\\"true\\\" is-read-only.bind=\\\"true\\\"></artikel> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsposition-edit.r_basis_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_basisOptions\\\" view-model.ref=\\\"r_basis\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsposition-edit.r_multiplikator_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_multiplikatorOptions\\\" view-model.ref=\\\"r_multiplikator\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: provisionsposition-edit.r_wertnetto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_wertNettoOptions\\\" view-model.ref=\\\"r_wertNetto\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ZahlungEditUtils\n} from \"./zahlung-edit-utils\";\n\n@fwx.autoinject\nexport class ZahlungEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ZahlungEditUtils: ZahlungEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"zahlung-edit\";\n        this.title = \"zahlung-edit.zahlung-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Zahlung\",\n            \"webApiAction\": \"ERP/Verkauf/Zahlung\",\n            \"webApiExpand\": {\n                'Firma': null,\n                'Faktura': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                },\n                'Eingangsrechnung': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                },\n                'KassaBeleg': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"filters\": []\n        });\n        this.addModel({\n            \"id\": \"$m_Firma\",\n            \"webApiAction\": \"ERP/Stammdaten/Firma\",\n            \"webApiExpand\": {\n                'Waehrung': null,\n                'Adresse': null\n            },\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f_ZahlungEditUtils\", $f_ZahlungEditUtils, \"functions.$f_ZahlungEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"zahlung-edit.r_firma_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Zahlung.Faktura != null || models.data.$m_Zahlung.Eingangsrechnung != null\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"zahlungTyp\",\n            \"filters\": [],\n            \"caption\": \"zahlung-edit.r_zahlungtyp_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Zahlung.Faktura != null || models.data.$m_Zahlung.Eingangsrechnung != null\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Typ\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_zahlungTyp\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungTypOptions\",\n                \"optionsNameFQ\": \"r_zahlungTypOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"zahlungsart\",\n            \"filters\": [],\n            \"caption\": \"zahlung-edit.r_zahlungsart_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"IdZahlungsart\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.IdZahlungsart\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_zahlungsart\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungsartOptions\",\n                \"optionsNameFQ\": \"r_zahlungsartOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"zahlung-edit.r_fakturanr_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Faktura.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Faktura.Nummer\",\n                \"propertyPrefix\": \"Faktura\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fakturaNr\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaNrOptions\",\n                \"optionsNameFQ\": \"r_fakturaNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlung-edit.r_fakturadatum_caption\",\n            \"isReadOnly\": true,\n            \"isReadOnlyExpression\": \"models.data.$m_Zahlung.Faktura.Nummer\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Faktura.Datum\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Faktura.Datum\",\n                \"propertyPrefix\": \"Faktura\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_fakturaDatum\",\n            \"options\": {\n                \"optionsName\": \"r_fakturaDatumOptions\",\n                \"optionsNameFQ\": \"r_fakturaDatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"zahlung-edit.r_eingangsrechnungnr_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Eingangsrechnung.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Eingangsrechnung.Nummer\",\n                \"propertyPrefix\": \"Eingangsrechnung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_eingangsrechnungNr\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungNrOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlung-edit.r_eingangsrechnungdatum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Eingangsrechnung.Datum\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Eingangsrechnung.Datum\",\n                \"propertyPrefix\": \"Eingangsrechnung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_eingangsrechnungDatum\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungDatumOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungDatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"zahlung-edit.r_kassabelegnr_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"KassaBeleg.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.KassaBeleg.Nummer\",\n                \"propertyPrefix\": \"KassaBeleg\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kassaBelegNr\",\n            \"options\": {\n                \"optionsName\": \"r_kassaBelegNrOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlung-edit.r_kassabelegdatum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"KassaBeleg.Datum\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.KassaBeleg.Datum\",\n                \"propertyPrefix\": \"KassaBeleg\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_kassaBelegDatum\",\n            \"options\": {\n                \"optionsName\": \"r_kassaBelegDatumOptions\",\n                \"optionsNameFQ\": \"r_kassaBelegDatumOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 25,\n            \"caption\": \"zahlung-edit.r_belegnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"BelegNr\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.BelegNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 25\n                    }]\n                }\n            }],\n            \"id\": \"r_belegNr\",\n            \"options\": {\n                \"optionsName\": \"r_belegNrOptions\",\n                \"optionsNameFQ\": \"r_belegNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlung-edit.r_belegdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Belegdatum\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Belegdatum\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_belegdatum\",\n            \"options\": {\n                \"optionsName\": \"r_belegdatumOptions\",\n                \"optionsNameFQ\": \"r_belegdatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"zahlung-edit.r_betrag_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Betrag\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Betrag\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_betrag\",\n            \"options\": {\n                \"optionsName\": \"r_betragOptions\",\n                \"optionsNameFQ\": \"r_betragOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"zahlung-edit.r_skonto_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Skonto\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Skonto\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_skonto\",\n            \"options\": {\n                \"optionsName\": \"r_skontoOptions\",\n                \"optionsNameFQ\": \"r_skontoOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"zahlung-edit.r_waehrung_caption\",\n            \"isReadOnlyExpression\": \"models.data.$m_Zahlung.Faktura != null || models.data.$m_Zahlung.Eingangsrechnung != null\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 250,\n            \"caption\": \"zahlung-edit.r_zahlungsgrund_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"Zahlungsgrund\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.Zahlungsgrund\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 250\n                    }]\n                }\n            }],\n            \"id\": \"r_zahlungsgrund\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungsgrundOptions\",\n                \"optionsNameFQ\": \"r_zahlungsgrundOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"zahlung-edit.r_betragfirma_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"BetragWaehrungFirma\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.BetragWaehrungFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_betragFirma\",\n            \"options\": {\n                \"optionsName\": \"r_betragFirmaOptions\",\n                \"optionsNameFQ\": \"r_betragFirmaOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"zahlung-edit.r_skontofirma_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\",\n                \"bindTo\": \"SkontoWaehrungFirma\",\n                \"bindToFQ\": \"models.data.$m_Zahlung.SkontoWaehrungFirma\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_skontoFirma\",\n            \"options\": {\n                \"optionsName\": \"r_skontoFirmaOptions\",\n                \"optionsNameFQ\": \"r_skontoFirmaOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: zahlung-edit.r_geschaeftspartnergroup_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner id-geschaeftspartner.bind=\\\"models.data.$m_Zahlung.IdGeschaeftspartner\\\" main-model.bind=\\\"models.data.$m_Zahlung\\\" is-read-only.bind=\\\"models.data.$m_Zahlung.Faktura != null || models.data.$m_Zahlung.Eingangsrechnung != null\\\"></geschaeftspartner> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_zahlungtyp_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_zahlungTypOptions\\\" view-model.ref=\\\"r_zahlungTyp\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_zahlungsart_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_zahlungsartOptions\\\" view-model.ref=\\\"r_zahlungsart\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"!models.data.$m_Zahlung.IdKassaBeleg\\\"> <projekt id-projekt.bind=\\\"models.data.$m_Zahlung.IdProjekt\\\" main-model.bind=\\\"models.data.$m_Zahlung\\\"></projekt> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Zahlung.IdFaktura\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_fakturanr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_fakturaNrOptions\\\" view-model.ref=\\\"r_fakturaNr\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_fakturadatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_fakturaDatumOptions\\\" view-model.ref=\\\"r_fakturaDatum\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Zahlung.IdEingangsrechnung\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_eingangsrechnungnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_eingangsrechnungNrOptions\\\" view-model.ref=\\\"r_eingangsrechnungNr\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_eingangsrechnungdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_eingangsrechnungDatumOptions\\\" view-model.ref=\\\"r_eingangsrechnungDatum\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Zahlung.IdKassaBeleg\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_kassabelegnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_kassaBelegNrOptions\\\" view-model.ref=\\\"r_kassaBelegNr\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_kassabelegdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_kassaBelegDatumOptions\\\" view-model.ref=\\\"r_kassaBelegDatum\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_belegnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_belegNrOptions\\\" view-model.ref=\\\"r_belegNr\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_belegdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_belegdatumOptions\\\" view-model.ref=\\\"r_belegdatum\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_betrag_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragOptions\\\" view-model.ref=\\\"r_betrag\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_skonto_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_skontoOptions\\\" view-model.ref=\\\"r_skonto\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_zahlungsgrund_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_zahlungsgrundOptions\\\" view-model.ref=\\\"r_zahlungsgrund\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"models.data.$m_Zahlung.IdWaehrung != models.data.$m_Zahlung.Firma.IdWaehrung\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_betragfirma_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_betragFirmaOptions\\\" view-model.ref=\\\"r_betragFirma\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlung-edit.r_skontofirma_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_skontoFirmaOptions\\\" view-model.ref=\\\"r_skontoFirma\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\n\n@fwx.autoinject\nexport class ZahlungListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport) {\n        super(element, formBaseImport);\n        this.id = \"zahlung-list\";\n        this.title = \"zahlung-list.zahlung-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Zahlung\",\n            \"webApiAction\": \"ERP/Verkauf/Zahlung\",\n            \"webApiExpand\": {\n                'Zahlungsart': null,\n                'Waehrung': null,\n                'Geschaeftspartner': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                },\n                'Faktura': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                },\n                'Eingangsrechnung': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                },\n                'KassaBeleg': {\n                    'columns': [\n                        'Id',\n                        'Nummer',\n                        'Datum'\n                    ]\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_zahlungTyp\",\n                \"caption\": \"zahlung-list.r_zahlungtyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.ZahlungTyp\"\n            }, {\n                \"id\": \"r_zahlungsart\",\n                \"caption\": \"zahlung-list.r_zahlungsart_caption\",\n                \"bindTo\": \"Zahlungsart.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_geschaeftspartner\",\n                \"caption\": \"zahlung-list.r_geschaeftspartner_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_fakturaNr\",\n                \"caption\": \"zahlung-list.r_fakturanr_caption\",\n                \"bindTo\": \"Faktura.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_fakturaDatum\",\n                \"caption\": \"zahlung-list.r_fakturadatum_caption\",\n                \"bindTo\": \"Faktura.Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_eingangsrechnungNr\",\n                \"caption\": \"zahlung-list.r_eingangsrechnungnr_caption\",\n                \"bindTo\": \"Eingangsrechnung.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_eingangsrechnungDatum\",\n                \"caption\": \"zahlung-list.r_eingangsrechnungdatum_caption\",\n                \"bindTo\": \"Eingangsrechnung.Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_kassabelegNr\",\n                \"caption\": \"zahlung-list.r_kassabelegnr_caption\",\n                \"bindTo\": \"KassaBeleg.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_kassabelegDatum\",\n                \"caption\": \"zahlung-list.r_kassabelegdatum_caption\",\n                \"bindTo\": \"KassaBeleg.Datum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_belegNr\",\n                \"caption\": \"zahlung-list.r_belegnr_caption\",\n                \"bindTo\": \"BelegNr\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_belegdatum\",\n                \"caption\": \"zahlung-list.r_belegdatum_caption\",\n                \"bindTo\": \"Belegdatum\",\n                \"width\": \"80px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_betrag\",\n                \"caption\": \"zahlung-list.r_betrag_caption\",\n                \"bindTo\": \"Betrag\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_skonto\",\n                \"caption\": \"zahlung-list.r_skonto_caption\",\n                \"bindTo\": \"Skonto\",\n                \"width\": \"80px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_waehrung\",\n                \"caption\": \"zahlung-list.r_waehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_zahlungGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_zahlungGridToolbarOptions\"\n            },\n            \"caption\": \"zahlung-list.r_zahlunggrid_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlung\"\n            },\n            \"dataModel\": \"$m_Zahlung\",\n            \"editUrl\": \"ERP/Verkauf/Zahlung\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_zahlungGrid\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungGridOptions\",\n                \"optionsNameFQ\": \"r_zahlungGridOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_zahlungGridOptions\\\" view-model.ref=\\\"r_zahlungGrid\\\"></dx-widget> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    StatusService\n} from \"../../../services/status-service\";\n\n@fwx.autoinject\nexport class ZahlungsverkehrSyncJobEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_StatusService: StatusService) {\n        super(element, formBaseImport);\n        this.id = \"zahlungsverkehr-sync-job-edit\";\n        this.title = \"zahlungsverkehr-sync-job-edit.zahlungsverkehr-sync-job-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_ZahlungsverkehrSyncJob\",\n            \"webApiAction\": \"ERP/Zahlungsverkehr/ZahlungsverkehrSyncJob\",\n            \"webApiExpand\": {\n                'Firma': {\n                    'columns': [\n                        'Id',\n                        'Bezeichnung'\n                    ]\n                },\n                'Status': null\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f_StatusService\", $f_StatusService, \"functions.$f_StatusService\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 100,\n            \"caption\": \"zahlungsverkehr-sync-job-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ZahlungsverkehrSyncJob\",\n                \"bindTo\": \"Firma.Bezeichnung\",\n                \"bindToFQ\": \"models.data.$m_ZahlungsverkehrSyncJob.Firma.Bezeichnung\",\n                \"propertyPrefix\": \"Firma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"zahlungsverkehr-sync-job-edit.r_syncprotokollid_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ZahlungsverkehrSyncJob\",\n                \"bindTo\": \"ProtokollId\",\n                \"bindToFQ\": \"models.data.$m_ZahlungsverkehrSyncJob.ProtokollId\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 100\n                    }]\n                }\n            }],\n            \"id\": \"r_syncProtokollId\",\n            \"options\": {\n                \"optionsName\": \"r_syncProtokollIdOptions\",\n                \"optionsNameFQ\": \"r_syncProtokollIdOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"status\",\n            \"filters\": [],\n            \"caption\": \"zahlungsverkehr-sync-job-edit.r_status_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ZahlungsverkehrSyncJob\",\n                \"bindTo\": \"IdStatus\",\n                \"bindToFQ\": \"models.data.$m_ZahlungsverkehrSyncJob.IdStatus\"\n            },\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_StatusService.onValueChanged\",\n            \"id\": \"r_status\",\n            \"options\": {\n                \"optionsName\": \"r_statusOptions\",\n                \"optionsNameFQ\": \"r_statusOptions\"\n            }\n        });\n        this.widgetCreator.addFileUploaderWithViewer(this, {\n            \"acceptTypeEnum\": 4,\n            \"showClearButton\": false,\n            \"caption\": \"zahlungsverkehr-sync-job-edit.r_dmslink_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_ZahlungsverkehrSyncJob\",\n                \"bindTo\": \"DMSLink\",\n                \"bindToFQ\": \"models.data.$m_ZahlungsverkehrSyncJob.DMSLink\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 40\n                    }]\n                }\n            }],\n            \"id\": \"r_dmslink\",\n            \"options\": {\n                \"optionsName\": \"r_dmslinkOptions\",\n                \"optionsNameFQ\": \"r_dmslinkOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-sync-job-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-9 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-sync-job-edit.r_syncprotokollid_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_syncProtokollIdOptions\\\" view-model.ref=\\\"r_syncProtokollId\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-3 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-sync-job-edit.r_status_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_statusOptions\\\" view-model.ref=\\\"r_status\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-sync-job-edit.r_dmslink_caption\\\"></div> <tip-file-uploader-with-viewer options.bind=\\\"r_dmslinkOptions\\\" view-model.ref=\\\"r_dmslink\\\"></tip-file-uploader-with-viewer> </div> </div> </div> </div> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ZahlungsverkehrEditUtils\n} from \"./zahlungsverkehr-edit-utils\";\n\n@fwx.autoinject\nexport class ZahlungsverkehrEditForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ZahlungsverkehrEditUtils: ZahlungsverkehrEditUtils) {\n        super(element, formBaseImport);\n        this.id = \"zahlungsverkehr-edit\";\n        this.title = \"zahlungsverkehr-edit.zahlungsverkehr-edit_caption\";\n        this.addModel({\n            \"id\": \"$m_Zahlungsverkehr\",\n            \"webApiAction\": \"ERP/Zahlungsverkehr/Zahlungsverkehr\",\n            \"webApiExpand\": {\n                'Geschaeftspartner': null,\n                'Eingangsrechnung': null,\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"key\": \"variables.data.$id\",\n            \"keyProperty\": \"Id\",\n            \"postOnSave\": true,\n            \"allowNew\": \"false\",\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ZahlungsverkehrEditUtils.showZahlungsverkehrSyncJobCommand\",\n                \"bindToFQ\": \"functions.$f_ZahlungsverkehrEditUtils.showZahlungsverkehrSyncJobCommand\"\n            }\n        });\n        this.addEditPopup({\n            \"idContent\": \"zahlungsverkehrSyncJobEditPopupContent\",\n            \"mappings\": [{\n                \"to\": \"$id\",\n                \"binding\": {\n                    \"dataContext\": \"$m_Zahlungsverkehr\",\n                    \"bindTo\": \"IdZahlungsverkehrSyncJob\",\n                    \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.IdZahlungsverkehrSyncJob\"\n                }\n            }],\n            \"id\": \"zahlungsverkehrSyncJobEditPopup\",\n            \"options\": {\n                \"optionsName\": \"zahlungsverkehrSyncJobEditPopupOptions\",\n                \"optionsNameFQ\": \"zahlungsverkehrSyncJobEditPopupOptions\"\n            },\n            \"height\": \"auto\",\n            \"width\": \"1000px\",\n            \"commands\": []\n        });\n        this.addFunction(\"$f_ZahlungsverkehrEditUtils\", $f_ZahlungsverkehrEditUtils, \"functions.$f_ZahlungsverkehrEditUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firma\",\n            \"filters\": [],\n            \"caption\": \"zahlungsverkehr-edit.r_firma_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"IdFirma\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.IdFirma\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firma\",\n            \"options\": {\n                \"optionsName\": \"r_firmaOptions\",\n                \"optionsNameFQ\": \"r_firmaOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"firmaZahlungsverkehr\",\n            \"customs\": [{\n                \"key\": \"Firma\",\n                \"value\": \"models.data.$m_Zahlungsverkehr.IdFirma\"\n            }],\n            \"filters\": [],\n            \"caption\": \"zahlungsverkehr-edit.r_firmazahlungsverkehr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"IdFirmaZahlungsverkehr\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.IdFirmaZahlungsverkehr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_firmaZahlungsverkehr\",\n            \"options\": {\n                \"optionsName\": \"r_firmaZahlungsverkehrOptions\",\n                \"optionsNameFQ\": \"r_firmaZahlungsverkehrOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"caption\": \"zahlungsverkehr-edit.r_eingangsrechnungnr_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"Eingangsrechnung.Nummer\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.Eingangsrechnung.Nummer\",\n                \"propertyPrefix\": \"Eingangsrechnung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_eingangsrechnungNr\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungNrOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlungsverkehr-edit.r_eingangsrechnungdatum_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"Eingangsrechnung.Datum\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.Eingangsrechnung.Datum\",\n                \"propertyPrefix\": \"Eingangsrechnung\"\n            },\n            \"validationRules\": [],\n            \"id\": \"r_eingangsrechnungDatum\",\n            \"options\": {\n                \"optionsName\": \"r_eingangsrechnungDatumOptions\",\n                \"optionsNameFQ\": \"r_eingangsrechnungDatumOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"maxLength\": 50,\n            \"caption\": \"zahlungsverkehr-edit.r_rechnungnr_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"RechnungNr\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.RechnungNr\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }, {\n                \"item\": {\n                    \"type\": \"stringLength\",\n                    \"parameters\": [{\n                        \"name\": \"max\",\n                        \"value\": 50\n                    }]\n                }\n            }],\n            \"id\": \"r_rechnungNr\",\n            \"options\": {\n                \"optionsName\": \"r_rechnungNrOptions\",\n                \"optionsNameFQ\": \"r_rechnungNrOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlungsverkehr-edit.r_rechnungdatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"RechnungDatum\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.RechnungDatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_rechnungDatum\",\n            \"options\": {\n                \"optionsName\": \"r_rechnungDatumOptions\",\n                \"optionsNameFQ\": \"r_rechnungDatumOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlungsverkehr-edit.r_valutadatum_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"ValutaDatum\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.ValutaDatum\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_valutaDatum\",\n            \"options\": {\n                \"optionsName\": \"r_valutaDatumOptions\",\n                \"optionsNameFQ\": \"r_valutaDatumOptions\"\n            }\n        });\n        this.widgetCreator.addNumberBox(this, {\n            \"format\": \"n2\",\n            \"caption\": \"zahlungsverkehr-edit.r_zahlbetrag_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"Zahlbetrag\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.Zahlbetrag\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_zahlbetrag\",\n            \"options\": {\n                \"optionsName\": \"r_zahlbetragOptions\",\n                \"optionsNameFQ\": \"r_zahlbetragOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"waehrung\",\n            \"filters\": [],\n            \"caption\": \"zahlungsverkehr-edit.r_waehrung_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"IdWaehrung\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.IdWaehrung\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_waehrung\",\n            \"options\": {\n                \"optionsName\": \"r_waehrungOptions\",\n                \"optionsNameFQ\": \"r_waehrungOptions\"\n            }\n        });\n        this.widgetCreator.addSelectBox(this, {\n            \"idSelect\": \"zahlungsverkehrTyp\",\n            \"filters\": [],\n            \"caption\": \"zahlungsverkehr-edit.r_typ_caption\",\n            \"isReadOnly\": true,\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\",\n                \"bindTo\": \"Typ\",\n                \"bindToFQ\": \"models.data.$m_Zahlungsverkehr.Typ\"\n            },\n            \"validationRules\": [{\n                \"item\": {\n                    \"type\": \"required\",\n                    \"parameters\": []\n                }\n            }],\n            \"id\": \"r_typ\",\n            \"options\": {\n                \"optionsName\": \"r_typOptions\",\n                \"optionsNameFQ\": \"r_typOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <require from=\\\"../zahlungsverkehr-sync-job/zahlungsverkehr-sync-job-edit-form\\\"></require> <dx-widget class=\\\"t--form-validation-group t--form-has-info-bar\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\"> <dx-widget class=\\\"t--form-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"zahlungsverkehrSyncJobEditPopupOptions\\\" view-model.ref=\\\"zahlungsverkehrSyncJobEditPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <zahlungsverkehr-sync-job-edit-form view-model.ref=\\\"zahlungsverkehrSyncJobEditPopupContent\\\" is-edit-popup=\\\"true\\\"></zahlungsverkehr-sync-job-edit-form> </dx-template> </dx-widget> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_firma_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaOptions\\\" view-model.ref=\\\"r_firma\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_firmazahlungsverkehr_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_firmaZahlungsverkehrOptions\\\" view-model.ref=\\\"r_firmaZahlungsverkehr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-12\\\" if.bind=\\\"models.data.$m_Zahlungsverkehr.IdEingangsrechnung\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: zahlungsverkehr-edit.r_groupeingangsrechnung_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_eingangsrechnungnr_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_eingangsrechnungNrOptions\\\" view-model.ref=\\\"r_eingangsrechnungNr\\\"></dx-widget> </div> <div class=\\\"col-xs-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_eingangsrechnungdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_eingangsrechnungDatumOptions\\\" view-model.ref=\\\"r_eingangsrechnungDatum\\\"></dx-widget> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-12\\\"> <div class=\\\"t--group\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <h2 tr=\\\"key: zahlungsverkehr-edit.r_groupkunde_text; markdown: false\\\"></h2> </div> </div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <geschaeftspartner view-model.ref=\\\"r_kunde\\\" validation-field-name=\\\"Geschaeftspartner\\\" id-geschaeftspartner.bind=\\\"models.data.$m_Zahlungsverkehr.IdGeschaeftspartner\\\" id-adresse.bind=\\\"models.data.$m_Zahlungsverkehr.Geschaeftspartner.IdAdresse\\\" is-read-only.bind=\\\"true\\\"></geschaeftspartner> </div> </div> </div> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_rechnungnr_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"r_rechnungNrOptions\\\" view-model.ref=\\\"r_rechnungNr\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_rechnungdatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_rechnungDatumOptions\\\" view-model.ref=\\\"r_rechnungDatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_valutadatum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_valutaDatumOptions\\\" view-model.ref=\\\"r_valutaDatum\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_zahlbetrag_caption\\\"></div> <dx-widget name=\\\"dxNumberBox\\\" options.bind=\\\"r_zahlbetragOptions\\\" view-model.ref=\\\"r_zahlbetrag\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_waehrung_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_waehrungOptions\\\" view-model.ref=\\\"r_waehrung\\\"></dx-widget> </div> <div class=\\\"col-xs-12 col-md-6 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-edit.r_typ_caption\\\"></div> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"r_typOptions\\\" view-model.ref=\\\"r_typ\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dyn-feld-container view-model.ref=\\\"r_dynFeldContainerKopf\\\" is-default.bind=\\\"true\\\" anzeigeort=\\\"Kopfdaten\\\" dyn-felder-data-service.bind=\\\"functions.$f_ZahlungsverkehrEditUtils.dynFelderDataService\\\"></dyn-feld-container> </div> </div> </div> </div> </div> </div> </div> </dx-widget> <div class=\\\"t--form-info-bar-separator\\\"></div> <dx-widget class=\\\"t--form-info-bar\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <infobar></infobar> </div> </div> </div> </dx-widget> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../../framework/forms/form-export\";\nimport {\n    ZahlungsverkehrListUtils\n} from \"./zahlungsverkehr-list-utils\";\n\n@fwx.autoinject\nexport class ZahlungsverkehrListForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f_ZahlungsverkehrListUtils: ZahlungsverkehrListUtils) {\n        super(element, formBaseImport);\n        this.id = \"zahlungsverkehr-list\";\n        this.title = \"zahlungsverkehr-list.zahlungsverkehr-list_caption\";\n        this.addModel({\n            \"id\": \"$m_Zahlungsverkehr\",\n            \"webApiAction\": \"ERP/Zahlungsverkehr/Zahlungsverkehr\",\n            \"webApiExpand\": {\n                'FirmaZahlungsverkehr': {\n                    'expand': {\n                        'FirmaBankverbindung': null\n                    }\n                },\n                'Waehrung': null,\n                'Geschaeftspartner': {\n                    'expand': {\n                        'Adresse': null\n                    }\n                }\n            },\n            \"modificationInfoEnabled\": true,\n            \"optimisticLockingEnabled\": true,\n            \"keyProperty\": \"Id\",\n            \"allowNew\": \"false\",\n            \"custom\": {\n                'addFilter': true\n            },\n            \"filters\": []\n        });\n        this.addCommand({\n            \"binding\": {\n                \"bindTo\": \"$f_ZahlungsverkehrListUtils.showDokumentErstellenPopupCommand\",\n                \"bindToFQ\": \"functions.$f_ZahlungsverkehrListUtils.showDokumentErstellenPopupCommand\"\n            }\n        });\n        this.addFunction(\"$f_ZahlungsverkehrListUtils\", $f_ZahlungsverkehrListUtils, \"functions.$f_ZahlungsverkehrListUtils\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addDataGrid(this, {\n            \"columns\": [{\n                \"id\": \"r_zahlvFirmaZahlungsverkehr\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvfirmazahlungsverkehr_caption\",\n                \"bindTo\": \"FirmaZahlungsverkehr.Bezeichnung\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_zahlvTyp\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvtyp_caption\",\n                \"bindTo\": \"Typ\",\n                \"width\": \"120px\",\n                \"enumTypeName\": \"TIP.ERP.Business.Enumerations.ZahlungsverkehrTyp\"\n            }, {\n                \"id\": \"r_zahlvGpNummer\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvgpnummer_caption\",\n                \"bindTo\": \"Geschaeftspartner.Nummer\",\n                \"width\": \"80px\"\n            }, {\n                \"id\": \"r_zahlvGpBez\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvgpbez_caption\",\n                \"bindTo\": \"Geschaeftspartner.Adresse.Firmenbez1\",\n                \"minWidth\": 100\n            }, {\n                \"id\": \"r_zahlvRechnungNr\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvrechnungnr_caption\",\n                \"bindTo\": \"RechnungNr\",\n                \"width\": \"120px\"\n            }, {\n                \"id\": \"r_zahlvRechnungDatum\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvrechnungdatum_caption\",\n                \"bindTo\": \"RechnungDatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlvValutaDatum\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvvalutadatum_caption\",\n                \"bindTo\": \"ValutaDatum\",\n                \"width\": \"90px\",\n                \"format\": \"d\"\n            }, {\n                \"id\": \"r_zahlvZahlbetrag\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvzahlbetrag_caption\",\n                \"bindTo\": \"Zahlbetrag\",\n                \"width\": \"90px\",\n                \"format\": \"n2\"\n            }, {\n                \"id\": \"r_zahlvWaehrung\",\n                \"caption\": \"zahlungsverkehr-list.r_zahlvwaehrung_caption\",\n                \"bindTo\": \"Waehrung.ISO4217\",\n                \"width\": \"70px\"\n            }],\n            \"optionsToolbar\": {\n                \"optionsName\": \"r_zahlungsverkehrGridToolbarOptions\",\n                \"optionsNameFQ\": \"r_zahlungsverkehrGridToolbarOptions\"\n            },\n            \"binding\": {\n                \"dataContext\": \"$m_Zahlungsverkehr\"\n            },\n            \"dataModel\": \"$m_Zahlungsverkehr\",\n            \"editUrl\": \"ERP/Zahlungsverkehr/Zahlungsverkehr\",\n            \"addShortscuts\": true,\n            \"isMainList\": true,\n            \"height\": \"100%\",\n            \"listEdits\": [],\n            \"filters\": [],\n            \"commands\": [],\n            \"id\": \"r_zahlungsverkehrGrid\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungsverkehrGridOptions\",\n                \"optionsNameFQ\": \"r_zahlungsverkehrGridOptions\"\n            }\n        });\n        this.widgetCreator.addPopup(this, {\n            \"id\": \"r_zahlungsverkehrDokumentErstellenPopup\",\n            \"options\": {\n                \"optionsName\": \"r_zahlungsverkehrDokumentErstellenPopupOptions\",\n                \"optionsNameFQ\": \"r_zahlungsverkehrDokumentErstellenPopupOptions\"\n            },\n            \"caption\": \"zahlungsverkehr-list.r_zahlungsverkehrdokumenterstellenpopup_caption\",\n            \"height\": \"auto\",\n            \"width\": \"500px\",\n            \"commands\": [{\n                \"binding\": {\n                    \"bindTo\": \"$f_ZahlungsverkehrListUtils.doDokumentErstellenCommand\",\n                    \"bindToFQ\": \"functions.$f_ZahlungsverkehrListUtils.doDokumentErstellenCommand\"\n                }\n            }]\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"zahlungsverkehr-list.r_wertbehalten_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_ZahlungsverkehrListUtils.onValutaDatumBeibehaltenChanged\",\n            \"id\": \"r_wertBehalten\",\n            \"options\": {\n                \"optionsName\": \"r_wertBehaltenOptions\",\n                \"optionsNameFQ\": \"r_wertBehaltenOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"zahlungsverkehr-list.r_wertaendern_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"onValueChanged\": \"functions.$f_ZahlungsverkehrListUtils.onValutaDatumAendernChanged\",\n            \"id\": \"r_wertAendern\",\n            \"options\": {\n                \"optionsName\": \"r_wertAendernOptions\",\n                \"optionsNameFQ\": \"r_wertAendernOptions\"\n            }\n        });\n        this.widgetCreator.addDateBox(this, {\n            \"format\": \"d\",\n            \"caption\": \"zahlungsverkehr-list.r_datum_caption\",\n            \"binding\": {},\n            \"validationRules\": [],\n            \"id\": \"r_datum\",\n            \"options\": {\n                \"optionsName\": \"r_datumOptions\",\n                \"optionsNameFQ\": \"r_datumOptions\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Module\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container t--parent-container-set-height\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxDataGrid\\\" options.bind=\\\"r_zahlungsverkehrGridOptions\\\" view-model.ref=\\\"r_zahlungsverkehrGrid\\\"></dx-widget> </div> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"r_zahlungsverkehrDokumentErstellenPopupOptions\\\" view-model.ref=\\\"r_zahlungsverkehrDokumentErstellenPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget class=\\\"t--popup-content\\\" name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-list.r_wertbehalten_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_wertBehaltenOptions\\\" view-model.ref=\\\"r_wertBehalten\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-list.r_wertaendern_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"r_wertAendernOptions\\\" view-model.ref=\\\"r_wertAendern\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: zahlungsverkehr-list.r_datum_caption\\\"></div> <dx-widget name=\\\"dxDateBox\\\" options.bind=\\\"r_datumOptions\\\" view-model.ref=\\\"r_datum\\\"></dx-widget> </div> </div> </div> </dx-widget> </dx-template> </dx-widget> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"./rest-service\";\nimport {\n  JsonService\n} from \"./json-service\";\n\n@autoinject\nexport class WebEventService {\n  constructor(\n    private rest: RestService,\n    private json: JsonService\n  ) { }\n\n  execute(eventInfo: IEventInfo, showLoading: boolean = false): Promise<any> {\n    return this.rest.post({\n      url: this.rest.getApiUrl(\"base/Event/Post\"),\n      increaseLoadingCount: showLoading,\n      data: eventInfo\n    });\n  }\n  executeWithProgress(eventInfo: IEventInfo, callback: {(text: string, percent: number): void}): Promise<any> {\n    const webSocket = new WebSocket(this.rest.getWebSocketUrl(\"base/Event/Socket\"));\n\n    return new Promise((resolve, reject) => {\n      webSocket.onopen = () => {\n        webSocket.send(this.json.stringify(eventInfo));\n      };\n      webSocket.onmessage = (e) => {\n        const data = this.json.parse(e.data);\n\n        switch (data.Type) {\n          case \"STATUS\": {\n            if (callback) {\n              callback(data.Data.Text, data.Data.Percent);\n            }\n            break;\n          }\n          case \"RESULT\": {\n            webSocket.close();\n            resolve(data.Data);\n            break;\n          }\n        }\n      };\n      webSocket.onerror = (e) => {\n        reject(e);\n      };\n    });\n  }\n}\n\ninterface IEventInfo {\n  EventName: string;\n  data: any;\n}\n","import {\n    autoinject,\n    transient\n} from \"aurelia-framework\";\nimport {\n    ICommandData,\n    FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n    WebEventService\n  } from \"../../../../framework/base/export\";\nimport {\n    OnPrepareFibuSyncJobEvent,\n    OnPrepareFibuSyncJob\n} from \"../../../../framework-data/events\";\n\n\n@autoinject\n@transient()\nexport class FibuSyncJobEditUtils {\n    constructor(\n        private webEvent: WebEventService\n    ) { }\n\n    form: FormBase;\n\n    bind(form: FormBase, namespace: string) {\n        this.form = form;\n    }\n\n    doSynchronisierungStarten: ICommandData = {\n        id: \"doSynchronisierungStarten\",\n        idCategory: \"fibu-sync-job\",\n        title: \"fibu-sync-job.do_synchronisierung_starten\",\n        icon: \"refresh\",\n        isEnabledExpression: \"models.data.$m_FibuSyncJob.CanSave && models.data.$m_FibuSyncJob.Status.Typ == 0\",\n        execute: async () => {\n            const saveResult = await this.form.saveIfDirty();\n            if (!saveResult.isValid) {\n                return;\n            }\n\n            const webEvent = new OnPrepareFibuSyncJobEvent({\n                IdFibuSyncJob: this.form.models.data.$m_FibuSyncJob.Id\n            });\n\n            const webEventResult: OnPrepareFibuSyncJob = await this.webEvent.execute(webEvent, true);\n\n            this.form.models.reloadAll();\n        }\n    }\n}\n","import { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport { ExcelExportService } from \"../../../../framework/forms/services/excel-export-service\";\n\n@autoinject\n@transient()\nexport class LagerbestandDetailListNestedUtils {\n  constructor(\n    private _excelExportService: ExcelExportService) { }\n\n  form: FormBase;\n\n  doExportExcelCommand: ICommandData = {\n    id: \"doExportExcel\",\n    icon: \"file-excel-o\",\n    title: \"base.excel-export\",\n    isVisibleExpression: \"variables.data.$v_showExcelExport\",\n    execute: () => {\n      const grid: DevExpress.ui.dxDataGrid = this.form[\"r_lagerbestandGrid\"].instance;\n      this._excelExportService.exportDataGrid({\n        component: grid,\n        selectedRowsOnly: false\n      });\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.callOnBind(() => {\n      const gridOptions: DevExpress.ui.dxDataGridOptions = this.form[\"r_lagerbestandGridOptions\"];\n\n      gridOptions.bindingOptions = gridOptions.bindingOptions || {};\n      gridOptions.bindingOptions[\"filterRow.visible\"] = \"variables.data.$v_showFilterRow\";\n    });\n  }\n}\n","export * from \"./dyn-feld-typ\";\nexport * from \"./nummernkreis-typ\";\nexport * from \"./status-typ\";\nexport * from \"./client-events\";\nexport * from \"./notification-typ\";\nexport * from \"./vorb-gueltig-von\";\nexport * from \"./vorb-gueltig-bis\";\nexport * from \"./kalkulation-feld-typ\";\nexport * from \"./artikel-bezug-typ\";\n","import {\n  autoinject,\n  bindable,\n  customAttribute\n} from \"aurelia-framework\";\n\n@autoinject\n@customAttribute(\"animation-tracker\")\nexport class AnimationTrackerAttribute {\n  private _eventStart: any;\n  private _eventEnd: any;\n  private _handlerStart: any;\n  private _handlerEnd: any;\n\n  constructor(\n    private element: Element\n  ) { }\n\n  @bindable propertyName: string;\n\n  bind() {\n    this._eventStart = this.getEventStart();\n    if (this._eventStart) {\n      this._handlerStart = this.handleEnd.bind(this);\n      this.element.addEventListener(this._eventStart, this._handlerStart);\n    }\n\n    this._eventEnd = this.getEventEnd();\n    if (this._eventEnd) {\n      this._handlerEnd = this.handleEnd.bind(this);\n      this.element.addEventListener(this._eventEnd, this._handlerEnd);\n    }\n\n  }\n  unbind() {\n    if (this._eventStart) {\n      this.element.removeEventListener(this._eventStart, this._handlerStart);\n    }\n    if (this._eventEnd) {\n      this.element.removeEventListener(this._eventEnd, this._handlerEnd);\n    }\n  }\n\n  private getEventStart() {\n    const transitions = {\n      \"transition\": \"transitionstart\",\n      \"OTransition\": \"oTransitionStart\",\n      \"MozTransition\": \"transitionstart\",\n      \"WebkitTransition\": \"webkitTransitionStart\"\n    }\n\n    const el: any = this.element;\n    for (let t in transitions) {\n      if (el.style[t] !== undefined) {\n        return transitions[t];\n      }\n    }\n  }\n  private getEventEnd() {\n    const transitions = {\n      \"transition\": \"transitionend\",\n      \"OTransition\": \"oTransitionEnd\",\n      \"MozTransition\": \"transitionend\",\n      \"WebkitTransition\": \"webkitTransitionEnd\"\n    }\n\n    const el: any = this.element;\n    for (let t in transitions) {\n      if (el.style[t] !== undefined) {\n        return transitions[t];\n      }\n    }\n  }\n  private handleStart(e: any) {\n    if (!e.propertyName) {\n      return;\n    }\n\n    if (this.propertyName && this.propertyName != e.propertyName) {\n      return;\n    }\n\n    const event = new CustomEvent(\"on-animation-start\", {\n      detail: {\n        sender: this,\n        element: this.element,\n        propertyName: e.propertyName\n      },\n      bubbles: true\n    });\n\n    this.element.dispatchEvent(event);\n  }\n  private handleEnd(e: any) {\n    if (!e.propertyName) {\n      return;\n    }\n\n    if (this.propertyName && this.propertyName != e.propertyName) {\n      return;\n    }\n\n    const event = new CustomEvent(\"on-animation-end\", {\n      detail: {\n        sender: this,\n        element: this.element,\n        propertyName: e.propertyName\n      },\n      bubbles: true\n    });\n\n    this.element.dispatchEvent(event);\n  }\n}\n","import {\n  autoinject,\n  bindable,\n  customAttribute\n} from \"aurelia-framework\";\n\n@autoinject\n@customAttribute(\"animation\")\nexport class AnimationCustomAttribute {\n  constructor(\n    private element: Element\n  ) { }\n\n  valueChanged(newVal, oldVal) {\n    if (newVal == oldVal){\n      return;\n    }\n    this.doAnimation();\n  }\n\n  private doAnimation() {\n    const isAnimating = this.element.classList.contains(\"animating\");\n    if (isAnimating === false) {\n      this.element.classList.add(\"animating\");\n    }\n    const animatingElementsCount = document.getElementsByClassName(\"animating\").length;\n    const delay = 100 * animatingElementsCount;\n\n    setTimeout(() => {\n      this.element.classList.remove(\"animating\");\n    }, 150 + delay)\n  }\n}\n","import {\n  autoinject,\n  customAttribute,\n  TaskQueue\n} from \"aurelia-framework\";\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\nimport { WindowService } from '../../export';\n\n@autoinject\n@customAttribute(\"gr-size\")\nexport class GridSizeAttribute {\n  private _windowResizeSubscription: Subscription;\n  private _checkClassSubscription: Subscription;\n  private _currentStyle;\n  private _detached = false;\n  private _setClassCounter = 0;\n\n  constructor(\n    private element: Element,\n    private taskQueue: TaskQueue,\n    private eventAggregator: EventAggregator,\n    private windowService: WindowService\n  ) { }\n\n  bind() {\n    this._checkClassSubscription = this.eventAggregator.subscribe(\"grid:check-class\", (e) => {\n      if (e.element) {\n        if (!this.isParent(e.element)) {\n          return;\n        }\n      }\n      this.setClass();\n    });\n    this._windowResizeSubscription = this.eventAggregator.subscribe(\"window:resize\", () => {\n      this.setClass();\n    });\n  }\n  unbind() {\n    this._checkClassSubscription.dispose();\n    this._windowResizeSubscription.dispose();\n  }\n  attached() {\n    this.element.classList.add(\"gr\");\n\n    this._detached = false;\n    this.setClass();\n  }\n  detached() {\n    this._detached = true;\n  }\n\n  private isParent(parent): boolean {\n    let child = this.element;\n\n    while (child != null) {\n      if (child == parent) {\n        return true;\n      }\n\n      child = child.parentElement;\n    }\n\n    return false;\n  }\n  private setClass(start: boolean = true) {\n    if (start) {\n      this._setClassCounter = 0;\n    }\n    if (this._detached || this._setClassCounter > 60) {\n      return;\n    }\n\n    const element  = this.element;\n    let widthElement = <HTMLElement>element;\n    while (widthElement && this.isInline(widthElement)) {\n      widthElement = widthElement.parentElement;\n    }\n\n    const styles = [\"xs\"];\n    const width = widthElement\n      ? widthElement.clientWidth\n      : 0;\n\n    if (!width) {\n      setTimeout(() => {\n        this._setClassCounter++;\n        this.setClass(false)\n      }, 50);\n    }\n\n    if (width >= 768) {\n      styles.push(\"sm\");\n    }\n    if (width >= 992) {\n      styles.push(\"md\");\n    }\n    if (width >= 1200) {\n      styles.push(\"lg\");\n    }\n\n    const newStyle = styles.join(\" \");\n    if (this._currentStyle == newStyle) {\n      return;\n    }\n\n    this._currentStyle = newStyle;\n\n    element.classList.add(\"gr-xs\");\n\n    if (width >= 768) {\n      element.classList.add(\"gr-sm\");\n    } else {\n      element.classList.remove(\"gr-sm\");\n    }\n\n    if (width >= 992) {\n      element.classList.add(\"gr-md\");\n    } else {\n      element.classList.remove(\"gr-md\");\n    }\n\n    if (width >= 1200) {\n      element.classList.add(\"gr-lg\");\n    } else {\n      element.classList.remove(\"gr-lg\");\n    }\n\n    if (width >= 1500) {\n      element.classList.add(\"gr-xl\");\n    } else {\n      element.classList.remove(\"gr-xl\");\n    }\n  }\n\n  private isInline(element: HTMLElement): boolean {\n    return window.getComputedStyle(element).display == \"inline\";\n  }\n}\n","import {\n  autoinject,\n  bindable,\n  customAttribute\n} from \"aurelia-framework\";\n\n@autoinject\n@customAttribute(\"fa-icon\")\nexport class FaIconAttribute {\n  private currentIcon: string;\n\n  constructor(\n    private element: Element\n  ) {}\n\n  @bindable icon: string;\n\n  bind() {\n    this.setClass();\n  }\n\n  iconChanged(newValue: string, oldValue: string): void {\n    this.setClass();\n  }\n\n  private setClass() {\n    var element = this.element;\n\n    if (this.currentIcon) {\n      element.classList.remove(this.currentIcon);\n      this.currentIcon = null;\n    }\n\n    if (this.icon) {\n      this.currentIcon = `fa fa-${this.icon}`;\n      element.classList.add(this.currentIcon);\n    }\n  }\n}\n","import {\n  autoinject,\n  bindable,\n  customAttribute,\n  observable,\n  OverrideContext,\n  Scope,\n  TemplatingEngine,\n  transient,\n  View\n} from \"aurelia-framework\";\nimport {\n  LocalizationService, TemplatingExService\n} from \"../../services/export\";\nimport {\n  ScopeContainer\n} from \"../../classes/scope-container\"\nimport { MarkdownService } from '../../services/markdown-service';\n\n@autoinject\n@customAttribute(\"tr\")\nexport class TrCustomAttribute {\n  private _createdSpan: Element;\n  private _createdView: View;\n  private _isBound: boolean = false;\n\n  constructor(\n    private element: Element,\n    private localization: LocalizationService,\n    private templatingEngine: TemplatingEngine,\n    private templatingExService: TemplatingExService,\n    private markdownService: MarkdownService\n  ) { }\n\n  owningView: any;\n\n  @bindable mode: string;\n  @bindable @observable key: any;\n  @bindable scope: Scope;\n  @bindable markdown: boolean;\n  @bindable isHtml: boolean;\n\n  created(owningView: any, myView: any) {\n    this.owningView = owningView;\n  }\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this._isBound = true;\n\n    if (!this.scope) {\n      this.scope = {\n        bindingContext,\n        overrideContext\n      };\n    }\n\n    this.translate();\n  }\n  unbind() {\n    this._isBound = false;\n    this.scope = null;\n\n    this.destroyCreated();\n  }\n\n  keyChanged() {\n    if (!this._isBound) {\n      return;\n    }\n\n    this.destroyCreated();\n    this.translate();\n  }\n\n  private destroyCreated() {\n    if (this._createdSpan) {\n      this._createdSpan.parentElement.removeChild(this._createdSpan);\n      this._createdSpan = null;\n    }\n\n    if (this._createdView) {\n      this.templatingExService.destroyView(this._createdView);\n      this._createdView = null;\n    }\n  }\n  private translate() {\n    if (!this.key) {\n      return;\n    }\n\n    const info = this.localization.getTranslationInfo(this.key);\n\n    if (info.needsBinding) {\n      this._createdSpan = document.createElement(\"span\");\n\n      if (this.isHtml) {\n        this._createdSpan.setAttribute(\"innerhtml\", this.getText(info.text));\n      } else {\n        this._createdSpan.innerHTML = this.getText(info.text);\n      }\n      this.element.appendChild(this._createdSpan);\n\n      const scope = info.scope || this.scope;\n\n      this._createdView = this.templatingEngine.enhance({\n        element: this._createdSpan,\n        resources: this.owningView.resources,\n        bindingContext: scope.bindingContext,\n        overrideContext: scope.overrideContext\n      });\n    } else {\n      this.element.innerHTML = this.getText(info.text);\n    }\n  }\n\n  private getText(text: string) {\n    if (!this.markdown) {\n      return text;\n    }\n\n    return this.markdownService.replace(text);\n  }\n}\n","import { \n  FrameworkConfiguration,\n  PLATFORM\n} from \"aurelia-framework\";\nimport \"./styles/styles.less\";\n\nexport function configure(config: FrameworkConfiguration) {\n  config\n    .globalResources(PLATFORM.moduleName(\"./attributes/icon/fa-icon-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/animation/animation-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/translation/translation-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/grid-size/grid-size-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/animation-tracker/animation-tracker-attribute\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/translation/translation-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/max-text-length/max-text-length-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/sort/sort-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/format/format-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/file-download/file-download-value-converter\"))\n    .globalResources(PLATFORM.moduleName(\"./value-converters/background-image/background-image-value-converter\"));\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport { FileService } from '../../services/file-service';\n\n@autoinject\n@valueConverter(\"backgroundImage\")\nexport class BackgroundImageValueConverter{\n  constructor(\n    private fileService: FileService\n  ) {}\n\n  toView(value: any) {\n    if (!value) {\n      return \"\";\n    }\n\n    const url = this.fileService.getDownloadUrl(value);\n    return `background-image: url(${url})`;\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport { FileService } from '../../services/file-service';\n\n@autoinject\n@valueConverter(\"fileDownload\")\nexport class FileDownloadValueConverter{\n  constructor(\n    private fileService: FileService\n  ) {}\n\n  toView(value: string) {\n    if (!value) {\n      return \"\";\n    }\n\n    if (value.startsWith(\"http:\") || value.startsWith(\"https:\")) {\n      return value;\n    }\n\n    return this.fileService.getDownloadUrl(value);\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport {\n  GlobalizationService\n} from \"../../services/globalization-service\";\n\n@autoinject\n@valueConverter(\"format\")\nexport class FormatValueConverter{\n  constructor(\n    private globalization: GlobalizationService\n  ) {}\n\n  toView(value: any, format: string) {\n    return this.globalization.format(value, format);\n  }\n}","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\n\n@autoinject\n@valueConverter(\"maxTextLength\")\nexport class MaxTextLengthValueConverter{\n  constructor(\n  ) {}\n\n  toView(value: string, maxLength: number = 50) {\n    if (!value || value.length < maxLength) {\n      return value;\n    }\n\n    return value.substr(0, maxLength).concat(\" ...\");\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  LocalizationService\n} from \"../../services/export\";\n\n@autoinject\nexport class SortValueConverter {\n  constructor(\n    private localization: LocalizationService\n  ) {}\n\n  toView(data: any[], propertyName: string, direction: string = \"asc\", translate: boolean = false) {\n    var factor = direction === \"asc\" ? 1 : -1;\n\n    return data\n      .slice(0)\n      .sort((a, b) => {\n        let valA: string = a[propertyName];\n        if (valA == void(0)) {\n          valA = \"\";\n        }\n\n        let valB: string = b[propertyName];\n        if (valB == void(0)) {\n          valB = \"\";\n        }\n\n        if (translate) {\n          if (valA) {\n            valA = this.localization.translateOnce(valA) || \"\";\n          }\n          if (valB) {\n            valB = this.localization.translateOnce(valB) || \"\";\n          }\n        }\n\n        return valA.localeCompare(valB) * factor;\n      });\n  }\n}\n","import {\n  autoinject,\n  valueConverter\n} from \"aurelia-framework\";\nimport {\n  LocalizationService\n} from \"../../services/localization-service\";\n\n@autoinject\n@valueConverter(\"tr\")\nexport class TranslationValueConverter{\n  constructor(\n    private localization: LocalizationService\n  ) {}\n\n  toView(value: any, parameters: string[] = null) {\n    if (value == void(0)) {\n      return \"\";\n    }\n\n    return this.localization.translateOnce(value, parameters);\n  }\n}\n","import { FrameworkConfiguration } from \"aurelia-framework\";\nimport \"./styles/styles.less\";\nimport \"./styles/popup.less\";\n\nexport function configure(config: FrameworkConfiguration) { }","import {\n  autoinject,\n  OverrideContext,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  SimpleWidgetCreatorService\n} from \"../../../forms/widget-services/simple-widget-creator-service\";\nimport {\n  CommandService,\n  FormEventService\n} from \"../../../forms/services/export\";\nimport {\n  ScopeContainer,\n  LocalizationService\n} from \"../../../base/export\";\nimport {\n  ICommandData,\n  FormBase,\n  GlobalCommandService,\n  IQueryGlobalCommandEventArgs,\n  INavigationRoute,\n  RouterService\n} from \"../../../forms/export\";\nimport { LocationService } from '../../../base/services/location-service';\n\n@autoinject\nexport class Commands {\n  private _currentCommands: ICommandData[];\n  private _navigationCommands: ICommandData[];\n  private _currentForm: FormBase;\n  private _onExecuteCommandDispose: {(): void};\n\n  constructor(\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private formEvent: FormEventService,\n    private localization: LocalizationService,\n    private command: CommandService,\n    private taskQueue: TaskQueue,\n    private globalCommand: GlobalCommandService,\n    private router: RouterService,\n    private locationService: LocationService\n  ) {}\n\n  scopeContainer: ScopeContainer;\n\n  commandPopup: any;\n  commandPopupOptions: DevExpress.ui.dxPopupOptions = {\n    width: \"400px\",\n    height: \"auto\",\n    onHidden: (e) => {\n      this._currentCommands = null;\n      this._currentForm = null;\n    },\n    onShown: (e) => {\n      this.commandSelectBox.instance.option(\"value\", null);\n      this.commandSelectBox.instance.focus();\n    }\n  };\n  commandSelectBox: any;\n  commandSelectBoxOptions: DevExpress.ui.dxSelectBoxOptions = {\n    valueExpr: \"id\",\n    displayExpr: \"name\",\n    searchEnabled: true,\n    searchTimeout: 10,\n    onEnterKey: (e: any) => {\n      this.executeCurrentCommand();\n    }\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"commandPopupToolbar\",\n      caption: \"default_ui.execute_command\",\n      options: this.commandPopupOptions,\n      scopeContainer: this.scopeContainer,\n      commands: [{\n        id: \"$executeCommand\",\n        icon: \"check\",\n        execute: () => {\n          this.taskQueue.queueTask(() => {\n            this.executeCurrentCommand();\n          });\n        }\n      }]\n    });\n\n    this._onExecuteCommandDispose = this.formEvent.onExecuteCommand.register(r => {\n      this._currentForm = r.form;\n      this.openCommands(r.commands, r.allowGlobalCommands);\n\n      return Promise.resolve();\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    \n    this._onExecuteCommandDispose();\n    this._onExecuteCommandDispose = null;\n  }\n\n  private openCommands(commands: ICommandData[], allowGlobalCommands: boolean) {\n    this._currentCommands = [...commands];\n\n    let promise: Promise<any>;\n\n    if (allowGlobalCommands) {\n      this.addNavigationRoutes();\n\n      const globalCommandArgs: IQueryGlobalCommandEventArgs = {\n        commands: []\n      };\n\n      promise = this.globalCommand\n        .onQueryGlobalCommand.fire(globalCommandArgs)\n        .then(() => {\n          this._currentCommands.push(...globalCommandArgs.commands)\n        });\n    } else {\n      promise = Promise.resolve();\n    }\n\n    promise.then(() => {\n      const dataSource = this._currentCommands\n        .map(c => {\n          return {\n            id: c.id,\n            name: this.localization.translateOnce(c.title) || this.localization.translateOnce(c.tooltip)\n          }\n        });\n\n      if (this.commandSelectBox && this.commandSelectBox.instance) {\n        this.commandSelectBox.instance.option(\"dataSource\", dataSource);\n      } else {\n        this.commandSelectBoxOptions.dataSource = dataSource;\n      }\n      \n      this.commandPopup.instance.show();\n    });\n  }\n  private executeCurrentCommand() {\n    const currCommand = this.commandSelectBox.instance.option(\"value\");\n    if (!currCommand) {\n      DevExpress.ui.notify(\n        this.localization.translateOnce(\"default_ui.choose_command\"),\n        \"error\",\n        3000\n      );\n      return;\n    }\n\n    const command = this._currentCommands.find(c => c.id === currCommand);\n    if (!command) {\n      return;\n    }\n\n    this.command.execute(this._currentForm.scope, command, {\n      event: null\n    });\n\n    this.commandPopup.instance.hide();\n  }\n  private addNavigationRoutes() {\n    if (!this._navigationCommands) {\n      this._navigationCommands = [];\n\n      for (let nav1 of this.router.navigationRoutes) {\n        if (nav1.route) {\n          this.pushRoute(nav1);\n        }\n\n        if (nav1.children) {\n          for (let nav2 of nav1.children) {\n            if (nav2.route) {\n              this.pushRoute(nav2);\n            }\n          }\n        }\n      }\n    }\n\n    this._currentCommands.push(...this._navigationCommands);\n  }\n  private pushRoute(route: INavigationRoute) {\n    this._navigationCommands.push({\n      id: `$navigation_${route.route}`,\n      title: route.caption,\n      isEnabled: true,\n      isVisible: true,\n      execute: (e) => {\n        this.locationService.goTo({\n          url: route.route,\n          clearStack: true\n        });\n      }\n    })\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"commandPopupOptions\\\" view-model.ref=\\\"commandPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxSelectBox\\\" options.bind=\\\"commandSelectBoxOptions\\\" view-model.ref=\\\"commandSelectBox\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  LayoutService\n} from \"../../services/layout-service\";\n\n@autoinject\nexport class Container {\n  constructor(\n    private layout: LayoutService\n  ) { \n  }\n\n  @computedFrom(\"layout.isSidebarCollapsed\")\n  get className(): string {\n    return this.layout.isSidebarCollapsed\n      ? \"t--sidebar-collapsed\"\n      : \"t--sidebar-expanded\";\n  }\n}","// Module\nvar code = \"<template class=\\\"t--container\\\" class.bind=\\\"className\\\"> <require from=\\\"./container.less\\\"></require> <require from=\\\"../loading/loading\\\"></require> <require from=\\\"../sidebar/sidebar\\\"></require> <require from=\\\"../header/header\\\"></require> <require from=\\\"../content/content\\\"></require> <require from=\\\"../commands/commands\\\"></require> <loading></loading> <sidebar></sidebar> <header></header> <content></content> <commands></commands> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--container {\\n  display: block;\\n  width: 100vw;\\n  height: 100vh;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  LayoutService\n} from \"../../services/layout-service\";\n\n@autoinject\nexport class Content {\n  constructor(\n    private layout: LayoutService\n  ) {\n    \n  }\n}","// Module\nvar code = \"<template class=\\\"t--content\\\" gr-size> <require from=\\\"./content.less\\\"></require> <stack-router></stack-router> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--content {\\n  display: block;\\n  margin-left: 280px;\\n  height: calc(100% - 60px);\\n  transition: all 0.3s cubic-bezier(0.62, 0.28, 0.23, 0.99);\\n  transition-property: margin-left;\\n}\\n.t--sidebar-collapsed .t--content {\\n  margin-left: 60px;\\n}\\n.t--view-current {\\n  display: block;\\n}\\n.t--view-history {\\n  display: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  computedFrom,\n  OverrideContext,\n  Scope,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  AuthorizationService,\n  LocalizationService,\n  ScopeContainer,\n  ShortcutService\n} from \"../../../base/export\";\nimport {\n  HeaderService\n} from \"../../services/export\";\nimport {\n  CommandService,\n  PopupInfoService,\n  ICommandData,\n  RouterService\n} from \"../../../forms/export\"\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { StartupService } from \"../../../../erp/services/startup-service\";\n\n@autoinject\nexport class Header {\n  constructor(\n    private taskQueue: TaskQueue,\n    private router: RouterService,\n    private authorization: AuthorizationService,\n    private header: HeaderService,\n    private localization: LocalizationService,\n    private command: CommandService,\n    private _startupService: StartupService,\n    private shortcut: ShortcutService,\n    private popupInfo: PopupInfoService,\n    private eventAggregator: EventAggregator\n  ) {\n    if (!this.header.avatarCommands.find(c => c.id === \"logout\")) {\n      this.header.avatarCommands.push({\n        id: \"logout\",\n        title: this.localization.translateOnce(\"base.logout\"),\n        execute: () => {\n          this.logout();\n        }\n      });\n    }\n\n    this.shortcut.bindShortcut(\"f6\", () => {\n      if (this.popupInfo.isPopupOpen()) {\n        return;\n      }\n\n      const input = <HTMLInputElement>this.searchTextBox.instance.element()\n        .querySelector(\"input:not([type ='hidden'])\");\n\n      input.focus();\n      input.select();\n    });\n  }\n\n  searchTextBox: any;\n  searchTextBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    mode: \"search\",\n    placeholder: this.localization.translateOnce(\"base.search\"),\n    onEnterKey: (e: any) => {\n      this.taskQueue.queueTask(() => {\n        const value = e.component.option(\"value\");\n        if (value == void (null) || value == \"\") {\n          return;\n        }\n\n        this.searchShowPopupButton.instance.option(\"disabled\", false);\n        this.eventAggregator.publish(\"header:search\", {\n          text: value\n        });\n      });\n    }\n  }\n\n  searchShowPopupButton: any;\n  searchShowPopupButtonOptions: DevExpress.ui.dxButtonOptions = {\n    disabled: true,\n    icon: \"fa fa-history\",\n    onClick: () => {\n      this.eventAggregator.publish(\"header:show-search-popup\", {});\n    }\n  }\n\n  avatar: Element;\n  avatarPopover: any;\n  avatarPopoverOptions: DevExpress.ui.dxPopoverOptions = {\n    contentTemplate: \"contentTemplate\",\n    width: \"250px\"\n  }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  commands: ICommandData[];\n  avatarCommands: ICommandData[];\n\n  @computedFrom(\"_startupService.startupInfo.Benutzer.IsCloudAdministrator\")\n  get isUserCloudAdministrator() {\n    return this._startupService.startupInfo.Benutzer.IsCloudAdministrator;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.header.header = this;\n    this.prepareCommands();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  logout() {\n    this.authorization.logout();\n  }\n\n  onAvatarClick() {\n    const popover: DevExpress.ui.dxPopover = this.avatarPopover.instance;\n    popover.show(this.avatar);\n  }\n\n  private prepareCommands() {\n    if (this.header.avatarCommands) {\n      this.avatarCommands = this.header.avatarCommands.map(c => {\n        return this.convertCommand(c);\n      });\n    }\n    if (this.header.commands) {\n      this.commands = this.header.commands.map(c => {\n        return this.convertCommand(c);\n      })\n    }\n  }\n  private convertCommand(command: ICommandData): ICommandData {\n    //TODO - Expression auch evaluieren + ggf. guardedExecute\n\n    if (command.isVisible == void (0)) {\n      command.isVisible = true;\n    }\n    if (command.isEnabled == void (0)) {\n      command.isEnabled = true;\n    }\n\n    return command;\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--header\\\"> <require from=\\\"./header.less\\\"></require> <div class=\\\"t--header-flex\\\"> <div class=\\\"t--header-logo\\\" if.bind=\\\"header.logoUrl\\\"> <img src.bind=\\\"header.logoUrl\\\"> </div> <div class=\\\"t--header-title\\\" if.bind=\\\"header.text\\\"> ${header.text} </div> <div if.bind=\\\"isUserCloudAdministrator == false\\\" class=\\\"t--header-search\\\" if.bind=\\\"header.isSearchRegistered\\\"> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"searchTextBoxOptions\\\" view-model.ref=\\\"searchTextBox\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"searchShowPopupButtonOptions\\\" view-model.ref=\\\"searchShowPopupButton\\\"></dx-widget> </div> <div class=\\\"t--header-between\\\"></div> <div class=\\\"t--header-options\\\"> <div repeat.for=\\\"command of commands\\\" click.delegate=\\\"command.execute({event: $event})\\\" if.bind=\\\"command.isVisible\\\" class=\\\"${command.isEnabled ? '' : 't--header-command-disabled'}\\\" class.bind=\\\"command.className\\\"> <div class=\\\"t--header-command\\\"> <div if.bind=\\\"command.badgeText\\\" animation.bind=\\\"command.badgeText\\\" class=\\\"t--header-command-badge\\\" tr=\\\"key.bind: command.badgeText\\\" css=\\\"color: ${command.badgeTextColor || 'white'};background-color: ${command.badgeColor || '#C1392D'};border: 1px solid ${command.badgeBorderColor || 'transparent'};\\\"></div> <i class=\\\"fa fa-${command.icon}\\\" if.bind=\\\"command.icon\\\"></i> <div>${command.title}</div> </div> </div> <div class=\\\"t--header-avatar\\\" click.delegate=\\\"onAvatarClick()\\\" ref=\\\"avatar\\\"> <div css.bind=\\\"header.avatarStyle\\\"></div> </div> </div> </div> <dx-widget name=\\\"dxPopover\\\" options.bind=\\\"avatarPopoverOptions\\\" view-model.ref=\\\"avatarPopover\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"t--header-avatar-command-container\\\"> <div repeat.for=\\\"command of avatarCommands\\\" click.delegate=\\\"command.execute({event: $event})\\\" if.bind=\\\"command.isVisible && command.isEnabled\\\" class.bind=\\\"command.className\\\"> <div class=\\\"t--header-avatar-command\\\"> ${command.title} </div> </div> </div> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--header {\\n  display: flex;\\n  align-items: center;\\n  height: 60px;\\n  margin-left: 280px;\\n  padding-left: 12px;\\n  transition: all 0.3s cubic-bezier(0.62, 0.28, 0.23, 0.99);\\n  transition-property: margin-left;\\n}\\n.t--sidebar-collapsed .t--header {\\n  margin-left: 60px;\\n}\\n.t--header-flex {\\n  display: flex;\\n  align-items: center;\\n  width: 100%;\\n  height: 100%;\\n}\\n.t--header-flex > div:not(:first-child) {\\n  margin-left: 24px;\\n}\\n.t--header-logo {\\n  height: 35px;\\n}\\n.t--header-logo > img {\\n  height: 100%;\\n}\\n.t--header-title {\\n  display: flex;\\n  align-items: center;\\n}\\n.t--header-search {\\n  display: flex;\\n}\\n.t--header-search :not(:first-child) {\\n  margin-left: 2px;\\n}\\n.t--header-between {\\n  flex-grow: 1;\\n}\\n.t--header-options {\\n  display: flex;\\n  height: 100%;\\n  align-items: center;\\n}\\n.t--header-options > div {\\n  height: 100%;\\n  padding: 0 12px;\\n  border-left: 1px solid #eeeeee;\\n  display: flex;\\n  align-items: center;\\n  cursor: pointer;\\n}\\n.t--header-options > div.t--header-command-disabled {\\n  cursor: default;\\n  color: #ccc;\\n}\\n.t--header-options > div.t--header-command-disabled .t--header-command {\\n  cursor: default;\\n}\\n.t--header-options > div:hover:not(.t--header-command-disabled) {\\n  background-color: #fafafa;\\n}\\n.t--header-options > div:not(.t--header-avatar) .t--header-options > div:not(.t--header-command-disabled):hover {\\n  background-color: #eeeeee;\\n}\\n.t--header-avatar > div {\\n  height: 35px;\\n  width: 35px;\\n  border-radius: 35px;\\n  border: 1px solid darkgray;\\n  background-position: center center;\\n  background-size: cover;\\n  background-repeat: no-repeat;\\n}\\n.t--header-avatar-command-container {\\n  padding: 0;\\n}\\n.t--header-avatar-command {\\n  cursor: pointer;\\n  padding: 12px;\\n}\\n.t--header-avatar-command:hover {\\n  background-color: #ddd;\\n}\\n.t--header-command {\\n  display: flex;\\n  position: relative;\\n  flex-direction: column;\\n  justify-content: center;\\n  align-items: center;\\n  height: 100%;\\n  cursor: pointer;\\n}\\n.t--header-command i {\\n  margin-bottom: 6px;\\n  font-size: 16px;\\n}\\n.t--header-command-badge {\\n  position: absolute;\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  top: 6px;\\n  right: -6px;\\n  min-width: 18px;\\n  padding: 0 4px;\\n  height: 18px;\\n  border-radius: 18px;\\n  background-color: #e80000;\\n  color: white;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  LoadingService\n} from \"../../services/loading-service\";\n\n@autoinject\nexport class Loading {\n  constructor(\n    private loading: LoadingService\n  ) { }\n}","// Module\nvar code = \"<template class=\\\"t-loading\\\"> <require from=\\\"../../../forms/elements/loading-spinner/loading-spinner\\\"></require> <loading-spinner if.bind=\\\"loading.isLoading\\\" fullscreen=\\\"true\\\"></loading-spinner> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable\n} from \"aurelia-framework\";\nimport { INavigationRoute } from \"../../../forms/export\";\n\n@autoinject\nexport class SidebarSub {\n  constructor(\n    private element: Element\n  ) { }\n\n  @bindable route: INavigationRoute;\n\n  attached() {\n    const html = <HTMLElement>this.element;\n    html.style.top = null;\n\n    if (html.offsetTop + html.offsetHeight > window.innerHeight) {\n      html.style.top = (window.innerHeight - html.offsetHeight) + \"px\";\n    }\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--sidebar-sub au-animate\\\"> <require from=\\\"./sidebar-sub.less\\\"></require> <ul class=\\\"t--sidebar-sub-ul\\\"> <li repeat.for=\\\"child of route.children | sort:'caption':'asc':true\\\"> <a href.bind=\\\"child.route ? '#' + child.route : ''\\\" class=\\\"t--sidebar-sub-item\\\" stack-router-link=\\\"clear-stack.bind: true\\\"> <span class=\\\"t--sidebar-sub-item-title\\\" tr=\\\"key.bind: child.caption\\\"> </span> </a> </li> </ul> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--sidebar-sub-ul {\\n  column-count: 2;\\n  column-width: 200px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  LayoutService\n} from \"../../services/layout-service\";\nimport { RouterService, INavigationRoute } from \"../../../forms/export\";\n\n@autoinject\nexport class Sidebar {\n  private readonly sidebarExpandedProp = \"sidebarExpanded\";\n  private routeExpanded: INavigationRoute;\n\n  constructor(\n    private layout: LayoutService,\n    private router: RouterService\n  ) { }\n\n  @computedFrom(\"layout.isSidebarCollapsed\")\n  get headerIcon(): string {\n    if (this.layout.isSidebarCollapsed) {\n      return \"bars\";\n    } else {\n      return \"arrow-circle-left\"\n    }\n  }\n\n  attached() {\n    window.addEventListener(\"click\", this.onWindowClick.bind(this));\n  }\n  detached() {\n    window.removeEventListener(\"click\", this.onWindowClick.bind(this));\n  }\n\n  onHeaderClicked() {\n    this.layout.isSidebarCollapsed = !this.layout.isSidebarCollapsed;\n  }\n  onRouteClicked(route: INavigationRoute) {\n    if (this.routeExpanded) {\n      this.routeExpanded[this.sidebarExpandedProp] = false;\n      this.routeExpanded = null;\n    }\n\n    if (route.children.length === 0) {\n      return;\n    }\n\n    this.routeExpanded = route;\n    this.routeExpanded[this.sidebarExpandedProp] = true;\n  }\n\n  onWindowClick(e) {\n    if (!this.routeExpanded) {\n      return;\n    }\n\n    const target: Element = e.target;\n\n    if (target.classList.contains(\"t--sidebar-item\") || this.getClosest(target, \"t--sidebar-item\")) {\n      return;\n    }\n\n    this.routeExpanded[this.sidebarExpandedProp] = false;\n    this.routeExpanded = null;\n  }\n\n  private getClosest(e: Element, classString: string) {\n    if(e.classList.contains(classString)){\n      return e;\n    }\n \n     let parent = null;\n     while (e) {\n       parent = e.parentElement;\n       if (parent && parent.classList.contains(classString)) {\n         return parent;\n       }\n \n       e = parent;\n     }\n \n     return null;\n   }\n}\n","// Module\nvar code = \"<template class=\\\"t--sidebar\\\"> <require from=\\\"../sidebar-sub/sidebar-sub\\\"></require> <require from=\\\"./sidebar.less\\\"></require> <div class=\\\"t--sidebar-header\\\" click.delegate=\\\"onHeaderClicked()\\\"> <div class=\\\"t--sidebar-header-title\\\" tr=\\\"key: base.navigation\\\"> </div> <div class=\\\"t--sidebar-header-icon\\\"> <i class=\\\"fa fa-${headerIcon}\\\"></i> </div> </div> <ul> <li repeat.for=\\\"route of router.navigationRoutes\\\"> <sidebar-sub route.bind=\\\"route\\\" if.bind=\\\"route.sidebarExpanded\\\"></sidebar-sub> <a href.bind=\\\"route.route ? '#' + route.route : ''\\\" class=\\\"t--sidebar-item\\\" click.delegate=\\\"onRouteClicked(route)\\\" stack-router-link=\\\"clear-stack.bind: true\\\"> <span class=\\\"t--sidebar-item-title\\\" tr=\\\"key.bind: route.caption\\\"> </span> <span class=\\\"t--sidebar-item-icon\\\" if.bind=\\\"route.navigation.icon\\\" title.bind=\\\"route.caption | tr\\\"> <i class=\\\"fa fa-${route.navigation.icon}\\\"></i> <span if.bind=\\\"layout.isSidebarCollapsed\\\" class=\\\"t--sidebar-item-icon-text\\\">${route.caption | tr}</span> </span> </a> </li> </ul> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--sidebar {\\n  display: block;\\n  position: fixed;\\n  top: 0;\\n  bottom: 0;\\n  left: 0;\\n  z-index: 10;\\n  width: 280px;\\n  background-color: #2a2e35;\\n  font-size: 14px;\\n  transition: all 0.3s cubic-bezier(0.62, 0.28, 0.23, 0.99);\\n  transition-property: left;\\n}\\n.t--sidebar ul {\\n  padding: 0;\\n  margin: 0;\\n  list-style: none;\\n}\\n.t--sidebar-collapsed .t--sidebar {\\n  left: -220px;\\n}\\n.t--sidebar-collapsed .t--sidebar-sub {\\n  left: 60px;\\n}\\n.t--sidebar-header {\\n  display: flex;\\n  align-items: center;\\n  height: 60px;\\n  background-color: #262930;\\n  color: white;\\n  cursor: pointer;\\n}\\n.t--sidebar-header-title {\\n  flex-grow: 1;\\n  font-size: 26px;\\n  font-weight: 100;\\n  padding: 12px;\\n}\\n.t--sidebar-header-icon {\\n  display: flex;\\n  width: 60px;\\n  align-items: center;\\n  justify-content: center;\\n}\\n.t--sidebar-item {\\n  display: flex;\\n  align-items: center;\\n  height: 60px;\\n  color: lightgray;\\n  text-decoration: none;\\n}\\n.t--sidebar-item:hover {\\n  color: white;\\n}\\n.t--sidebar-item-title {\\n  flex-grow: 1;\\n  padding: 12px;\\n}\\n.t--sidebar-item-icon {\\n  display: flex;\\n  flex-direction: column;\\n  width: 60px;\\n  align-items: center;\\n  justify-content: center;\\n}\\n.t--sidebar-item-icon .t--sidebar-item-icon-text {\\n  font-size: 8px;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  max-width: 100%;\\n  padding: 5px 2px 0 2px;\\n}\\n.t--sidebar-sub {\\n  position: fixed;\\n  z-index: -9;\\n  left: 280px;\\n  min-width: 280px;\\n  background-color: #2a2e35;\\n  padding: 12px;\\n}\\n.t--sidebar-sub.au-enter-active {\\n  animation: leftFadeIn 0.3s cubic-bezier(0.62, 0.28, 0.23, 0.99);\\n}\\n.t--sidebar-sub-item {\\n  color: lightgray;\\n  text-decoration: none;\\n}\\n.t--sidebar-sub-item:hover {\\n  color: white;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  processContent,\n  bindable,\n  Scope,\n  TemplatingEngine,\n  OverrideContext,\n  TaskQueue,\n  View\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  DxTemplateService\n} from \"../services/dx-template-service\";\nimport * as DxLoader from \"../dx-loader\";\nimport {\n  BindingService,\n  DeepObserverService,\n  ScopeContainer\n} from \"../../base/export\";\nimport { BrowserService } from '../../base/services/browser-service';\n\n@autoinject\n@processContent(false)\nexport class DxWidget {\n  private _createdViews: View[] = [];\n  private _widgetElement: Element;\n  private _valueChangeByCodeCount: number = 0;\n\n  constructor(\n    private element: Element,\n    private templatingEngine: TemplatingEngine,\n    private binding: BindingService,\n    private deepObserver: DeepObserverService,\n    private dxTemplate: DxTemplateService,\n    private eventAggregator: EventAggregator,\n    private taskQueue: TaskQueue,\n    private browserService: BrowserService) {\n  }\n\n  @bindable name: string;\n  @bindable options: any;\n  @bindable validator: any;\n\n  id: string;\n  parentViewUrl: string;\n\n  owningView: any;\n  instance: any;\n  validatorInstance: any;\n  tooltipInstance: any;\n  templates = {};\n  scopeContainer: ScopeContainer;\n\n  created(owningView: any, myView: any) {\n    this.owningView = owningView;\n\n    if (owningView\n      && owningView.resources\n      && owningView.resources.viewUrl) {\n      this.parentViewUrl = owningView.resources.viewUrl;\n    }\n\n    this.id = this.element.getAttribute(\"view-model.ref\");\n  }\n  activate(e) {\n    if (e && e.name && e.options) {\n      this.name = e.name;\n      this.options = e.options;\n    }\n  }\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    });\n    this.checkMobile();\n    this.extractTemplates();\n    this.checkBindings();\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n  attached() {\n    this.renderInline();\n\n    const initializeOptions = this.getInitializeOptions();\n    this._widgetElement = document.createElement(\"div\");\n\n    //TODO - vermutlich müssen die Kinder im Speicher gemerkt werden und dann von dor hierher geklont werden\n    //=> Problem, dass im detached alles verworfen wird und dann nicht mehr da ist ...\n    while (this.element.children.length > 0) {\n      this._widgetElement.appendChild(this.element.children.item(0));\n    }\n\n    this.element.appendChild(this._widgetElement);\n\n    if (!DxLoader.exists(this.name)) {\n      throw new Error(`Widget ${this.name} does not exist`);\n    }\n\n    this.eventAggregator.publish(\"dx-widget:attaching\", {\n      widget: this,\n      owningView: this.owningView,\n      name: this.name,\n      options: initializeOptions\n    });\n\n    this.instance = DxLoader.createInstance(this.name, this._widgetElement, initializeOptions);\n\n    let validatorElement;\n    if (this.validator) {\n      this.validatorInstance = DxLoader.createInstance(\"dxValidator\", this._widgetElement, this.validator);\n    } else if (this.options[\"validators\"]) {\n      this.validatorInstance = DxLoader.createInstance(\"dxValidator\", this._widgetElement, {\n        validationRules: this.options[\"validators\"]\n      });\n    }\n\n    this.registerBindings();\n\n    this.eventAggregator.publish(\"dx-widget:attached\", {\n      widget: this,\n      owningView: this.owningView,\n      name: this.name,\n      options: initializeOptions,\n      element: this._widgetElement,\n      instance: this.instance\n    })\n  }\n  detached() {\n    let mainElement;\n    let tooltipElement;\n\n    if (this.instance) {\n      mainElement = this.instance.element();\n      this.instance.dispose();\n      this.instance = null;\n    }\n    if (this.validatorInstance) {\n      this.validatorInstance.dispose();\n      this.validatorInstance = null;\n    }\n    if (this.tooltipInstance) {\n      tooltipElement = this.tooltipInstance.element();\n      this.tooltipInstance.dispose();\n      this.tooltipInstance = null;\n    }\n    if (mainElement) {\n      this.element.removeChild(mainElement);\n    }\n    if (tooltipElement) {\n      this.element.removeChild(tooltipElement);\n    }\n\n    if (this.options && this.options.bindingOptions) {\n      for (let binding of this.options.bindingOptions) {\n        if (binding.deepObserver) {\n          binding.deepObserver();\n          binding.deepObserver = null;\n        }\n      }\n    }\n\n    this._createdViews.forEach(c => {\n      c.detached();\n      c.unbind();\n    });\n    this._createdViews.splice(0);\n  }\n\n  createTooltip(tooltip: string) {\n    if (this.tooltipInstance) {\n      const element: HTMLElement = this.tooltipInstance.element();\n      element.querySelector(\".dx-popup-content\").textContent = tooltip;\n      return;\n    }\n\n    const tooltipElement = document.createElement(\"div\");\n    tooltipElement.innerText = tooltip;\n    this.element.appendChild(tooltipElement);\n\n    this.tooltipInstance = DxLoader.createInstance(\"dxTooltip\", tooltipElement, {\n      target: this.instance.element(),\n      showEvent: \"dxhoverstart\",\n      hideEvent: \"dxhoverend\"\n    });\n  }\n\n  resetValidation() {\n    if (this.instance.option(\"isValid\") === false) {\n      this.setOption({\n        isValid: true\n      });\n    }\n  }\n  setOption(options: any) {\n    let hasValueProperty = false;\n\n    for (let key of Object.getOwnPropertyNames(options)) {\n      if ((key === \"items\" || key === \"dataSource\") && options[key] == void (0)) {\n        options[key] = [];\n      }\n\n      if (key != \"isValid\") {\n        const currentValue = this.instance.option(key);\n        if (currentValue === options[key]) {\n          delete options[key];\n          continue;\n        }\n      }\n\n      if (key === \"value\") {\n        hasValueProperty = true;\n      }\n    }\n\n    if (Object.getOwnPropertyNames(options).length === 0) {\n      return;\n    }\n\n    try {\n      if (hasValueProperty) {\n        this._valueChangeByCodeCount++;\n      }\n\n      this.instance.option(options);\n    } finally {\n      if (hasValueProperty) {\n        this._valueChangeByCodeCount--;\n      }\n    }\n  }\n\n  private checkMobile() {\n    if (!this.browserService.isMobile) {\n      return;\n    }\n\n    if (this.name === \"dxSelectBox\") {\n      this.name = \"dxLookup\";\n    } else if (this.name == \"dxPopup\") {\n      this.options.fullScreen = true;\n\n      delete this.options.width;\n      delete this.options.height;\n      delete this.options.maxWidth;\n      delete this.options.maxHeight;\n    }\n  }\n  private modelByElement(element: any): any {\n    return this.scopeContainer.scope;\n  }\n  private extractTemplates(): void {\n    const children = Array.from(this.element.children)\n      .filter((c) => c.tagName == \"DX-TEMPLATE\");\n\n    for (let i = 0; i < children.length; i++) {\n      const item = <HTMLElement>children[i];\n\n      const name = item.getAttribute(\"name\");\n      const alias = item.getAttribute(\"alias\") || \"data\";\n\n      this.templates[name] = {\n        render: (renderData) => {\n          const result = this.dxTemplate.render(\n            item,\n            renderData.container,\n            this.owningView.resources,\n            this.scopeContainer.scope,\n            renderData.model,\n            name\n          );\n\n          const onRenderedName = `on${this.getPascalCase(name)}Rendered`;\n          if (this.options && this.options[onRenderedName]) {\n            this.options[onRenderedName](this);\n          }\n\n          this._createdViews.push(result.view);\n          return result.element;\n        }\n      };\n\n      item.parentElement.removeChild(item);\n    }\n\n    Object.assign(this.templates, this.dxTemplate.getTemplates(this.scopeContainer.scope, this.owningView.resources));\n  }\n  private getInitializeOptions(): any {\n    this.options = this.options || {};\n\n    const initializeOptions = Object.assign({}, this.options);\n\n    const onOptionChangedOld = initializeOptions.onOptionChanged;\n    initializeOptions.onOptionChanged = (e) => {\n      if (onOptionChangedOld) {\n        onOptionChangedOld(e);\n      }\n\n      this.onOptionChanged(e);\n    };\n    \n    initializeOptions.modelByElement = this.modelByElement.bind(this);\n    initializeOptions.integrationOptions = {\n      templates: this.templates\n    }\n\n    if (this.options.bindingOptions) {\n      for (let property in this.options.bindingOptions) {\n        const binding = this.options.bindingOptions[property];\n        const value = this.binding.evaluate(this.scopeContainer.scope, binding.expression);\n\n        initializeOptions[property] = value;\n      }\n    }\n\n    return initializeOptions;\n  }\n  private registerBindings(): void {\n    if (!this.options.bindingOptions) {\n      return;\n    }\n\n    for (let property in this.options.bindingOptions) {\n      const binding = this.options.bindingOptions[property];\n\n      this.binding.observe({\n        scopeContainer: this.scopeContainer,\n        expression: binding.expression,\n        callback: (newValue, oldValue) => {\n          const options = {};\n          if (newValue === this.instance.option(property)) {\n            return;\n          }\n\n          options[property] = newValue;\n          options[\"isValid\"] = true;\n\n          this.setOption(options);\n          this.registerDeepObserver(binding, property, value);\n        }\n      });\n\n      const value = this.binding.evaluate(this.scopeContainer.scope, binding.expression);\n\n      this.registerDeepObserver(binding, property, value);\n    }\n  }\n  private checkBindings(): void {\n    if (!this.options) {\n      throw new Error(`Invalid or no options for ${this.name}`);\n    }\n\n    if (!this.options.bindingOptions) {\n      return;\n    }\n\n    for (let property in this.options.bindingOptions) {\n      const binding = this.checkBinding(property);\n    }\n  }\n  private checkBinding(property): void {\n    const bindingOptions = this.options.bindingOptions;\n\n    if (typeof bindingOptions[property] === \"string\") {\n      bindingOptions[property] = {\n        expression: bindingOptions[property]\n      }\n    }\n  }\n  private registerDeepObserver(binding, property, value): void {\n    if (binding.deepObserver) {\n      binding.deepObserver();\n      binding.deepObserver = null;\n    }\n\n    if (!binding.deep) {\n      return;\n    }\n\n    binding.deepObserver = this.deepObserver.observe(value, () => {\n      const options = {};\n      options[property] = value;\n      options[\"isValid\"] = true;\n      this.setOption(options);\n    });\n  }\n  private onOptionChanged(e): void {\n    if (e.name === \"value\" && !this.isChangeToPublish(e)) {\n      return;\n    }\n    if (this.options.bindingOptions) {\n      const binding = this.options.bindingOptions[e.name];\n      if (binding && !binding.readOnly) {\n        const currValue = this.binding.evaluate(this.scopeContainer.scope, binding.expression);\n\n        if (currValue === e.value) {\n          return;\n        }\n\n        this.binding.assign(this.scopeContainer.scope, binding.expression, e.value);\n      }\n    }\n    if (e.name === \"value\" && this.options.onValueChangedByUser && this._valueChangeByCodeCount === 0) {\n      this.options.onValueChangedByUser({\n        sender: this,\n        model: this.scopeContainer.scope,\n        value: e.value,\n        previousValue: e.previousValue\n      })\n    }\n  }\n  private renderInline(): void {\n    Array.from(this.element.children)\n      .forEach((child): void => {\n        const result = this.templatingEngine.enhance({\n          element: child,\n          resources: this.owningView.resources,\n          bindingContext: this.scopeContainer.scope.bindingContext,\n          overrideContext: this.scopeContainer.scope.overrideContext\n        });\n        \n        this._createdViews.push(result);\n      });\n  }\n  private getPascalCase(text: string): string {\n    return text.substr(0, 1).toUpperCase() + text.substr(1);\n  }\n  private isChangeToPublish(e): boolean {\n    const isSelect = this.name === \"dxSelectBox\"\n      || this.name == \"dxLookup\";\n\n    if (!isSelect) {\n      return true;\n    }\n\n    if (e.value != void (0) || e.previousValue != void (0)) {\n      return true;\n    }\n\n    return false;\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--dx-widget\\\"> </template>\";\n// Exports\nmodule.exports = code;","import { \n  FrameworkConfiguration,\n  PLATFORM\n} from \"aurelia-framework\";\nimport * as DxLoader from \"./dx-loader\";\n\nimport \"../../../resources/dx.common.css\";\nimport \"../../../resources/dx.custom.css\";\nimport \"../../../node_modules/devextreme/dist/js/localization/dx.messages.de.js\";\n\nexport function configure(config: FrameworkConfiguration) {\n  const dxLoader = DxLoader.initialize();\n\n  DevExpress.localization.locale(navigator.language || \"de\");\n  \n  DxLoader.getDefinition(\"dxChart\").defaultOptions({\n    options: {\n      palette: \"Office\"\n    }\n  });\n  DxLoader.getDefinition(\"dxPieChart\").defaultOptions({\n    options: {\n      palette: \"Office\"\n    }\n  });\n  DxLoader.getDefinition(\"dxPopover\").defaultOptions({\n    options: {\n      animation: { show: { type: 'fade', from: 0, to: 1 }, hide: { type: 'fade', to: 0 } },\n      position: \"bottom\"\n    }\n  });\n  DxLoader.getDefinition(\"dxCalendar\").defaultOptions({\n    options: {\n      firstDayOfWeek: 1\n    }\n  });\n  DxLoader.getDefinition(\"dxPopup\").defaultOptions({\n    options: {\n      animation: {\n        show: {\n          //type: \"slide\",\n          // from: { opacity: 0, left: \"+=15\" },\n          // to: { opacity: 1 },\n          type: \"fade\",\n          from: 0.1,\n          to: 1,\n          duration: 300,\n          easing: \"cubic-bezier(.62,.28,.23,.99)\"\n        }\n      },\n      position: { my: \"center\", at: \"center\", of: window }\n    }\n  });\n\n  config\n    .globalResources(PLATFORM.moduleName(\"./elements/dx-widget\"));\n}\n","import {\n  autoinject,\n  bindable\n} from \"aurelia-framework\"\nimport { LocationService } from '../../../base/services/location-service';\n\n@autoinject\nexport class StackRouterLinkCustomAttribute {\n  constructor(\n    private element: Element,\n    private locationService: LocationService\n  ) { }\n\n  @bindable clearStack: boolean;\n\n  bind() {\n    this.element.addEventListener(\"click\", (e) => {\n      const event: any = e;\n      if (!event.ctrlKey\n        && !event.altKey\n        && !event.shiftKey\n        && !event.metaKey) {\n        const href = this.element.getAttribute(\"href\");\n\n        if (href) {\n          this.locationService.goTo({\n            url: this.element.getAttribute(\"href\"),\n            clearStack: this.clearStack\n          });\n        }\n\n        e.preventDefault();\n      }\n    });\n  }\n}\n","import { ModelUtilsService } from \"./../../services/model-utils-service\";\nimport {\n  autoinject,\n  bindable,\n  bindingMode,\n  observable,\n  TaskQueue,\n  computedFrom\n} from \"aurelia-framework\";\n\ndeclare const monaco: any;\n\n@autoinject\nexport class CodeEditor {\n  private static _jsLoadedPromise: Promise<any>;\n  private static _vsLoadedPromise: Promise<any>;\n\n  constructor(\n    private element: Element,\n    private taskQueue: TaskQueue,\n    private modelUtils: ModelUtilsService\n  ) { }\n\n  @bindable caption: string;\n  @bindable @observable mainModel: any;\n  @bindable language: string;\n  @bindable height: string;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) @observable value: any;\n\n  host: Element;\n  editor: any;\n  editorDidChangeModelContentEvent: any;\n\n  @computedFrom(\"height\")\n  get heightEx(): string {\n    if (this.height) {\n      return this.height;\n    }\n\n    return \"250px\";\n  }\n\n  bind() {\n    this.createEditorOnMonacoLoaded();\n\n    if (this.value) {\n      this.valueChanged(this.value);\n    }\n  }\n  unbind() {\n    if (this.editorDidChangeModelContentEvent) {\n      this.editorDidChangeModelContentEvent.dispose();\n      this.editorDidChangeModelContentEvent = null;\n    }\n\n    if (this.editor) {\n      this.editor.getModel().dispose();\n      this.editor.dispose();\n      this.editor = null;\n    }\n  }\n\n  insert(text: string) {\n    const position = this.editor.getPosition();\n    this.editor.executeEdits(\"\", [{\n        range: new monaco.Range(position.lineNumber,\n          position.column,\n          position.lineNumber,\n          position.column),\n        text: text\n      }]);\n  }\n\n  mainModelChanged() {\n    this.taskQueue.queueMicroTask(() => {\n      this.valueChanged(this.value);\n    })\n  }\n  valueChanged(newVal) {\n    if (!this.editor) {\n      return;\n    }\n\n    if (newVal == this.editor.getValue()) {\n      return;\n    }\n\n    this.editor.setValue(newVal || \"\");\n  }\n\n  private createEditorOnMonacoLoaded() {\n    if ((<any>window).require) {\n      this.createEditorOnMonacoLoaded2();\n    } else if (CodeEditor._jsLoadedPromise) {\n      CodeEditor._jsLoadedPromise.then(() => {\n        this.createEditorOnMonacoLoaded2();\n      });\n    }\n    else {\n      CodeEditor._jsLoadedPromise = new Promise<any>((resolve, reject) => {\n        var loaderScript = document.createElement(\"script\");\n        loaderScript.type = \"text/javascript\";\n        loaderScript.src = \"vs/loader.js\";\n        loaderScript.addEventListener(\"load\", () => {\n          resolve(true);\n          this.createEditorOnMonacoLoaded2();\n        });\n        document.body.appendChild(loaderScript);\n      });\n    }\n  }\n  private createEditorOnMonacoLoaded2() {\n    if (!CodeEditor._vsLoadedPromise) {\n      CodeEditor._vsLoadedPromise = new Promise((resolve, reject) => {\n        (<any>window).require([\"vs/editor/editor.main\"], () => {\n          resolve(true);\n        });\n      });\n    }\n\n    CodeEditor._vsLoadedPromise.then(() => {\n      this.createEditor();\n    });\n  }\n  private createEditor() {\n    this.editor = monaco.editor.create(\n      this.host, {\n        autoIndent: true,\n        automaticLayout: true,\n        fontSize: \"12px\",\n        minimap: {\n          enabled: false\n        },\n        language: this.language || \"csharp\",\n        value: this.value\n      });\n\n    this.editorDidChangeModelContentEvent = this.editor.onDidChangeModelContent(() => {\n      const newVal = this.editor.getValue();\n\n      if ((newVal || \"\") == (this.value || \"\")) {\n        return;\n      }\n\n      this.value = newVal;\n\n      if (this.mainModel) {\n        this.modelUtils.setDirty(this.mainModel);\n      }\n    });\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./code-editor.less\\\"></require> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--has-editor-caption\\\" class.one-time=\\\"caption ? 't--has-editor-caption' : ''\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key.bind: caption\\\" if.bind=\\\"caption\\\"></div> <div ref=\\\"host\\\" class=\\\"code-editor-container\\\" css=\\\"height: ${heightEx}; width: 100%;\\\"></div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".code-editor-container {\\n  display: block;\\n  border: 1px solid #ddd;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  createOverrideContext,\n  OverrideContext,\n  TemplatingEngine,\n  TaskQueue,\n  observable,\n  View\n} from \"aurelia-framework\";\nimport {\n  ScopeContainer\n} from \"../../../base/export\";\nimport {\n  FormBase\n} from \"../../classes/form-base\";\nimport {\n  ToolbarService\n} from \"../../services/toolbar-service\";\nimport {\n  PopupInfoService\n} from \"../../services/popup-info-service\";\nimport {\n  ICustomEditPopupShowOptions\n} from \"./custom-edit-popup-show-options\";\nimport { ObjectService } from '../../../base/services/object-service';\nimport { TemplatingExService } from '../../../base/services/templating-ex-service';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class CustomEditPopup {\n  private _isInitialized: boolean = false;\n  private _showOptions: ICustomEditPopupShowOptions;\n  private _idToolbar = \"popupToolbar\";\n  private _createdToolbarView: View;\n\n  constructor(\n    private toolbar: ToolbarService,\n    private popupInfo: PopupInfoService,\n    private objectService: ObjectService,\n    private templatingEngine: TemplatingEngine,\n    private taskQueue: TaskQueue,\n    private templatingExService: TemplatingExService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  scope: any;\n  scopeContainer: ScopeContainer;\n\n  popup: any;\n  popupOptions: DevExpress.ui.dxPopupOptions = {\n    contentTemplate: \"contentTemplate\",\n    titleTemplate: (container: Element) => {\n      const toolbar = document.createElement(\"toolbar\");\n      toolbar.setAttribute(\"options.bind\", this._idToolbar);\n\n      container.appendChild(toolbar);\n\n      this._createdToolbarView = this.templatingEngine.enhance({\n        element: toolbar,\n        bindingContext: this.scopeContainer.scope.bindingContext,\n        overrideContext: this.scopeContainer.scope.overrideContext\n      });\n    },\n    showCloseButton: false,\n    onShowing: (e) => {\n      this.popupInfo.onShowPopup({\n        owner: this,\n        popup: <DevExpress.ui.dxPopup>e.component,\n        form: this.form.currentViewModel,\n        executeCommand: (idCommand) => {\n          this.form.currentViewModel.executeCommand(idCommand);\n        },\n        handleChangedData: () => {\n          return this.form.currentViewModel.handleChangedData();\n        },\n        hasChangedData: () => {\n          return this.form.currentViewModel.models.hasChangedData();\n        }\n      });\n    },\n    onShown: (e) => {\n      e.component.repaint();\n    },\n    onHiding: (e) => {\n      this.popupInfo.onHidePopup(<DevExpress.ui.dxPopup>e.component);\n    },\n    onDisposing: () => {\n      if (this._createdToolbarView) {\n        this.templatingExService.destroyView(this._createdToolbarView);\n        this._createdToolbarView = null;\n      }\n    }\n  };\n\n  @bindable idForm: string;\n  @bindable height: string;\n  @bindable maxWidth: string;\n  @bindable maxHeight: string;\n  @bindable delayedInitialize: boolean;\n  @observable form: any;\n\n  get isVisible() {\n    return this.popup\n      && this.popup.instance\n      && this.popup.instance.option(\"visible\");\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    if (this.height != void (0)) {\n      this.popupOptions.height = this.height;\n    }\n    if (this.maxWidth != void (0)) {\n      this.popupOptions.maxWidth = this.maxWidth;\n    }\n    if (this.maxHeight != void(0)) {\n      this.popupOptions.maxHeight = this.maxHeight;\n    }\n\n    (<any>this.popupOptions).onContentTemplateRendered = (e) => {\n      if (this.delayedInitialize === false) {\n        return;\n      }\n\n      this.taskQueue.queueTask(() => {\n        e.instance.show();\n      })\n    }\n\n    if (this.delayedInitialize === false) {\n      this.taskQueue.queueTask(() => {\n        setTimeout(() => {\n          this.initializeContent();\n        }, 1500);\n      });\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n\n  show(options: ICustomEditPopupShowOptions) {\n    this._showOptions = options;\n\n    if (!this._isInitialized) {\n      this.initializeContent();\n      //in onContentTemplateRendered wird das show gemacht!\n\n      return;\n    }\n\n    this.form.viewScrollInfo = this._showOptions.viewScrollInfo;\n    this.popup.instance.show();\n  }\n  hide() {\n    this.popup.instance.hide();\n  }\n  closeCurrentPopup() {\n    this.hide();\n  }\n\n  private initializeContent() {\n    this._isInitialized = true;\n\n    const popup: DevExpress.ui.dxPopup = this.popup.instance;\n    popup.option(\"deferRendering\", false);\n\n    let firstShownAction = (content: FormBase) => {\n      content.callOnCommandsLoaded(() => {\n        const toolbarOptions = this.toolbar.createToolbarOptions(\n          content.scopeContainer,\n          content.title,\n          content.commands.getCommands());\n\n        content.binding.observe({\n          scopeContainer: content.scopeContainer,\n          expression: \"title\",\n          callback: (newVal) => {\n            toolbarOptions.title = newVal;\n          }\n        });\n\n        this[this._idToolbar] = toolbarOptions;\n      });\n\n      content.models.onLoaded.register(e => {\n        if (e.model !== content.models.modelWithKeyId) {\n          return Promise.resolve();\n        }\n        if (!e.data) {\n          return Promise.resolve();\n        }\n\n        if (!this._showOptions || !this._showOptions.setValuesOnModelWithKeyIdLoaded) {\n          return Promise.resolve();\n        }\n\n        const setValues = this._showOptions.setValuesOnModelWithKeyIdLoaded;\n\n        for (let key in setValues) {\n          this.objectService.setValue(e.data, key, setValues[key]);\n          e.data[key] = setValues[key];\n        }\n\n        return Promise.resolve();\n      });\n\n      content.models.onSaved.register(e => {\n        if (this._showOptions && this._showOptions.savedCallback) {\n          this._showOptions.savedCallback(content);\n        }\n\n        return Promise.resolve();\n      });\n    };\n\n    popup.on({\n      showing: e => {\n        const content: Element = e.component.content();\n        content.parentElement.classList.add(\"t--popup\");\n      },\n      shown: async () => {\n        const content: FormBase = await this.templatingExService.waitForViewModel(this.form);\n\n        content.viewScrollInfo = this._showOptions.viewScrollInfo;\n\n        if (firstShownAction) {\n          firstShownAction(content);\n          firstShownAction = null;\n        }\n\n        if (this._showOptions && this._showOptions.mappings) {\n          for (let key in this._showOptions.mappings) {\n            content.variables.data[key] = this._showOptions.mappings[key];\n          }\n        }\n        this.eventAggregator.publish(\"editpopup:shown\", {\n          form: content\n        });\n\n        content.dispatchOnReady();\n      },\n      hiding: () => {\n        if (!this._showOptions || !this._showOptions.closeCallback) {\n          return;\n        }\n\n        this._showOptions.closeCallback(this.form.currentViewModel);\n      },\n      hidden: () => {\n        if (this._showOptions && this._showOptions.mappings) {\n          const content: FormBase = this.form.currentViewModel;\n          for (let key in this._showOptions.mappings) {\n            content.variables.data[key] = null;\n          }\n        }\n        this.eventAggregator.publish(\"editpopup:hidden\", {\n          form: this.form.currentController.viewModel\n        });\n\n        this._showOptions = null;\n      }\n    })\n  }\n}\n","// Module\nvar code = \"<template> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"popupOptions\\\" view-model.ref=\\\"popup\\\"> <dx-template name=\\\"contentTemplate\\\"> <compose view-model.ref=\\\"form\\\" view-model.bind=\\\"idForm\\\" is-edit-popup=\\\"true\\\"> </compose> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  bindable,\n  computedFrom,\n  observable,\n  BindingEngine,\n  Disposable,\n  Expression,\n  OverrideContext,\n  TaskQueue,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  IFileUploaderWithViewerOptions\n} from \"../../widget-options/export\";\nimport {\n  BindingService,\n  FileService,\n  LocalizationService,\n  ScopeContainer\n} from \"../../../base/export\";\n\nimport { IToolbarOptions } from '../toolbar/toolbar-options';\nimport { ModelUtilsService } from '../../services/model-utils-service';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class TipFileUploaderWithViewer {\n  private _isClickActive: boolean;\n\n  constructor(\n    private element: Element,\n    private file: FileService,\n    private localization: LocalizationService,\n    private binding: BindingService,\n    private bindingEngine: BindingEngine,\n    private taskQueue: TaskQueue,\n    private modelUtilsService: ModelUtilsService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  @bindable options: IFileUploaderWithViewerOptions;\n  @observable currentValue: any;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  input: HTMLInputElement;\n  downloadUrl: string;\n  showImage: boolean;\n\n  bindingContext: any;\n  overrideContext: OverrideContext;\n\n  observables: Disposable[] = [];\n  dropEnabled: boolean = false;\n\n  isReadOnly: boolean;\n  isDisabled: boolean;\n\n  placeholderIcon?: string;\n  placeholderImage?: string;\n  placeholderImageText?: string;\n  placeholder?: string;\n  @observable iconDownload?: string;\n  imageContainerStyle: any;\n\n  toolbarTopOptions: IToolbarOptions;\n  toolbarBottomOptions: IToolbarOptions;\n\n  downloadButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Download\",\n    onClick: () => {\n      window.open(this.downloadUrl, \"_blank\");\n    }\n  }\n  clearButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-trash-o\",\n    onClick: () => {\n      this.setValue(null);\n    }\n  }\n\n  @computedFrom(\"options.showViewer\", \"downloadUrl\")\n  get showViewer(): boolean {\n    return this.downloadUrl\n      && (!this.options\n        || this.options.showViewer == void (0)\n        || this.options.showViewer == true);\n  }\n  @computedFrom(\"showViewer\", \"options.acceptType\")\n  get showImageViewer(): boolean {\n    return this.showViewer\n      && this.options\n      && this.options.acceptType == \"image/*\";\n  }\n  @computedFrom(\"dropEnabled\")\n  get clickableClass(): string {\n    if (this.dropEnabled) {\n      return \"t--file-uploader-with-viewer-click-region-droppable\";\n    } else {\n      return \"\";\n    }\n  }\n  @computedFrom(\"isReadOnly\", \"isDisabled\")\n  get canUpload(): boolean {\n    return !this.isReadOnly && !this.isDisabled;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.bindingContext = bindingContext;\n    this.overrideContext = overrideContext;\n\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    const bindingOptions = this.options[\"bindingOptions\"];\n    if (bindingOptions && bindingOptions.value) {\n      this.observeValue(bindingOptions.value, (v) => this.currentValue = v);\n    }\n\n    if (this.options.iconDownloadExpression) {\n      this.observeValue(this.options.iconDownloadExpression, (v) => this.iconDownload = v);\n    } else if (this.options.iconDownload) {\n      this.iconDownload = this.options.iconDownload;\n    }\n\n    if (this.options.placeholderImageExpression) {\n      this.observeValue(this.options.placeholderImageExpression, (v) => this.placeholderImage = v);\n    } else if (this.options.placeholderImage) {\n      this.placeholderImage = this.options.placeholderImage;\n    }\n\n    if (this.options.placeholderIconExpression) {\n      this.observeValue(this.options.placeholderIconExpression, (v) => this.placeholderIcon = v);\n    } else if (this.options.placeholderIcon) {\n      this.placeholderIcon = this.options.placeholderIcon;\n    }\n\n    if (this.options.isReadOnlyExpression) {\n      this.observeValue(this.options.isReadOnlyExpression, (v) => this.isReadOnly = v);\n    } else if (this.options.isReadOnly) {\n      this.isReadOnly = this.options.isReadOnly;\n    }\n\n    if (this.options.isDisabledExpression) {\n      this.observeValue(this.options.isDisabledExpression, (v) => this.isDisabled = v);\n    } else if (this.options.isDisabled) {\n      this.isDisabled = this.options.isDisabled;\n    }\n\n    if (this.options.showDownloadButton == void(0)) {\n      this.options.showDownloadButton = true;\n    }\n\n    this.placeholderImageText = this.options.placeholderImageText;\n    this.placeholder = this.localization.translateOnce(\"forms.file_uploadClickHere\");\n\n    this.imageContainerStyle = {\n      height: this.options.height\n        ? this.options.height\n        : \"150px\"\n    };\n\n    this.eventAggregator.publish(\"file-uploader:bind\", {\n      element: this.element,\n      options: this.options\n    });\n\n    this.createToolbarTop();\n    this.createToolbarBottom();\n  }\n  unbind() {\n    if (this.observables) {\n      this.observables.forEach(c => c.dispose());\n      this.observables.length = 0;\n    }\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n  attached() {\n    this.input.addEventListener(\"change\", (e) => {\n      if (this.input.files.length !== 1) {\n        return;\n      }\n\n      this.uploadFile(this.input.files[0]);\n    });\n  }\n\n  getExpressionContext(propertyName: string) {\n    return this.binding.getBindingContext({\n      bindingContext: this.bindingContext,\n      overrideContext: this.overrideContext\n    }, propertyName);\n  }\n  observeValue(propertyName: string, setValueCallback: { (value): void }) {\n    const expression = this.bindingEngine.parseExpression(propertyName);\n    const context = this.getExpressionContext(propertyName);\n    const observer = this.bindingEngine.expressionObserver(context, propertyName);\n\n    this.observables.push(observer.subscribe((newValue, oldValue) => {\n      setValueCallback(expression.evaluate({\n        bindingContext: this.bindingContext,\n        overrideContext: this.overrideContext\n      }));\n    }));\n\n    setValueCallback(expression.evaluate({\n      bindingContext: this.bindingContext,\n      overrideContext: this.overrideContext\n    }));\n  }\n\n  currentValueChanged(newValue: string) {\n    if (newValue) {\n      this.downloadUrl = this.file.getDownloadUrl(newValue);\n    } else {\n      this.downloadUrl = null;\n    }\n\n    this.taskQueue.queueTask(() => {\n      //HACK notwendig, da Firefox das Bild ansonsten ev. außerhalb des Borders anzeigt\n      this.showImage = !!this.downloadUrl;\n    })\n  }\n  iconDownloadChanged(newValue: string) {\n    let downloadButton: DevExpress.ui.dxButton = this[\"downloadButton\"];\n    const icon = `fa fa-${this.iconDownload || \"cloud-download\"}`;\n\n    if (downloadButton) {\n      downloadButton.option(\"icon\", icon);\n    } else {\n      this.downloadButtonOptions.icon = icon;\n    }\n  }\n\n  onClick() {\n    if (!this.canUpload) {\n      return;\n    }\n\n    this.input.click();\n    \n    event.stopPropagation();\n    event.preventDefault();\n  }\n  onDragOver(event: Event) {\n    event.preventDefault();\n    this.dropEnabled = this.isDropEnabled(event);\n  }\n  onDragLeave(event: Event) {\n    event.preventDefault();\n    this.dropEnabled = false;\n  }\n  onDrop(event: any) {\n    event.preventDefault();\n\n    if (!this.isDropEnabled(event)) {\n      return;\n    }\n\n    this.uploadFile(event.dataTransfer.files[0]);\n    this.dropEnabled = false;\n  }\n\n  setValue(val: any) {\n    const bindingOptions = this.options[\"bindingOptions\"];\n    if (bindingOptions && bindingOptions.value) {\n      const expression = this.bindingEngine.parseExpression(bindingOptions.value);\n      expression.assign({\n        bindingContext: this.bindingContext,\n        overrideContext: this.overrideContext\n      }, val, null);\n    }\n\n    if (this.options.onFileKeyChanged) {\n      this.options.onFileKeyChanged(val);\n    }\n\n    if (this.options && this.options.clearCurrentValueAfterUpload) {\n      this.currentValue = null;\n    }\n  }\n\n  private createToolbarTop() {\n    if (!this.options.showToolbar) {\n      return;\n    }\n\n    this.toolbarTopOptions = {\n      title: this.options.caption,\n      items: [],\n      smallToolbar: true\n    };\n\n    this.toolbarTopOptions.items.push({\n      id: \"file-upload\",\n      icon: \"upload\",\n      isEnabledExpression: \"canUpload\",\n      execute: () => {\n        this.onClick();\n      }\n    });\n    this.toolbarTopOptions.items.push({\n      id: \"file-delete\",\n      icon: \"times\",\n      isEnabledExpression: \"canUpload\",\n      execute: () => {\n        this.setValue(null);\n      }\n    });\n\n    this.eventAggregator.publish(\"file-uploader:create-toolbar-top\", {\n      element: this.element,\n      options: this.options,\n      instance: this,\n      toolbarOptions: this.toolbarTopOptions\n    });\n  }\n  private createToolbarBottom() {\n    if (!this.options.showToolbarBottom) {\n      return;\n    }\n\n    this.toolbarBottomOptions = {\n      title: null,\n      items: [],\n      smallToolbar: true\n    };\n\n    this.eventAggregator.publish(\"file-uploader:create-toolbar-bottom\", {\n      element: this.element,\n      options: this.options,\n      instance: this,\n      toolbarOptions: this.toolbarBottomOptions\n    });\n  }\n  private isDropEnabled(event: any): boolean {\n    if (!this.canUpload) {\n      return false;\n    }\n\n    if (!event.dataTransfer || !event.dataTransfer.types || event.dataTransfer.types.length !== 1) {\n      return false;\n    }\n\n    return true;\n  }\n  private uploadFile(file: File) {\n    if (this.options && this.options.maxFileSizeMB && file.size > this.options.maxFileSizeMB * 1024 * 1024) {\n      DevExpress.ui.notify(\n        this.localization.translateOnce(\"forms.max_file_size_exceeded\", [this.options.maxFileSizeMB.toString()]),\n        \"error\",\n        3000);\n\n      this.input.value = null;\n      return;\n    }\n\n    if (file.size > 50 * 1024 * 1024) {\n      DevExpress.ui.notify(\n        this.localization.translateOnce(\"forms.max_file_size_exceeded\", [\"50\"]),\n        \"error\",\n        3000);\n\n      this.input.value = null;\n      return;\n    }\n\n    if (!this.isFileTypeValid(file)) {\n      DevExpress.ui.notify(\n        this.localization.translateOnce(\"forms.file_type_not_supported\", [this.options.acceptType]),\n        \"error\",\n        3000);\n\n      this.input.value = null;\n      return;\n    }\n\n    this.taskQueue.queueTask(() => {\n      this.file\n        .upload(file)\n        .then(r => {\n          if (!r) {\n            return;\n          }\n\n          const key = r;\n          this.input.value = null\n          this.currentValue = key;\n          \n          this.setValue(key);\n          this.dispatchUploadedEvent(file, key);\n        })\n        .catch(() => {\n          this.input.value = null\n        });\n    });\n  }\n  private isFileTypeValid(file: File): boolean {\n    if (!this.options || !this.options.acceptType) {\n      return true;\n    }\n\n    let isValid = false;\n    if (this.options.acceptType.indexOf(\"/\") >= 0) {\n      let acceptType = this.options.acceptType;\n\n      const indexOfWildcard = acceptType.indexOf(\"/*\");\n      if (indexOfWildcard >= 0) {\n        acceptType = acceptType.substr(0, indexOfWildcard + 1)\n          .concat(\".\")\n          .concat(acceptType.substr(indexOfWildcard + 1));\n      }\n\n      isValid = new RegExp(\"^\".concat(acceptType).concat(\"$\")).test(file.type);\n    } else {\n      const tokens = this.options.acceptType.toLowerCase().split(\",\");\n      isValid = tokens.some(c => file.name.toLowerCase().endsWith(c));\n    }\n\n    return isValid;\n  }\n  private dispatchUploadedEvent(file, key) {\n    const event = new CustomEvent(\"file-uploaded\", {\n      detail: {\n        sender: this,\n        value: {\n          file: file,\n          fileKey: key\n        }\n      },\n      bubbles: true\n    });\n\n    this.element.dispatchEvent(event);\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--file-uploader-with-viewer\\\"> <require from=\\\"./tip-file-uploader-with-viewer.less\\\"></require> <input type=\\\"file\\\" accept.bind=\\\"options.acceptType\\\" ref=\\\"input\\\"> <toolbar if.bind=\\\"options.showToolbar\\\" class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"toolbarTopOptions\\\"></toolbar> <div class=\\\"t--file-uploader-with-viewer-click-region\\\" class.bind=\\\"clickableClass\\\" css.bind=\\\"imageContainerStyle\\\" click.delegate=\\\"onClick($event)\\\" dragover.delegate=\\\"onDragOver($event)\\\" dragleave.delegate=\\\"onDragLeave($event)\\\" drop.delegate=\\\"onDrop($event)\\\"> <div if.bind=\\\"canUpload && placeholderImage && !downloadUrl\\\" class=\\\"t--file-uploader-image\\\"> <img src=\\\"${placeholderImage | fileDownload}\\\"/> </div> <div if.bind=\\\"canUpload && placeholderImage && !downloadUrl && placeholderImageText\\\" class=\\\"t--file-uploader-placeholder-image-text\\\"> <span if.bind=\\\"placeholderImageText\\\">${placeholderImageText}</span> </div> <div if.bind=\\\"canUpload && !placeholderImage && !downloadUrl\\\" class=\\\"t--file-uploader-placeholder-text\\\"> <span>${placeholder}</span> </div> <div if.bind=\\\"canUpload && placeholderIcon && !downloadUrl\\\" class=\\\"t--file-uploader-placeholder-icon\\\"> <i class=\\\"fa fa-${placeholderIcon}\\\"></i> </div> <div if.bind=\\\"showImageViewer\\\" class=\\\"t--file-uploader-image\\\"> <img show.bind=\\\"showImage\\\" src.bind=\\\"downloadUrl\\\"/> </div> <div class=\\\"t--file-uploader-with-viewer-download\\\"> <dx-widget if.bind=\\\"showViewer && options.showDownloadButton\\\" view-model.ref=\\\"downloadButton\\\" name=\\\"dxButton\\\" options.bind=\\\"downloadButtonOptions\\\"></dx-widget> <dx-widget if.bind=\\\"showViewer && options.showClearButton && canUpload\\\" name=\\\"dxButton\\\" options.bind=\\\"clearButtonOptions\\\"></dx-widget> </div> <toolbar if.bind=\\\"options.showToolbarBottom\\\" class=\\\"t--ribbon-toolbar-inline\\\" options.bind=\\\"toolbarBottomOptions\\\"></toolbar> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--file-uploader-with-viewer input {\\n  position: absolute;\\n  height: 0;\\n  width: 0;\\n  overflow: hidden;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-with-viewer-click-region {\\n  width: 100%;\\n  border: 3px dotted gray;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: center;\\n  align-items: center;\\n  padding: 12px;\\n  position: relative;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-with-viewer-click-region-droppable {\\n  border-color: #2DCC70;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-image {\\n  width: 100%;\\n  height: 100%;\\n  position: relative;\\n  display: flex;\\n  justify-content: center;\\n  align-content: center;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-placeholder-text {\\n  display: flex;\\n  align-items: center;\\n  flex-grow: 1;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-placeholder-text span {\\n  text-align: center;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-placeholder-image-text {\\n  position: absolute;\\n  bottom: 12px;\\n  left: 12px;\\n  right: 12px;\\n  background-color: rgba(0, 0, 0, 0.4);\\n  color: white;\\n  display: flex;\\n  padding: 12px;\\n  justify-content: center;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-with-viewer-download {\\n  margin-top: 12px;\\n}\\n.t--file-uploader-with-viewer .t--file-uploader-with-viewer-download > * + * {\\n  margin-right: 6px;\\n}\\n.t--file-uploader-with-viewer img {\\n  max-height: 100%;\\n  max-width: 100%;\\n  position: absolute;\\n}\\n.t--is-ie .t--file-uploader-with-viewer img {\\n  margin-left: -50%;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { GlobalizationService } from './../../../base/services/globalization-service';\nimport { autoinject, OverrideContext, Scope, createOverrideContext, TaskQueue } from 'aurelia-framework';\nimport { DataSourceService, LocalizationService, RestService, ScopeContainer } from '../../../base/export';\nimport { GridLayoutService } from '../../services/grid-layout-service';\nimport { LayoutService } from '../../services/layout-service';\nimport { SimpleWidgetCreatorService, ICommandData, IModel } from '../../export';\n@autoinject\nexport class GridLayoutColumns {\n  private _deleteColumnList: string[] = [];\n\n  constructor(\n    private dataSourceService: DataSourceService,\n    private gridLayoutService: GridLayoutService,\n    private globalizationService: GlobalizationService,\n    private layoutService: LayoutService,\n    private localizationService: LocalizationService,\n    private restService: RestService,\n    private simpleWidgetCreator: SimpleWidgetCreatorService,\n    private taskQueue: TaskQueue\n  ) { }\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  options: IGridLayoutColumnsShowOptions;\n  gridColumns: IGridLayoutColumn[] = [];\n\n  addColumnCommand: ICommandData = {\n    id: \"addDynSpalteCommand\",\n    title: \"grid_layout_columns.neu_spalte\",\n    icon: \"plus\",\n    sortIndex: 1010,\n    execute: () => {\n      if (this.gridColumns.length > 0) {\n        const result = this.gridColumnsValidation.instance.validate();\n\n        if (!result.isValid) {\n          return;\n        }\n      }\n\n      this.gridColumns.push({\n        caption: null,\n        captionFQ: null,\n        dataField: null,\n        dataFieldFQ: null,\n        dataType: null,\n        format: null\n      });\n    }\n  };\n  saveColumnsCommand: ICommandData = {\n    id: \"addDynSpalteCommand\",\n    title: \"base.save\",\n    icon: \"floppy-o\",\n    sortIndex: 1015,\n    execute: async () => {\n      const isValid = this.validateGridLayout();\n      if (!isValid) {\n        return;\n      }\n      const layout = this.getColumnsLayoutToSave();\n\n      await this.layoutService.saveLayout(\n        this.gridLayoutService.GRID_COLUMNS,\n        this.options.formViewUrl,\n        this.options.idGrid, \n        layout);\n\n      this.updateVisibleGridColumns();\n      this.gridColumnsPopup.instance.hide();\n\n      DevExpress.ui.notify(\n        this.localizationService.translateOnce(\"base.save_success\"),\n        \"SUCCESS\",\n        3000);\n    }\n  };\n\n  deleteColumnButtonOptions: DevExpress.ui.dxButtonOptions = {\n    icon: \"fa fa-times fa-fw\",\n    onClick: (e) => {\n      const gridColumn: IGridLayoutColumn = e.model.bindingContext.gridColumn;\n      const index = this.gridColumns.findIndex(d => d === gridColumn);\n      this.gridColumns.splice(index, 1);\n\n      this._deleteColumnList.push(gridColumn.dataFieldFQ);\n    }\n  }\n\n  captionTexBoxOptions: DevExpress.ui.dxTextBoxOptions = {\n    bindingOptions: {\n      value: \"gridColumn.caption\"\n    }\n  }\n  gridColumnsPopup: any;\n  gridColumnsPopupOptions: DevExpress.ui.dxPopupOptions = {\n    width: \"700px\",\n    minHeight: \"250px\",\n    maxHeight: \"350px\"\n  };\n  gridColumnDropBoxOptions: DevExpress.ui.dxDropDownBoxOptions = {\n    displayExpr: \"captionFQ\",\n    valueExpr: \"dataFieldFQ\",\n    showClearButton: true,\n    contentTemplate: \"contentTreeViewTemplate\",\n    onInitialized: (e: any) => {\n      const value = e.component.option(\"value\")\n      if (!value) {\n        return;\n      }\n\n      e.component.option(\"items\", [e.model.bindingContext.gridColumn]);\n    },\n    bindingOptions: {\n      value: \"gridColumn.dataFieldFQ\"\n    }\n  };\n  gridColumnTreeViewOptions: DevExpress.ui.dxTreeViewOptions = {\n    dataStructure: \"tree\",\n    itemsExpr: \"NestedProperties\",\n    keyExpr: \"dataFieldFQ\",\n    displayExpr: \"Caption\",\n    selectionMode: \"single\",\n    selectByClick: true,\n    height: \"200px\",\n    focusStateEnabled: false,\n    onInitialized: (e: any) => {\n      const dataSource = e.component.option(\"dataSource\");\n      if (!dataSource) {\n        return;\n      }\n\n      const dataFieldFQ: string = e.model.bindingContext.data.value;\n      const hasLoaded = e.component.option(\"items\").length;\n      const component: DevExpress.ui.dxTreeView = e.component;\n\n      if (!dataFieldFQ || !hasLoaded) {\n        component.unselectAll();\n        return;\n      }\n\n      const parentFQ = dataFieldFQ.substring(0, dataFieldFQ.lastIndexOf(\"__\"));\n\n      if (parentFQ && parentFQ.startsWith(\"_cgc_\")) {\n        this.taskQueue.queueMicroTask(() => {\n          component.expandItem(parentFQ);\n        });\n      }\n\n      component.selectItem(dataFieldFQ);\n    },\n    onItemSelectionChanged: (e: any) => {\n      const hasChildren = e.itemData.hasItems\n      const component: DevExpress.ui.dxDropDownBox = e.model.bindingContext.data.component;\n      e.model.overrideContext.bindingContext.gridColumn.dataFieldFQ = !hasChildren\n        ? e.itemData.dataFieldFQ\n        : null;\n      e.model.overrideContext.bindingContext.gridColumn.dataType = !hasChildren\n        ? e.itemData.DataType\n        : null;\n      e.model.overrideContext.bindingContext.gridColumn.format = !hasChildren\n        ? e.itemData.Format\n        : null;\n\n      e.model.bindingContext.data.component.option(\"items\", [e.itemData]);\n    },\n    bindingOptions: {\n      dataSource: \"gridColumnsDataSource\"\n    }\n  };\n\n  gridColumnsData: any[];\n  gridColumnsDataSource: DevExpress.data.DataSource;\n\n  gridColumnsValidation: any;\n  gridColumnsValidationGroupOptions: DevExpress.ui.dxValidationGroupOptions = {};\n  requiredOptions: DevExpress.ui.dxValidatorOptions = {\n    validationRules: [{ type: \"required\" }]\n  };\n\n  attached() {\n    this.gridLayoutService.gridLayoutColumnsElement = this;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this, null)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.simpleWidgetCreator.updatePopupOptions({\n      idToolbar: \"dynSpaltenPopupToolbar\",\n      caption: \"grid_layout_columns.popup_titel\",\n      options: this.gridColumnsPopupOptions,\n      commands: [this.addColumnCommand, this.saveColumnsCommand],\n      scopeContainer: this.scopeContainer\n    });\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n  }\n\n  async showPopup(options: IGridLayoutColumnsShowOptions) {\n    this._deleteColumnList = [];\n    this.options = options;\n\n    if (!this.options.webApiAction) {\n      return;\n    }\n\n    await this.loadProperties();\n    this.loadCurrentLayout();\n\n    this.gridColumnsPopup.instance.show();\n  }\n\n  private async loadProperties() {\n    const data: any[] = await this.restService.get({\n      url: `${this.restService.getApiUrl(\"base/WebApiInfo/Properties\")}/?webApiAction=${this.options.webApiAction}&levels=2`\n    });\n\n    this.prepareProperties(\"\", \"_cgc_\", data);\n\n    this.gridColumnsData = data;\n    this.gridColumnsDataSource = new DevExpress.data.DataSource(data);\n  }\n  private loadCurrentLayout() {\n    const columns: IGridLayoutColumn[] = this.layoutService.getLayout(\n      this.gridLayoutService.GRID_COLUMNS,\n      this.options.formViewUrl,\n      this.options.idGrid) || [];\n\n    this.gridColumns = columns.length > 0\n      ? columns.map(c => {\n        return {\n          caption: c.caption,\n          captionFQ: this.getCaptionFQ(this.gridColumnsData, c.dataField),\n          dataField: c.dataField,\n          dataFieldFQ: c.dataField,\n          dataType: this.getDataType(this.gridColumnsData, c.dataField) || GridColumnDataType.Unknown,\n          format: c.format\n        }\n      })\n      : [];\n  }\n  private getGridColumnWith(dataType: GridColumnDataType, format: string): string {\n    switch (dataType) {\n      case GridColumnDataType.Number:\n      case GridColumnDataType.Boolean:\n        return \"80px\";\n      case GridColumnDataType.Date:\n        return format == \"g\" ? \"120px\" : \"90px\";\n      default:\n        return undefined;\n    }\n  }\n  private getGridColumnMinWith(dataType: GridColumnDataType): number {\n    switch (dataType) {\n      case GridColumnDataType.Text:\n      case GridColumnDataType.Unknown:\n        return 100;\n      default:\n        return undefined;\n    }\n  }\n  private getCaptionFQ(data: any[], dataFieldFQ: string): string {\n    for (let item of data) {\n      if (item.dataFieldFQ === dataFieldFQ) {\n        return item.captionFQ;\n      } else if (item.hasItems) {\n        let captionFQ = this.getCaptionFQ(item.NestedProperties, dataFieldFQ);\n        if (captionFQ) {\n          return captionFQ;\n        }\n      }\n    }\n\n    return \"\";\n  }\n  private getDataType(data: any[], dataFieldFQ: string): GridColumnDataType {\n    for (let item of data) {\n      if (item.dataFieldFQ === dataFieldFQ) {\n        return item.DataType;\n      } else if (item.hasItems) {\n        let dataType = this.getDataType(item.NestedProperties, dataFieldFQ);\n        if (dataType != void(0)) {\n          return dataType;\n        }\n      }\n    }\n\n    return undefined;\n  }\n  private getColumnsLayoutToSave(): any[] {\n    return this.gridColumns.map(c => {\n      return {\n        caption: c.caption,\n        dataField: c.dataFieldFQ,\n        format: c.format,\n        minWidth: this.getGridColumnMinWith(c.dataType),\n        width: this.getGridColumnWith(c.dataType, c.format)\n      }\n    });\n  }\n  private prepareProperties(prefixCaptionFQ: string, prefixDataFieldFQ: string, list: any[]) {\n    for (let item of list) {\n      item.captionFQ = prefixCaptionFQ.concat(item.Caption);\n      item.dataFieldFQ = prefixDataFieldFQ.concat(item.Name);\n      item.hasItems = item.NestedProperties.length > 0;\n\n      if (item.hasItems) {\n        this.prepareProperties(item.captionFQ.concat(\".\"), item.dataFieldFQ.concat(\"__\"), item.NestedProperties);\n      }\n    }\n\n    list.sort((a, b) => {\n      if (a.hasItems && !b.hasItems) {\n        return 1;\n      } else if (b.hasItems && !a.hasItems) {\n        return -1;\n      }\n\n      return a.Caption.localeCompare(b.Caption);\n    })\n  }\n  private updateVisibleGridColumns() {\n    try {\n      let hasColumnsAdded = false;\n      this.options.gridInstance.beginUpdate();\n\n      for (let dataFieldFQ of this._deleteColumnList) {\n        this.options.gridInstance.deleteColumn(dataFieldFQ);\n      }\n      this._deleteColumnList = [];\n\n      for (let gridColumn of this.gridColumns) {\n        const column: DevExpress.ui.dxDataGridColumn = this.options.gridInstance.columnOption(gridColumn.dataFieldFQ);\n\n        if (column) {\n          this.options.gridInstance.columnOption(gridColumn.dataFieldFQ, \"caption\", gridColumn.caption);\n        } else {\n          this.options.gridInstance.addColumn({\n            caption: gridColumn.caption,\n            dataField: gridColumn.dataFieldFQ,\n            format: gridColumn.format ? this.globalizationService.getFormatterParser(gridColumn.format) : null,\n            width: this.getGridColumnWith(gridColumn.dataType, gridColumn.format),\n            minWidth: this.getGridColumnMinWith(gridColumn.dataType),\n            visible: true\n          });\n  \n          hasColumnsAdded = true;\n        }\n      }\n  \n      if (hasColumnsAdded && this.options.onColumnsAdded) {\n        this.options.onColumnsAdded();\n      }\n    }\n    finally {\n      this.options.gridInstance.endUpdate();\n    }\n  }\n  private validateGridLayout(): boolean {\n    if (this.gridColumns.length <= 0) {\n      return true;\n    }\n\n    this.gridColumns.forEach(c => c[\"_invalid\"] = false);\n\n    let isValid = this.gridColumnsValidation.instance.validate().isValid;\n\n    if (isValid === true) {\n      isValid = !this.gridColumns.some((c, i, a) => {\n        const sameGridColum = a.filter(b => c.dataFieldFQ == b.dataFieldFQ);\n        if (sameGridColum.length > 1) {\n          sameGridColum.forEach(s => s[\"_invalid\"] = true);\n          return true;\n        }\n\n        return false;\n      });\n\n      if (!isValid) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"grid_layout_columns.spalten_doppelt\"), \"ERROR\", 3000);\n      }\n    }\n\n    return isValid;\n  }\n}\n\nexport interface IGridLayoutColumnsShowOptions {\n  webApiAction: string;\n  formViewUrl: string;\n  idGrid: string;\n  gridInstance: DevExpress.ui.dxDataGrid;\n  onColumnsAdded?: {(): void};\n}\ninterface IGridLayoutColumn {\n  caption: string;\n  captionFQ: string;\n  dataField: string;\n  dataFieldFQ: string;\n  dataType: GridColumnDataType;\n  format?: string;\n}\nenum GridColumnDataType {\n  Text = 0,\n  Number = 1,\n  Date = 2,\n  Boolean = 3,\n  Unknown = 4\n}\n","// Module\nvar code = \"<template> <require from=\\\"./grid-layout-columns.less\\\"></require> <dx-widget name=\\\"dxPopup\\\" options.bind=\\\"gridColumnsPopupOptions\\\" view-model.ref=\\\"gridColumnsPopup\\\"> <dx-template name=\\\"contentTemplate\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\"> <dx-widget name=\\\"dxValidationGroup\\\" options.bind=\\\"gridColumnsValidationGroupOptions\\\" view-model.ref=\\\"gridColumnsValidation\\\"> <div class=\\\"parent-container\\\"> <div class=\\\"container t--grid-layout-columns\\\"> <template repeat.for=\\\"gridColumn of gridColumns\\\"> <div class=\\\"col-xs-6 ${gridColumn._invalid ? 't--grid-layout-column-invalid' : ''}\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: grid_layout_columns.spalte_auswaehlen\\\"></div> <dx-widget name=\\\"dxDropDownBox\\\" options.bind=\\\"gridColumnDropBoxOptions\\\" view-model.ref=\\\"dynSpaltenDropBox\\\" validator.bind=\\\"requiredOptions\\\"> <dx-template name=\\\"contentTreeViewTemplate\\\"> <div class=\\\"parent-container\\\"> <dx-widget name=\\\"dxTreeView\\\" options.bind=\\\"gridColumnTreeViewOptions\\\" view-model.ref=\\\"$parent.dynSpaltenTreeView\\\"></dx-widget> </div> </dx-template> </dx-widget> </div> <div class=\\\"col-xs-6\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: grid_layout_columns.spalte_caption\\\"></div> <div class=\\\"t--widget-width-options\\\"> <dx-widget class=\\\"t--widget-editor\\\" name=\\\"dxTextBox\\\" options.bind=\\\"captionTexBoxOptions\\\" validator.bind=\\\"requiredOptions\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"deleteColumnButtonOptions\\\"></dx-widget> </div> </div> </template> </div> </div> </dx-widget> </dx-widget> </dx-template> </dx-widget> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dx-treeview .dx-treeview-node:not(.dx-treeview-item-with-checkbox).dx-state-selected > .dx-treeview-item {\\n  background-color: #337ab7;\\n}\\n.dx-treeview .dx-treeview-node:not(.dx-treeview-item-with-checkbox).dx-state-selected > .dx-treeview-item .dx-item-content.dx-treeview-item-content {\\n  color: white;\\n}\\n.t--grid-layout-columns .t--widget-width-options {\\n  display: flex;\\n}\\n.t--grid-layout-columns .t--widget-width-options .t--widget-editor {\\n  flex-grow: 1;\\n}\\n.t--grid-layout-columns .t--widget-width-options > *:not(:first-child) {\\n  margin-left: 2px;\\n}\\n.t--grid-layout-columns .t--grid-layout-column-invalid .t--editor-caption {\\n  position: relative;\\n  color: red;\\n}\\n.t--grid-layout-columns .t--grid-layout-column-invalid .t--editor-caption::after {\\n  pointer-events: none;\\n  font-weight: bold;\\n  background-color: #d9534f;\\n  color: #fff;\\n  content: '!';\\n  position: absolute;\\n  top: 50%;\\n  margin-top: -8px;\\n  margin-left: 6px;\\n  width: 16px;\\n  height: 16px;\\n  border-radius: 50%;\\n  text-align: center;\\n  line-height: 16px;\\n  font-size: 11px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  bindingMode,\n  computedFrom,\n  Scope\n} from \"aurelia-framework\";\nimport { ModelUtilsService, IHtmlEditorOptions } from '../../export';\nimport { HtmlEditorService } from '../../services/html-editor-service';\nimport { ScopeContainer } from '../../../base/export';\n\n@autoinject\nexport class HtmlEditor {\n  constructor(\n    private element: Element,\n    private htmlEditorService: HtmlEditorService,\n    private modelUtils: ModelUtilsService\n  ) {}\n\n  hasBottomToolbar: boolean;\n\n  @bindable options: IHtmlEditorOptions;\n  @bindable mainModel: any;\n  @bindable({ defaultBindingMode: bindingMode.twoWay }) value: any;\n\n  @computedFrom(\"options.isReadOnly\", \"mainModel.CanSave\")\n  get isReadOnlyChecked() {\n    return !this.options\n      || this.options.isReadOnly === true\n      || (this.mainModel && this.mainModel.CanSave === false);\n  }\n\n  htmlEditor: any;\n  htmlEditorOptions: DevExpress.ui.dxHtmlEditorOptions;\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  bind(bindingContext, overrideContext) {\n    this.scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.htmlEditorOptions = {};\n    this.htmlEditorService.configureHtmlEditor(\n      this.scopeContainer,\n      this.options,\n      this.htmlEditorOptions\n    );\n\n    if (!this.htmlEditorOptions.bindingOptions) {\n      this.htmlEditorOptions.bindingOptions = {};\n    }\n    this.htmlEditorOptions.bindingOptions.value = \"value\";\n    this.htmlEditorOptions.bindingOptions.readOnly = \"isReadOnlyChecked\";\n    this.htmlEditorOptions.onValueChangedByUser = (e) => {\n      if (this.mainModel) {\n        this.modelUtils.setDirty(this.mainModel);\n      }\n    };\n  }\n  attached() {\n    const element: any = this.element;\n\n    const slots = element.au.controller.view.slots;\n    this.hasBottomToolbar = slots\n      && slots.bottomToolbar\n      && slots.bottomToolbar.children\n      && slots.bottomToolbar.children.length > 0;\n  }\n  detached() {\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n    this.scope = null;\n  }\n\n  updateVariables(variables: string) {\n    if (variables == void(0)) {\n      variables = \"\";\n    }\n\n    if (this.htmlEditor && this.htmlEditor.instance) {\n      this.htmlEditor.instance.option(\"variables.dataSource\", variables.split(\";\").filter(c => !!c));\n    } else {\n      this.options.variables = variables;\n    }\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--html-editor-container\\\"> <require from=\\\"./html-editor.less\\\"></require> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" class.one-time=\\\"options.caption ? 't--has-editor-caption' : ''\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key.bind: options.caption\\\" if.bind=\\\"options.caption\\\"></div> <div> <div> <dx-widget name=\\\"dxHtmlEditor\\\" options.bind=\\\"htmlEditorOptions\\\" view-model.ref=\\\"htmlEditor\\\"></dx-widget> </div> <div class=\\\"t--html-editor-bottom-toolbar\\\" show.bind=\\\"hasBottomToolbar\\\"> <slot name=\\\"bottomToolbar\\\"></slot> </div> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--html-editor-container .t--html-editor-bottom-toolbar {\\n  border: 1px solid #ddd;\\n  padding: 10px;\\n  border-top: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  computedFrom,\n  createOverrideContext,\n  observable,\n  OverrideContext,\n  processContent\n} from \"aurelia-framework\";\nimport {\n  LocalizationService\n} from \"../../../base/services/export\";\nimport {\n  IListViewOptions\n} from \"./list-view-options\";\nimport { BindingService } from '../../../base/services/binding-service';\nimport { IListViewItemsOptions } from './list-view-items-options';\nimport { ListViewPagingMode } from './list-view-paging-mode';\n\n@autoinject\n@processContent(false)\nexport class ListView {\n  private _pageIndex: number;\n\n  constructor(\n    private element: Element,\n    private binding: BindingService,\n    private localization: LocalizationService\n  ) { }\n\n  @bindable options: IListViewOptions;\n\n  pagerInfoText: string;\n  isLoading: boolean;\n\n  viewClass: string;\n  viewStyle: any;\n\n  scrollView: any;\n\n  pages: Pages;\n\n  itemsOptions: IListViewItemsOptions = {\n    selectedItems: <any>{},\n    hasSelection: false,\n    items: <any[]>[],\n    totalItems: 0,\n    totalPages: 0,\n    showLoadNextButton: false,\n\n    itemAlias: null,\n    itemClass: null,\n    itemTemplate: null,\n    itemOverrideContext: null,\n\n    getKeyProperty: this.getKeyProperty.bind(this),\n    getItemKey: this.getItemKey.bind(this),\n\n    goToNextPage: this.goToNextPage.bind(this),\n\n    selectByKey: this.selectByKeys.bind(this),\n    isSelectedByKey: this.isSelectedByKey.bind(this),\n\n    onItemClick: this.onItemClick.bind(this)\n  }\n\n  reloadButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localization.translateOnce(\"list_view.reload\"),\n    onClick: () => {\n      this.goToPage(0, true);\n    }\n  }\n\n  @computedFrom(\"options.showReloadButton\", \"options.pagingMode\")\n  get showReloadButton(): boolean {\n    return !!this.options.showReloadButton\n      && this.options.pagingMode == ListViewPagingMode.loadNext;\n  }\n  @computedFrom(\"showReloadButton\", \"options.showPagerInfo\")\n  get infoVisible(): boolean {\n    return this.showReloadButton\n      || this.options.showPagerInfo;\n  }\n\n  bind(bindingContext: any, overrideContext: OverrideContext): void {\n    this.itemsOptions.itemOverrideContext = createOverrideContext(bindingContext, overrideContext);\n\n    this.extractTemplates();\n\n    if (this.options.pageSize) {\n      this.options.dataSource.pageSize(this.options.pageSize);\n    }\n\n    if (this.options.pagingMode == void (0)) {\n      this.options.pagingMode = ListViewPagingMode.loadNext;\n    }\n\n    if (this.options.onInitialized) {\n      this.options.onInitialized({\n        component: this,\n        element: this.element\n      });\n    }\n    \n    this.options.dataSource.on(\"changed\", this.handleDataSourceChanged.bind(this));\n    this.options.dataSource.on(\"loadingChanged\", this.handleDataSourceLoadingChanged.bind(this));\n\n    this.createViewClass();\n    this.createItemClass();\n\n    this.goToPage(0);\n  }\n  unbind() {\n    this.options.dataSource.off(\"changed\");\n    this.options.dataSource.off(\"loadingChanged\");\n  }\n\n  goToNextPage(): void {\n    this.goToPage(this._pageIndex + 1)\n  }\n  goToPage(pageIndex: number, scrollToTop: boolean = null): void {\n    if (pageIndex == void (0)) {\n      return;\n    }\n\n    if (scrollToTop == void (0)) {\n      scrollToTop = this.options.pagingMode == ListViewPagingMode.paging;\n    }\n\n    this.options.dataSource.pageIndex(pageIndex);\n    this._pageIndex = pageIndex;\n\n    this.options.dataSource.load().then(() => {\n      if (this.scrollView && this.scrollView.instance) {\n        const scrollView: DevExpress.ui.dxScrollView = this.scrollView.instance;\n        scrollView.update();\n      }\n    });\n\n    if (scrollToTop) {\n      this.scrollToTop();\n    }\n  }\n  refresh(onlyCurrentPage?: boolean): void {\n    if (!onlyCurrentPage) {\n      if (this.options.dataSource.pageIndex() > 0) {\n        this.goToPage(0, true);\n        return;\n      }\n    }\n\n    this.goToPage(this.options.dataSource.pageIndex(), !onlyCurrentPage);\n  }\n  scrollToTop(): void {\n    if (!this.scrollView || !this.scrollView.instance) {\n      return;\n    }\n\n    const scrollView: DevExpress.ui.dxScrollView = this.scrollView.instance;\n    scrollView.scrollTo(0);\n  }\n  searchByText(text: string): void {\n    this.options.dataSource.searchOperation(\"contains\");\n    this.options.dataSource.searchValue(text);\n    this.goToPage(0, true);\n  }\n  setTotalCount() {\n    this.itemsOptions.totalItems = this.options.dataSource.totalCount();\n\n    if (this.itemsOptions.totalItems < 0) {\n      this.itemsOptions.totalItems = this.options.dataSource.items().length;\n    }\n\n    this.itemsOptions.totalPages = Math.ceil(this.itemsOptions.totalItems / this.options.dataSource.pageSize());\n\n    this.itemsOptions.showLoadNextButton = this.options.pagingMode == ListViewPagingMode.loadNext\n      && this.itemsOptions.totalItems > this.itemsOptions.items.length;\n\n    if (this.options.pagingMode == ListViewPagingMode.paging) {\n      this.calcPageInfo();\n\n      this.pagerInfoText = this.localization.translateOnce(\n        \"list_view.pager_info\",\n        [this.itemsOptions.totalItems.toString()]\n      );\n    } else {\n      this.pagerInfoText = this.localization.translateOnce(\n        \"list_view.pager_info_with_load\",\n        [this.itemsOptions.totalItems.toString(), this.itemsOptions.items.length.toString()]\n      );\n    }\n  }\n\n  getKeyProperty(): string {\n    return this.options.dataSource.key() || \"Id\";\n  }\n  getItemKey(item): any {\n    const key = this.getKeyProperty();\n\n    if (key) {\n      return this.binding.evaluate({\n        bindingContext: item,\n        overrideContext: null\n      }, key);\n    } else {\n      return item;\n    }\n  }\n\n  clearSelection(): void {\n    this.itemsOptions.selectedItems = {};\n    this.itemsOptions.hasSelection = false;\n  }\n  getSelectedKeys(): any[] {\n    const result = [];\n\n    for (let key in this.itemsOptions.selectedItems) {\n      const val = this.itemsOptions.selectedItems[key];\n      if (val == void(0)) {\n        continue;\n      }\n\n      result.push(val);\n    }\n\n    return result;\n  }\n  isSelectedByKey(key: any): boolean {\n    return !!this.itemsOptions.selectedItems[key];\n  }\n  selectByKeys(keys: any | any[], set: boolean): void {\n    if (!Array.isArray(keys)) {\n      keys = [keys];\n    }\n\n    if (set && this.options.selectionMode == \"single\") {\n      this.clearSelection();\n\n      if (keys.length > 1) {\n        return;\n      }\n    }\n\n    keys.forEach(key => {\n      if (set) {\n        this.itemsOptions.selectedItems[key] = key;\n      } else {\n        this.itemsOptions.selectedItems[key] = undefined;\n      }\n    });\n\n    this.itemsOptions.hasSelection = this.getSelectedKeys().length > 0;\n  }\n\n  replaceDataSource(dataSource: DevExpress.data.DataSource) {\n    if (this.options.dataSource) {\n      this.options.dataSource.off(\"changed\");\n      this.options.dataSource.off(\"loadingChanged\");\n    }\n\n    this.options.dataSource = dataSource;\n    \n    this.options.dataSource.on(\"changed\", this.handleDataSourceChanged.bind(this));\n    this.options.dataSource.on(\"loadingChanged\", this.handleDataSourceLoadingChanged.bind(this));\n\n    this.refresh(false);\n  }\n\n  onItemClick(item: any, event: Event, rowIndex: number): void {\n    if (item.__isGroup) {\n      return;\n    }\n    if (!this.options.onItemClick) {\n      return;\n    }\n\n    this.options.onItemClick({\n      item: item,\n      data: item,\n      event: event,\n      rowIndex: rowIndex,\n      hasAllPages: (this.options.pagingMode == ListViewPagingMode.loadNext)\n    });\n  }\n\n  private createViewClass() {\n    const viewClasses = [];\n    const viewStyle = {};\n\n    if (this.options.height) {\n      viewStyle[\"height\"] = this.options.height;\n    }\n    if (this.options.useDefaultListItemStyle == void (0) || this.options.useDefaultListItemStyle) {\n      viewClasses.push(\"list-view-item-style-default\");\n    }\n    if (this.options.hoverStateEnabled) {\n      viewClasses.push(\"list-view-item-clickable\");\n    }\n    if (this.options.selectionMode == \"multiple\") {\n      viewClasses.push(\"list-view-item-selectable\");\n    }\n\n    this.viewStyle = viewStyle;\n    this.viewClass = viewClasses.join(\" \");\n  }\n  private createItemClass() {\n    const itemClasses = [];\n    itemClasses.push(this.options.itemClass ? this.options.itemClass : \"col-xs-12\");\n\n    this.itemsOptions.itemClass = itemClasses.join(\" \");\n  }\n  private extractTemplates() {\n    const children = Array.from(this.element.children)\n    .filter((c) => c.tagName == \"CUSTOM-TEMPLATE\");;\n\n    for (let i = 0; i < children.length; i++) {\n      const item = children[i];\n      const name = item.getAttribute(\"name\");\n      const alias = item.getAttribute(\"alias\") || \"item\";\n\n      switch (name) {\n        case \"item\": {\n          this.itemsOptions.itemTemplate = item;\n          this.itemsOptions.itemAlias = alias;\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n\n      item.parentElement.removeChild(item);\n    }\n  }\n  private handleDataSourceChanged() {\n    const items = this.options.dataSource.items();\n\n    this._pageIndex = this.options.dataSource.pageIndex();\n\n    this.insertItems(items, this._pageIndex);\n    this.setTotalCount();\n  }\n  private handleDataSourceLoadingChanged(isLoading) {\n    this.isLoading = isLoading;\n  }\n  private insertItems(items: any[], pageIndex: number) {\n    const pageSize = this.options.dataSource.pageSize();\n    const itemCount = pageIndex * pageSize;\n\n    if (this.options.pagingMode == ListViewPagingMode.paging) {\n      this.itemsOptions.items.splice(0);\n    }\n    else if (this.itemsOptions.items.length > itemCount) {\n      let c = itemCount;\n\n      if (this.options.groupProperty && itemCount > 0) {\n        let realItemCount = 0;\n\n        for (let i = 0; i < this.itemsOptions.items.length; i++) {\n          if (!this.itemsOptions.items[i].__isGroup) {\n            realItemCount++;\n          }\n\n          c = i;\n\n          if (realItemCount >= itemCount) {\n            if (i > 0 && this.itemsOptions.items[i - 1].__isGroup) {\n              c = i - 1;\n            }\n            break;\n          }\n        }\n      }\n\n      this.itemsOptions.items.splice(c);\n    }\n\n    this.checkGroupProperty(items);\n    this.itemsOptions.items.push(...items);\n  }\n  private checkGroupProperty(items: any[]) {\n    if (!this.options.groupProperty) {\n      return;\n    }\n\n    let last = this.getLastGroup();\n    for (let i = 0; i < items.length; i++) {\n      const item = items[i];\n\n      const val = this.binding.evaluate({\n        bindingContext: item,\n        overrideContext: null\n      }, this.options.groupProperty);\n\n      if (val != last) {\n        items.splice(i, 0, {\n          \"__isGroup\": true,\n          \"__groupValue\": val\n        });\n\n        last = val;\n      }\n    }\n  }\n  private getLastGroup(): any {\n    if (!this.itemsOptions.items) {\n      return null;\n    }\n\n    for (let i = this.itemsOptions.items.length - 1; i >= 0; i--) {\n      let item = this.itemsOptions.items[i];\n      if (!item.__isGroup) {\n        continue;\n      }\n\n      return item.__groupValue;\n    }\n\n    return null;\n  }\n  private calcPageInfo(): void {\n    if (!this.pages) {\n      this.pages = {\n        currentPage: null,\n        pages: [],\n        totalPages: 0\n      };\n    }\n\n    const totalPages = this.itemsOptions.totalPages;\n    const currentPage = this._pageIndex;\n\n    if (this.pages && this.pages.totalPages == totalPages && this.pages.currentPage == this._pageIndex) {\n      return;\n    }\n\n    this.pages.totalPages = totalPages;\n    this.pages.currentPage = currentPage;\n\n    const arr: PageInfo[] = [];\n    if (!totalPages) {\n      this.pages.pages = arr;\n      return;\n    }\n\n    let arrIndex = [0, currentPage, totalPages - 1];\n    if (currentPage == 0) {\n      arrIndex.push(1, 2);\n    }\n    if (currentPage == totalPages - 1) {\n      arrIndex.push(totalPages - 3, totalPages - 2);\n    }\n\n    arrIndex.push(currentPage - 1, currentPage + 1);\n    arrIndex = arrIndex.filter((v, i) => {\n      return v >= 0\n        && v < totalPages\n        && arrIndex.indexOf(v) === i;\n    });\n\n    arrIndex.sort((a, b) => {\n      return a - b;\n    });\n\n    let lastIndex = -1;\n    for (let index of arrIndex) {\n      if (lastIndex + 1 != index) {\n        arr.push({ text: \"...\", index: null });\n      }\n      lastIndex = index;\n\n      arr.push({ index: index, text: (index + 1).toString() });\n    }\n\n    this.pages.pages = arr;\n  }\n}\n\ninterface PageInfo {\n  index: number;\n  text: string;\n}\ninterface Pages {\n  pages: PageInfo[];\n  totalPages: number;\n  currentPage: number;\n}\n","import {\n  autoinject,\n  bindable,\n  createOverrideContext,\n  inlineView,\n  OverrideContext,\n  TemplatingEngine,\n  resource,\n  computedFrom,\n  View\n} from \"aurelia-framework\";\nimport { BindingService } from '../../../base/services/binding-service';\nimport { ScopeContainer } from '../../../base/classes/scope-container';\nimport { IListViewItemsOptions } from './list-view-items-options';\nimport { TemplatingExService } from '../../../base/export';\n\n@autoinject\nexport class ListViewItem {\n  private _itemNode: HTMLElement;\n  private _itemView: View;\n\n  constructor(\n    private element: Element,\n    private binding: BindingService,\n    private templatingEngine: TemplatingEngine,\n    private templatingExService: TemplatingExService\n  ) { }\n\n  @bindable data: any;\n  @bindable options: IListViewItemsOptions;\n\n  isSelected: boolean = false;\n\n  scopeContainer: ScopeContainer;\n  owningView: any;\n  key: any;\n\n  created(owningView: any, myView: any) {\n    this.owningView = owningView;\n  }\n  bind() {\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n\n    this.key = this.options.getItemKey(this.data);\n    this.isSelected = !!this.options.selectedItems[this.key];\n\n    if (typeof this.key === \"string\" || typeof this.key === \"number\") {\n      const key = typeof this.key === \"string\"\n        ? `\"${this.key}\"`\n        : this.key\n\n      this.binding.observe({\n        scopeContainer: this.scopeContainer,\n        expression: `!!options.selectedItems[${key}]`, \n        callback: (newValue) => {\n          this.isSelected = newValue;\n        }\n      });\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n  }\n  attached() {\n    this._itemNode = this.options.itemTemplate.cloneNode(true)\n    const container = this.element.children[0];\n    const selection = container.children[0];\n    container.insertBefore(this._itemNode, selection);\n\n    const bindingContext = {};\n    bindingContext[this.options.itemAlias] = this.data;\n\n    //= Resourcen von dem Element, welches das list-view Element enthält ;-)\n    let resources = null;\n    let parent = this.owningView.container;\n    let isListView = false;\n    while (parent) {\n      if (isListView && parent.viewResources && parent.viewResources.viewUrl != \"framework/forms/elements/list-view/list-view.html\") {\n        resources = parent.viewResources;\n        break;\n      } else if (parent.viewResources && parent.viewResources.viewUrl == \"framework/forms/elements/list-view/list-view.html\") {\n        isListView = true;\n      }\n\n      parent = parent.parent;\n    }\n\n    this._itemView = this.templatingEngine.enhance({\n      element: this._itemNode,\n      resources: resources || this.owningView.resources,\n      bindingContext: bindingContext,\n      overrideContext: this.options.itemOverrideContext\n    });\n  }\n  detached() {\n    if (this._itemNode) {\n      this._itemNode.parentElement.removeChild(this._itemNode);\n      this._itemNode = null;\n    }\n\n    if (this._itemView) {\n      this.templatingExService.destroyView(this._itemView);\n      this._itemView = null;\n    }\n  }\n\n  changeSelection(event: Event) {\n    const isSelected = this.options.isSelectedByKey(this.key);\n    this.options.selectByKey(this.key, !isSelected);\n    \n    event.stopPropagation();\n  }\n}\n","// Module\nvar code = \"<template> <div class=\\\"list-view-item-container ${isSelected ? 'list-view-item-is-selected' : ''}\\\"> <div class=\\\"list-view-item-selection\\\" click.delegate=\\\"changeSelection($event)\\\"> <i class=\\\"fa fa-check\\\"></i> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { autoinject, bindable } from \"aurelia-framework\";\nimport { IListViewItemsOptions } from './list-view-items-options';\nimport { LocalizationService } from '../../../base/services/localization-service';\n\n@autoinject\nexport class ListViewItems {\n  constructor(\n    private localization: LocalizationService\n  ) {}\n\n  @bindable options: IListViewItemsOptions;\n\n  loadNextButtonOptions: DevExpress.ui.dxButtonOptions = {\n    text: this.localization.translateOnce(\"list_view.load_next\"),\n    onClick: () => {\n      this.options.goToNextPage();\n    }\n  }\n}\n","// Module\nvar code = \"<template class=\\\"container list-view-item-wrapper\\\"> <require from=\\\"./list-view-item\\\"></require> <div repeat.for=\\\"item of options.items\\\" class=\\\"${item.__isGroup ? 'list-view-item-group col-xs-12' : ('list-view-item ' + (options.itemClass || ''))}\\\" click.delegate=\\\"options.onItemClick(item, $event, $index)\\\"> <div if.bind=\\\"item.__isGroup\\\"> ${item.__groupValue} </div> <list-view-item if.bind=\\\"!item.__isGroup\\\" data.bind=\\\"item\\\" options.bind=\\\"options\\\"></list-view-item> </div> <div class=\\\"col-xs-12\\\" if.bind=\\\"options.showLoadNextButton\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"loadNextButtonOptions\\\"></dx-widget> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"./list-view.less\\\"></require> <require from=\\\"./list-view-items\\\"></require> <require from=\\\"./list-view-item\\\"></require> <require from=\\\"../loading-spinner/loading-spinner\\\"></require> <div class=\\\"t--list-view-container\\\" class.bind=\\\"viewClass\\\" css.bind=\\\"viewStyle\\\"> <div class=\\\"list-view-content\\\" if.bind=\\\"options.height\\\"> <div class=\\\"list-view-content-abs\\\"> <dx-widget name=\\\"dxScrollView\\\" options.bind=\\\"{}\\\" view-model.ref=\\\"scrollView\\\"> <list-view-items options.bind=\\\"itemsOptions\\\"></list-view-items> </dx-widget> </div> </div> <div class=\\\"list-view-content\\\" if.bind=\\\"!options.height\\\"> <list-view-items options.bind=\\\"itemsOptions\\\"></list-view-items> </div> <div class=\\\"list-view-info\\\" if.bind=\\\"infoVisible\\\"> <div if.bind=\\\"showReloadButton\\\" class=\\\"list-view-footer-buttons\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"reloadButtonOptions\\\"></dx-widget> </div> <div if.bind=\\\"options.pagingMode == 1\\\"> <div repeat.for=\\\"page of pages.pages\\\" class=\\\"list-view-footer-paging\\\"> <button class=\\\"list-view-footer-paging-button ${pages.currentPage == page.index ? 'list-view-footer-paging-button-active' : ''} ${page.text == '...' ? 'list-view-footer-paging-button-disabled' : ''}\\\" click.delegate=\\\"goToPage(page.index, true)\\\"> ${page.text} </button> </div> </div> <div class=\\\"list-view-pager-info\\\" if.bind=\\\"options.showPagerInfo\\\"> ${pagerInfoText} </div> </div> <loading-spinner if.bind=\\\"isLoading\\\"></loading-spinner> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"list-view {\\n  display: block;\\n}\\nlist-view-item {\\n  display: block;\\n}\\n.t--list-view-footer-buttons {\\n  display: flex;\\n}\\n.t--list-view-footer-buttons > * {\\n  margin-right: 6px;\\n}\\n.list-view-footer-paging {\\n  display: inline-block;\\n}\\n.list-view-footer-paging + .list-view-footer-paging {\\n  margin-left: 3px;\\n}\\n.list-view-footer-paging button {\\n  min-width: 30px;\\n}\\n.list-view-footer-paging-button {\\n  border: none;\\n  font-size: 12px;\\n  background-color: #ddd;\\n  outline: none;\\n  height: 25px;\\n  cursor: pointer;\\n}\\n.list-view-footer-paging-button.list-view-footer-paging-button-disabled {\\n  background-color: transparent;\\n  cursor: default;\\n}\\n.list-view-footer-paging-button:hover:not(.list-view-footer-paging-button-disabled) {\\n  background-color: #bbb;\\n}\\n.list-view-footer-paging-button-active {\\n  background-color: #bbb;\\n}\\n.t--list-view-container {\\n  width: 100%;\\n  height: 100%;\\n  display: flex;\\n  flex-direction: column;\\n  position: relative;\\n}\\n.t--list-view-container .list-view-loading {\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n  background-color: white;\\n}\\n.t--list-view-container .list-view-item-container {\\n  position: relative;\\n  overflow: hidden;\\n}\\n.t--list-view-container .list-view-item-container:hover:not(.list-view-item-is-selected) .list-view-item-selection {\\n  left: 0;\\n}\\n.t--list-view-container .list-view-item-group {\\n  font-weight: bold;\\n  margin: 6px 0;\\n}\\n.t--list-view-container .list-view-item-selection {\\n  display: none;\\n}\\n.t--list-view-container.list-view-item-selectable .list-view-item-selection {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  position: absolute;\\n  top: 0;\\n  left: -50px;\\n  bottom: 0;\\n  width: 50px;\\n  background-color: rgba(0, 0, 0, 0.3);\\n  color: white;\\n  transition: left 300ms ease-in-out;\\n}\\n.t--list-view-container.list-view-item-selectable .list-view-item-is-selected .list-view-item-selection {\\n  left: 0;\\n  width: 100%;\\n}\\n.t--list-view-container.list-view-item-clickable .list-view-item {\\n  cursor: pointer;\\n}\\n.t--list-view-container.list-view-item-style-default .list-view-item {\\n  position: relative;\\n}\\n.t--list-view-container.list-view-item-style-default .list-view-item:hover {\\n  background-color: #ddd;\\n}\\n.t--list-view-container.list-view-item-style-default .list-view-item:after {\\n  content: \\\"\\\";\\n  position: absolute;\\n  padding-top: 6px;\\n  left: 0;\\n  right: 0;\\n  border-bottom: 1px dotted lightgray;\\n}\\n.t--list-view-container > .list-view-content {\\n  flex-grow: 1;\\n  flex-shrink: 1;\\n  position: relative;\\n  padding: 0 6px;\\n}\\n.t--list-view-container > .list-view-content .list-view-content-abs {\\n  position: absolute;\\n  top: 0;\\n  bottom: 0;\\n  left: 0;\\n  right: 0;\\n}\\n.t--list-view-container > .list-view-content .list-view-item-wrapper {\\n  margin-top: 0;\\n  margin-bottom: 6px;\\n}\\n.t--list-view-container > .list-view-content .dx-scrollview .list-view-item {\\n  padding: 6px 12px;\\n}\\n.t--list-view-container > .list-view-info {\\n  margin-top: 6px;\\n  display: flex;\\n}\\n.t--list-view-container > .list-view-info .list-view-pager-info {\\n  flex-grow: 1;\\n  text-align: right;\\n  align-self: center;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject, bindable\n} from \"aurelia-framework\";\n\n@autoinject\nexport class LoadingSpinner {\n  constructor(\n    private element: Element\n  ) { }\n\n  @bindable fullScreen: boolean;\n\n  bind() {\n    this.element.classList.remove(\"t--loading-active\");\n  }\n  attached() {\n    setTimeout(() => {\n      this.element.classList.add(\"t--loading-active\");\n    }, 500);\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--loading\\\" class=\\\"${fullScreen ? 't--loading-fullscreen' : ''}\\\"> <require from=\\\"./loading-spinner.less\\\"></require> <div class=\\\"t--loading-spinner\\\"> <div class=\\\"t--loading-rect1\\\"></div> <div class=\\\"t--loading-rect2\\\"></div> <div class=\\\"t--loading-rect3\\\"></div> <div class=\\\"t--loading-rect4\\\"></div> <div class=\\\"t--loading-rect5\\\"></div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--loading {\\n  position: absolute;\\n  top: 0;\\n  bottom: 0;\\n  left: 0;\\n  right: 0;\\n  font-family: \\\"Helvetica Neue\\\", \\\"Segoe UI\\\", Helvetica, Verdana, sans-serif;\\n  font-size: 60px;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: center;\\n  align-items: center;\\n  background-color: rgba(255, 255, 255, 0.8);\\n  z-index: 9999;\\n  opacity: 0;\\n  transition-delay: 500ms;\\n  transition: all 0.3s cubic-bezier(0.62, 0.28, 0.23, 0.99);\\n  transition-property: opacity;\\n}\\n.t--loading.t--loading-fullscreen {\\n  position: fixed;\\n}\\n.t--loading.t--loading-active {\\n  opacity: 1;\\n}\\n.t--loading-spinner {\\n  margin: 100px auto;\\n  width: 50px;\\n  height: 40px;\\n  text-align: center;\\n  font-size: 10px;\\n}\\n.t--loading-spinner > div {\\n  background-color: #333;\\n  height: 100%;\\n  width: 6px;\\n  display: inline-block;\\n  -webkit-animation: animationLoadingSpinner 1.2s infinite ease-in-out;\\n  animation: animationLoadingSpinner 1.2s infinite ease-in-out;\\n}\\n.t--loading-spinner > .t--loading-rect2 {\\n  -webkit-animation-delay: -1.1s;\\n  animation-delay: -1.1s;\\n}\\n.t--loading-spinner > .t--loading-rect3 {\\n  -webkit-animation-delay: -1s;\\n  animation-delay: -1s;\\n}\\n.t--loading-spinner > .t--loading-rect4 {\\n  -webkit-animation-delay: -0.9s;\\n  animation-delay: -0.9s;\\n}\\n.t--loading-spinner > .t--loading-rect5 {\\n  -webkit-animation-delay: -0.8s;\\n  animation-delay: -0.8s;\\n}\\n@-webkit-keyframes animationLoading {\\n  0% {\\n    opacity: 0;\\n  }\\n  100% {\\n    opacity: 1;\\n  }\\n}\\n@keyframes animationLoading {\\n  0% {\\n    opacity: 0;\\n  }\\n  100% {\\n    opacity: 1;\\n  }\\n}\\n@-webkit-keyframes animationLoadingSpinner {\\n  0%,\\n  40%,\\n  100% {\\n    -webkit-transform: scaleY(0.4);\\n  }\\n  20% {\\n    -webkit-transform: scaleY(1);\\n  }\\n}\\n@keyframes animationLoadingSpinner {\\n  0%,\\n  40%,\\n  100% {\\n    transform: scaleY(0.4);\\n    -webkit-transform: scaleY(0.4);\\n  }\\n  20% {\\n    transform: scaleY(1);\\n    -webkit-transform: scaleY(1);\\n  }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/** in stack-router angesiedelt, da dieser den view enthält und die toolbar dort benötigt wird */\n\nimport { IPage } from \"../toolbar/page\";\nimport { autoinject, computedFrom, bindable, TaskQueue, observable, BindingEngine, Disposable } from \"aurelia-framework\";\nimport { IToolbarOptions } from \"../toolbar/toolbar-options\";\nimport { ToolbarService } from \"../../services/toolbar-service\";\nimport { IItem } from \"../toolbar/item\";\nimport { ICategory } from \"../toolbar/category\";\nimport { BindingService } from \"../../../base/export\";\nimport { IBadge } from \"../toolbar/badge\";\nimport { updateLocale } from 'moment';\nimport { IToolbarModel } from '../toolbar/toolbar-model';\n\n@autoinject\nexport class RibbonToolbar {\n  private _itemSubscriptionDisposable: Disposable[];\n\n  constructor(\n    private toolbar: ToolbarService,\n    private taskQueue: TaskQueue,\n    private bindingEngine: BindingEngine,\n    private binding: BindingService\n  ) {\n  }\n\n  @bindable @observable options: IToolbarOptions;\n\n  @computedFrom(\"options.smallToolbar\")\n  get heightToolbar() {\n    if (this.options && this.options.smallToolbar) {\n      return \"35px\";\n    } else {\n      return \"90px\";\n    }\n  }\n  get classToolbar() {\n    if (this.options && this.options.smallToolbar) {\n      return \"t--ribbon-toolbar-small\";\n    }\n\n    return \"\";\n  }\n\n  pages: IPage[];\n  afterPage: IPage;\n  currentPage: IPage;\n  model: IToolbarModel;\n\n  activate(model: IToolbarModel) {\n    this.model = model;\n    \n    const updateOptions = () => {\n      this.options = this.model.options;\n    }\n    model.optionsChanged = () => {\n      updateOptions();\n    }\n    updateOptions();\n  }\n  bind() {\n    if (this.options) {\n      this.constructPages();\n    }\n  }\n  unbind() {\n    this.disposeOldSubscriber();\n  }\n\n  optionsChanged(newVal) {\n    this.constructPages();\n  }\n\n  onPageClick(page: IPage) {\n    if (this.currentPage) {\n      this.currentPage.isActive = false;\n    }\n\n    this.checkPage(page);\n    page.isActive = true;\n\n    this.currentPage = page;\n  }\n\n  private constructPages() {\n    this.disposeOldSubscriber();\n    this._itemSubscriptionDisposable = [];\n\n    const pages = this.toolbar.createPageCategoryItemStructure(this.options.items);\n    this.pages = pages.filter(p => p.id !== \"$after\");\n\n    const afterPages = pages.filter(p => p.id === \"$after\");\n    if (afterPages.length === 1) {\n      this.afterPage = afterPages[0];\n    }\n\n    for (let page of pages) {\n      for (let category of page.categories) {\n        for (let item of category.items) {\n          if (item.isVisible == void(0)) {\n            item.isVisible = true;\n          }\n          if (item.isEnabled == void(0)) {\n            item.isEnabled = true;\n          }\n\n          this.observe(item, \"isVisible\", (newVal) => {\n            this.checkCategoryVisible(page, category);\n          });\n\n          this.observe(item, \"badgeText\", (newVal) => {\n            this.checkBadge(page);\n          });\n          this.observe(item, \"badgeColor\", (newVal) => {\n            this.checkBadge(page);\n          });          \n          this.observe(item, \"badgeBorderColor\", (newVal) => {\n            this.checkBadge(page);\n          });\n        }\n\n        this.checkCategoryVisible(page, category);\n      }\n\n      this.checkBadge(page);\n    }\n\n    if (this.pages && this.pages.length > 0) {\n      this.onPageClick(this.pages[0]);\n    }\n    if (this.afterPage) {\n      this.checkPage(this.afterPage);\n    }\n  }\n  private checkCategoryVisible(page: IPage, category: ICategory) {\n    category.isVisible = category.items.some(c => c.isVisible);\n    page.isVisible = page.categories.some(c => c.isVisible);\n  }\n  private checkBadge(page: IPage) {\n    const badges = new Set();\n\n    page.categories.forEach(c => {\n      c.items\n        .filter(i => !!i.badgeText)\n        .forEach(i => badges.add(i.badgeColor || \"#C1392D\"));\n    });\n\n    const badgesArr: IBadge[] = [];\n    let i = 0;\n    badges.forEach((v: any, k: any) => {\n      badgesArr.push({\n        color: k,\n        right: i * 6 + 4\n      });\n\n      i++;\n    });\n\n    page.badges = badgesArr;\n  }\n  private checkPage(page: IPage) {\n    page.categories.forEach(c => {\n      let countSmall = 0;\n\n      let setSmallToBig = (index) => {\n        if (index < 0) {\n          return;\n        }\n        if (countSmall % 2 == 0) {\n          return;\n        }\n\n        c.items[index].smallChecked = false;\n      }\n\n      c.items.forEach((i, index) => {\n        i.smallChecked = i.small;\n\n        if (!i.small) {\n          setSmallToBig(index - 1);\n          countSmall = 0;\n          return;\n        }\n\n        countSmall++;\n      });\n\n      setSmallToBig(c.items.length - 1);\n\n      c.items.forEach(i => {\n        if (this.options.smallToolbar) {\n          i.class = \"t--ribbon-toolbar-item-big\";\n\n          if (i.title == void (0)) {\n            i.class += \" t--ribbon-toolbar-item-icon-only\";\n          }\n        } else {\n          i.class = i.smallChecked\n            ? \"t--ribbon-toolbar-item-small\"\n            : \"t--ribbon-toolbar-item-big\";\n\n          if (i.title == void (0)) {\n            i.class += \" t--ribbon-toolbar-item-icon-only\";\n          }\n        }\n      });\n    });\n  }\n  private observe(item: IItem, propertyName: string, action: {(newVal): void}) {\n    const disposable = this.bindingEngine\n      .expressionObserver(item, propertyName)\n      .subscribe((newVal) => action(newVal));\n\n    this._itemSubscriptionDisposable.push(disposable);\n  }\n  private disposeOldSubscriber() {\n    if (!this._itemSubscriptionDisposable) {\n      return;\n    }\n\n    this._itemSubscriptionDisposable.forEach(c => c.dispose());\n    this._itemSubscriptionDisposable = [];\n  }\n}\n","import { autoinject, bindable, TaskQueue } from \"aurelia-framework\";\nimport { ICategory } from \"../toolbar/category\";\nimport { IPage } from \"../toolbar/page\";\n\n@autoinject\nexport class RibbonToolbarCategory {\n  \n  constructor(\n  ) {}\n\n  @bindable category: ICategory;\n  @bindable showCategoryTitle: boolean;\n}\n","// Module\nvar code = \"<template class=\\\"t--ribbon-toolbar-category\\\"> <require from=\\\"./ribbon-toolbar-item\\\"></require> <require from=\\\"./ribbon-toolbar-item-tmpl\\\"></require> <div class=\\\"t--ribbon-toolbar-items\\\"> <template repeat.for=\\\"item of category.items\\\"> <ribbon-toolbar-item if.bind=\\\"item.isVisible && !item.template\\\" item.bind=\\\"item\\\"> </ribbon-toolbar-item> <ribbon-toolbar-item-tmpl if.bind=\\\"item.isVisible && item.template\\\" item.bind=\\\"item\\\"> </ribbon-toolbar-item-tmpl> </template> </div> <div class=\\\"t--ribbon-toolbar-category-title\\\" if.bind=\\\"showCategoryTitle\\\"> ${category.title} </div> </template> \";\n// Exports\nmodule.exports = code;","import { FaIconAttribute } from \"./../../../base/attributes/icon/fa-icon-attribute\";\nimport { autoinject, bindable } from \"aurelia-framework\";\nimport { IItem } from \"../toolbar/item\";\n\n@autoinject\nexport class RibbonToolbarItem {\n  constructor(\n    private element: Element\n  ) {}\n\n  @bindable item: IItem;\n\n  onItemClick(item: IItem, event: Event) {\n    const args = {\n      event: event\n    };\n\n    if (!item.isVisible) {\n      return;\n    }\n    if (!item.isEnabled) {\n      return;\n    }\n\n    if (!item.execute) {\n      return;\n    }\n\n    item.execute(args);\n  }\n}\n","import { autoinject, bindable } from \"aurelia-framework\";\nimport { IItem } from '../toolbar/item';\n\n@autoinject\nexport class RibbonToolbarItemTmpl {\n  constructor(\n    private element: Element\n  ) {}\n\n  @bindable item: IItem;\n}\n","// Module\nvar code = \"<template class=\\\"t--ribbon-toolbar-item t--ribbon-toolbar-item-tmpl ${item.isEnabled ? '' : 't--ribbon-toolbar-item-disabled'} ${item.className}\\\" class.bind=\\\"item.class\\\" title=\\\"${item.tooltip | tr}\\\"> <compose view-model.bind=\\\"item.template.moduleId\\\" model.bind=\\\"item.template.options\\\"></compose> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template class=\\\"t--ribbon-toolbar-item ${item.isEnabled ? '' : 't--ribbon-toolbar-item-disabled'} ${item.className}\\\" class.bind=\\\"item.class\\\" click.delegate=\\\"onItemClick(item, $event)\\\" title=\\\"${item.tooltip | tr}\\\"> <i class=\\\"fa fa-fw fa-${item.icon}\\\" if.bind=\\\"item.icon\\\" ref=\\\"iconRef\\\"></i> <div class=\\\"t--ribbon-toolbar-item-title-container\\\" if.bind=\\\"item.title\\\"> <div class=\\\"t--ribbon-toolbar-item-title\\\" ref=\\\"textRef\\\">${item.title | tr}</div> </div> <div class=\\\"t--ribbon-toolbar-badge\\\" show.bind=\\\"item.badgeText\\\" css=\\\"color: ${item.badgeTextColor || 'white'};background-color: ${item.badgeColor};border: 1px solid ${item.badgeBorderColor || 'transparent'};\\\" animation.bind=\\\"item.badgeText\\\"> ${item.badgeText | tr} </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template> <require from=\\\"./ribbon-toolbar.less\\\"></require> <require from=\\\"./ribbon-toolbar-category\\\"></require> <div class=\\\"t--ribbon-toolbar\\\" css=\\\"height: ${heightToolbar};\\\" class.bind=\\\"classToolbar\\\"> <div class=\\\"t--ribbon-toolbar-title\\\" if.bind=\\\"options.title\\\" tr=\\\"key.bind: options.title; scope.bind: model.options.scopeContainer.scope\\\"> </div> <div class=\\\"t--ribbon-toolbar-content\\\"> <div class=\\\"t--ribbon-toolbar-pages\\\" if.bind=\\\"!options.smallToolbar\\\"> <div class=\\\"t--ribbon-toolbar-page\\\" repeat.for=\\\"page of pages\\\" if.bind=\\\"page.isVisible\\\" class.bind=\\\"page.isActive ? 't--ribbon-toolbar-page-active' : ''\\\" click.delegate=\\\"onPageClick(page)\\\"> <div class=\\\"t--ribbon-toolbar-page-badge\\\" repeat.for=\\\"badge of page.badges\\\" css=\\\"background-color: ${badge.color}; right: ${badge.right}px\\\"></div> <div> ${page.title} </div> </div> </div> <div class=\\\"t--ribbon-toolbar-categories\\\"> <div class=\\\"t--ribbon-toolbar-categories-before\\\"> <div repeat.for=\\\"category of currentPage.categories\\\" if.bind=\\\"category.isVisible\\\"> <ribbon-toolbar-category category.bind=\\\"category\\\" show-category-title.bind=\\\"!options.smallToolbar\\\"></ribbon-toolbar-category> </div> </div> <div class=\\\"t--ribbon-toolbar-category-splitter\\\"></div> <div class=\\\"t--ribbon-toolbar-categories-after\\\"> <div repeat.for=\\\"category of afterPage.categories\\\" if.bind=\\\"category.isVisible\\\"> <ribbon-toolbar-category category.bind=\\\"category\\\" show-category-title.bind=\\\"!options.smallToolbar\\\"></ribbon-toolbar-category> </div> </div> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--ribbon-toolbar {\\n  display: flex;\\n  background-color: #808080;\\n  color: white;\\n}\\n.t--ribbon-toolbar-small .t--ribbon-toolbar-category {\\n  grid-template-rows: 1fr;\\n}\\n.t--ribbon-toolbar-small .t--ribbon-toolbar-item-big {\\n  min-width: 75px;\\n}\\n.t--ribbon-toolbar-small .t--ribbon-toolbar-item-big i {\\n  margin-bottom: 1px;\\n}\\n.t--ribbon-toolbar-title {\\n  display: flex;\\n  align-items: center;\\n  font-size: 2em;\\n  font-weight: 100;\\n  padding: 12px;\\n  min-width: 200px;\\n  flex-shrink: 0;\\n  border-right: 1px dotted #a2a2a2;\\n}\\n.t--ribbon-toolbar-content {\\n  display: flex;\\n  flex-direction: column;\\n  flex-grow: 1;\\n}\\n.t--ribbon-toolbar-pages {\\n  display: flex;\\n  position: relative;\\n  background-color: #4F4F4F;\\n  color: white;\\n  padding-left: 12px;\\n  height: 25px;\\n}\\n.t--ribbon-toolbar-pages:after {\\n  content: \\\"\\\";\\n  position: absolute;\\n  bottom: 0;\\n  left: 0;\\n  right: 0;\\n  border-bottom: 1px dotted #a2a2a2;\\n}\\n.t--ribbon-toolbar-page {\\n  padding: 6px 12px;\\n  cursor: default;\\n  user-select: none;\\n  position: relative;\\n}\\n.t--ribbon-toolbar-page.t--ribbon-toolbar-page-active {\\n  background-color: #808080;\\n}\\n.t--ribbon-toolbar-page:hover:not(.t--ribbon-toolbar-page-active) {\\n  cursor: pointer;\\n  background-color: #636363;\\n}\\n.t--ribbon-toolbar-page-badge {\\n  position: absolute;\\n  top: 4px;\\n  right: 4px;\\n  border-radius: 4px;\\n  width: 4px;\\n  height: 4px;\\n  background-color: #e80000;\\n}\\n.t--ribbon-toolbar-categories {\\n  display: flex;\\n  flex-grow: 1;\\n}\\n.t--ribbon-toolbar-categories-before {\\n  display: flex;\\n}\\n.t--ribbon-toolbar-categories-before > div {\\n  border-right: 1px dotted #a2a2a2;\\n}\\n.t--ribbon-toolbar-category-splitter {\\n  flex-grow: 1;\\n}\\n.t--ribbon-toolbar-categories-after {\\n  display: flex;\\n}\\n.t--ribbon-toolbar-categories-after > div {\\n  border-left: 1px dotted #a2a2a2;\\n}\\n.t--ribbon-toolbar-category {\\n  display: grid;\\n  grid-template-rows: 1fr 12px;\\n  height: 100%;\\n}\\n.t--ribbon-toolbar-category:not(:first-child) {\\n  border-left: 1px dotted #a2a2a2;\\n}\\n.t--ribbon-toolbar-category-title {\\n  display: flex;\\n  height: 100%;\\n  justify-content: center;\\n  align-items: center;\\n  text-align: center;\\n  font-size: 0.85em;\\n  border-top: 1px dotted #a2a2a2;\\n  border-bottom: 1px solid transparent;\\n  color: #ccc;\\n  user-select: none;\\n}\\n.t--ribbon-toolbar-items {\\n  display: grid;\\n  height: 100%;\\n  grid-auto-flow: column;\\n  grid-auto-columns: max-content;\\n  grid-template-rows: 1fr 1fr;\\n}\\n.t--ribbon-toolbar-item {\\n  display: flex;\\n  align-items: center;\\n  padding: 0 6px;\\n  box-sizing: border-box;\\n  position: relative;\\n  user-select: none;\\n  cursor: default;\\n}\\n.t--ribbon-toolbar-item:hover:not(.t--ribbon-toolbar-item-disabled):not(.t--ribbon-toolbar-item-tmpl) {\\n  cursor: pointer;\\n  background-color: #4F4F4F;\\n}\\n.t--ribbon-toolbar-item.t--ribbon-toolbar-item-disabled {\\n  color: #ccc;\\n}\\n.t--ribbon-toolbar-item-tmpl > compose {\\n  height: 100%;\\n}\\n.t--ribbon-toolbar-item-small {\\n  display: flex;\\n}\\n.t--ribbon-toolbar-item-small i {\\n  margin-right: 6px;\\n}\\n.t--ribbon-toolbar-item-small.t--ribbon-toolbar-item-icon-only {\\n  width: 50px;\\n  display: flex;\\n  justify-content: center;\\n}\\n.t--ribbon-toolbar-item-small.t--ribbon-toolbar-item-icon-only i {\\n  margin-right: initial;\\n}\\n.t--ribbon-toolbar-item-big {\\n  height: 100%;\\n  flex-direction: column;\\n  justify-content: center;\\n  min-width: 50px;\\n  grid-row-end: span 2;\\n}\\n.t--ribbon-toolbar-item-big i {\\n  margin-bottom: 4px;\\n}\\n.t--ribbon-toolbar-item-big.t--ribbon-toolbar-item-icon-only {\\n  width: 50px;\\n}\\n.t--ribbon-toolbar-item-big.t--ribbon-toolbar-item-icon-only i {\\n  margin-bottom: initial;\\n}\\n.t--ribbon-toolbar-badge {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  position: absolute;\\n  top: 4px;\\n  right: 4px;\\n  padding: 0 4px;\\n  min-width: 16px;\\n  height: 16px;\\n  border-radius: 16px;\\n  background-color: #e80000;\\n}\\n.t--ribbon-toolbar-inline .t--ribbon-toolbar {\\n  background-color: #ccc;\\n  color: black;\\n}\\n.t--ribbon-toolbar-inline .t--ribbon-toolbar-title {\\n  font-size: 1.2em;\\n  font-weight: normal;\\n}\\n.t--ribbon-toolbar-inline .t--ribbon-toolbar-category-title {\\n  color: #808080;\\n}\\n.t--ribbon-toolbar-inline .t--ribbon-toolbar-item:hover:not(.t--ribbon-toolbar-item-disabled) {\\n  background-color: #808080;\\n}\\n.t--ribbon-toolbar-inline .t--ribbon-toolbar-item.t--ribbon-toolbar-item-disabled {\\n  color: #888;\\n}\\n.t--ribbon-toolbar-item-title-container {\\n  display: flex;\\n}\\n.t--ribbon-toolbar-item-title {\\n  flex-grow: 0;\\n  flex-shrink: 0;\\n  white-space: pre-wrap;\\n  text-align: center;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, observable, PLATFORM, Disposable, BindingEngine, Scope } from 'aurelia-framework';\nimport { IToolbarOptions } from './toolbar-options';\nimport { ToolbarService } from '../../services/toolbar-service';\nimport { IToolbarModel } from './toolbar-model';\nimport { IItem } from './item';\nimport { BindingService } from '../../../base/export';\nimport { ScopeContainer } from '../../../base/classes/scope-container';\n\nPLATFORM.moduleName(\"../ribbon-toolbar/ribbon-toolbar\");\n\n@autoinject\nexport class Toolbar {\n  private _itemSubscriptionDisposable: Disposable[];\n  private _scope: Scope;\n  private _scopeContainer: ScopeContainer;\n  private _hasModifiedOptionsScopeContainer: boolean = false;\n\n  constructor(\n    public toolbar: ToolbarService,\n    private bindingEngine: BindingEngine,\n    private binding: BindingService\n  ) { }\n\n  @bindable @observable options: IToolbarOptions;\n\n  toolbarModel: IToolbarModel = {\n    options: null,\n    optionsChanged: () => { }\n  }\n\n  bind(bindingContext, overrideContext) {\n    this._scope = {\n      bindingContext: bindingContext,\n      overrideContext: overrideContext\n    };\n    this._scopeContainer = new ScopeContainer(this._scope);\n\n    if (this.options && !this.options.scopeContainer) {\n      this.options.scopeContainer = this._scopeContainer;\n      this._hasModifiedOptionsScopeContainer = true;\n    }\n\n    this.refreshToolbarModel();\n  }\n  unbind() {\n    this.disposeOldSubscriber();\n    this._scopeContainer.disposeAll();\n    this._scope = null;\n\n    if (this._hasModifiedOptionsScopeContainer) {\n      this.options.scopeContainer = null;\n      this._hasModifiedOptionsScopeContainer = false;\n    }\n  }\n\n  optionsChanged(newVal) {\n    this.refreshToolbarModel();\n  }\n\n  private refreshToolbarModel() {\n    if (this.options && this.options.items) {\n      this.checkExpressions(this.options.items);\n    }\n\n    this.toolbarModel.options = this.options;\n    this.toolbarModel.optionsChanged();\n  }\n  private checkExpressions(items: IItem[]) {\n    this.disposeOldSubscriber();\n    this._itemSubscriptionDisposable = [];\n\n    items.forEach(item => {\n      const scope = this.getItemScope(item);\n\n      if (item.isEnabledExpression) {\n        this.observe(this.binding.getBindingContext(scope, item.isEnabledExpression), item.isEnabledExpression, (newVal) => {\n          item.isEnabled = newVal;\n        });\n\n        item.isEnabled = this.bindingEngine.parseExpression(item.isEnabledExpression).evaluate(scope);\n      }\n      if (item.isVisibleExpression) {\n        this.observe(this.binding.getBindingContext(scope, item.isVisibleExpression), item.isVisibleExpression, (newVal) => {\n          item.isVisible = newVal;\n        });\n\n        item.isVisible = this.bindingEngine.parseExpression(item.isVisibleExpression).evaluate(scope);\n      }\n      if (item.classNameExpression) {\n        this.observe(this.binding.getBindingContext(scope, item.classNameExpression), item.classNameExpression, (newVal) => {\n          item.className = newVal;\n        });\n\n        item.className = this.bindingEngine.parseExpression(item.classNameExpression).evaluate(scope);\n      }\n\n      if (item.isEnabled == void (0)) {\n        item.isEnabled = true;\n      }\n      if (item.isVisible == void (0)) {\n        item.isVisible = true;\n      }\n    });\n  }\n  private getItemScope(item: IItem): Scope {\n    if (item.expressionScope) {\n      return item.expressionScope;\n    }\n    if (this.options.scopeContainer) {\n      return this.options.scopeContainer.scope;\n    }\n\n    return this._scope;\n  }\n  private observe(item: IItem, propertyName: string, action: { (newVal): void }) {\n    const disposable = this.bindingEngine\n      .expressionObserver(item, propertyName)\n      .subscribe((newVal) => action(newVal));\n\n    this._itemSubscriptionDisposable.push(disposable);\n  }\n  private disposeOldSubscriber() {\n    if (!this._itemSubscriptionDisposable) {\n      return;\n    }\n\n    this._itemSubscriptionDisposable.forEach(c => c.dispose());\n    this._itemSubscriptionDisposable = [];\n  }\n}\n","// Module\nvar code = \"<template> <compose if=\\\"toolbar.toolbarModuleId\\\" view-model.bind=\\\"toolbar.toolbarModuleId\\\" model.bind=\\\"toolbarModel\\\"></compose> </template> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject, noView\n} from \"aurelia-framework\";\nimport { NotificationService } from '../../../base/services/notification-service';\n\n@autoinject\n@noView\nexport class WebSocket {\n  constructor(\n    private notification: NotificationService\n  ) { }\n\n  attached() {\n    this.notification.subscribe();\n  }\n  detached() {\n    this.notification.unsuscribe();\n  }\n}\n","import { \n  FrameworkConfiguration,\n  PLATFORM\n} from \"aurelia-framework\";\nimport {\n  DxTemplateService\n} from \"../dx/services/dx-template-service\";\nimport * as DxLoader from \"../dx/dx-loader\";\nimport \"./styles/styles.less\";\n\nexport function configure(config: FrameworkConfiguration) {\n  config\n    .globalResources(PLATFORM.moduleName(\"./elements/code-editor/code-editor\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/file-uploader-with-viewer/tip-file-uploader-with-viewer\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/list-view/list-view\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/custom-edit-popup/custom-edit-popup\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/toolbar/toolbar\"))\n    .globalResources(PLATFORM.moduleName(\"./elements/html-editor/html-editor\"))\n    .globalResources(PLATFORM.moduleName(\"./views/stack-router/stack-router\"))\n    .globalResources(PLATFORM.moduleName(\"./attributes/stack-router-link/stack-router-link\"));\n\n  const dxTemplate: DxTemplateService = config.container.get(DxTemplateService);\n}\n","import {\n  autoinject,\n  bindable,\n  customElement,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\nimport {\n  RouterService\n} from \"../../services/router-service\";\nimport {\n  HistoryService\n} from \"../../services/history-service\";\nimport * as Interfaces from \"../../interfaces/export\";\nimport {\n  ViewItem\n} from \"../../classes/view-item\";\n\n@autoinject\nexport class StackRouter {\n  private owningView: any;\n\n  constructor(\n    private history: HistoryService,\n    private router: RouterService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  @bindable createToolbar: boolean = true;\n\n  created(owningView) {\n    this.owningView = owningView;\n  }\n\n  attached() {\n    this.history.navigateCurrentOrInPipeline();\n  }\n\n  onAnimationStart(event: any) {\n    this.eventAggregator.publish(\"router:view-animation-start\", {\n      element: event.detail.element\n    });\n  }\n  onAnimationEnd(event: any) {\n    this.eventAggregator.publish(\"router:view-animation-end\", {\n      element: event.detail.element\n    });\n  }\n}\n","// Module\nvar code = \"<template class=\\\"t--stack-router\\\"> <require from=\\\"./stack-router.less\\\"></require> <require from=\\\"../view/view\\\"></require> <div class=\\\"t--stack-router-item\\\" class.bind=\\\"item.className\\\" repeat.for=\\\"item of router.viewStack\\\" animation-tracker=\\\"property-name: width\\\" on-animation-start.delegate=\\\"onAnimationStart($event)\\\" on-animation-end.delegate=\\\"onAnimationEnd($event)\\\"> <view view.bind=\\\"item\\\" create-toolbar.bind=\\\"$parent.createToolbar\\\"></view> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".t--stack-router,\\n.t--stack-router-item {\\n  display: block;\\n  height: 100%;\\n  width: 100%;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  bindable,\n  computedFrom,\n  BindingEngine,\n  TaskQueue\n} from \"aurelia-framework\";\n\nimport { IToolbarOptions } from \"../../elements/toolbar/toolbar-options\";\n\n@autoinject\nexport class View {\n  constructor(\n    private element: Element,\n    private bindingEngine: BindingEngine,\n    private taskQueue: TaskQueue\n  ) { }\n\n  @bindable createToolbar: boolean = true;\n  @bindable view;\n\n  @computedFrom(\"createToolbar\")\n  get className(): string {\n    if (this.createToolbar) {\n      return \"t--view-with-toolbar\";\n    }\n  }\n\n  @computedFrom(\"view.controller.currentViewModel.toolbarOptions\")\n  get toolbarOptions(): IToolbarOptions {\n    if (!this.view || !this.view.controller || !this.view.controller.currentViewModel) {\n      return null;\n    }\n\n    return this.view.controller.currentViewModel.toolbarOptions;\n  }\n\n  bind() {\n    this.element.classList.remove(\"t--view-attached\");\n    this.element.querySelector(\".t--view-content\").classList.remove(\"t--view-content-attached\");\n\n  }\n  attached() {\n    setTimeout(() => {\n      this.element.classList.add(\"t--view-attached\")\n      this.element.querySelector(\".t--view-content\").classList.add(\"t--view-content-attached\");\n    }, 100);\n  }\n}","// Module\nvar code = \"<template class=\\\"t--view\\\" class.bind=\\\"className\\\"> <require from=\\\"./view.less\\\"></require> <div class=\\\"t--toolbar\\\" if.bind=\\\"createToolbar\\\"> <toolbar if.bind=\\\"toolbarOptions\\\" options.bind=\\\"toolbarOptions\\\"></toolbar> </div> <div class=\\\"t--view-content-wrapper\\\"> <compose view-model.ref=\\\"view.controller\\\" view-model.bind=\\\"view.moduleId\\\" model.bind=\\\"view.model\\\" class=\\\"t--view-content\\\"></compose> </div> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--view {\\n  display: block;\\n  position: relative;\\n  height: 100%;\\n  overflow-x: hidden;\\n}\\n.t--view-content-wrapper {\\n  display: block;\\n  height: 100%;\\n  overflow-x: hidden;\\n  overflow-y: hidden;\\n}\\n.t--view-content {\\n  display: block;\\n  width: 100%;\\n  height: 100%;\\n  -webkit-overflow-scrolling: touch;\\n}\\n.t--is-nested-form .parent-container {\\n  padding: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport { RouterService } from \"../forms/export\";\n\nimport * as background01 from \"./images/background01.jpg\";\nimport * as background02 from \"./images/background02.jpg\";\nimport * as background03 from \"./images/background03.jpg\";\nimport * as background04 from \"./images/background04.jpg\";\nimport * as background05 from \"./images/background05.jpg\";\nimport * as background06 from \"./images/background06.jpg\";\nimport * as background07 from \"./images/background07.jpg\";\nimport * as background08 from \"./images/background08.jpg\";\nimport * as background09 from \"./images/background09.jpg\";\nimport * as background10 from \"./images/background10.jpg\";\nimport * as background11 from \"./images/background11.jpg\";\nimport * as background12 from \"./images/background12.jpg\";\n\n@autoinject\nexport class Login {\n  constructor(\n    private router: RouterService\n  ) {\n    const getUrl = (c) => c.default ? c.default : c;\n\n    const imageList = [\n      getUrl(background01), \n      getUrl(background02), \n      getUrl(background03), \n      getUrl(background04), \n      getUrl(background05), \n      getUrl(background06), \n      getUrl(background07), \n      getUrl(background08), \n      getUrl(background09), \n      getUrl(background10), \n      getUrl(background11), \n      getUrl(background12)];\n\n    const imageIndex = Math.round(Math.random() * 11);\n\n    this.loginImageStyle = {\n      \"background-image\": `url('${imageList[imageIndex]}')`\n    };\n  }\n\n  loginImageStyle: any;\n\n  @computedFrom(\"router.currentViewItem.controller.currentViewModel.title\")\n  get title(): string {\n    if (!this.router.currentViewItem || !this.router.currentViewItem.controller) {\n      return null;\n    }\n\n    const currentViewModel = this.router.currentViewItem.controller[\"currentViewModel\"];\n    if (!currentViewModel) {\n      return;\n    }\n\n    return currentViewModel.title;\n  }\n\n  attached() {\n    this.router.registerRoutes([{\n      moduleId: \"framework/login/views/login/login-form\",\n      caption: \"base.login\",\n      route: \"login\"\n    }, {\n      moduleId: \"framework/login/views/password-reset/password-reset-form\",\n      caption: \"base.reset_password\",\n      route: \"reset-password\"\n    }, {\n      moduleId: \"framework/login/views/activate-account/activate-account-form\",\n      caption: \"base.account_activate\",\n      route: \"activate-account\"\n    }\n    ], \"login\");\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"../../framework/default-ui/views/loading/loading\\\"></require> <require from=\\\"./login.less\\\"></require> <loading></loading> <div class=\\\"t--login-container\\\"> <div class=\\\"t--login-image\\\" style.bind=\\\"loginImageStyle\\\"> <div class=\\\"t--login-banner\\\" tr=\\\"key.bind: title\\\"> </div> </div> <div class=\\\"t--login-data\\\"> <stack-router create-toolbar.bind=\\\"false\\\"></stack-router> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@keyframes leftFadeIn {\\n  from {\\n    opacity: 0;\\n    transform: translateX(-10px);\\n  }\\n  to {\\n    opacity: 1;\\n    transform: translateX(0);\\n  }\\n}\\n.t--login-container {\\n  display: flex;\\n  height: 100vh;\\n  width: 100vw;\\n  overflow: hidden;\\n}\\n.t--login-image {\\n  position: relative;\\n  flex-grow: 1;\\n  background-position: center center;\\n  background-size: cover;\\n  border-right: 1px solid lightgray;\\n}\\n.t--login-banner {\\n  position: absolute;\\n  padding: 12px 36px;\\n  bottom: 30vh;\\n  font-size: 60px;\\n  font-weight: 100;\\n  color: white;\\n  background-color: rgba(0, 0, 0, 0.3);\\n}\\n.t--login-data {\\n  display: flex;\\n  width: 350px;\\n  background-color: #f7f7f7;\\n}\\n.t--login-data .t--view-content {\\n  padding-top: 4vh;\\n}\\n.t--login-logo {\\n  margin-bottom: 40px;\\n  text-align: center;\\n}\\n.t--login-logo img {\\n  max-width: 200px;\\n}\\n.t--login-info-text > div {\\n  line-height: 18px;\\n  white-space: pre-line;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import * as fwx from \"../../../forms/form-export\";\nimport {\n    ActivateAccountFuncs\n} from \"./activate-account-form-funcs\";\n\n@fwx.autoinject\nexport class ActivateAccountForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f: ActivateAccountFuncs) {\n        super(element, formBaseImport);\n        this.id = \"activate-account-form\";\n        this.title = \"activate-account-form.activate-account-form_caption\";\n        this.addModel({\n            \"id\": \"$m_activateAccount\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f\", $f, \"functions.$f\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"mode\": \"password\",\n            \"caption\": \"activate-account-form.password_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_activateAccount\",\n                \"bindTo\": \"Password\",\n                \"bindToFQ\": \"models.data.$m_activateAccount.Password\"\n            },\n            \"validationRules\": [],\n            \"id\": \"password\",\n            \"options\": {\n                \"optionsName\": \"passwordOptions\",\n                \"optionsNameFQ\": \"passwordOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"mode\": \"password\",\n            \"caption\": \"activate-account-form.confirmpassword_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_activateAccount\",\n                \"bindTo\": \"ConfirmPassword\",\n                \"bindToFQ\": \"models.data.$m_activateAccount.ConfirmPassword\"\n            },\n            \"validationRules\": [],\n            \"id\": \"confirmPassword\",\n            \"options\": {\n                \"optionsName\": \"confirmPasswordOptions\",\n                \"optionsNameFQ\": \"confirmPasswordOptions\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd2\",\n            \"options\": {\n                \"optionsName\": \"wd2Options\",\n                \"optionsNameFQ\": \"wd2Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.activateCommand\",\n                \"bindToFQ\": \"functions.$f.activateCommand\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd3\",\n            \"options\": {\n                \"optionsName\": \"wd3Options\",\n                \"optionsNameFQ\": \"wd3Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.backToLoginCommand\",\n                \"bindToFQ\": \"functions.$f.backToLoginCommand\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../../../images/logo_tip.png\");\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-logo\\\"><img class=\\\"t--form-element-image\\\" src=\\\"\" + ___HTML_LOADER_REPLACEMENT_0___ + \"\\\"></div> <div class=\\\"col-xs-12\\\"> <form submit.delegate=\\\"submitForm('functions.$f.activateCommand', $event)\\\"><button class=\\\"t--invisible-submit\\\" type=\\\"submit\\\"></button> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-info-text\\\"> <div tr=\\\"key: activate-account-form.enter_user_password_text\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: activate-account-form.password_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"passwordOptions\\\" view-model.ref=\\\"password\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: activate-account-form.confirmpassword_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"confirmPasswordOptions\\\" view-model.ref=\\\"confirmPassword\\\"></dx-widget> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd2Options\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd3Options\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </form> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../forms/form-export\";\nimport {\n    LoginFuncs\n} from \"./login-form-funcs\";\n\n@fwx.autoinject\nexport class LoginForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f: LoginFuncs) {\n        super(element, formBaseImport);\n        this.id = \"login-form\";\n        this.title = \"login-form.login-form_caption\";\n        this.addModel({\n            \"id\": \"$m_login\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f\", $f, \"functions.$f\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"login-form.username_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_login\",\n                \"bindTo\": \"Username\",\n                \"bindToFQ\": \"models.data.$m_login.Username\"\n            },\n            \"validationRules\": [],\n            \"id\": \"username\",\n            \"options\": {\n                \"optionsName\": \"usernameOptions\",\n                \"optionsNameFQ\": \"usernameOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"mode\": \"password\",\n            \"caption\": \"login-form.password_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_login\",\n                \"bindTo\": \"Password\",\n                \"bindToFQ\": \"models.data.$m_login.Password\"\n            },\n            \"validationRules\": [],\n            \"id\": \"password\",\n            \"options\": {\n                \"optionsName\": \"passwordOptions\",\n                \"optionsNameFQ\": \"passwordOptions\"\n            }\n        });\n        this.widgetCreator.addCheckBox(this, {\n            \"caption\": \"login-form.stayloggodon_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_login\",\n                \"bindTo\": \"StayLoggedOn\",\n                \"bindToFQ\": \"models.data.$m_login.StayLoggedOn\"\n            },\n            \"validationRules\": [],\n            \"id\": \"stayLoggodOn\",\n            \"options\": {\n                \"optionsName\": \"stayLoggodOnOptions\",\n                \"optionsNameFQ\": \"stayLoggodOnOptions\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"login-form.twofactorkey_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_login\",\n                \"bindTo\": \"TwoFactorAuthKey\",\n                \"bindToFQ\": \"models.data.$m_login.TwoFactorAuthKey\"\n            },\n            \"validationRules\": [],\n            \"id\": \"twoFactorKey\",\n            \"options\": {\n                \"optionsName\": \"twoFactorKeyOptions\",\n                \"optionsNameFQ\": \"twoFactorKeyOptions\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd2\",\n            \"options\": {\n                \"optionsName\": \"wd2Options\",\n                \"optionsNameFQ\": \"wd2Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.loginCommand\",\n                \"bindToFQ\": \"functions.$f.loginCommand\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd3\",\n            \"options\": {\n                \"optionsName\": \"wd3Options\",\n                \"optionsNameFQ\": \"wd3Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.forgotPasswordCommand\",\n                \"bindToFQ\": \"functions.$f.forgotPasswordCommand\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd4\",\n            \"options\": {\n                \"optionsName\": \"wd4Options\",\n                \"optionsNameFQ\": \"wd4Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.goBackToLoginCommand\",\n                \"bindToFQ\": \"functions.$f.goBackToLoginCommand\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../../../images/logo_tip.png\");\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-logo\\\"><img class=\\\"t--form-element-image\\\" src=\\\"\" + ___HTML_LOADER_REPLACEMENT_0___ + \"\\\"></div> <div class=\\\"col-xs-12\\\"> <form submit.delegate=\\\"submitForm('functions.$f.loginCommand', $event)\\\"><button class=\\\"t--invisible-submit\\\" type=\\\"submit\\\"></button> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\" show.bind=\\\"!functions.$f.showTwoFactorAuth\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-info-text\\\"> <div tr=\\\"key: login-form.enter_user_password_text\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: login-form.username_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"usernameOptions\\\" view-model.ref=\\\"username\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: login-form.password_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"passwordOptions\\\" view-model.ref=\\\"password\\\"></dx-widget> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: login-form.stayloggodon_caption\\\"></div> <dx-widget name=\\\"dxCheckBox\\\" options.bind=\\\"stayLoggodOnOptions\\\" view-model.ref=\\\"stayLoggodOn\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12\\\" show.bind=\\\"functions.$f.showTwoFactorAuth\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-info-text\\\"> <div tr=\\\"key: login-form.enter_auth_app_code_text\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: login-form.twofactorkey_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"twoFactorKeyOptions\\\" view-model.ref=\\\"twoFactorKey\\\"></dx-widget> </div> </div> </div> </div> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd2Options\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" show.bind=\\\"!functions.$f.showTwoFactorAuth\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd3Options\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\" show.bind=\\\"functions.$f.showTwoFactorAuth\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd4Options\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </form> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import * as fwx from \"../../../forms/form-export\";\nimport {\n    PasswordResetFuncs\n} from \"./password-reset-form-funcs\";\n\n@fwx.autoinject\nexport class PasswordResetForm extends fwx.FormBase {\n    constructor(\n        element: Element,\n        formBaseImport: fwx.FormBaseImport,\n        private $f: PasswordResetFuncs) {\n        super(element, formBaseImport);\n        this.id = \"password-recovery-form\";\n        this.title = \"password-recovery-form.password-recovery-form_caption\";\n        this.addModel({\n            \"id\": \"$m_Password\",\n            \"filters\": []\n        });\n        this.addFunction(\"$f\", $f, \"functions.$f\");\n        this.widgetCreator.addValidationGroup(this, {\n            \"id\": \"wd1\",\n            \"options\": {\n                \"optionsName\": \"wd1Options\",\n                \"optionsNameFQ\": \"wd1Options\"\n            }\n        });\n        this.widgetCreator.addTextBox(this, {\n            \"caption\": \"password-recovery-form.username_caption\",\n            \"binding\": {\n                \"dataContext\": \"$m_Password\",\n                \"bindTo\": \"Username\",\n                \"bindToFQ\": \"models.data.$m_Password.Username\"\n            },\n            \"validationRules\": [],\n            \"id\": \"username\",\n            \"options\": {\n                \"optionsName\": \"usernameOptions\",\n                \"optionsNameFQ\": \"usernameOptions\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd2\",\n            \"options\": {\n                \"optionsName\": \"wd2Options\",\n                \"optionsNameFQ\": \"wd2Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.resetPasswordCommand\",\n                \"bindToFQ\": \"functions.$f.resetPasswordCommand\"\n            }\n        });\n        this.widgetCreator.addCommand(this, {\n            \"id\": \"wd3\",\n            \"options\": {\n                \"optionsName\": \"wd3Options\",\n                \"optionsNameFQ\": \"wd3Options\"\n            },\n            \"binding\": {\n                \"bindTo\": \"$f.backToLoginCommand\",\n                \"bindToFQ\": \"functions.$f.backToLoginCommand\"\n            }\n        });\n        super.onConstructionFinished();\n    }\n}","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../../../images/logo_tip.png\");\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"<template> <dx-widget class=\\\"t--form-validation-group\\\" name=\\\"dxValidationGroup\\\" options.bind=\\\"wd1Options\\\" view-model.ref=\\\"wd1\\\" gr-size> <div class=\\\"parent-container\\\"> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-logo\\\"><img class=\\\"t--form-element-image\\\" src=\\\"\" + ___HTML_LOADER_REPLACEMENT_0___ + \"\\\"></div> <div class=\\\"col-xs-12\\\"> <form submit.delegate=\\\"submitForm('functions.$f.resetPasswordCommand', $event)\\\"><button class=\\\"t--invisible-submit\\\" type=\\\"submit\\\"></button> <div class=\\\"container\\\"> <div class=\\\"col-xs-12 t--login-info-text\\\"> <div tr=\\\"key: password-recovery-form.enter_user_password_text\\\"></div> </div> <div class=\\\"col-xs-12 t--has-editor-caption t--has-editor-caption-b\\\"> <div class=\\\"t--editor-caption\\\" tr=\\\"key: password-recovery-form.username_caption\\\"></div> <dx-widget name=\\\"dxTextBox\\\" options.bind=\\\"usernameOptions\\\" view-model.ref=\\\"username\\\"></dx-widget> </div> <div class=\\\"col-xs-12 small-hpad\\\"> <div> <div> <div class=\\\"container\\\"> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd2Options\\\"></dx-widget> </div> <div class=\\\"col-xs-12\\\"> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"wd3Options\\\"></dx-widget> </div> </div> </div> </div> </div> </div> </form> </div> </div> </div> </dx-widget> </template>\";\n// Exports\nmodule.exports = code;","import { autoinject, TemplatingEngine, bindable, TaskQueue } from \"aurelia-framework\";\nimport UI from \"./ui\";\nimport { DataService } from '../../services/data-service';\nimport { DataGridService } from '../../services/data-grid-service';\nimport { EditorService } from '../../services/editor-service';\nimport { IReport } from '../../interfaces/report';\nimport { IState } from '../../interfaces/state';\nimport { IDataSource } from '../../interfaces/data-source';\nimport { IViewModel } from '../../interfaces/view-model';\nimport { VariableService } from '../../services/variable-service';\nimport { ChartService } from '../../services/chart-service';\nimport { PivotService } from '../../services/pivot-services';\nimport { GlobalizationService, LocationService } from '../../../base/export';\nimport Nav from './nav';\nimport { ExcelExportService } from \"../../../forms/services/excel-export-service\";\nimport Excel from \"./excel\";\n\n@autoinject\nexport class Report {\n  constructor(\n    private _element: Element,\n    private _templatingEngine: TemplatingEngine,\n    private _dataService: DataService,\n    private _dataGridService: DataGridService,\n    private _chartService: ChartService,\n    private _pivotService: PivotService,\n    private _editorService: EditorService,\n    private _variableService: VariableService,\n    private _globalizationService: GlobalizationService,\n    private _locationService: LocationService,\n    private _excelExportService: ExcelExportService,\n    private _taskQueue: TaskQueue) { }\n\n  @bindable id: string;\n\n  reportDef: IReport;\n  viewModel: IViewModel;\n\n  async attached() {\n    if (!this.id) {\n      return;\n    }\n\n    const report = await this._dataService.getReport(this.id);\n    if (!report) {\n      return;\n    }\n\n    this.reportDef = report.definition;\n    const container = this._element.querySelector(\".report-container\");\n\n    this.viewModel = this.createViewModel(report.initialState);\n    this.registerDataSourceChanged(null, this.onDataSourceChanged.bind(this));\n    this.registerDataSourceSelectionChanged(null, this.onDataSourceSelectionChanged.bind(this));\n    this.registerVariableChanged(null, this.onVariableChanged.bind(this));\n\n    const view = this.createView();\n    container.innerHTML = view;\n\n    this._templatingEngine.enhance({\n      element: container,\n      bindingContext: this.viewModel,\n      resources: (<any>this._element).au.controller.view.resources\n    });\n\n    this.dispatchLoaded(report);\n    this.loadInitialData();\n  }\n\n  createState(): IState {\n    const state: IState = {\n      dataSourceSelected: [],\n      variables: []\n    };\n\n    for (let key in this.viewModel.dataSourceSelected) {\n      if (!this.hasDataSourceSelected(key)) {\n        continue;\n      }\n\n      state.dataSourceSelected.push({\n        id: key,\n        items: this.viewModel.dataSourceSelected[key]\n      });\n    }\n\n    for (let key in this.viewModel.variable) {\n      if (!this._variableService.hasVariableValue(this.viewModel.variable[key])) {\n        continue;\n      }\n\n      state.variables.push({\n        id: key,\n        operator: this.viewModel.variable[key].operator,\n        value: this.viewModel.variable[key].value\n      });\n    }\n\n    return state;\n  }\n  createViewModel(initialState: IState): any {\n    const text = `class ViewModel { ${this.reportDef.javaScript} }; return new ViewModel();`\n\n    const func = new Function(text);\n    const viewModel: IViewModel = func();\n\n    viewModel.ui = new UI(\n      viewModel, \n      this._editorService, \n      this._dataGridService, \n      this._chartService, \n      this._pivotService);\n\n    viewModel.nav = new Nav(\n      this._element,\n      this._locationService\n    );\n    viewModel.excel = new Excel(\n      this._excelExportService\n    );\n\n    viewModel.report = this;\n\n    viewModel.dataSource = {};\n    viewModel.dataSourceSelected = {};\n    viewModel.variable = {};\n    viewModel.dataSourceChanged = [];\n    viewModel.dataSourceSelectionChanged = [];\n    viewModel.selectionHandled = {};\n    viewModel.variableChanged = [];\n    viewModel.registerDataSourceChanged = this.registerDataSourceChanged.bind(this);\n    viewModel.registerDataSourceSelectionChanged = this.registerDataSourceSelectionChanged.bind(this);\n    viewModel.registerVariableChanged = this.registerVariableChanged.bind(this);\n    viewModel.fireDataSourceChanged = this.fireDataSourceChanged.bind(this);\n    viewModel.fireDataSourceSelectionChanged = this.fireDataSourceSelectionChanged.bind(this);\n    viewModel.fireVariableChanged = this.fireVariableChanged.bind(this);\n\n    viewModel.format = this._globalizationService.format;\n    viewModel.getFormatterParser = this._globalizationService.getFormatterParser;\n    viewModel.getNumberFormat = this._globalizationService.getNumberFormat;\n\n    if (viewModel.loadOptions) {\n      viewModel.loadOptions();\n    }\n\n    if (initialState && initialState.variables) {\n      for (let variable of initialState.variables) {\n        viewModel.variable[variable.id] = variable;\n      }\n    }\n\n    return viewModel;\n  }\n  createView() {\n    let result = \"\";\n\n    if (this.reportDef.style) {\n      result = result.concat(\"<style>\\n\").concat(this.reportDef.style).concat(\"\\n</style>\\n\");\n    }\n\n    result = result.concat(this.reportDef.html);\n    return result;\n  }\n  dispatchLoaded(report) {\n    const event = new CustomEvent(\"report-loaded\", {\n      detail: {\n        sender: this,\n        value: report\n      },\n      bubbles: true\n    });\n\n    this._element.dispatchEvent(event);\n  }\n\n  fireDataSourceChanged(idDataSource: string, data: any[]) {\n    this.viewModel.dataSource[idDataSource] = data;\n\n    for (let item of this.viewModel.dataSourceChanged) {\n      if (item.idDataSource && item.idDataSource != idDataSource) {\n        continue;\n      }\n\n      item.callback(idDataSource, data);\n\n      const invokerMethod = `${idDataSource}Loaded`;\n      if (this.viewModel[invokerMethod]) {\n        this.viewModel[invokerMethod](data);\n      }\n    }\n  }\n  fireDataSourceSelectionChanged(idDataSource: string, data: any[]) {\n    this.viewModel.dataSourceSelected[idDataSource] = data;\n\n    for (let item of this.viewModel.dataSourceSelectionChanged) {\n      if (item.idDataSource && item.idDataSource != idDataSource) {\n        continue;\n      }\n\n      item.callback(idDataSource, data);\n    }\n  }\n  fireVariableChanged(idVariable: string) {\n    for (let item of this.viewModel.variableChanged) {\n      if (item.idVariable && item.idVariable != idVariable) {\n        continue;\n      }\n\n      item.callback(idVariable);\n    }\n  }\n  registerDataSourceChanged(idDataSource: string, callback: { (idDataSource: string, data: any[]): void }, handlesSelection: boolean = false) {\n    const info = {\n      idDataSource,\n      callback\n    };\n    \n    this.viewModel.dataSourceChanged.push(info);\n\n    if (idDataSource && handlesSelection) {\n      this.viewModel.selectionHandled[idDataSource] = true;\n    }\n\n    return () => {\n      const index = this.viewModel.dataSourceChanged.indexOf(info);\n      if (!index) {\n        return;\n      }\n\n      this.viewModel.dataSourceChanged.splice(index, 1);\n    };\n  }\n  registerDataSourceSelectionChanged(idDataSource: string, callback: { (idDataSource: string, data: any[]): void }) {\n    const info = {\n      idDataSource,\n      callback\n    }\n    \n    this.viewModel.dataSourceSelectionChanged.push(info);\n\n    return () => {\n      const index = this.viewModel.dataSourceSelectionChanged.indexOf(info);\n      if (!index) {\n        return;\n      }\n\n      this.viewModel.dataSourceSelectionChanged.splice(index, 1);\n    };\n  }\n  registerVariableChanged(idVariable: string, callback: { (idVariable: string): void }): {(): void} {\n    const info = {\n      idVariable,\n      callback\n    };\n\n    this.viewModel.variableChanged.push(info);\n\n    return () => {\n      const index = this.viewModel.variableChanged.indexOf(info);\n      if (!index) {\n        return;\n      }\n\n      this.viewModel.variableChanged.splice(index, 1);\n    };\n  }\n  async onDataSourceChanged(idDataSource: string, data: any[]) {\n    if (data.length == 0) {\n      return;\n    }\n\n    if (!this.viewModel.selectionHandled[idDataSource]) {\n      this.fireDataSourceSelectionChanged(idDataSource, [data[0]]);\n    }\n  }\n  async onDataSourceSelectionChanged(idDataSource: string) {\n    for (let dataSource of this.reportDef.dataSources) {\n      const hasRelation = this.hasRelation(idDataSource, dataSource.id);\n      if (!hasRelation) {\n        continue;\n      }\n\n      await this.loadDataSource(dataSource.id);\n    }\n  };\n  async onVariableChanged(idVariable: string) {\n    const refresh: IDataSource[] = [];\n\n    for (let dataSource of this.reportDef.dataSources) {\n      if (!dataSource.variables) {\n        continue;\n      }\n\n      const hasVariable = dataSource.variables.some(v => v == idVariable);\n      if (!hasVariable) {\n        continue;\n      }\n\n      refresh.push(dataSource);\n    }\n\n    for (let i = 0; i < refresh.length; i++) {\n      const hasRelation = refresh.filter(r => r != refresh[i]).some(r => this.hasRelation(r.id, refresh[i].id, true));\n      if (!hasRelation) {\n        continue;\n      }\n\n      refresh.splice(i, 1);\n      i--;\n    }\n\n    for (let item of refresh) {\n      await this.loadDataSource(item.id);\n    }\n  }\n\n  async loadInitialData() {\n    for (let dataSource of this.reportDef.dataSources) {\n      if (dataSource.parentIds) {\n        continue;\n      }\n\n      await this.loadDataSource(dataSource.id);\n    }\n  }\n  async loadDataSource(idDataSource: string) {\n    this.fireDataSourceSelectionChanged(idDataSource, []);\n    this.fireDataSourceChanged(idDataSource, []);\n\n    let allParentsHere = true;\n    for (let item of this.reportDef.dataSources) {\n      if (!this.hasRelation(item.id, idDataSource)) {\n        continue;\n      }\n\n      if (!this.hasDataSourceSelected(item.id)) {\n        allParentsHere = false;\n        break;\n      }\n    }\n\n    if (allParentsHere) {\n      const r = await this._dataService.getData(this.id, idDataSource, this.createState());\n  \n      const start = new Date().getTime().toString();\n      r.forEach((item, index) => {\n        item[\"_id\"] = start.concat(index.toString());\n      });\n  \n      this.fireDataSourceChanged(idDataSource, r);\n    }\n  }\n  \n  hasDataSourceSelected(idDataSource: string): boolean {\n    return this.viewModel.dataSourceSelected[idDataSource]\n      && Array.isArray(this.viewModel.dataSourceSelected[idDataSource])\n      && this.viewModel.dataSourceSelected[idDataSource].length > 0;\n  }\n  hasRelation(idDatasourceParent: string, idDataSourceChild: string, parentsRecurive: boolean = false): boolean {\n    const child = this.reportDef.dataSources.find(d => d.id == idDataSourceChild);\n    if (!child.parentIds) {\n      return false;\n    }\n\n    const parents = child.parentIds;\n\n    const isParentChild = parents.some(p => p == idDatasourceParent);\n\n    if (isParentChild) {\n      return true;\n    } else if (parentsRecurive) {\n      const parent = this.reportDef.dataSources.find(d => d.id == idDatasourceParent);\n      if (!parent.parentIds) {\n        return false;\n      }\n\n      return parent.parentIds.some(p => this.hasRelation(p, idDataSourceChild, true));\n    } else {\n      return false;\n    }\n  }\n}\n","// Module\nvar code = \"<template> <require from=\\\"./report.less\\\"></require> <require from=\\\"../variable/variable\\\"></require> <div class=\\\"report-container\\\"></div> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"report .report-container {\\n  height: 100%;\\n}\\nreport .dx-numberbox input.dx-texteditor-input {\\n  text-align: right;\\n}\\nreport .r--caption {\\n  margin-bottom: 5px;\\n}\\nreport .r--grid {\\n  display: grid;\\n  grid-gap: 6px;\\n  grid-template-columns: repeat(12, 1fr);\\n}\\nreport .r--grid > * {\\n  grid-column: span 12;\\n}\\nreport .r--grid + .r--grid {\\n  margin-top: 6px;\\n}\\nreport .r--rows-auto-1fr {\\n  grid-template-rows: auto 1fr;\\n}\\nreport .r--relative {\\n  position: relative;\\n}\\nreport .r--relative > * {\\n  display: block;\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n}\\nreport .r--cspan-12 {\\n  grid-column: span 12;\\n}\\nreport .r--cspan-11 {\\n  grid-column: span 11;\\n}\\nreport .r--cspan-10 {\\n  grid-column: span 10;\\n}\\nreport .r--cspan-9 {\\n  grid-column: span 9;\\n}\\nreport .r--cspan-8 {\\n  grid-column: span 8;\\n}\\nreport .r--cspan-7 {\\n  grid-column: span 7;\\n}\\nreport .r--cspan-6 {\\n  grid-column: span 6;\\n}\\nreport .r--cspan-5 {\\n  grid-column: span 5;\\n}\\nreport .r--cspan-4 {\\n  grid-column: span 4;\\n}\\nreport .r--cspan-3 {\\n  grid-column: span 3;\\n}\\nreport .r--cspan-2 {\\n  grid-column: span 2;\\n}\\nreport .r--cspan-1 {\\n  grid-column: span 1;\\n}\\nreport .r--rspan-12 {\\n  grid-row: span 12;\\n}\\nreport .r--rspan-11 {\\n  grid-row: span 11;\\n}\\nreport .r--rspan-10 {\\n  grid-row: span 10;\\n}\\nreport .r--rspan-9 {\\n  grid-row: span 9;\\n}\\nreport .r--rspan-8 {\\n  grid-row: span 8;\\n}\\nreport .r--rspan-7 {\\n  grid-row: span 7;\\n}\\nreport .r--rspan-6 {\\n  grid-row: span 6;\\n}\\nreport .r--rspan-5 {\\n  grid-row: span 5;\\n}\\nreport .r--rspan-4 {\\n  grid-row: span 4;\\n}\\nreport .r--rspan-3 {\\n  grid-row: span 3;\\n}\\nreport .r--rspan-2 {\\n  grid-row: span 2;\\n}\\nreport .r--rspan-1 {\\n  grid-row: span 1;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { autoinject, bindable, Scope, createOverrideContext, TaskQueue, computedFrom } from \"aurelia-framework\";\nimport { Report } from \"../report/report\";\nimport { IVariable } from '../../interfaces/variable';\nimport { GlobalizationService, DataSourceService, ScopeContainer, JsonService } from '../../../base/export';\nimport { VariableService } from '../../services/variable-service';\n\n@autoinject\nexport class Variable {\n  constructor(\n    private globalizationService: GlobalizationService,\n    private variableService: VariableService,\n    private dataSourceService: DataSourceService,\n    private jsonService: JsonService,\n    private taskQueue: TaskQueue\n  ) { }\n\n  @bindable id: string;\n\n  report: Report;\n  variable: IVariable;\n  state: any;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  dropDownPopupInstance: DevExpress.ui.dxPopup;\n\n  operatorOptions: DevExpress.ui.dxSelectBoxOptions = {\n    displayExpr: \"text\",\n    valueExpr: \"key\",\n    onInitialized: (e) => {\n      e.component.option(\"value\", this.state.operator);\n\n      e.component[\"_variableChanged\"] = this.report.registerVariableChanged(this.id, () => {\n        e.component.option(\"value\", this.state.operator);\n      });\n    },\n    onValueChanged: (e) => {\n      if (!e.event) {\n        return;\n      }\n\n      this.state.operator = e.value;\n      this.variableService.checkVariableValue(this.state);\n\n      this.report.fireVariableChanged(this.id);\n    },\n    onDisposing: (e) => {\n      if (!e.component[\"_variableChanged\"]) {\n        return;\n      }\n\n      e.component[\"_variableChanged\"]();\n      delete e.component[\"_variableChanged\"];\n    }\n  };\n\n  dropDownOptions: DevExpress.ui.dxDropDownBoxOptions = {\n    width: \"100%\",\n    contentTemplate: \"contentTemplate\",\n    dropDownOptions: {\n      height: \"auto\",\n      minHeight: \"250px\",\n      onShowing: (e) => {\n        this.dropDownPopupInstance = e.component;\n      },\n      onHidden: (e) => {\n        this.dropDownPopupInstance = null;\n      }\n    },\n    onInitialized: (e) => {\n      this.setDropDownText(e.component);\n\n      e.component[\"_variableChanged\"] = this.report.registerVariableChanged(this.id, () => {\n        this.setDropDownText(e.component);\n      });\n    },\n    onClosed: (e) => {\n      this.report.fireVariableChanged(this.id);\n    },\n    onDisposing: (e) => {\n      if (!e.component[\"_variableChanged\"]) {\n        return;\n      }\n\n      e.component[\"_variableChanged\"]();\n      delete e.component[\"_variableChanged\"];\n    }\n  };\n  deleteValueOptions: DevExpress.ui.dxButtonOptions = {\n    text: \"Löschen\",\n    width: \"100%\",\n    onClick: (e) => {\n      const value = e.model.bindingContext.value;\n      const index = this.state.value.indexOf(value);\n      if (index < 0) {\n        return;\n      }\n\n      this.state.value.splice(index, 1);\n      this.repaintDropDownPopup();\n    }\n  };\n\n  editorType: string;\n  editorOptions: DevExpress.ui.EditorOptions = {\n    width: \"100%\",\n    onInitialized: (e) => {\n      this.setCurrentValue(e.component, e[\"model\"]);\n\n      const valueField = this.getValueField(e.component);\n\n      if (valueField == \"valueView\") {\n        e.component.option(\"readOnly\", true);\n      } else {\n        e.component[\"_variableChanged\"] = this.report.registerVariableChanged(this.id, () => {\n          this.setCurrentValue(e.component);\n        });\n      }\n    },\n    onValueChanged: (e) => {\n      if (!e.event) {\n        return;\n      }\n\n      const valueKey = this.getValueField(e.component);\n      if (valueKey == \"valueList\") {\n        if (e.value == void (0)) {\n          return;\n        }\n\n        e.component.option(\"value\", null);\n        this.repaintDropDownPopup();\n      }\n\n      if (!this.showOperator) {\n        this.state.operator = \"=\";\n      }\n\n      this.variableService.setVariableValue(this.state, valueKey, e.value);\n\n      if (valueKey != \"valueList\") {\n        this.report.fireVariableChanged(this.id);\n      }\n    },\n    onDisposing: (e) => {\n      if (!e.component[\"_variableChanged\"]) {\n        return;\n      }\n\n      e.component[\"_variableChanged\"]();\n      delete e.component[\"_variableChanged\"];\n    }\n  };\n\n  @computedFrom(\"variable\")\n  get showOperator(): boolean {\n    const validEditorTypes = [\"dxTextBox\", \"dxDateBox\", \"dxNumberBox\", \"dxSelectBox\"];\n\n    return this.variable \n      && validEditorTypes.indexOf(this.editorType) >= 0;\n  }\n\n  bind(bindingContext) {\n    this.scope = {\n      bindingContext: this,\n      overrideContext: null\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.report = bindingContext.report;\n\n    this.variable = this.report.reportDef.variables.find(v => v.id == this.id);\n    if (!this.variable) {\n      throw new Error(\"Ungültige Variable \".concat(this.id));\n    }\n\n    this.state = this.report.viewModel.variable[this.id];\n    if (!this.state) {\n      this.state = {};\n      this.report.viewModel.variable[this.id] = this.state;\n    }\n\n    const operators = this.variable.operators;\n    if (operators.length == 0) {\n      operators.push(\"=\");\n    }\n\n    this.operatorOptions.dataSource = this.variableService\n      .getAllOperators()\n      .filter(o => operators.indexOf(o.key) >= 0);\n\n    if (!this.state.operator) {\n      this.state.operator = operators[0];\n    }\n\n    switch (this.variable.type) {\n      case \"text\": {\n        this.editorType = this.variable.editor || \"dxTextBox\";\n\n        if (this.editorType == \"dxTextBox\") {\n          const textBoxOptions: DevExpress.ui.dxTextBoxOptions = this.editorOptions;\n          textBoxOptions.showClearButton = true;\n        }\n\n        break;\n      }\n      case \"date\": {\n        this.editorType = this.variable.editor || \"dxDateBox\";\n\n        if (this.editorType == \"dxDateBox\") {\n          const dateBoxOptions: DevExpress.ui.dxDateBoxOptions = this.editorOptions;\n          dateBoxOptions.showClearButton = true;\n          dateBoxOptions.displayFormat = this.globalizationService.getFormatterParser(this.variable.format || \"d\");\n        }\n\n        break;\n      }\n      case \"number\": {\n        this.editorType = this.variable.editor || \"dxNumberBox\";\n\n        if (this.editorType == \"dxNumberBox\") {\n          const numberBoxOptions: DevExpress.ui.dxNumberBoxOptions = this.editorOptions;\n          numberBoxOptions.showClearButton = true;\n          numberBoxOptions.format = this.globalizationService.getNumberFormat(this.variable.format || \"n2\");\n        }\n\n        break;\n      }\n      case \"bool\": {\n        this.editorType = this.variable.editor || \"dxSwitch\";\n\n        if (this.editorType == \"dxSwitch\") {\n          const switchOptions: DevExpress.ui.dxSwitchOptions = this.editorOptions;\n          switchOptions.switchedOnText = \"Ja\";\n          switchOptions.switchedOffText = \"Nein\";\n        }\n\n        if (this.state.value == void (0)) {\n          this.state.value = false;\n        }\n        break;\n      }\n      case \"lookup\": {\n        this.editorType = \"dxSelectBox\";\n\n        const selectBoxOptions: DevExpress.ui.dxSelectBoxOptions = this.editorOptions;\n        selectBoxOptions.searchEnabled = true;\n        selectBoxOptions.showClearButton = true;\n        selectBoxOptions.valueExpr = this.variable.lookupValueExpr;\n        selectBoxOptions.displayExpr = this.variable.lookupDisplayExpr;\n\n        const getOptions = this.jsonService.parse(this.variable.lookupGetOptions || \"{}\");\n        selectBoxOptions.dataSource = this.dataSourceService.createDataSource(\n          this.scopeContainer, {\n            webApiAction: this.variable.lookupAction,\n            keyProperty: this.variable.lookupValueExpr,\n            webApiColumns: getOptions.columns ? getOptions.columns : null,\n            webApiExpand: getOptions.expand ? getOptions.expand : null,\n            webApiOrderBy: getOptions.orderBy ? getOptions.orderBy : null,\n            webApiWhere: getOptions.where ? getOptions.where : null,\n          }\n        );\n\n        break;\n      }\n      default: {\n        throw new Error(\"Unbekannter Variablen-Typ \".concat(this.variable.type));\n      }\n    }\n\n    if (this.variable.editorOptions) {\n      const func = new Function(this.variable.editorOptions);\n      const options = func();\n\n      this.editorOptions = Object.assign(options, this.editorOptions);\n    }\n  }\n  unbind() {\n    this.scopeContainer.disposeAll();\n    this.scopeContainer = null;\n  }\n\n  getValueField(component: DevExpress.ui.Widget): string {\n    return component.element().parentElement.getAttribute(\"value-field\");\n  }\n  setCurrentValue(component: DevExpress.ui.Widget, model: any = null) {\n    const valueKey = this.getValueField(component);\n    if (valueKey == \"valueList\") {\n      return;\n    } else if (valueKey == \"valueView\") {\n      const value = model && model.bindingContext\n        ? model.bindingContext.value\n        : null;\n      component.option(\"value\", value);\n    } else {\n      const value = this.variableService.getVariableValue(this.state, valueKey);\n      component.option(\"value\", value);\n    }\n  }\n  async setDropDownText(component: DevExpress.ui.dxDropDownBox) {\n    const valueList = [];\n\n    if (Array.isArray(this.state.value)) {\n      for (let value of this.state.value) {\n        const displayText = await this.variableService.getVariableDisplayText(this.variable, value);\n        valueList.push(displayText);\n      }\n    }\n\n    component.option(\"value\", valueList.join(\" | \"));\n  }\n  repaintDropDownPopup() {\n    if (!this.dropDownPopupInstance) {\n      return;\n    }\n\n    this.taskQueue.queueTask(() => {\n      this.dropDownPopupInstance.repaint();\n    });\n  }\n}","// Module\nvar code = \"<template> <require from=\\\"./variable.less\\\"></require> <dx-widget if.bind=\\\"showOperator\\\" class=\\\"operator\\\" name=\\\"dxSelectBox\\\" options.bind=\\\"operatorOptions\\\"></dx-widget> <dx-widget if.bind=\\\"state.operator == 'in' || state.operator == 'notin'\\\" name=\\\"dxDropDownBox\\\" options.bind=\\\"dropDownOptions\\\"> <dx-template name=\\\"contentTemplate\\\"> <div class=\\\"variable-drop-down-content\\\"> <div class=\\\"variable-drop-down-select\\\"> <div class=\\\"r--caption\\\">Wert auswählen</div> <dx-widget name.bind=\\\"editorType\\\" options.bind=\\\"editorOptions\\\" value-field=\\\"valueList\\\"></dx-widget> </div> <div if.bind=\\\"state.value.length > 0\\\"> <div class=\\\"r--caption\\\">Ausgewählte Werte</div> <div class=\\\"variable-drop-down-value\\\" repeat.for=\\\"value of state.value\\\"> <dx-widget name.bind=\\\"editorType\\\" options.bind=\\\"editorOptions\\\" value-field=\\\"valueView\\\"></dx-widget> <dx-widget name=\\\"dxButton\\\" options.bind=\\\"deleteValueOptions\\\"></dx-widget> </div> </div> </div> </dx-template> </dx-widget> <dx-widget if.bind=\\\"state.operator != 'in' && state.operator != 'notin'\\\" name.bind=\\\"editorType\\\" options.bind=\\\"editorOptions\\\" value-field=\\\"value\\\"></dx-widget> <dx-widget if.bind=\\\"state.operator == 'between'\\\" name.bind=\\\"editorType\\\" options.bind=\\\"editorOptions\\\" value-field=\\\"value2\\\"></dx-widget> </template>\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"variable {\\n  display: flex;\\n}\\nvariable > :not(:first-child) {\\n  margin-left: 10px;\\n}\\nvariable > * {\\n  flex-grow: 1;\\n  flex-shrink: 0;\\n}\\nvariable > *.operator {\\n  width: 110px;\\n  flex-grow: 0;\\n}\\n.variable-drop-down-content {\\n  padding: 12px;\\n}\\n.variable-drop-down-value {\\n  display: grid;\\n  grid-gap: 6px;\\n  grid-template-columns: 1fr 100px;\\n}\\n.variable-drop-down-select {\\n  margin-bottom: 12px;\\n}\\n.variable-drop-down-value + .variable-drop-down-value {\\n  margin-top: 6px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import {FrameworkConfiguration} from \"aurelia-framework\";\n\nexport function configure(config: FrameworkConfiguration) {\n\n}\n","import { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { OnAngebotAddLieferscheinpositionEvent, OnAngebotGewichtAktualisieren, OnAngebotGewichtAktualisierenEvent, OnAngebotKondAktualisieren, OnAngebotKondAktualisierenEvent, OnAngebotPositionenSortierenEvent, OnAngebotspositionenInNeuesAngebotUebernehmen, OnAngebotspositionenInNeuesAngebotUebernehmenEvent, OnDeleteIdAngebotspositionListEvent, OnErstelleAuftragAusAngebot, OnErstelleAuftragAusAngebotEvent, OnEvalLieferRechnungsort, OnEvalLieferRechnungsortEvent, OnKopierenRequest, OnKopierenRequestEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { ContextMenu, FormBase, ICommandData, PopupInfoService } from \"../../../../framework/forms/export\";\nimport { Geschaeftspartner } from \"../../../elements/geschaeftspartner/geschaeftspartner\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent, IdxPopoverComponent } from \"../../../interfaces/export\";\nimport { AngebotService } from \"../../../services/angebot-service\";\nimport { DynFelderDataService, DynFelderService, FilialeService, FirmaService, GeschaeftspartnerSearchService, GeschaeftspartnerService, KalkulationRefreshService, LagerService, ValidationExService } from \"../../../services/export\";\nimport { PersonService } from \"../../../services/person-service\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class AngebotEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _infobarZuletztArtikelAddSubscription: Subscription;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _webEventService: WebEventService,\n    private _dynFelderService: DynFelderService,\n    private _filialeService: FilialeService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _lagerService: LagerService,\n    private _geschaeftspartnerSearchService: GeschaeftspartnerSearchService,\n    private _angebotService: AngebotService,\n    private _eventAggregator: EventAggregator,\n    private _popupInfoService: PopupInfoService,\n    private _personService: PersonService,\n    private _locationService: LocationService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService,\n    private _belegExportService: BelegExportService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n  aufgabe: IdxPopoverComponent;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 999,\n    isVisibleExpression: \"functions.$f_AngebotEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_AngebotEditUtils.isBelegExportMandantAktiv && models.data.$m_Angebot.Id > 0\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Angebot.Id;\n      this._belegExportService.export(BelegImportTyp.Angebot, [id]);\n    }\n  };\n  auftragErstellenCommand: ICommandData = {\n    id: \"auftragErstellen\",\n    idCategory: \"angebot\",\n    icon: \"plus-circle\",\n    title: \"angebot.auftrag_erstellen\",\n    sortIndex: 999,\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave && models.data.$m_Angebot.Id > 0\",\n    execute: async (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Angebot.TypeName,\n        this.form.models.data.$m_Angebot.Id,\n        \"AUFTRAG_ERSTELLEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnErstelleAuftragAusAngebotEvent({\n        IdAngebot: this.form.models.data.$m_Angebot.Id,\n        UebernehmeAllePositionen: selectedKeys.length == 0,\n        IdAngebotPosList: selectedKeys\n      });\n\n      const webEventResult: OnErstelleAuftragAusAngebot = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdAuftrag) {\n        return;\n      }\n\n      const navigationUrl = `ERP/Verkauf/Auftrag/${webEventResult.IdAuftrag}`;\n\n      if (ctrlKeyPressed) {\n        this._locationService.openWindow(navigationUrl);\n        this.form.models.reloadAll();\n      } else {\n        this._locationService.goTo({\n          url: navigationUrl,\n          clearStack: false\n        });\n      }\n    }\n  };\n  refreshGewichtCommand: ICommandData = {\n    id: \"refreshGewichte\",\n    idCategory: \"gewicht\",\n    title: \"angebot.gewicht_aktualisieren\",\n    icon: \"cubes\",\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave && models.data.$m_Angebot.Id > 0\",\n    sortIndex: 10,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const onAngebotGewichtAktualisierenEvent = new OnAngebotGewichtAktualisierenEvent({\n        IdAngebot: this.form.models.data[\"$m_Angebot\"].Id\n      });\n\n      const webEventResult: OnAngebotGewichtAktualisieren = await this._webEventService.execute(\n        onAngebotGewichtAktualisierenEvent,\n        true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  neueKonditionenLaden: ICommandData = {\n    id: \"neueKonditionenLaden\",\n    idCategory: \"konditionen\",\n    icon: \"refresh\",\n    title: \"angebot.konditionen_laden\",\n    sortIndex: 1,\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave && models.data.$m_Angebot.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const args: OnAngebotKondAktualisieren = {\n        IdAngebot: this.form.models.data.$m_Angebot.Id,\n        AllePositionen: selectedKeys.length === 0,\n        IdAngebotPosList: selectedKeys\n      };\n\n      await this._webEventService.execute(new OnAngebotKondAktualisierenEvent(args), true);\n      return this.form.models.reloadAll();\n    }\n  };\n  positionenSortierenCommand: ICommandData = {\n    id: \"positionenSortieren\",\n    idCategory: \"positionen\",\n    icon: \"sort-alpha-asc\",\n    title: \"erp.positionen-sortieren\",\n    sortIndex: 10,\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave && models.data.$m_Angebot.Id > 0\",\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const sort = async (typ) => {\n        const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n        await this._webEventService.execute(new OnAngebotPositionenSortierenEvent({\n          IdAngebot: this.form.models.data.$m_Angebot.Id,\n          Typ: typ\n        }), true);\n\n        grid.instance.refresh();\n      };\n\n      const contextMenu = new ContextMenu();\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelnr\"),\n        execute: () => {\n          sort(0);\n        }\n      }, {\n        text: this._localizationService.translateOnce(\"erp.sortieren-nach-artikelbezeichnung\"),\n        execute: () => {\n          sort(1);\n        }\n      });\n\n      contextMenu.show(e.event.target);\n    }\n  };\n  angebotKopieErstellenCommand: ICommandData = {\n    id: \"angebotKopieErstellen\",\n    idCategory: \"split\",\n    icon: \"plus-circle\",\n    title: \"angebot.angebot_erstellen\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave && models.data.$m_Angebot.Id > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnAngebotspositionenInNeuesAngebotUebernehmenEvent({\n        IdAngebot: this.form.models.data.$m_Angebot.Id,\n        IdAngebotPosList: selectedKeys\n      });\n\n      const webEventResult: OnAngebotspositionenInNeuesAngebotUebernehmen = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdAngebot) {\n        return;\n      }\n\n      this._locationService.goTo({\n        url: `ERP/Verkauf/Angebot/${webEventResult.IdAngebotKopie}`,\n        clearStack: false\n      });\n\n      this.form.models.reloadAll();\n    }\n  };\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Angebot.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n      const angebotPosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (angebotPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"angebot.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const angebotssposition of angebotPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          angebotssposition.TypeName,\n          angebotssposition.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const angebotssposition of angebotPosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: angebotssposition.Id,\n          CustomData: { \"PosNrUeberschreiben\": true }\n        }),\n          true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Angebot.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_angebotspositionGrid\"];\n      const angebotPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (angebotPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"angebot.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (angebotPosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"angebot.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const angebotsposition of angebotPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          angebotsposition.TypeName,\n          angebotsposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = angebotPosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdAngebotspositionListEvent({\n        IdAngebotspositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this._infobarZuletztArtikelAddSubscription = this._eventAggregator.subscribe(\"infobar:zuletzt-verkaufte-artikel:addArtikel\", (e) => {\n      if (this._popupInfoService.isPopupOpen()) {\n        return;\n      }\n      if (!this.form.isCurrentForm) {\n        return;\n      }\n\n      this.addLieferscheinposition(e);\n    });\n\n    form.focusFirstEnabledEditor = () => {\n      const kunde = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_kunde'] .dx-searchbox input\");\n      if (!kunde) {\n        return;\n      }\n\n      kunde.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Angebot\",\n      idArtPropertyName: \"IdAngebotsart\",\n      idVorgEntitaetPropertyName: \"IdKunde\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Angebot\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"angebotspositionEditPopup\", \"angebotsgruppeEditPopup\"]\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"angebotspositionEditPopup\") {\n        form[\"r_angebotsgruppeGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"angebotsgruppeEditPopup\") {\n        form[\"r_angebotspositionGrid\"].instance.refresh();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Angebot\") {\n        return;\n      }\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Angebot);\n      return Promise.resolve();\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_AngebotspositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Angebot\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Angebot\"];\n          if (model) {\n            model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Angebot\",\n                bindTo: \"IdLieferfiliale\"\n              },\n              value: model.IdLieferfiliale\n            });\n          }\n        }\n\n        if (args.binding.bindTo === \"IdLieferfiliale\") {\n          const model = form.models.data[\"$m_Angebot\"];\n          if (model) {\n            model.IdLieferlager = await this._lagerService.getIdLagerVorbelegung(args.value);\n\n            const idWaehrung = await this._filialeService.getWaehrungIdOfFiliale(args.value);\n            if (idWaehrung != null) {\n              model.IdWaehrung = idWaehrung;\n            } else {\n              model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Angebot.IdFirma);\n            }\n          }\n        }\n\n        if (args.binding.bindTo === \"IdAngebotsart\") {\n          const data = this.form.models.data.$m_Angebot;\n          if (!data) {\n            return;\n          }\n\n          data.GueltigBis = await this._angebotService.getGueltigBis(\n            data.IdAngebotsart,\n            data.GueltigBis);\n        }\n      }\n    });\n  }\n  unbind() {\n    if (this._infobarZuletztArtikelAddSubscription) {\n      this._infobarZuletztArtikelAddSubscription.dispose();\n      this._infobarZuletztArtikelAddSubscription = null;\n    }\n  }\n\n  async addLieferscheinposition(item) {\n    const validationResult = await this.form.saveIfDirty();\n    if (!validationResult.isValid) {\n      return;\n    }\n\n    let args = new OnAngebotAddLieferscheinpositionEvent({\n      IdAngebot: this.form.models.data.$m_Angebot.Id,\n      IdLieferscheinposition: item.idLieferscheinposition\n    });\n\n    args = await this._webEventService.execute(args, true);\n    item.isHandled = true;\n\n    this.form.models.reloadAll();\n  }\n\n  async onKundeChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    const onEvalLieferRechnungsortEvent = new OnEvalLieferRechnungsortEvent({ IdKunde: e.detail.value });\n    const onEvalLieferRechnungsortData: OnEvalLieferRechnungsort = await this._webEventService.execute(onEvalLieferRechnungsortEvent);\n\n    this.form[\"r_lieferort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdLieferort);\n    this.form[\"r_rechnungsort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdRechnungsort);\n\n    if (onEvalLieferRechnungsortData.HasMoreThanOneLieferort) {\n      this._geschaeftspartnerSearchService.show((r) => {\n        this.form[\"r_lieferort\"].setGeschaeftpartnerById(r);\n      }, () => { }, {\n        caption: \"erp.select_lieferort\",\n        filters: [{\n          webApiCustomKey: \"IdLieferortFuer\",\n          webApiCustomValue: e.detail.value\n        }]\n      });\n    }\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n  onKundeAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    const idKunde = this.form.models.data.$m_Angebot.IdKunde;\n    if (idKunde == this.form.models.data.$m_Angebot.IdLieferort) {\n      if (this.form.models.data.$m_Angebot.IdLieferortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Angebot.IdLieferortAnsprechperson = idPerson;\n      }\n\n      this.onLieferortAnsprechpersonChanged({\n        detail: {\n          value: idPerson\n        }\n      });\n    }\n\n    if (idKunde == this.form.models.data.$m_Angebot.IdRechnungsort) {\n      if (this.form.models.data.$m_Angebot.IdRechnungsortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Angebot.IdRechnungsortAnsprechperson = idPerson;\n      }\n    }\n  }\n  async onLieferortAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    this.form.models.data.$m_Angebot.LieferortTelefon = await this._personService.getPersonTelefon(idPerson);\n  }\n  onKundeAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onLieferortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onRechnungsortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Angebot.CanSave && this.form.models.data.$m_Angebot.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Angebot.IdKunde);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Angebot.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Angebot\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import { LocationService } from '../../../base/services/location-service';\nimport { FormBase } from '../../../forms/export';\n\nexport default class Nav {\n  constructor(\n    private _element: Element,\n    private _locationService: LocationService\n  ) {}\n\n  goTo(route: string) {\n    let vm = null;\n    let el = this._element;\n    \n    while (el) {\n      const au = el[\"au\"];\n      if (au && au.controller && au.controller.viewModel) {\n        const currentVM = au.controller.viewModel;\n        if (currentVM && currentVM instanceof FormBase) {\n          vm = currentVM;\n          break;\n        }\n      }\n\n      el = el.parentElement;\n    }\n\n    this._locationService.goTo({\n      currentViewModel: vm,\n      clearStack: false,\n      url: route\n    });\n  }\n}","import {\n  autoinject,\n  BindingEngine,\n  PropertyObserver,\n  CollectionObserver,\n  Disposable\n} from \"aurelia-framework\";\n\n@autoinject\nexport class DeepObserverService {\n  constructor(private bindingEngine: BindingEngine) {\n  }\n\n  observe(target: any, callback: {(): void}): {(): void} {\n    const subscription = new Subscription();\n\n    this.__observe(subscription, target, callback);\n\n    return () => {\n      subscription.dispose();\n    }\n  }\n\n  private __observe(subscription: Subscription, target: any, callback: {(): void}): void {\n    if (target == null) {\n      return;\n    } else if (target instanceof Date) {\n      return;\n    } else if (Array.isArray(target)) {\n      this.__observeArray(subscription, target, callback);\n    } else if (typeof target === \"object\") {\n      this.__observeObject(subscription, target, callback);\n    }\n  }\n  private __observeArray(subscription: Subscription, target: any, callback: {(): void}): void {\n    const newSubscription = subscription.createChildSubscription(target);\n\n    const observer = this.bindingEngine.collectionObserver(\n      target\n    ).subscribe((e) => {\n      for (const change of e) {\n        if (change.addedCount > 0) {\n          for (let i = change.index; i < change.addedCount; i++) {\n            this.__observe(newSubscription, target[i], callback);\n          }\n        }\n        if (change.removed.length > 0) {\n          for (const item of change.removed) {\n            newSubscription.remove(item);\n          }\n        }\n      }\n\n      callback();\n    });\n\n    for (const item of target) {\n      this.__observe(newSubscription, item, callback);\n    }\n  }\n  private __observeObject(subscription: Subscription, target: any, callback: {(): void}): void {\n    const newSubscription = subscription.createChildSubscription(target);\n\n    for (const property in target) {\n      if (target.hasOwnProperty(property)) {\n        const observer = this.bindingEngine.propertyObserver(\n          target,\n          property\n        ).subscribe((newValue, oldValue) => {\n          newSubscription.remove(oldValue);\n          this.__observe(newSubscription, newValue, callback);\n\n          callback();\n        });\n\n        newSubscription.addObserver(observer);\n\n        this.__observe(newSubscription, target[property], callback);\n      }\n    }\n  }\n}\n\nclass Subscription {\n  constructor() {\n  }\n\n  observers: Disposable[] = [];\n  children = new Map();\n\n  createChildSubscription(child: any) {\n    const newSubscription = new Subscription();\n    this.children.set(child, newSubscription);\n\n    return newSubscription;\n  }\n  addObserver(observer: Disposable) {\n    this.observers.push(observer);\n  }\n  remove(child: any) {\n    const subscription = this.children.get(child);\n\n    if (!subscription) {\n      return;\n    }\n\n    subscription.dispose();\n    this.children.delete(child);\n  }\n  dispose() {\n    this.observers.forEach(item => {\n      item.dispose();\n    });\n    this.children.forEach(item => {\n      item.dispose();\n    })\n\n    this.observers = [];\n  }\n}\n","export enum DynFeldLogikTyp {\n  VariablerSetartikel = 42,\n  FirmaUmstellungMehrereFirmen = 44,\n  Intercompany = 46\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnDeleteIdEingangsrechnungspositionListEvent, OnEingangsrechnungAbschliessenEvent, OnEingangsrechnungBezahltAendernEvent, OnEvalSteuertyp, OnEvalSteuertypEvent, OnImportProdFertigwareInEingangsrechnung, OnImportProdFertigwareInEingangsrechnungEvent, OnImportWarenuebernahmepositionenInEingangsrechnung, OnImportWarenuebernahmepositionenInEingangsrechnungEvent, OnKopierenRequest, OnKopierenRequestEvent, OnWarenuebernahmeNichtVerrechnenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { ContextMenu, FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { DynFelderDataService, DynFelderService, FirmaService, GeschaeftspartnerService, ValidationExService } from \"../../../services/export\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class EingangsrechnungEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n  private _selectedWarenuebernahmepositionen = false;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _dynFelderService: DynFelderService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n  //für Binding ZahlungEditForm benötigt\n  id0: number = 0;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_EingangsrechnungEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_EingangsrechnungEditUtils.isBelegExportMandantAktiv && models.data.$m_Eingangsrechnung.Id > 0 && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Eingangsrechnung.Id;\n      this._belegExportService.export(BelegImportTyp.Eingangsrechnung, [id]);\n    }\n  };\n  showImportWarenuebernahmepositionenPopupCommand: ICommandData = {\n    id: \"showImportWarenubernahmepositionenPopup\",\n    icon: \"plus\",\n    idCategory: \"eingangsrechnung\",\n    title: \"eingangsrechnung.warenuebernahmepos_uebernehmen\",\n    sortIndex: 10,\n    isEnabledExpression: \"models.data.$m_Eingangsrechnung.CanSave && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      this._selectedWarenuebernahmepositionen = this.form.models.data.$m_Eingangsrechnung.LieferantLieferscheinNr\n        && this.form.models.data.$m_WarenuebernahmepositionFilter.FilterLS\n        ? true\n        : false;\n\n      const warenuebernahmepositionGrid: IdxDataGridComponent = this.form[\"r_warenuebernahmepositionGrid\"];\n      if (warenuebernahmepositionGrid && warenuebernahmepositionGrid.instance) {\n        await this._asyncService.convertToPromise(warenuebernahmepositionGrid.instance.deselectAll());\n        warenuebernahmepositionGrid.instance.refresh();\n      }\n\n      this.form[\"r_warenuebernahmepositionEditPopup\"].instance.show();\n    }\n  };\n  importWarenubernahmepositionenCommand: ICommandData = {\n    id: \"importWarenubernahmepositionen\",\n    title: \"eingangsrechnung.mark_pos_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_warenuebernahmepositionGrid\"];\n\n      const webEvent = new OnImportWarenuebernahmepositionenInEingangsrechnungEvent({\n        IdEingangsrechnung: this.form.models.data.$m_Eingangsrechnung.Id,\n        IdWarenuebernahmepositionList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportWarenuebernahmepositionenInEingangsrechnung = await this._webEventService.execute(webEvent, true);\n      this.form[\"r_warenuebernahmepositionEditPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  };\n  erledigenWarenubernahmepositionenCommand: ICommandData = {\n    id: \"erledigenWarenubernahmepositionen\",\n    title: \"eingangsrechnung.mark_pos_erledigen\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_warenuebernahmepositionGrid\"];\n\n      const webEvent = new OnWarenuebernahmeNichtVerrechnenEvent({\n        IdWarenuebernahmepositionList: grid.instance.getSelectedRowKeys()\n      });\n\n      await this._webEventService.execute(webEvent, true);\n      grid.instance.refresh();\n    }\n  };\n  doBezahltAendernCommand: ICommandData = {\n    id: \"doBezahltAendern\",\n    idCategory: \"eingangsrechnung\",\n    icon: \"flag\",\n    title: \"eingangsrechnung.bezahlt_aendern\",\n    sortIndex: 1000,\n    isVisibleExpression: \"models.data.$m_Eingangsrechnung.Status.Typ === 1\",\n    execute: async (e) => {\n      const changeStatus = async (typ) => {\n        const webEvent = new OnEingangsrechnungBezahltAendernEvent({\n          IdEingangsrechnung: this.form.models.data.$m_Eingangsrechnung.Id,\n          Typ: typ\n        });\n\n        await this._webEventService.execute(webEvent, true);\n        this.form.models.reloadAll();\n      };\n\n      const contextMenu = new ContextMenu();\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"eingangsrechnung.bezahlt_offen\"),\n        execute: () => {\n          changeStatus(0);\n        }\n      });\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"eingangsrechnung.bezahlt_bezahlt\"),\n        execute: () => {\n          changeStatus(1);\n        }\n      });\n\n      if (this.form.models.data.$m_Eingangsrechnung.BezahltTyp == 0 && this.form.models.data.$m_Eingangsrechnung.Status && this.form.models.data.$m_Eingangsrechnung.Status.Typ == 1) {\n        contextMenu.items.push({\n          beginGroup: true,\n          text: this._localizationService.translateOnce(\"eingangsrechnung.zahlungsausgang_erfassen\"),\n          execute: async () => {\n            const saveResult = await this.form.saveIfDirty();\n            if (!saveResult.isValid) {\n              return;\n            }\n\n            this.form.editPopups.show(\"zahlungsausgangEditPopup\", null);\n          }\n        });\n      }\n\n      contextMenu.show(e.event && e.event.target ? e.event.target : null);\n    }\n  };\n\n  showImportProduktionPopupCommand: ICommandData = {\n    id: \"showImportProduktionPopupCommand\",\n    icon: \"plus\",\n    idCategory: \"eingangsrechnung\",\n    title: \"eingangsrechnung.produktion_uebernehmen\",\n    sortIndex: 20,\n    isEnabledExpression: \"models.data.$m_Eingangsrechnung.CanSave && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const prodFertigwareGrid: IdxDataGridComponent = this.form[\"r_prodFertigwareGrid\"];\n      if (prodFertigwareGrid && prodFertigwareGrid.instance) {\n        await this._asyncService.convertToPromise(prodFertigwareGrid.instance.deselectAll());\n        prodFertigwareGrid.instance.refresh();\n      }\n\n      this.form[\"r_prodFertigwareEditPopup\"].instance.show();\n    }\n  };\n  importProduktionCommand: ICommandData = {\n    id: \"importProduktionCommand\",\n    title: \"eingangsrechnung.mark_pos_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_prodFertigwareGrid\"];\n\n      const webEvent = new OnImportProdFertigwareInEingangsrechnungEvent({\n        IdEingangsrechnung: this.form.models.data.$m_Eingangsrechnung.Id,\n        IdProdFertigwareList: grid.instance.getSelectedRowKeys()\n      });\n\n      const webEventResult: OnImportProdFertigwareInEingangsrechnung = await this._webEventService.execute(webEvent, true);\n      this.form[\"r_prodFertigwareEditPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  };\n\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"eingangsrechnung\",\n    title: \"eingangsrechnung.abschliessen\",\n    icon: \"check\",\n    sortIndex: 999,\n    isEnabledExpression: \"models.data.$m_Eingangsrechnung.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Eingangsrechnung.TypeName,\n        this.form.models.data.$m_Eingangsrechnung.Id,\n        \"ABSCHLIESSEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnEingangsrechnungAbschliessenEvent({\n        IdEingangsrechnung: this.form.models.data[\"$m_Eingangsrechnung\"].Id\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Eingangsrechnung.CanSave && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_eingangsrechnungspositionGrid\"];\n      const eingangsrechnungPosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (eingangsrechnungPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"eingangsrechnung.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const eingangsrechnungsposition of eingangsrechnungPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          eingangsrechnungsposition.TypeName,\n          eingangsrechnungsposition.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const eingangsrechnungsposition of eingangsrechnungPosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: eingangsrechnungsposition.Id,\n          CustomData: null\n        }),\n          true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Eingangsrechnung.CanDelete && !models.data.$m_Eingangsrechnung.IsIntercompany\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_eingangsrechnungspositionGrid\"];\n      const eingangsrechnungPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (eingangsrechnungPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"eingangsrechnung.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (eingangsrechnungPosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"eingangsrechnung.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const eingangsrechnungsposition of eingangsrechnungPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          eingangsrechnungsposition.TypeName,\n          eingangsrechnungsposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = eingangsrechnungPosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdEingangsrechnungspositionListEvent({\n        IdEingangsrechnungspositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.models.data.$m_WarenuebernahmepositionFilter = {\n      FilterLS: true\n    };\n\n    form.focusFirstEnabledEditor = () => {\n      const lieferant = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_lieferant'] .dx-searchbox input\");\n      if (!lieferant) {\n        return;\n      }\n\n      lieferant.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Eingangsrechnung\",\n      idVorgEntitaetPropertyName: \"IdLieferant\"\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"zahlungsausgangEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Eingangsrechnung\") {\n        return;\n      }\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Eingangsrechnung);\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Eingangsrechnung\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Eingangsrechnung\"];\n          if (model) {\n            model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(args.value);\n          }\n        }\n      }\n    });\n\n    this.registerWarenuebernahmeSelectAll();\n  }\n\n  async onLieferantChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n    await this.setSteuertyp();\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n  onDifferenzValueChanged(e): void {\n    const input = <HTMLInputElement>e.element.querySelector(\"input:not([type ='hidden'])\");\n    const farbe = e.value != void (0)\n      ? Math.abs(e.value) > 0.04\n        ? \"#C1392D\"\n        : \"#2DCC70\"\n      : undefined;\n\n    if (farbe) {\n      input.style.backgroundColor = farbe;\n      input.style.color = \"white\";\n    }\n  }\n\n  private async setSteuertyp() {\n    const data = this.form.models.data.$m_Eingangsrechnung;\n    if (!data.IdFirma || !data.IdLieferant) {\n      return;\n    }\n\n    const webEvent = new OnEvalSteuertypEvent({\n      IdFirma: data.IdFirma,\n      IdGeschaeftspartner: data.IdLieferant\n    });\n\n    const webEventResult: OnEvalSteuertyp = await this._webEventService.execute(webEvent, true);\n    if (!webEventResult.SteuerTyp) {\n      return;\n    }\n\n    data.SteuerTyp = webEventResult.SteuerTyp;\n  }\n  private registerWarenuebernahmeSelectAll() {\n    this.form.callOnBind(() => {\n      const gridOptions: DevExpress.ui.dxDataGridOptions = this.form[\"r_warenuebernahmepositionGridOptions\"];\n      const onContentReady = gridOptions.onContentReady;\n\n      gridOptions.onContentReady = (e) => {\n        if (onContentReady) {\n          onContentReady(e);\n        }\n\n        if (!this._selectedWarenuebernahmepositionen) {\n          return;\n        }\n\n        this._selectedWarenuebernahmepositionen = false;\n        (<DevExpress.ui.dxDataGrid>e.component).selectAll();\n      };\n    });\n  }\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Eingangsrechnung.CanSave && this.form.models.data.$m_Eingangsrechnung.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Eingangsrechnung.IdLieferant);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Eingangsrechnung.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Eingangsrechnung\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import { autoinject, transient } from 'aurelia-framework';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\nimport { FormBase } from '../../../../framework/forms/classes/form-base';\nimport { ICommandData } from '../../../../framework/forms/interfaces/command-data';\nimport { IdxDataGridComponent } from '../../../interfaces/export';\nimport { EximService } from '../../../services/exim-service';\n\n@autoinject\n@transient()\nexport class KonditionListUtils {\n  constructor(\n    private asyncService: AsyncService,\n    private eximService: EximService) { }\n\n  form: FormBase;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    title: \"erp.export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_konditionGrid\"];\n      await this.asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this.asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this.eximService.export(\"KonditionExim\", keys);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n}\n","import { autoinject, Scope } from \"aurelia-framework\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { FormUtilsService } from './form-utils-service';\n\n@autoinject\nexport class FormInfoService {\n  constructor(\n    private eventAggregator: EventAggregator,\n    private formUtilsService: FormUtilsService\n  ) {\n    this.registerMainFormModuleId();\n  }\n\n  getMainFormModuleId(scope: Scope, treatEditPopupAsMainForm?: boolean): string {\n    const mainForm = this.formUtilsService.getMainForm(scope, treatEditPopupAsMainForm);\n    if (!mainForm) {\n      return null;\n    }\n\n    return mainForm.moduleId;\n  }\n\n  private registerMainFormModuleId() {\n    this.eventAggregator.subscribe(\"form:get-main-form-module-id\", (e) => {\n      if (!e) {\n        return;\n      }\n      if (!e.scope) {\n        return;\n      }\n\n      e.moduleId = this.getMainFormModuleId(e.scope, e.treatEditPopupAsMainForm);\n    });\n  }\n}","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  ArtikelSearchResult\n} from \"../elements/artikel-search-result/artikel-search-result\";\nimport {\n  ISearchOptions\n} from \"../interfaces/export\";\n\n@autoinject\nexport class ArtikelSearchService {\n  constructor() { }\n\n  artikelSearchResult: ArtikelSearchResult\n  \n  show(callbackSuccess: { (idArtikel): void }, callbackCancel: { (): void }, options?: ISearchOptions) {\n    this.artikelSearchResult.showPopup(callbackSuccess, callbackCancel, options)\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class AlertService {\n  constructor(\n    private eventAggregator: EventAggregator\n  ) {\n    this.eventAggregator.subscribe(\"notify\", (e) => {\n      DevExpress.ui.notify(e.message, e.type || \"success\", e.displayTime || 3000);\n    });\n    this.eventAggregator.subscribe(\"alert\", (e) => {\n      DevExpress.ui.dialog.alert(e.message, e.title || \"Information\");\n    });\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport * as moment from \"moment\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent } from \"../../../interfaces/dx-components\";\nimport { AsyncService } from \"./../../../../framework/base/services/async-service\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class EingangsrechnungListUtils {\n  constructor(\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService\n  ) { }\n\n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_EingangsrechnungListUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_EingangsrechnungListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_eingangsrechnungGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Eingangsrechnung, keys);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Eingangsrechnung);\n      return Promise.resolve();\n    });\n  }\n\n  onZahlungFaelligCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.BezahltTyp == void (0)) {\n      return;\n    }\n    if (e.data.BezahltTyp != 0) {\n      return;\n    }\n    const val: Date = e.value;\n    if (val == void (0)) {\n      return;\n    }\n\n    const diff = moment(val)\n      .diff(new Date(), \"days\");\n\n    const cell: HTMLTableCellElement = e.cellElement;\n    cell.style.color = \"white\";\n    if (val.getTime() <= new Date().getTime()) {\n      cell.style.backgroundColor = \"#C1392D\";\n    } else if (diff <= 5) {\n      cell.style.backgroundColor = \"#E67E22\";\n    } else {\n      cell.style.backgroundColor = \"#2DCC70\";\n    }\n  }\n}\n","export * from \"./classes/export\";\nexport * from \"./event-args/export\";\nexport * from \"./interfaces/export\";\nexport * from \"./services/export\";","import { BackgroundImageValueConverter } from './../../../../framework/base/value-converters/background-image/background-image-value-converter';\nimport { LocalizationService } from './../../../../framework/base/services/localization-service';\nimport { WebEventService } from './../../../../framework/base/services/web-event-service';\nimport { IdxPopupComponent, IdxDateBoxComponent, IdxSelectBoxComponent } from './../../../interfaces/dx-components';\nimport { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport { FormBase } from './../../../../framework/forms/classes/form-base';\nimport { transient } from 'aurelia-dependency-injection';\nimport { autoinject } from 'aurelia-framework';\nimport { OnProvisionBerechnenEvent, OnProvisionBerechnen } from '../../../../framework-data/events';\nimport * as moment from \"moment\";\n\n@transient()\n@autoinject\nexport class ProvisionListUtils {\n  constructor(\n    private webEventService: WebEventService,\n    private localizationServive: LocalizationService\n  ) { }\n\n\n  form: FormBase;\n\n  provisionBerechnenCommand: ICommandData = {\n    id: \"provisionBerechnen\",\n    idCategory: \"provision\",\n    icon: \"calculator\",\n    title: \"provision.provision_berechnen\",\n    execute: async () => {\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_firmaSelectBox\"];\n      if (selectBox) {\n        const dataSource = selectBox.instance.getDataSource();\n        dataSource.reload();\n\n        selectBox.setOption({\n          value: null\n        });\n      }\n\n      const popup: IdxPopupComponent = this.form[\"r_provisionBerechnenBisPopup\"];\n      popup.instance.show();\n\n      const dateBox: IdxDateBoxComponent = this.form[\"r_fakturenBis\"];\n      dateBox.setOption({\n        value: moment().subtract(1, \"month\").endOf(\"month\").toDate()\n      });\n    }\n  }\n\n  doProvisionBerechnenCommand: ICommandData = {\n    id: \"doProvisionBerechnen\",\n    icon: \"floppy-o\",\n    title: \"base.save\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_provisionBerechnenBisPopup\"];\n      const dateBox: IdxDateBoxComponent = this.form[\"r_fakturenBis\"];\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_firmaSelectBox\"];\n\n      const webEventData: OnProvisionBerechnen = {\n        IdFirma: selectBox.instance.option(\"value\"),\n        Bis: dateBox.instance.option(\"value\")\n      };\n\n      if (!webEventData.IdFirma) {\n        DevExpress.ui.notify(this.localizationServive.translateOnce(\"provision.firma_auswaehlen\"), \"ERROR\", 3000);\n        return;\n      }\n      if (!webEventData.Bis) {\n        DevExpress.ui.notify(this.localizationServive.translateOnce(\"provision.bis_auswaehlen\"), \"ERROR\", 3000);\n        return;\n      }\n\n      const webEvent = new OnProvisionBerechnenEvent(webEventData);\n\n      const webEventResult: OnProvisionBerechnen = await this.webEventService.execute(webEvent, true);\n\n      this.form.models.reloadAll();\n\n      DevExpress.ui.notify(this.localizationServive.translateOnce(\"provision.provisionen_werden_berechnet\"), \"SUCCESS\", 3000);\n      popup.instance.hide();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\n@autoinject\nexport class LagerService {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  async getIdLagerVorbelegung(idFiliale: number): Promise<number> {\n    const getOptions = {\n      columns: [\"Id\"],\n      where: [[\"IsVorbelegung\", true], [\"IdFiliale\", idFiliale]]\n    };\n\n    const r = await this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Stammdaten/Lager\"),\n      getOptions\n    });\n    \n    if (r && r.length > 0) {\n      return r[0].Id;\n    } else {\n      return null;\n    }\n  }\n}","export {CommandService} from \"./command-service\";\nexport {DefaultCommandsService} from \"./default-commands-service\";\nexport {EnumItemService} from \"./enum-item-service\";\nexport {GlobalCommandService} from \"./global-command-service\";\nexport {PopupInfoService} from \"./popup-info-service\";\nexport {FormEventService} from \"./form-event-service\";\nexport {ModelEventService} from \"./model-event-service\";\nexport {ToolbarService} from \"./toolbar-service\";\nexport {ValidationService} from \"./validation-service\";\nexport {SelectItemService} from \"./select-item-service\";\nexport {HistoryService} from \"./history-service\";\nexport {RouterService} from \"./router-service\";\nexport {RoutesCreatorService} from \"./routes-creator-service\";\nexport {ModelUtilsService} from \"./model-utils-service\";\nexport {SettingService} from \"./setting-service\";\nexport {FormUtilsService} from \"./form-utils-service\";\nexport {LayoutService} from \"./layout-service\";\nexport {DialogConfirmService} from \"./dialog-confirm-service\";","import { autoinject } from \"../../framework/forms/form-export\";\nimport { RestService } from \"./../../framework/base/services/rest-service\";\n\n@autoinject\nexport class MailImportService {\n\n  constructor(\n    private _restService: RestService) { }\n\n  saveDokumentartToMailImportItemAnhang(idMailImportItemAnhang, idDokumentenart): Promise<any> {\n    return this._restService.post({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/MailImportItemAnhang\"),\n      data: {\n        Id: idMailImportItemAnhang,\n        IdDokumentenart: idDokumentenart\n      }\n    });\n  }\n}\n","import { ExcelExportService, IExcelExportDataGridOptions, IExcelExportPivotGridOptions } from \"../../../forms/services/excel-export-service\";\n\nexport default class Excel {\n  constructor(\n    private _excelExportService: ExcelExportService\n  ) {}\n\n  exportDataGrid(options: IExcelExportDataGridOptions) {\n    this._excelExportService.exportDataGrid(options);\n  }\n  exportPivotGrid(options: IExcelExportPivotGridOptions) {\n    this._excelExportService.exportPivotGrid(options);\n  }\n}","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport {\n  BaseWidgetCreatorService\n} from \"./base-widget-creator-service\";\nimport {\n  GlobalizationService,\n  LocalizationService\n} from \"../../base/services/export\";\nimport {\n  SelectionModeEnum\n} from \"../enums/selection-mode-enum\";\nimport {\n  EnumItemService\n} from \"../services/export\";\nimport * as WidgetOptions from \"../widget-options/export\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { IDataSourceCustomizationOptions } from '../../base/export';\nimport { ListType } from '../enums/list-type-enum';\n\n@autoinject\nexport class DataGridWidgetCreatorService {\n  constructor(\n    private baseWidgetCreator: BaseWidgetCreatorService,\n    private globalization: GlobalizationService,\n    private localization: LocalizationService,\n    private enumItem: EnumItemService,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  addDataGrid(form: FormBase, options: WidgetOptions.IDataGridOptions) {\n    const dataGridOptions: DevExpress.ui.dxDataGridOptions = this.baseWidgetCreator.createWidgetOptions(form, options);\n\n    let registerOnCellPrepared = false;\n    if (options.columns) {\n      const totalItems = [];\n\n      dataGridOptions.columns = options.columns.map(col => {\n        const column: DevExpress.ui.dxDataGridColumn = {};\n\n        if (col.caption) {\n          column.caption = this.localization.translateOnce(col.caption, form.scopeContainer);\n        }\n        if (col.bindTo) {\n          column.dataField = col.bindTo;\n        }\n        if (col.dataType) {\n          column.dataType = <any>col.dataType;\n        }\n        if (col.sortIndex != void (0) && col.sortOrder != void (0)) {\n          column.sortIndex = col.sortIndex;\n          column.sortOrder = col.sortOrder;\n        }\n        if (col.width) {\n          column.width = col.width;\n        }\n        if (col.minWidth) {\n          column.minWidth = col.minWidth;\n        }\n        if (col.format) {\n          column.format = this.globalization.getFormatterParser(col.format);\n        }\n        if (col.enumTypeName) {\n          column.dataType = \"string\";\n          column.customizeText = (cellInfo) => {\n            if (cellInfo.value == void (0)) {\n              return \"\";\n            }\n\n            return this.enumItem.getDisplayText(col.enumTypeName, cellInfo.value.toString());\n          };\n        }\n        if (col.onCustomizeText) {\n          column.customizeText = (e: any) => {    \n            return form.binding.execute(form.scope, col.onCustomizeText, e);\n          };\n        }\n        if (col.onCalculateFilterExpression) {\n          column.calculateFilterExpression = (value: any, operator: any, target: any) => {    \n            return form.binding.execute(form.scope, col.onCalculateFilterExpression, {\n              value: value,\n              operator: operator,\n              target: target\n            });\n          };\n        }\n\n        if (col.showTotalAggSum) {\n          totalItems.push({\n            column: col.bindTo,\n            summaryType: \"sum\",\n            customizeText: (e) => {\n              if (e.value == void(0)) {\n                return null;\n              }\n\n              return this.globalization.format(e.value, col.format);\n            }\n          });\n        }\n\n        if (col.onCellPrepared) {\n          registerOnCellPrepared = true;\n        }\n\n        return column;\n      });\n\n      if (totalItems.length > 0) {\n        dataGridOptions.summary = {\n          totalItems: totalItems\n        };\n      }\n    }\n\n    if (options.dataModel && !options.binding.bindTo) {\n      const customizationOptions: IDataSourceCustomizationOptions = {};\n\n      this.eventAggregator.publish(\"data-grid:customize-data-source\", {\n        form: form,\n        options: options,\n        dataGridOptions: dataGridOptions,\n        customizationOptions: customizationOptions\n      });\n\n      const dataSource = this.baseWidgetCreator.createListDataSource(form, options, dataGridOptions, customizationOptions);\n      dataGridOptions.dataSource = dataSource;\n\n      dataGridOptions.allowColumnResizing = true;\n      dataGridOptions.columnResizingMode = \"widget\";\n\n      dataGridOptions.remoteOperations = {\n        filtering: true,\n        paging: true,\n        sorting: true,\n        summary: true\n      };\n\n      if (options.isMainList) {\n        form.onReactivated.register(e => {\n          dataSource.reload();\n          return Promise.resolve();\n        });\n      }\n    }\n    else if (options.binding.bindTo) {\n      dataGridOptions.bindingOptions[\"dataSource\"] = options.binding.bindToFQ;\n    }\n\n    //MainLists erhalten immer eine Filter-Zeile, \n    //da hier die Suche immer sinnvoll ist\n    if (options.showFilterRow || (options.showFilterRow == void(0) && options.isMainList)) {\n      dataGridOptions.filterRow = {\n        visible: true\n      };\n      dataGridOptions.headerFilter = {\n        visible: true,\n        allowSearch: true\n      };\n    }\n\n    this.baseWidgetCreator.setListClickActions(form, options);\n    const customOptions = this.baseWidgetCreator.getCustomOptions(form, options);\n    const isSelectionModeSingle = (options.selectionMode || SelectionModeEnum.None) == SelectionModeEnum.Single;\n    const contentReadyActions: {(e): void}[] = [];\n\n    if (customOptions.hasClickActions > 0) {\n      dataGridOptions.hoverStateEnabled = true;\n\n      dataGridOptions.onRowClick = (e) => {\n        customOptions.clickActions.forEach(item => {\n          item(e, dataGridOptions.dataSource);\n        });\n\n        if (!isSelectionModeSingle) {\n          customOptions.openClickActions.forEach(item => {\n            item(e, dataGridOptions.dataSource);\n          });\n        }\n      };\n    }\n\n    if (options.selectionMode) {\n      dataGridOptions.selection = {\n        mode: <any>this.getSelectionMode(options.selectionMode)\n      };\n\n      if (options.selectionMode == SelectionModeEnum.Multiple) {\n        dataGridOptions.selection.showCheckBoxesMode = \"always\";\n      }\n    }\n\n    if (options.showPagerInfo) {\n      dataGridOptions.pager = {\n        visible: true,\n        showInfo: true\n      }\n    }\n\n    if (options.pageSize) {\n      dataGridOptions.paging = {\n        pageSize: options.pageSize,\n        enabled: true\n      }\n    }\n\n    dataGridOptions.sorting = {\n      mode: \"multiple\"\n    };\n\n    if (options.height) {\n      dataGridOptions.height = options.height;\n    }\n\n    if (options.editDataContext) {\n      contentReadyActions.push(e => {\n        const model = form.models.getInfo(options.editDataContext);\n\n        if (!form.models.data[model.id]) {\n          return;\n        }\n        if (!form.models.data[model.id][model.keyProperty]) {\n          return;\n        }\n\n        const key = form.models.data[model.id][model.keyProperty];\n\n        const grid: DevExpress.ui.dxDataGrid = e.component;\n        const dataSource = grid.getDataSource();\n\n        const exists = dataSource\n          .items()\n          .some(c => c[model.keyProperty] == key);\n\n        if (exists) {\n          return;\n        }\n\n        form.models.data[model.id] = null;\n      })\n    }\n\n    if (registerOnCellPrepared) {      \n      dataGridOptions.onCellPrepared = (e: any) => {\n        const col = options.columns.find((c) => {\n          return c.bindTo == e.column.dataField\n            && !!c.onCellPrepared;\n        });\n\n        if (!col) {\n          return;\n        }\n\n        form.binding.execute(form.scope, col.onCellPrepared, e);\n      };\n    }\n\n    if (contentReadyActions.length > 0) {\n      dataGridOptions.onContentReady = (e) => {\n        contentReadyActions.forEach(c => c(e));\n      }\n    }\n\n    this.baseWidgetCreator.checkListToolbar(form, options, isSelectionModeSingle, ListType.DataGrid);\n    this.baseWidgetCreator.checkListRelationEdit(form, options);\n  }\n\n  private getSelectionMode(selectionMode: SelectionModeEnum): string {\n    switch (selectionMode) {\n      case SelectionModeEnum.Multiple:\n        return \"multiple\";\n      case SelectionModeEnum.Single:\n        return \"single\";\n      default:\n        return \"none\";\n    }\n  }\n} \n","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class MarkdownService {\n  private _regexBold1 = /\\*\\*(.*?\\S)\\*\\*/gm;\n  private _regexBold2 = /\\_\\_(.*?\\S)\\_\\_/gm;\n  private _regexLink = /\\[(.*?\\S)\\]\\((.+?\\S)\\)/gm;\n\n  constructor() {}\n\n  replace(text: string): string {\n    if (!text) {\n      return text;\n    }\n\n    return text\n      .replace(this._regexBold1, \"<b>$1</b>\")\n      .replace(this._regexBold2, \"<b>$1</b>\")\n      .replace(this._regexLink, \"<a href='$2' target='_blank'>$1</a>\");\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class ErrorService {\n  constructor(\n    private eventAggregator: EventAggregator) { }\n\n  showError(error: any) {\n    let message = error;\n\n    if (error instanceof Error || error.message) {\n      message = error.message;\n    }\n\n    if (message == \"Failed to fetch\") {\n      return;\n    }\n\n    this.eventAggregator.publish(\"alert\", {\n      message: message,\n      title: \"Fehler\"\n    });\n  }\n  logError(error: any) {\n\n  }\n  showAndLogError(error: any) {\n    if (!error) {\n      return;\n    }\n    if (error.isHandled === true) {\n      return;\n    }\n\n    this.logError(error);\n    this.showError(error);\n  }\n}\n","export { AuthorizationService } from \"./authorization-service\";\nexport { BindingService } from \"./binding-service\";\nexport { DataSourceService } from \"./data-source-service\";\nexport { DeepObserverService } from \"./deep-observer-service\";\nexport { ErrorService } from \"./error-service\";\nexport { GlobalizationService } from \"./globalization-service\";\nexport { LocalizationService } from \"./localization-service\";\nexport { LocationService } from \"./location-service\";\nexport { JsonService } from \"./json-service\";\nexport { NotificationService } from \"./notification-service\";\nexport { ObjectInfoService } from \"./object-info-service\";\nexport { PermissionService } from \"./permission-service\";\nexport { RestService } from \"./rest-service\";\nexport { ShortcutService } from \"./shortcut-service\";\nexport { StyleService } from \"./style-service\";\nexport { WebEventService } from \"./web-event-service\";\nexport { WindowService } from \"./window-service\";\nexport { FileService } from \"./file-service\";\nexport { ObjectService } from \"./object-service\";\nexport { MarkdownService } from \"./markdown-service\";\nexport { BrowserService } from \"./browser-service\";\nexport { TemplatingExService } from \"./templating-ex-service\";\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnInventurFehlArtZuZaehllisteEvent, OnInventurVerbuchenEvent, OnInventurZaehllisteErstellenEvent } from \"../../../../framework-data/events\";\nimport { WebEventService } from \"../../../../framework/base/export\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { EximService } from \"../../../services/exim-service\";\nimport { ValidationExService } from \"./../../../services/validation-ex-service\";\n\n@autoinject\n@transient()\nexport class InventurEditUtils {\n  constructor(\n    private _webEventService: WebEventService,\n    private _eximService: EximService,\n    private _validationExService: ValidationExService\n  ) { }\n\n  form: FormBase;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"models.data.$m_Inventur.Id > 0\",\n    title: \"erp.export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Inventur.Id;\n      this._eximService.export(\"InventurExim\", [id]);\n    }\n  };\n  doZaehllisteErstellen: ICommandData = {\n    id: \"doZaehllisteErstellen\",\n    idCategory: \"inventur\",\n    title: \"inventur.zaehlliste_erstellen\",\n    icon: \"list\",\n    sortIndex: 10,\n    isEnabledExpression: \"!models.data.$m_Inventur.IsZaehllisteErstellt && models.data.$m_Inventur.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnInventurZaehllisteErstellenEvent({\n        IdInventur: this.form.models.data[\"$m_Inventur\"].Id\n      });\n\n      await this._webEventService.execute(webEvent, true);\n      this.form.models.reloadAll();\n    }\n  };\n  doInventurVerbuchen: ICommandData = {\n    id: \"doInventurVerbuchen\",\n    idCategory: \"inventur\",\n    title: \"inventur.inventur_verbuchen\",\n    icon: \"exchange\",\n    sortIndex: 20,\n    isEnabledExpression: \"models.data.$m_Inventur.CanSave && models.data.$m_Inventur.Id > 0\",\n    execute: async () => {\n      const data: any = this.form.models.data.$m_Inventur;\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Inventur.TypeName,\n        this.form.models.data.$m_Inventur.Id,\n        \"INVENTUR_VERBUCHEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      const webEvent = new OnInventurVerbuchenEvent({\n        IdInventur: data.Id\n      });\n\n      await this._webEventService.execute(webEvent, true);\n      this.form.models.reloadAll();\n    }\n  };\n  doFehlendeArtikelHinz: ICommandData = {\n    id: \"doFehlendeArtikelHinz\",\n    idCategory: \"fehlende_artikel_laden\",\n    icon: \"plus-square\",\n    title: \"inventur.fehlende_artikel_laden\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Inventur.IsZaehllisteErstellt && models.data.$m_Inventur.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnInventurFehlArtZuZaehllisteEvent({\n        IdInventur: this.form.models.data[\"$m_Inventur\"].Id\n      });\n\n      await this._webEventService.execute(webEvent, true);\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"./rest-service\";\nimport { AuthorizationService } from \"./authorization-service\";\n\n@autoinject\nexport class LoginUrlService {\n\n  constructor(\n    private _authorizationService: AuthorizationService,\n    private _restService: RestService) { }\n\n  async init() {\n    const suffix = this.getSuffixOfLocalStorage();\n    let baseUrl = await this.getUrlOfSuffix(suffix);\n\n    this._restService.setBaseUrl(baseUrl);\n\n    this._authorizationService.onBeforeLogin = async (data) => {\n      const usernameSplit = data.Username.split(\"@\");\n\n      if (usernameSplit.length > 1) {\n        baseUrl = await this.getUrlOfSuffix(usernameSplit[1]);\n      } else {\n        baseUrl = await this.getUrlOfSuffix(\"supermandant\");\n      }\n\n      this._restService.setBaseUrl(baseUrl);\n    };\n\n    this._authorizationService.onAfterLoginCompleted = async (data) => {\n      const usernameSplit = data.Username.split(\"@\");\n      if (usernameSplit.length > 1) {\n        localStorage.setItem(\"clue_suffix\", usernameSplit[1]);\n      }\n    };\n  }\n\n  private getSuffixOfLocalStorage() {\n    return localStorage.getItem(\"clue_suffix\");\n  }\n\n  private async getUrlOfSuffix(suffix) {\n    const url = location.origin;\n    this._restService.setBaseUrl(url);\n\n    if (location.hostname == \"clue.services\" || location.hostname.includes(\".pages.dev\")) {\n      const baseUrl = await this._restService.get({ url: location.origin + \"/api-frontend/base-url/\" + suffix });\n      return baseUrl.baseUrl;\n    }\n    else if (location.hostname.includes(\"-intern.\")) {\n      return \"https://api-intern.clue.services\";\n    } else {\n      return \"http://localhost:5073\";\n    }\n  }\n}\n","export * from \"./options\";\nexport * from \"./editor-options\";\nexport * from \"./accordion-options\";\nexport * from \"./calendar-options\";\nexport * from \"./check-box-options\";\nexport * from \"./color-box-options\";\nexport * from \"./command-element-options\";\nexport * from \"./command-options\";\nexport * from \"./data-grid-options\";\nexport * from \"./data-grid-column-options\";\nexport * from \"./date-box-options\";\nexport * from \"./file-uploader-with-viewer-options\";\nexport * from \"./html-editor-options\";\nexport * from \"./include-options\";\nexport * from \"./list-options-base\";\nexport * from \"./list-options\";\nexport * from \"./list-view-options\";\nexport * from \"./number-box-options\";\nexport * from \"./select-item\";\nexport * from \"./select-options\";\nexport * from \"./popover-options\";\nexport * from \"./popup-options\";\nexport * from \"./tab-options\";\nexport * from \"./tag-box-options\";\nexport * from \"./text-box-options\";\nexport * from \"./text-area-options\";\nexport * from \"./validation-rule\";\nexport * from \"./validation-rule-item\";\nexport * from \"./validation-rule-item-parameter\";\nexport * from \"./validation-group-options\";\nexport * from \"./widget-options\";\n","export enum StatistikDarstellungTyp {\n  Tabelle = 1,\n  Kreisdiagramm = 2\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  OnEvalLieferRechnungsort,\n  OnEvalLieferRechnungsortEvent,\n  OnImportLieferscheinpositionenInKundenreklamationEvent,\n  OnKundenreklamationAbschliessenEvent,\n  OnKundenreklamationErsatzauftragErstellen,\n  OnKundenreklamationErsatzauftragErstellenEvent,\n  OnKundenreklamationWarenuebernahmeErstellen,\n  OnKundenreklamationWarenuebernahmeErstellenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase,\n  ICommandData\n} from \"../../../../framework/forms/export\";\n\nimport { AsyncService } from '../../../../framework/base/services/async-service';\nimport { LocationService } from '../../../../framework/base/services/location-service';\nimport { Geschaeftspartner } from '../../../elements/geschaeftspartner/geschaeftspartner';\nimport {\n  IdxDataGridComponent\n} from \"../../../interfaces/export\";\nimport {\n  DynFelderDataService,\n  DynFelderService,\n  FilialeService, FirmaService,\n  GeschaeftspartnerSearchService,\n  GeschaeftspartnerService,\n  KalkulationRefreshService,\n  LagerService,\n  PersonService, ValidationExService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class KundenreklamationEditUtils {\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    private _asyncService: AsyncService,\n    private _dynFelderService: DynFelderService,\n    private _filialeService: FilialeService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerSearchService: GeschaeftspartnerSearchService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _lagerService: LagerService,\n    private _locationService: LocationService,\n    private _personService: PersonService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n\n  importLieferscheinpositionenCommand: ICommandData = {\n    id: \"importLieferscheinpositionen\",\n    title: \"kundenreklamation.mark_lieferscheinpositionen_importieren\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_lieferscheinpositionenGrid\"];\n\n      const importLieferscheinpositionenEvent = new OnImportLieferscheinpositionenInKundenreklamationEvent({\n        IdKundenreklamation: this.form.models.data.$m_Kundenreklamation.Id,\n        IdLieferscheinpositionList: grid.instance.getSelectedRowKeys()\n      });\n\n      await this._webEventService.execute(importLieferscheinpositionenEvent, true);\n\n      this.form[\"r_lieferscheinpositionenEditPopup\"].instance.hide();\n      this.form.models.reloadAll();\n    }\n  }\n  showImportLieferscheinpositionenPopupCommand: ICommandData = {\n    id: \"showImportLieferscheinpositionen\",\n    icon: \"plus\",\n    idCategory: \"kundenreklamation\",\n    title: \"kundenreklamation.lieferscheinpositionen_importieren\",\n    sortIndex: 0,\n    isEnabledExpression: \"models.data.$m_Kundenreklamation.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const lieferscheinpositionenGrid: IdxDataGridComponent = this.form[\"r_lieferscheinpositionenGrid\"];\n      if (lieferscheinpositionenGrid && lieferscheinpositionenGrid.instance) {\n        await this._asyncService.convertToPromise(lieferscheinpositionenGrid.instance.deselectAll());\n        lieferscheinpositionenGrid.instance.refresh();\n      }\n\n      this.form[\"r_lieferscheinpositionenEditPopup\"].instance.show();\n    }\n  }\n  reklamationAbschliessenCommand: ICommandData = {\n    id: \"reklamationAbschliessen\",\n    idCategory: \"kundenreklamation\",\n    icon: \"check-square-o\",\n    title: \"kundenreklamation.reklamation_abschliessen\",\n    sortIndex: 3,\n    isEnabledExpression: `models.data.$m_Kundenreklamation.CanSave \n      && models.data.$m_Kundenreklamation.Status.Typ == 0`,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Kundenreklamation.TypeName,\n        this.form.models.data.$m_Kundenreklamation.Id,\n        \"ABSCHLIESSEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnKundenreklamationAbschliessenEvent({\n        IdKundenreklamation: this.form.models.data.$m_Kundenreklamation.Id\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  }\n  warenuebernahmeErstellenCommand: ICommandData = {\n    id: \"warenuebernahmeErstellenCommand\",\n    idCategory: \"kundenreklamation\",\n    icon: \"plus-square\",\n    title: \"kundenreklamation.warenuebernahme_erstellen\",\n    sortIndex: 2,\n    isEnabledExpression: `models.data.$m_Kundenreklamation.CanSave \n      && models.data.$m_Kundenreklamation.Status.Typ == 0\n      && models.data.$m_Kundenreklamation.WarenuebernahmeStatus == 1`,\n    execute: (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      this.warenuebernahmeErstellen(ctrlKeyPressed);\n    }\n  }\n  ersatzlieferscheinErstellenCommand: ICommandData = {\n    id: \"ersatzlieferscheinErstellenCommand\",\n    idCategory: \"kundenreklamation\",\n    icon: \"plus-square\",\n    title: \"kundenreklamation.ersatzauftrag_erstellen\",\n    sortIndex: 1,\n    isEnabledExpression: \"models.data.$m_Kundenreklamation.CanSave\",\n    execute: (e: any) => {\n      const ctrlKeyPressed = e\n        && e.event\n        && e.event.ctrlKey;\n\n      this.ersatzauftragErstellen(ctrlKeyPressed);\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const kunde = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_kunde'] .dx-searchbox input\");\n      if (!kunde) {\n        return;\n      }\n\n      kunde.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Kundenreklamation\",\n      idVorgEntitaetPropertyName: \"IdKunde\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Kundenreklamation\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"kundenreklamationspositionEditPopup\"]\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_KundenreklamationspositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Kundenreklamation\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Kundenreklamation\"];\n          if (model) {\n            model.IdLieferfiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Kundenreklamation\",\n                bindTo: \"IdLieferfiliale\"\n              },\n              value: model.IdLieferfiliale\n            });\n          }\n        }\n\n        if (args.binding.bindTo === \"IdLieferfiliale\") {\n          const model = form.models.data[\"$m_Kundenreklamation\"];\n          if (model) {\n            model.IdLieferlager = await this._lagerService.getIdLagerVorbelegung(args.value);\n\n            const idWaehrung = await this._filialeService.getWaehrungIdOfFiliale(args.value);\n            if (idWaehrung != null) {\n              model.IdWaehrung = idWaehrung;\n            } else {\n              model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(this.form.models.data.$m_Kundenreklamation.IdFirma);\n            }\n          }\n        }\n      }\n    });\n  }\n\n  async onKundeChanged(e: any) {\n    await this.dynFelderData.loadVorbelegungen();\n\n    const onEvalLieferRechnungsortEvent = new OnEvalLieferRechnungsortEvent({ IdKunde: e.detail.value });\n    const onEvalLieferRechnungsortData: OnEvalLieferRechnungsort = await this._webEventService.execute(onEvalLieferRechnungsortEvent);\n\n    this.form[\"r_lieferort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdLieferort);\n    this.form[\"r_rechnungsort\"].setGeschaeftpartnerById(onEvalLieferRechnungsortData.IdRechnungsort);\n\n    if (onEvalLieferRechnungsortData.HasMoreThanOneLieferort) {\n      this._geschaeftspartnerSearchService.show(r => {\n        this.form[\"r_lieferort\"].setGeschaeftpartnerById(r);\n      }, () => { }, {\n        caption: \"erp.select_lieferort\",\n        filters: [{\n          webApiCustomKey: \"IdLieferortFuer\",\n          webApiCustomValue: e.detail.value\n        }]\n      });\n    }\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n  onKundeAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    const idKunde = this.form.models.data.$m_Kundenreklamation.IdKunde;\n    if (idKunde == this.form.models.data.$m_Kundenreklamation.IdLieferort) {\n      if (this.form.models.data.$m_Kundenreklamation.IdLieferortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Kundenreklamation.IdLieferortAnsprechperson = idPerson;\n      }\n\n      this.onLieferortAnsprechpersonChanged({\n        detail: {\n          value: idPerson\n        }\n      });\n    }\n\n    if (idKunde == this.form.models.data.$m_Kundenreklamation.IdRechnungsort) {\n      if (this.form.models.data.$m_Kundenreklamation.IdRechnungsortAnsprechperson == e.detail.previousValue) {\n        this.form.models.data.$m_Kundenreklamation.IdRechnungsortAnsprechperson = idPerson;\n      }\n    }\n  }\n  async onLieferortAnsprechpersonChanged(e: any) {\n    const idPerson = e.detail.value;\n    if (!idPerson) {\n      return;\n    }\n\n    this.form.models.data.$m_Kundenreklamation.LieferortTelefon = await this._personService.getPersonTelefon(idPerson);\n  }\n  onKundeAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onLieferortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_rechnungsort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n  onRechnungsortAdresseChanged(e: any) {\n    const idGeschaeftspartner = e.detail.value;\n\n    (<Geschaeftspartner>this.form[\"r_kunde\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n    (<Geschaeftspartner>this.form[\"r_lieferort\"]).refreshGeschaeftspartnerById(idGeschaeftspartner);\n  }\n\n  private async warenuebernahmeErstellen(openInNewWindow: boolean) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const args: OnKundenreklamationWarenuebernahmeErstellen = {\n      IdKundenreklamation: this.form.models.data.$m_Kundenreklamation.Id\n    }\n    const webEventResult: OnKundenreklamationWarenuebernahmeErstellen = await this._webEventService.execute(new OnKundenreklamationWarenuebernahmeErstellenEvent(args), true);\n    if (!webEventResult || !webEventResult.IdWarenuebernahme) {\n      return;\n    }\n\n    const navigationUrl = `ERP/Einkauf/Warenuebernahme/${webEventResult.IdWarenuebernahme}`;\n\n    if (openInNewWindow) {\n      this._locationService.openWindow(navigationUrl);\n      this.form.models.reloadAll();\n    } else {\n      this._locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  }\n  private async ersatzauftragErstellen(openInNewWindow: boolean) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const args: OnKundenreklamationErsatzauftragErstellen = {\n      IdKundenreklamation: this.form.models.data.$m_Kundenreklamation.Id\n    }\n    const webEventResult: OnKundenreklamationErsatzauftragErstellen = await this._webEventService.execute(new OnKundenreklamationErsatzauftragErstellenEvent(args), true);\n    if (!webEventResult || !webEventResult.IdAuftrag) {\n      return;\n    }\n\n    const navigationUrl = `ERP/Verkauf/Auftrag/${webEventResult.IdAuftrag}`;\n\n    if (openInNewWindow) {\n      this._locationService.openWindow(navigationUrl);\n      this.form.models.reloadAll();\n    } else {\n      this._locationService.goTo({\n        url: navigationUrl,\n        clearStack: false\n      });\n    }\n  }\n\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Kundenreklamation.CanSave && this.form.models.data.$m_Kundenreklamation.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Kundenreklamation.IdKunde);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Kundenreklamation.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Kundenreklamation\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  OnEvalEinkaufArtikeldaten,\n  OnEvalEinkaufArtikeldatenEvent,\n  OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernenEvent,\n  OnWarenuebernahmepositionVariablerSetartikelPreisAendernEvent,\n  OnWarenuebernahmepositionVariablerSetartikelRabattEntfernenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  FormBase, ICommandData, ModelUtilsService\n} from \"../../../../framework/forms/export\";\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from \"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\";\nimport {\n  IKalkulationRefreshOptions\n} from \"../../../interfaces/kalkulation-refresh-options\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\nimport {\n  KalkulationRefreshService\n} from \"../../../services/kalkulation-refresh-service\";\nimport { StartupService } from \"../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class WarenuebernahmepositionEditUtils {\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    public startupService: StartupService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _modelUtilsService: ModelUtilsService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  showVariablerSetartikelCheckbox: boolean;\n  onReloadStuecklistenkomponentenlist: boolean;\n\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"warenuebernahme\",\n    icon: \"money\",\n    title: \"warenuebernahme.preis_aendern\",\n    isVisibleExpression: \"functions.$f_WarenuebernahmepositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Warenuebernahmeposition && models.data.$m_Warenuebernahmeposition.Id > 0 && models.data.$m_Warenuebernahmeposition.IsVariablerSetartikel && models.data.$m_Warenuebernahmeposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Warenuebernahmeposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Warenuebernahmeposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeIstVerpEH\"\n    }\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"warenuebernahmepositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Warenuebernahmeposition\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"MengeIstVerpEH\" && this.form.models.data.$m_Warenuebernahmeposition.IsSetartikel) {\n          this.onReloadStuecklistenkomponentenlist = true;\n        }\n      }\n    });\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0 || e.model.id != \"$m_Warenuebernahmeposition\") {\n        return;\n      }\n\n      this.showVariablerSetartikelCheckbox = this.form.models.data.$m_Warenuebernahmeposition\n        && this.form.models.data.$m_Warenuebernahmeposition.Artikel != null\n        && this.form.models.data.$m_Warenuebernahmeposition.Artikel.BezugTyp == 3\n        ? true\n        : false;\n    });\n\n    this.form.models.onSaved.register(async (e) => {\n      if (this.form.models.data.$m_Warenuebernahmeposition.IsSetartikel) {\n        if (this.onReloadStuecklistenkomponentenlist) {\n          this.onReloadStuecklistenkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n      }\n    });\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n  }\n\n  async idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n\n    if (!this.form.models.data.$m_Warenuebernahmeposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Warenuebernahmeposition);\n    }\n\n    this.doEvalEinkaufArtikeldaten(e.detail.value);\n  }\n\n  copyWarenuebernahmeposition($delegate: { (customData: any): Promise<any> }) {\n    $delegate({ \"PosNrUeberschreiben\": true })\n  }\n\n  private async doEvalEinkaufArtikeldaten(idArtikel) {\n    if (!idArtikel) {\n      return;\n    }\n\n    const webEvent = new OnEvalEinkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdLieferant: this.form.models.data.$m_Warenuebernahme.IdLieferant\n    });\n\n    const result: OnEvalEinkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    this.form.models.data.$m_Warenuebernahmeposition.IdEinheit = result.IdArtikelEinheit;\n    this.form.models.data.$m_Warenuebernahmeposition.LieferantArtikelNr = result.LieferantArtikelNr;\n    this.form.models.data.$m_Warenuebernahmeposition.LieferantArtikelbezeichnung = result.LieferantArtikelbezeichnung;\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Warenuebernahmeposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Warenuebernahmeposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistenkomponentenlist = true;\n    }\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnWarenuebernahmepositionVariablerSetartikelRabattEntfernenEvent({\n            IdWarenuebernahmepositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdWarenuebernahmepositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnWarenuebernahmepositionVariablerSetartikelPreisAendernEvent({\n            IdWarenuebernahmepositionSetartikel: this.form.models.data.$m_Bestellungsposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n}\n\n","import { StartupService } from \"./../../../services/startup-service\";\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase } from \"../../../../framework/forms/classes/form-base\";\nimport { ICommandData } from \"../../../../framework/forms/interfaces/command-data\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { BelegExportService } from \"./../../../services/beleg-export-service\";\n\n@autoinject\n@transient()\nexport class AngebotListUtils {\n  constructor(\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService\n  ) {}\n  \n  form: FormBase;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    isVisibleExpression: \"functions.$f_AngebotListUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_AngebotListUtils.isBelegExportMandantAktiv\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_angebotGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this._asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this._belegExportService.export(BelegImportTyp.Angebot, keys);\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    this.form.onAttached.register(async (r) => {\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Angebot);\n      return Promise.resolve();\n    });\n  }\n}\n","import { Aurelia, PLATFORM } from \"aurelia-framework\";\nimport \"whatwg-fetch\";\nimport \"../node_modules/font-awesome/css/font-awesome.css\";\nimport \"../resources/grid.less\";\nimport environment from \"./environment\";\nimport { ModuleLoader } from \"./framework-data/modules\";\nimport { AlertService } from \"./framework/base/services/alert-service\";\nimport { AuthorizationService } from \"./framework/base/services/authorization-service\";\nimport { LoginUrlService } from \"./framework/base/services/login-url-service\";\n\nexport async function configure(aurelia: Aurelia) {\n  aurelia.use\n    .basicConfiguration()\n    .plugin(PLATFORM.moduleName(\"aurelia-dashboard-grid\"))\n    .feature(PLATFORM.moduleName(\"framework/base/index\"))\n    .feature(PLATFORM.moduleName(\"framework/dx/index\"))\n    .feature(PLATFORM.moduleName(\"framework/forms/index\"))\n    .feature(PLATFORM.moduleName(\"framework/default-ui/index\"))\n    .feature(PLATFORM.moduleName(\"framework/security/index\"))\n    .feature(PLATFORM.moduleName(\"erp/index\"));\n\n  if (environment.debug) {\n    aurelia.use.developmentLogging();\n  }\n\n  const moduleLoader = new ModuleLoader();\n\n  const loginUrlService: LoginUrlService = aurelia.container.get(LoginUrlService);\n  await loginUrlService.init();\n\n  await aurelia.start();\n\n  const alertService: AlertService = aurelia.container.get(AlertService);\n  const authorization: AuthorizationService = aurelia.container.get(AuthorizationService);\n\n  authorization.openApp();\n}\n","import {\n  autoinject,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  ICommandData\n} from \"../interfaces/export\";\nimport {\n  BindingService\n} from \"../../base/services/export\";\nimport { IItemExecuteOptions } from \"../elements/toolbar/item-execute-options\";\n\n@autoinject\nexport class CommandService {\n  private isCommandExecuting = false;\n\n  constructor(\n    private binding: BindingService\n  ) { }\n\n  isVisible(command: ICommandData): boolean {\n    if (command.isVisible != undefined) {\n      return command.isVisible;\n    } else if (command.isVisibleExpression) {\n      return this.binding.evaluate(command.expressionScope, command.isVisibleExpression);\n    }\n\n    return true;\n  }\n  isEnabled(command: ICommandData): boolean {\n    if (command.isEnabled != undefined) {\n      return command.isEnabled;\n    } else if (command.isEnabledExpression) {\n      return this.binding.evaluate(command.expressionScope, command.isEnabledExpression);\n    }\n\n    return true;\n  }\n  isVisibleAndEnabled(command: ICommandData): boolean {\n    return this.isVisible(command)\n      && this.isEnabled(command);\n  }\n\n  execute(scope: Scope, command: ICommandData, options: IItemExecuteOptions): boolean {\n    if (this.isCommandExecuting) {\n      return;\n    }\n\n    if (!this.isVisibleAndEnabled(command)) {\n      return false;\n    }\n    if (!command.execute) {\n      return false;\n    }\n\n    this.isCommandExecuting = true;\n    const result = command.execute.bind(scope.bindingContext)(options);\n\n    if (result && result.then && result.catch) {\n      result\n        .catch(() => {\n        })\n        .then(() => {\n          this.isCommandExecuting = false;\n        });\n    } else {\n      this.isCommandExecuting = false;\n    }\n    return true;\n  }\n}\n","export default __webpack_public_path__ + \"585f55ee67a6ecfcccee6012755c45ba.jpg\";","export * from \"./binding\";\nexport * from \"./command\";\nexport * from \"./command-data\";\nexport * from \"./context-menu-item\";\nexport * from \"./edit-popup\";\nexport * from \"./function\";\nexport * from \"./mapping\";\nexport * from \"./model\";\nexport * from \"./popup-info\";\nexport * from \"./updateable-popup-options\";\nexport * from \"./variable\";\nexport * from \"./validation-result\";\nexport * from \"./history-state\";\nexport * from \"./navigation-args\";\nexport * from \"./navigation-route\";\nexport * from \"./route\";\nexport * from \"./route-info\";\nexport * from \"./view-item-model\";\nexport * from \"./setting\";\nexport * from \"./nested-form-x\";\n","export default __webpack_public_path__ + \"6d02f4433120cc9fc7703b8c803abc37.jpg\";","import { autoinject } from \"aurelia-framework\";\nimport { CustomEvent } from \"../classes/custom-event\";\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class WindowService {\n  constructor(\n    private eventAggregator: EventAggregator\n  ) {\n    this.registerEvents();\n  }\n\n  blurCurrentElement() {\n    if (!document.activeElement) {\n      return;\n    }\n\n    const activeElement = (<any>document.activeElement);\n    if (!activeElement.blur) {\n      return;\n    }\n\n    activeElement.blur();\n  }\n\n  private registerEvents() {\n    window.addEventListener(\"resize\", () => {\n      this.eventAggregator.publish(\"window:resize\", {});\n    });\n    window.addEventListener(\"visibilitychange\", () => {\n      if (!document.hidden) {\n        this.eventAggregator.publish(\"window:activated\", {});\n      }\n    })\n  }\n}\n","import { IViewModel } from '../../interfaces/view-model';\nimport { EditorService } from '../../services/editor-service';\nimport { DataGridService } from '../../services/data-grid-service';\nimport { ChartService } from '../../services/chart-service';\nimport { PivotService } from '../../services/pivot-services';\n\nexport default class UI {\n  constructor(\n    private _viewModel: IViewModel,\n    private _editorService: EditorService,\n    private _dataGridService: DataGridService,\n    private _chartService: ChartService,\n    private _pivotService: PivotService) {\n  }\n\n  button(options: DevExpress.ui.dxButtonOptions) {\n    return Object.assign({\n      text: \"Default\"\n    }, options);\n  }\n  calendar(idDataSource: string, dataField: string, options: DevExpress.ui.dxCalendarOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  checkBox(idDataSource: string, dataField: string, options: DevExpress.ui.dxCheckBoxOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  dateBox(idDataSource: string, dataField: string, options: DevExpress.ui.dxDateBoxOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  numberBox(idDataSource: string, dataField: string, options: DevExpress.ui.dxNumberBoxOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  textBox(idDataSource: string, dataField: string, options: DevExpress.ui.dxTextBoxOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  textArea(idDataSource: string, dataField: string, options: DevExpress.ui.dxTextAreaOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  switch(idDataSource: string, dataField: string, options: DevExpress.ui.dxSwitchOptions) {\n    return this._editorService.createOptions(this._viewModel, idDataSource, dataField, options);\n  }\n  grid(idDataSource: string, options: DevExpress.ui.dxDataGridOptions) {\n    return this._dataGridService.createOptions(this._viewModel, idDataSource, options);\n  }\n  pivot(idDataSource: string, options: DevExpress.ui.dxPivotGridOptions) {\n    return this._pivotService.createOptions(this._viewModel, idDataSource, options);\n  }\n  chart(idDataSource: string, options: DevExpress.viz.dxChartOptions) {\n    return this._chartService.createOptions(this._viewModel, idDataSource, options);\n  }\n}","declare var require: any;\n\nvar DevExpress = require(\"devextreme/bundles/modules/core\");\n\nrequire(\"devextreme/events/click\");\nrequire(\"devextreme/events/contextmenu\");\nrequire(\"devextreme/events/double_click\");\nrequire(\"devextreme/events/drag\");\nrequire(\"devextreme/events/hold\");\nrequire(\"devextreme/events/hover\");\nrequire(\"devextreme/events/pointer\");\nrequire(\"devextreme/events/swipe\");\nrequire(\"devextreme/events/transform\");\n\nconst result: any = {};\n\nresult.data = DevExpress.data = require(\"devextreme/bundles/modules/data\");\nresult.ui = DevExpress.ui = require(\"devextreme/bundles/modules/ui\");\nresult.themes = require(\"devextreme/ui/themes\");\nresult.setTemplateEngine = require(\"devextreme/ui/set_template_engine\");\nresult.dialog = require(\"devextreme/ui/dialog\");\nresult.notify = require(\"devextreme/ui/notify\");\n\nDevExpress.ui.dialog = result.dialog;\nDevExpress.ui.notify = result.notify;\n\nDevExpress.integration = {\n  date: require(\"devextreme/localization/date\")\n};\n\n\n/* Base widgets (dx.module-widgets-base.js) */\nresult.dxAutocomplete = require(\"devextreme/ui/autocomplete\");\nresult.dxButton = require(\"devextreme/ui/button\");\nresult.dxCalendar = require(\"devextreme/ui/calendar\");\nresult.dxCheckBox = require(\"devextreme/ui/check_box\");\nresult.dxColorBox = require(\"devextreme/ui/color_box\");\nresult.dxDateBox = require(\"devextreme/ui/date_box\");\nresult.dxDeferRendering = require(\"devextreme/ui/defer_rendering\");\nresult.dxDropDownMenu = require(\"devextreme/ui/drop_down_menu\");\nresult.dxFileUploader = require(\"devextreme/ui/file_uploader\");\nresult.dxFilterBuilder = require(\"devextreme/ui/filter_builder\");\nresult.dxForm = require(\"devextreme/ui/form\");\nresult.dxHtmlEditor = require(\"devextreme/ui/html_editor\");\nresult.dxList = require(\"devextreme/ui/list\");\nresult.dxLoadIndicator = require(\"devextreme/ui/load_indicator\");\nresult.dxLoadPanel = require(\"devextreme/ui/load_panel\");\nresult.dxLookup = require(\"devextreme/ui/lookup\");\nresult.dxMap = require(\"devextreme/ui/map\");\nresult.dxNavBar = require(\"devextreme/ui/nav_bar\");\nresult.dxNumberBox = require(\"devextreme/ui/number_box\");\nresult.dxOverlay = require(\"devextreme/ui/overlay\");\nresult.dxPopover = require(\"devextreme/ui/popover\");\nresult.dxPopup = require(\"devextreme/ui/popup\");\nresult.dxProgressBar = require(\"devextreme/ui/progress_bar\");\nresult.dxRadioGroup = require(\"devextreme/ui/radio_group\");\nresult.dxRangeSlider = require(\"devextreme/ui/range_slider\");\nresult.dxResizable = require(\"devextreme/ui/resizable\");\nresult.dxScrollView = require(\"devextreme/ui/scroll_view\");\nresult.dxSelectBox = require(\"devextreme/ui/select_box\");\nresult.dxSlider = require(\"devextreme/ui/slider\");\nresult.dxSwitch = require(\"devextreme/ui/switch\");\nresult.dxTabPanel = require(\"devextreme/ui/tab_panel\");\nresult.dxTabs = require(\"devextreme/ui/tabs\");\nresult.dxTagBox = require(\"devextreme/ui/tag_box\");\nresult.dxTextArea = require(\"devextreme/ui/text_area\");\nresult.dxTextBox = require(\"devextreme/ui/text_box\");\nresult.dxDropDownBox = require(\"devextreme/ui/drop_down_box\");\nresult.dxToast = require(\"devextreme/ui/toast\");\nresult.dxToolbar = require(\"devextreme/ui/toolbar\");\nresult.dxTooltip = require(\"devextreme/ui/tooltip\");\nresult.dxTrackBar = require(\"devextreme/ui/track_bar\");\n\n/* Validation (dx.module-widgets-base.js) */\nDevExpress.validationEngine = require(\"devextreme/ui/validation_engine\");\nresult.dxValidationSummary = require(\"devextreme/ui/validation_summary\");\nresult.dxValidationGroup = require(\"devextreme/ui/validation_group\");\nresult.dxValidator = require(\"devextreme/ui/validator\");\n\n/* Web widgets (dx.module-widgets-web.js) */\nresult.dxAccordion = require(\"devextreme/ui/accordion\");\nresult.dxContextMenu = require(\"devextreme/ui/context_menu\");\nresult.dxDataGrid = require(\"devextreme/ui/data_grid\");\nresult.dxMenu = require(\"devextreme/ui/menu\");\nresult.dxPivotGrid = require(\"devextreme/ui/pivot_grid\");\nresult.dxPivotGridFieldChooser = require(\"devextreme/ui/pivot_grid_field_chooser\");\nresult.PivotGridDataSource = require(\"devextreme/ui/pivot_grid/data_source\");\nresult.XmlaStore = require(\"devextreme/ui/pivot_grid/xmla_store\");\nresult.dxScheduler = require(\"devextreme/ui/scheduler\");\nresult.dxTreeView = require(\"devextreme/ui/tree_view\");\nresult.dxTreeList = require(\"devextreme/ui/tree_list\");\nresult.dxDraggable = require(\"devextreme/ui/draggable\");\n\n/* Viz core (dx.module-viz-core.js) */\nresult.viz = DevExpress.viz = require(\"devextreme/bundles/modules/viz\");\nresult.currentTheme = require(\"devextreme/viz/themes\").currentTheme;\nresult.registerTheme = require(\"devextreme/viz/themes\").registerTheme;\nresult.exportFromMarkup = require(\"devextreme/viz/export\").exportFromMarkup;\nresult.currentPalette = require(\"devextreme/viz/palette\").currentPalette;\nresult.getPalette = require(\"devextreme/viz/palette\").getPalette;\nresult.registerPalette = require(\"devextreme/viz/palette\").registerPalette;\n\n/* Charts (dx.module-viz-charts.js) */\nresult.dxChart = require(\"devextreme/viz/chart\");\nresult.dxPieChart = require(\"devextreme/viz/pie_chart\");\nresult.dxPolarChart = require(\"devextreme/viz/polar_chart\");\nresult.dxLinearGauge = require(\"devextreme/viz/linear_gauge\");\nresult.dxCircularGauge = require(\"devextreme/viz/circular_gauge\");\nresult.dxFunnel = require(\"devextreme/viz/funnel\");\nresult.dxBarGauge = require(\"devextreme/viz/bar_gauge\");\n\n/* Range selector (dx.module-viz-rangeselector.js) */\nresult.dxRangeSelector = require(\"devextreme/viz/range_selector\");\n\n/* Vector map (dx.module-viz-vectormap.js) */\nresult.dxVectorMap = require(\"devextreme/viz/vector_map\");\nresult.map = {};\nresult.map.sources = {};\nresult.map.projection = require(\"devextreme/viz/vector_map/projection\").projection;\n\n/* Sparklines (dx.module-viz-sparklines.js) */\nresult.dxSparkline = require(\"devextreme/viz/sparkline\");\nresult.dxBullet = require(\"devextreme/viz/bullet\");\n\nexport function initialize() {\n  const r = result;\n}\nexport function createInstance(widget, element, options): any {\n  element = getElement(element);\n  if (!element) {\n    throw new Error(\"No element specified\");\n  }\n\n  return new result[widget](element, options);\n}\nexport function exists(widget): boolean {\n  return !!result[widget];\n}\nexport function getInstance(widget, element): any {\n  element = getElement(element);\n  if (element == null) {\n    return null;\n  }\n\n  return result[widget].getInstance(element);\n}\nexport function getDefinition(widget): any {\n  return result[widget];\n}\n\nfunction getElement(element): Element {\n  if (element.jquery) {\n    if (element.length === 0) {\n      return null;\n    }\n\n    element = element.get(0);\n  }\n\n  return element;\n}\n","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class AufgabeService {\n  constructor() {}\n\n  onIsPrioritaetCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.IsPrioritaet) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = \"#C74031\";\n    cell.style.color = \"white\";\n  }\n}\n","import { autoinject } from 'aurelia-framework';\nimport { Setting } from '../interfaces/setting';\n\n@autoinject\nexport class SettingService {\n  constructor() {\n    this.instance = {\n      IsLabelBeforeEditor: true\n    };\n  }\n\n  instance: Setting;\n}\n","import {\n  autoinject,\n  singleton\n} from \"aurelia-framework\";\nimport {\n  FormBase\n} from \"../classes/form-base\";\nimport * as Interfaces from \"../interfaces/export\";\n\n@autoinject\n@singleton(true)\nexport class Variables {\n  private form: FormBase;\n  private info: any;\n\n  constructor() {\n    this.data = {};\n    this.info = {};\n  }\n\n  data: any;\n\n  addInfo(variable: Interfaces.IVariable) {\n    this.info[variable.id] = variable;\n    this.checkNestedFormMapping(variable);\n  }\n  getInfo(id: string): Interfaces.IVariable {\n    return this.info[id];\n  }\n  registerForm(form: FormBase) {\n    if (this.form) {\n      throw new Error(\"Form was already registered\");\n    }\n\n    this.form = form;\n  }\n  reset() {\n    for (let key in this.data) {\n      this.data[key] = null;\n    }\n  }\n\n  dispose() {\n  }\n\n  private checkNestedFormMapping(variable: Interfaces.IVariable) {\n    if (!this.form.isNestedForm) {\n      return;\n    }\n\n    const id = this.form.element.getAttribute(\"view-model.ref\");\n    if (!id) {\n      return;\n    }\n\n    const info = this.form.parent.nestedForms.getInfo(id);\n    if (!info) {\n      return;\n    }\n\n    variable.isMapped = info.mappings.some(mapping => mapping.to === variable.id);\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { DynFeldLogikTyp } from \"../../../enumerations/dyn-feld-logik-typ\";\nimport { DynFelderService, StartupService } from '../../../services/export';\n\n@autoinject\n@transient()\nexport class ArtikelStuecklisteEditUtils {\n  constructor(\n    public startupService: StartupService,\n    private _dynFelderService: DynFelderService) { }\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Artikel\") {\n        return;\n      }\n\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n\n      if (this.form.models.data.$m_Artikel != null) {\n        if (this.form.models.data.$m_Artikel.BezugTyp != 3) {\n          return;\n        }\n\n        const dynFeldEintrag = await this._dynFelderService\n          .loadDynFeldEintragByLogikttyp(this.form.models.data.$m_Artikel.IdDynamischesFeldContainer, DynFeldLogikTyp.VariablerSetartikel);\n\n        if (dynFeldEintrag != null && dynFeldEintrag[0].WertNummer == 1) {\n          this.form.models.data.$m_ArtikelStueckliste.HasVariablerSetartikelVorbelegung = true;\n        }\n      }\n\n      return Promise.resolve();\n    });\n  }\n}\n","import {\n  autoinject,\n  observable\n} from \"aurelia-framework\";\nimport {\n  StyleService\n} from \"../../base/services/export\";\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class LayoutService {\n  constructor(\n    private style: StyleService,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  @observable isSidebarCollapsed = false;\n  themeColor = \"#396394\";\n\n  activateTheme() {\n    this.style.addStyles(\"custom-container\", [{\n      name: \".t--sidebar .t--sidebar-item:hover\",\n      properties: [{\n        propertyName: \"background-color\",\n        value: this.themeColor\n      }]\n    }]);\n  }\n  isSidebarCollapsedChanged() {\n    setTimeout(() => {\n      this.eventAggregator.publish(\"window:resize\", () => {});\n    }, 400);\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  FileService,\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  OnBelegImportFreigebenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  StatusService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class BelegImportEditUtils {\n  constructor(\n    private webEvent: WebEventService,\n    private file: FileService,\n    private status: StatusService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.binding.observe({\n      scopeContainer: form.scopeContainer,\n      expression: \"models.data.$m_BelegImport.CanSave\",\n      callback: () => {\n        const data: any = this.form.models.data.$m_BelegImport;\n        this.doFreigebenCommand.isEnabled = data && data.CanSave;\n      }\n    });\n  }\n\n  doFreigebenCommand: ICommandData = {\n    id: \"doFreigeben\",\n    idCategory: \"import\",\n    title: \"beleg-import-edit-utils.do-freigeben\",\n    icon: \"check\",\n    isEnabled: false,\n    execute: () => {\n      const data: any = this.form.models.data.$m_BelegImport;\n      if (data && data.CanSave) {\n        this.form.save()\n          .then((r) => {\n            if (!r.isValid) {\n              return;\n            }\n\n            return this.webEvent\n              .execute(new OnBelegImportFreigebenEvent({\n                IdBelegImport: this.form.models.data.$m_BelegImport.Id\n              }), true)\n              .then(() => {\n                return this.form.models.reloadAll();\n              });\n          });\n      }\n    }\n  }\n}\n","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  HttpClient\n} from \"aurelia-fetch-client\";\nimport {\n  JsonService\n} from \"./json-service\";\nimport Config from \"../../../config\";\nimport { ErrorService } from './error-service';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class RestService {\n  constructor(\n    private jsonService: JsonService,\n    private errorService: ErrorService,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  loadingCount = 0;\n  baseUrl: string;\n  getAuthorizationHeader: { (): any };\n  getAuthorizationToken: { (): string };\n\n  @computedFrom(\"loadingCount\")\n  get isLoading(): boolean {\n    return this.loadingCount > 0;\n  }\n\n  delete(options: IRestDeleteOptions): Promise<any> {\n    if (!options.id) {\n      throw new Error(\"Id is missing\");\n    }\n\n    return this.execute(\n      \"DELETE\",\n      `${options.url}/${options.id}`,\n      this.createHeaders(options),\n      options.increaseLoadingCount,\n      RestGetResultType.json,\n      false,\n      options.errorCallback);\n  }\n  get(options: IRestGetOptions): Promise<any> {\n    return this.execute(\n      \"GET\",\n      options.url,\n      this.createHeaders(options),\n      options.increaseLoadingCount,\n      options.resultType || RestGetResultType.json,\n      !!options.includeResponseHeaders,\n      options.errorCallback);\n  }\n  post(options: IRestPostOptions): Promise<any> {\n    return this.execute(\n      \"POST\",\n      options.url,\n      this.createHeaders(options),\n      options.increaseLoadingCount,\n      options.resultType || RestGetResultType.json,\n      !!options.includeResponseHeaders,\n      options.errorCallback,\n      options.data);\n  }\n  put(options: IRestPostOptions): Promise<any> {\n    return this.execute(\n      \"PUT\",\n      options.url,\n      this.createHeaders(options),\n      options.increaseLoadingCount,\n      options.resultType || RestGetResultType.json,\n      !!options.includeResponseHeaders,\n      options.errorCallback,\n      options.data);\n  }\n\n  getUrl(suffix: string): string {\n    return `${this.baseUrl}/${suffix}`;\n  }\n  getApiUrl(suffix: string): string {\n    return `${this.getUrl(Config.apiUrl)}/${suffix}`;\n  }\n  getWebApiUrl(suffix: string): string {\n    return `${this.getUrl(Config.webApiUrl)}/${suffix}`;\n  }\n  getWebSocketUrl(suffix: string): string {\n    let authToken = \"\";\n    if (this.getAuthorizationToken()) {\n      authToken = this.getAuthorizationToken();\n      authToken = encodeURIComponent(authToken);\n    }\n\n    let url = this.getUrl(Config.webSocketUrl);\n\n    const indexOf = url.indexOf(\"://\");\n    const prefix = url.startsWith(\"https\") ? \"wss\" : \"ws\";\n    url = prefix + url.substring(indexOf);\n\n    return `${url}/${suffix}?auth-token=${authToken}`;\n  }\n  getViewUrl(suffix: string): string {\n    let url = `${location.protocol}//${location.host}${location.pathname}`;\n\n    if (url.endsWith(\"/\")) {\n      url = url.substr(0, url.length - 1);\n    }\n    if (suffix) {\n      url += \"/\" + suffix;\n    }\n\n    return url;\n  }\n  setBaseUrl(url: string){\n    this.baseUrl = url;\n  }\n\n  private createHeaders(options?: IRestGetOptions | IRestDeleteOptions) {\n    const headers: any = {};\n\n    if (options && options[\"getOptions\"]) {\n      headers[\"X-GET-OPTIONS\"] = this.jsonService.stringify(options[\"getOptions\"]);\n    }\n\n    if (options && options.moduleId) {\n      headers[\"X-MODULE-ID\"] = options.moduleId;\n    }\n\n    headers[\"Content-Type\"] = \"application/json\";\n    headers[\"Accept\"] = \"application/json\";\n\n    if (this.getAuthorizationHeader) {\n      Object.assign(headers, this.getAuthorizationHeader());\n    }\n\n    return headers;\n  }\n  private async execute(\n    method: string,\n    url: string,\n    headers: any,\n    changeLoadingCount: boolean,\n    resultType: RestGetResultType,\n    includeResponseHeaders: boolean,\n    errorCallback: ErrorCallback,\n    body?: any): Promise<any> {\n    const client = new HttpClient();\n\n    if (body) {\n      if (typeof body !== \"string\" && !(body instanceof FormData)) {\n        body = this.jsonService.stringify(body);\n      }\n\n      if (body instanceof FormData) {\n        delete headers[\"Accept\"];\n        delete headers[\"Content-Type\"];\n      }\n    }\n\n    if (changeLoadingCount) {\n      this.loadingCount++;\n    }\n\n    let result: any;\n    try {\n      await this.checkGetOptions(headers);\n\n      const fetchResult = await client.fetch(url, {\n        method: method,\n        headers: headers,\n        body: body,\n      });\n\n      if (!fetchResult.ok) {\n        if (errorCallback && errorCallback(fetchResult)) {\n          return null;\n        }\n\n        if (fetchResult.status == 401) { //Unauthorized          \n          this.eventAggregator.publish(\"rest:unauthorized\", {\n            url: url\n          });\n\n          throw {\n            isHandled: true,\n            message: \"401\"\n          };\n        }\n\n        if (fetchResult.status == 403) { //Forbidden\n          throw {\n            isHandled: true,\n            message: \"403\"\n          };\n        } else if (fetchResult.status == 409) { //Conflict\n          const text = await fetchResult.text();\n\n          this.eventAggregator.publish(\"notify\", {\n            message: this.get409Message(text),\n            type: \"error\"\n          });\n\n          throw {\n            isHandled: true,\n            message: \"409\"\n          };\n        } else {\n          const text = await fetchResult.text();\n          throw new Error(text || fetchResult.statusText);\n        }\n      }\n\n      switch (resultType) {\n        case RestGetResultType.blob: {\n          result = await fetchResult.blob();\n          break;\n        }\n        default: {\n          result = await fetchResult.text();\n          result = this.jsonService.parse(result);\n          break;\n        }\n      }\n\n      if (includeResponseHeaders) {\n        result = {\n          headers: fetchResult.headers,\n          data: result\n        }\n      }\n    } catch (error) {\n      this.errorService.showAndLogError(error);\n      throw error;\n    } finally {\n      if (changeLoadingCount) {\n        this.loadingCount--;\n      }\n    }\n\n    return result;\n  }\n  private async checkGetOptions(headers: string[]): Promise<any> {\n    if (!headers[\"X-GET-OPTIONS\"]) {\n      return;\n    }\n\n    const getOptions = headers[\"X-GET-OPTIONS\"];\n    if (getOptions.length < 4000 && !this.hasNonAscii(getOptions)) {\n      return;\n    }\n\n    const client = new HttpClient();\n    delete headers[\"X-GET-OPTIONS\"];\n\n    const result = await client\n      .fetch(this.getApiUrl(\"Data/Options\"), {\n        method: \"POST\",\n        headers: headers,\n        body: getOptions\n      });\n\n    headers[\"X-GET-OPTIONS\"] = await result.text();\n  }\n  private hasNonAscii(text: string): boolean {\n    return !/^[\\u0000-\\u007f]*$/.test(text);\n  }\n  private get409Message(text: string): string {\n    if (text.substr(0, 1) == \"{\" && text.substr(text.length - 1, 1) == \"}\") {\n      const json = JSON.parse(text);\n      if (json.Message) {\n        return json.Message;\n      }\n    }\n\n    return text;\n  }\n}\n\ntype ErrorCallback = { (response: Response): boolean };\n\ninterface IRestOptions {\n  url: string;\n  moduleId?: string;\n  increaseLoadingCount?: boolean;\n  errorCallback?: ErrorCallback;\n}\ninterface IRestDeleteOptions extends IRestOptions {\n  id: any;\n  moduleId?: string;\n}\ninterface IRestGetOptions extends IRestOptions {\n  url: string;\n  getOptions?: IGetOptions;\n  resultType?: RestGetResultType;\n  includeResponseHeaders?: boolean;\n}\ninterface IRestPostOptions extends IRestGetOptions {\n  data: any;\n  increaseLoadingCount?: boolean;\n}\ninterface IGetOptions {\n  columns?: string[];\n  where?: any[];\n  totalSummary?: { selector: string; summaryType: string }[];\n  orderBy?: { columnName: string; sortOrder: number }[];\n  skip?: number;\n  take?: number;\n  selectDeleted?: boolean;\n  requireTotalCount?: boolean;\n  distinct?: boolean;\n  changedSince?: Date;\n  customs?: { key: string; value: any; }[];\n  searchText?: string;\n  maxRecords?: number;\n  expand?: { [key: string]: IGetOptions };\n}\nexport enum RestGetResultType {\n  json = 0,\n  blob = 1\n}\n","import {\n  autoinject,\n} from \"aurelia-framework\";\nimport {\n  EventAggregator\n} from \"aurelia-event-aggregator\";\n\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\nimport {\n  NotificationTyp\n} from \"../enumerations/export\";\n\n@autoinject\nexport class KonditionService {\n  private _konditionFeld;\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private rest: RestService\n  ) { \n    this.initializeSubscribers();\n  }\n\n  reload(): Promise<any> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Kalkulation/Konditionsfeld\")\n    }).then((r: any[]) => {\n      this._konditionFeld = {};\n\n      if (r == void 0 || r.length == 0) {\n        return;\n      }\n\n      r.forEach(i => {\n        this._konditionFeld[i.Id] = i;\n      });\n    });\n  }\n\n  getKonditionFeldById(idKonditionFeld: number): any {\n    return idKonditionFeld == void 0\n      ? null\n      : this._konditionFeld[idKonditionFeld];\n  }\n\n  getKalkulationInputItems(idKalkulationContainer: number): Promise<any[]> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Kalkulation/KalkulationInput\"),\n      getOptions: {\n        where: [\"IdKalkulationContainer\", idKalkulationContainer]\n      }\n    });\n  }\n  getKalkulationOutputItems(idKalkulationContainer: number): Promise<any[]> {\n    return this.rest.get({\n      url: this.rest.getWebApiUrl(\"ERP/Kalkulation/KalkulationOutput\"),\n      getOptions: {\n        where: [\"IdKalkulationContainer\", idKalkulationContainer]\n      }\n    });\n  }\n\n  private initializeSubscribers() {\n    this.eventAggregator\n      .subscribe(\n        NotificationTyp.konditionsfeldChanged,\n        this.reload.bind(this)\n      );\n  }\n}","import {\n  autoinject,\n  transient,\n  TaskQueue\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\nimport {\n  OnArtikelverleihAbholungEvent, OnArtikelverleihRueckgabeEvent\n} from \"../../../../framework-data/events\";\nimport {\n  FilialeService, LagerService\n} from \"../../../services/export\";\n\nimport * as moment from \"moment\";\n\n@autoinject\n@transient()\nexport class ArtikelverleihEditUtils {\n  constructor(\n    private _webEventService: WebEventService,\n    private _filialeService: FilialeService,\n    private _lagerService: LagerService,\n    private _taskQueue: TaskQueue\n  ) { }\n\n  form: FormBase;\n\n  doAbholen: ICommandData = {\n    id: \"doAbholen\",\n    idCategory: \"artikelverleih\",\n    title: \"artikelverleih.abholung\",\n    icon: \"sign-out\",\n    isVisibleExpression: \"!models.data.$m_Artikelverleih.IsAbgeholt && !models.data.$m_Artikelverleih.Status.Typ\",\n    execute: async () => {\n      this.form.models.data.$m_Artikelverleih.IsVorlaeufigeReservierung = false;\n      \n      const result = await this.form.saveIfDirty();\n      if (!result.isValid) {\n        return;\n      }\n\n      await this._webEventService\n        .execute(new OnArtikelverleihAbholungEvent({\n          IdArtikelverleih: this.form.models.data.$m_Artikelverleih.Id\n        }), true)\n        .then(() => {\n          this.form.models.reloadAll();\n        });\n  \n      this.form.models.reloadAll();\n    }\n  }\n  doRueckgabe: ICommandData = {\n    id: \"doRueckgabe\",\n    idCategory: \"artikelverleih\",\n    title: \"artikelverleih.rueckgabe\",\n    icon: \"sign-in\",\n    isVisibleExpression: \"models.data.$m_Artikelverleih.IsAbgeholt && !models.data.$m_Artikelverleih.Status.Typ\",\n    execute: async () => {\n      const result = await this.form.saveIfDirty();\n      if (!result.isValid) {\n        return;\n      }\n\n      const data: any = this.form.models.data.$m_Artikelverleih;\n\n      await this._webEventService\n        .execute(new OnArtikelverleihRueckgabeEvent({\n          IdArtikelverleih: data.Id\n        }), true)\n        .then(() => {\n          this.form.models.reloadAll();\n        });\n\n      this.form.models.reloadAll();\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const kunde = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_kunde'] .dx-searchbox input\");\n      if (!kunde) {\n        return;\n      }\n\n      kunde.focus();\n    };\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Artikelverleih\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Artikelverleih\"];\n          if (model) {\n            model.IdFiliale = await this._filialeService.getIdFilialeVorbelegung(args.value);\n\n            form.onEditorValueChanged.fire({\n              binding: {\n                dataContext: \"$m_Artikelverleih\",\n                bindTo: \"IdFiliale\"\n              },\n              value: model.IdFiliale\n            });\n          }\n        } else if (args.binding.bindTo === \"IdFiliale\") {\n          const model = form.models.data[\"$m_Artikelverleih\"];\n          if (model) {\n            model.IdLager = await this._lagerService.getIdLagerVorbelegung(args.value);\n          }\n        } else if (args.binding.bindTo == \"GeplanteRueckgabe\") {\n          if (args.value) {\n            const m = moment(args.value);\n            const hours = m.hours();\n            const minutes = m.minutes();\n\n            if (hours == 0 && minutes == 0) {\n              this._taskQueue.queueTask(() => {\n                form.models.data.$m_Artikelverleih.GeplanteRueckgabe = m.add(23, \"h\").add(59, \"minutes\").toDate();\n              });\n            }\n          }\n        }\n      }\n    });\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, ICommandData\n} from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from '../../../interfaces/export';\nimport { LocalizationService } from '../../../../framework/base/services/localization-service';\nimport { RestService } from '../../../../framework/base/services/rest-service';\nimport { LoadingService } from '../../../../framework/default-ui/services/loading-service';\nimport { LocationService } from '../../../../framework/base/services/location-service';\n\n@autoinject\n@transient()\nexport class NewsletterEmpfaengerEditUtils {\n\n  constructor(\n    private localization: LocalizationService,\n    private rest: RestService,\n    private loadingService: LoadingService,\n    private locationService: LocationService\n  ) { }\n\n  form: FormBase;\n\n  deleteSelectedCommand: ICommandData = {\n    id: \"deleteSelectedCommand\",\n    title: \"newsletter-empfaenger.markierte_loeschen\",\n    icon: \"times\",\n    execute: async () => {\n      const keys = this.getEmpfaengerGrid().instance.getSelectedRowKeys();\n      if (keys.length == 0) {\n        DevExpress.ui.notify(\n          this.localization.translateOnce(\"newsletter-empfaenger.no_empfaenger_markiert_zum_loeschen\"),\n          \"error\",\n          3000\n        );\n        return;\n      }\n\n      try {\n        this.loadingService.beginLoading();\n\n        for (let key of keys) {\n          await this.rest.delete({\n            url: this.rest.getWebApiUrl(\"ERP/Stammdaten/NewsletterEmpfaengerElement\"),\n            id: key\n          });\n        }\n\n        this.refreshPersonGrid();        \n      } finally {\n        this.loadingService.endLoading();\n      }\n    }\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.onReactivated.register(e => {\n      this.refreshPersonGrid();\n      return Promise.resolve();\n    })\n  }\n\n  onPersonClick(event) {\n    const idPerson = event.data.IdPerson;\n    if (!idPerson) {\n      return;\n    }\n\n    this.locationService.goTo({\n      url: `ERP/Stammdaten/Person/${idPerson}`,\n      currentViewModel: this.form\n    });\n  }\n\n  private getEmpfaengerGrid(): IdxDataGridComponent {\n    return this.form[\"r_ElementGrid\"];\n  }\n  private refreshPersonGrid() {\n    this.getEmpfaengerGrid().instance.refresh();\n  }\n}\n","\nimport { autoinject } from \"aurelia-framework\";\nimport { RestService } from \"../../framework/base/export\";\n\n@autoinject\nexport class LieferscheinService {\n  constructor(\n    private _restService: RestService\n  ) { }\n\n  async canAuftragMerge(auftrag: any): Promise<boolean> {\n    const whereOptions = [\n      [\"Lieferschein.IdKunde\", auftrag.IdKunde],\n      [\"Lieferschein.MergeKey\", auftrag.MergeKey],\n      [\"Lieferschein.Status.Typ\", 0]\n    ];\n\n    if (auftrag.IsStreckengeschaeft || auftrag.IsIcAuftrag) {\n      whereOptions.push([\"Auftragsposition.IdAuftrag\", auftrag.Id]);\n    }\n\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Verkauf/Lieferscheinposition\"),\n      getOptions: {\n        where: whereOptions\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n\n  async hasLieferscheingruppePositionenZugeteilt(idLieferscheingruppe){\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Verkauf/Lieferscheinposition`),\n      getOptions: {\n        where: [\"IdLieferscheingruppe\", idLieferscheingruppe]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, ICommandData\n} from \"../../../../framework/forms/export\";\nimport { IdxPopupComponent, IdxValidationGroup, IdxTextBoxComponent, IdxDataGridComponent } from '../../../interfaces/export';\nimport { WebEventService } from '../../../../framework/base/services/web-event-service';\nimport { OnCreateNewsletterEmpfaengerEvent } from '../../../../framework-data/events';\nimport { DataSourceService } from '../../../../framework/base/services/data-source-service';\nimport { LocalizationService } from '../../../../framework/base/services/localization-service';\nimport { LoadingService } from '../../../../framework/default-ui/services/loading-service';\nimport { AsyncService } from '../../../../framework/base/services/async-service';\nimport { EximService } from '../../../services/exim-service';\n\n@autoinject\n@transient()\nexport class PersonListUtils {\n  constructor(\n    private webEventService: WebEventService,\n    private dataSourceService: DataSourceService,\n    private localizationService: LocalizationService,\n    private loadingService: LoadingService,\n    private asyncService: AsyncService,\n    private eximService: EximService\n  ) { }\n\n  form: FormBase;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"$export\",\n    sortIndex: 50,\n    title: \"erp.export\",\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_personGrid\"];\n      await this.asyncService.convertToPromise(grid.instance.selectAll());\n      const keys = await this.asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n      grid.instance.clearSelection();\n\n      this.eximService.export(\"PersonExim\", keys);\n    }\n  };\n\n  newsletterEmpfErstellenCommand: ICommandData = {\n    id: \"newsletterEmpfErstellen\",\n    title: \"person.newsletter_empf_erstellen\",\n    sortIndex: 100,\n    idCategory: \"$export\",\n    icon: \"rocket\",\n    execute: async () => {\n      await this.asyncService.convertToPromise(this.getNewsletterEmpfPopup().instance.show());\n\n      const bezeichnungTextBox = this.getNewsletterEmpfBezeichnungTextBox();\n      bezeichnungTextBox.setOption({\n        \"value\": \"\"\n      });\n      bezeichnungTextBox.instance.focus();\n    }\n  };\n  newsletterEmpfErstellenExCommand: ICommandData = {\n    id: \"newsletterEmpfErstellenEx\",\n    title: \"base.save\",\n    icon: \"floppy-o\",\n    execute: async () => {\n      const r = this.getNewsletterEmpfValidationGroup().instance.validate();\n\n      if (!r.isValid) {\n        return;\n      }\n\n      try {\n        this.loadingService.beginLoading();\n\n        const grid = this.getPersonGrid();\n        await this.asyncService.convertToPromise(grid.instance.selectAll());\n        const keys = await this.asyncService.convertToPromise(grid.instance.getSelectedRowKeys());\n\n        grid.instance.clearSelection();\n\n        const bezeichnung = this.getNewsletterEmpfBezeichnungTextBox().instance.option(\"value\");\n\n        const args = new OnCreateNewsletterEmpfaengerEvent({\n          Bezeichnung: bezeichnung,\n          IdPersonList: keys\n        });\n\n        await this.webEventService.execute(args, true);\n\n        this.getNewsletterEmpfPopup().instance.hide();\n\n        DevExpress.ui.notify(\n          this.localizationService.translateOnce(\"person.newsletter_empf_erstellt\"),\n          \"success\",\n          3000);\n      } finally {\n        this.loadingService.endLoading();\n      }\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n\n  private getNewsletterEmpfPopup(): IdxPopupComponent {\n    return this.form[\"r_newsletterEmpf\"];\n  }\n  private getNewsletterEmpfBezeichnungTextBox(): IdxTextBoxComponent {\n    return this.form[\"r_newsletterEmpfBezeichnung\"];\n  }\n  private getNewsletterEmpfValidationGroup(): IdxValidationGroup {\n    return this.form[\"r_newsletterEmpfValidationGroup\"];\n  }\n  private getPersonGrid(): IdxDataGridComponent {\n    return this.form[\"r_personGrid\"];\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  CustomEvent\n} from \"../../base/export\";\nimport {\n  IFormAttachedEventArgs,\n  IFormCreatedEventArgs,\n  IFormBindEventArgs,\n  IFormUnbindEventArgs,\n  IFormReadyEventArgs,\n  IFormReactivatedEventArgs,\n  IFormDetachedEventArgs,\n  IFormValidatingEventArgs,\n  IFormExecuteCommandEventArgs,\n  IFormSavedEventArgs,\n  IFormSavingEventArgs,\n  IFormDeletedEventArgs\n} from \"../event-args/export\";\nimport { IFormDeletingEventArgs } from '../event-args/form-deleting';\n\n@autoinject\nexport class FormEventService {\n  constructor(\n    public onCreated: CustomEvent<IFormCreatedEventArgs>,\n    public onBind: CustomEvent<IFormBindEventArgs>,\n    public onUnbind: CustomEvent<IFormUnbindEventArgs>,\n    public onAttached: CustomEvent<IFormAttachedEventArgs>,\n    public onReady: CustomEvent<IFormReadyEventArgs>,\n    public onReactivating: CustomEvent<IFormReactivatedEventArgs>,\n    public onDetached: CustomEvent<IFormDetachedEventArgs>,\n    public onValidating: CustomEvent<IFormValidatingEventArgs>,\n    public onSaving: CustomEvent<IFormSavingEventArgs>,\n    public onSaved: CustomEvent<IFormSavedEventArgs>,\n    public onDeleting: CustomEvent<IFormDeletingEventArgs>,\n    public onDeleted: CustomEvent<IFormDeletedEventArgs>,\n    public onExecuteCommand: CustomEvent<IFormExecuteCommandEventArgs>\n  ) {}\n}\n","import * as Interfaces from \"../interfaces/export\";\nimport {\n  createOverrideContext,\n  OverrideContext,\n  Scope\n} from \"aurelia-framework\";\nimport {\n  Subscription\n} from \"aurelia-event-aggregator\";\nimport {\n  Models\n} from \"./models\";\nimport {\n  Functions\n} from \"./functions\";\nimport {\n  Commands\n} from \"./commands\";\nimport {\n  Variables\n} from \"./variables\";\nimport {\n  NestedForms\n} from \"./nested-forms\";\nimport {\n  EditPopups\n} from \"./edit-popups\";\nimport {\n  CommandServerData\n} from \"./command-server-data\";\nimport {\n  ToolbarService\n} from \"../services/toolbar-service\";\nimport {\n  CommandService\n} from \"../services/command-service\";\nimport {\n  WidgetCreatorService\n} from \"../widget-services/widget-creator-service\";\nimport {\n  BindingService,\n  CustomEvent,\n  ErrorService,\n  GlobalizationService,\n  LocalizationService,\n  RestService,\n  ScopeContainer\n} from \"../../base/export\";\nimport {\n  IFormAttachedEventArgs,\n  IFormActivateEventArgs,\n  IFormReadyEventArgs,\n  IFormReactivatedEventArgs,\n  IFormDetachedEventArgs,\n  IFormValidatingEventArgs,\n  IFormBindEventArgs,\n  IFormUnbindEventArgs,\n  IEditorValueChangedEventArgs,\n  IFormSavingEventArgs,\n  IFormSavedEventArgs,\n  IFormDeletedEventArgs\n} from \"../event-args/export\";\nimport {\n  FormBaseImport\n} from \"./form-base-import\";\nimport {\n  IValidationResult\n} from \"../interfaces/export\";\nimport {\n  IViewScrollInfo\n} from \"../../base/interfaces/export\";\nimport * as Toolbar from \"../elements/toolbar/export\";\nimport * as DxLoader from \"../../dx/dx-loader\";\nimport { IFormDeletingEventArgs } from '../event-args/form-deleting';\n\nexport class FormBase {\n  private _callOnBind: { (): void }[];\n  private _callOnCommandsLoaded: { (): void }[];\n  private _reloadEventAggregatorSubscription: Subscription;\n  private _beforeUnloadEventAggregatorSubscription: Subscription;\n  private _routerCurrentViewItemChangedSubscription: Subscription;\n\n  constructor(\n    public element: Element,\n    private formBaseImport: FormBaseImport\n  ) {\n    this._callOnBind = [];\n    this._callOnCommandsLoaded = [];\n\n    this.isEditPopup = element.getAttribute(\"is-edit-popup\") === \"true\";\n    this.isNestedForm = element.getAttribute(\"is-nested-form\") === \"true\";\n\n    this.rest = formBaseImport.rest;\n    this.widgetCreator = formBaseImport.widgetCreator;\n    this.command = formBaseImport.command;\n    this.toolbar = formBaseImport.toolbar;\n    this.models = formBaseImport.models;\n    this.variables = formBaseImport.variables;\n    this.nestedForms = formBaseImport.nestedForms;\n    this.editPopups = formBaseImport.editPopups;\n    this.functions = formBaseImport.functions;\n    this.commands = formBaseImport.commands;\n    this.binding = formBaseImport.binding;\n    this.globalization = formBaseImport.globalization;\n    this.localization = formBaseImport.localization;\n    this.commandServerData = formBaseImport.commandServerData;\n    this.error = formBaseImport.error;\n\n    this.onAttached = formBaseImport.onAttached;\n    this.onDetached = formBaseImport.onDetached;\n    this.onBind = formBaseImport.onBind;\n    this.onUnbind = formBaseImport.onUnbind;\n    this.onActivate = formBaseImport.onActivate;\n    this.onReady = formBaseImport.onReady;\n    this.onReactivated = formBaseImport.onReactivated;\n    this.onValidating = formBaseImport.onValidating;\n    this.onEditorValueChanged = formBaseImport.onEditorValueChanged;\n    this.onSaving = formBaseImport.onSaving;\n    this.onSaved = formBaseImport.onSaved;\n    this.onDeleting = formBaseImport.onDeleting;\n    this.onDeleted = formBaseImport.onDeleted;\n\n    this.models.registerForm(this);\n    this.variables.registerForm(this);\n    this.functions.registerForm(this);\n    this.commands.registerForm(this);\n    this.nestedForms.registerForm(this);\n    this.editPopups.registerForm(this);\n\n    this.focusFirstEnabledEditor = this.focusFirstEnabledEditorEx;\n    this.canGoBack = !this.isEditPopup\n      && !this.isNestedForm\n      && this.formBaseImport.router.viewStack.length > 1;\n\n    this.isCurrentForm = !this.isEditPopup\n      && !this.isNestedForm;\n  }\n\n  toolbarOptions: Toolbar.IToolbarOptions;\n  id: string;\n  moduleId: string;\n  title: string;\n  viewItemInfo: Interfaces.IViewItemModel;\n  viewScrollInfo: IViewScrollInfo;\n  viewUrl: string;\n\n  isEditPopup: boolean;\n  isNestedForm: boolean;\n\n  rest: RestService;\n  widgetCreator: WidgetCreatorService;\n  command: CommandService;\n  toolbar: ToolbarService;\n  binding: BindingService;\n  globalization: GlobalizationService;\n  localization: LocalizationService;\n  error: ErrorService;\n\n  models: Models;\n  variables: Variables;\n  nestedForms: NestedForms;\n  editPopups: EditPopups;\n  functions: Functions;\n  commands: Commands;\n  commandServerData: CommandServerData;\n\n  onAttached: CustomEvent<IFormAttachedEventArgs>;\n  onDetached: CustomEvent<IFormDetachedEventArgs>;\n  onActivate: CustomEvent<IFormActivateEventArgs>;\n  onBind: CustomEvent<IFormBindEventArgs>;\n  onUnbind: CustomEvent<IFormUnbindEventArgs>;\n  onReady: CustomEvent<IFormReadyEventArgs>;\n  onReactivated: CustomEvent<IFormReadyEventArgs>;\n  onValidating: CustomEvent<IFormValidatingEventArgs>;\n  onEditorValueChanged: CustomEvent<IEditorValueChangedEventArgs>;\n  onSaving: CustomEvent<IFormSavingEventArgs>;\n  onSaved: CustomEvent<IFormSavedEventArgs>;\n  onDeleting: CustomEvent<IFormDeletingEventArgs>;\n  onDeleted: CustomEvent<IFormDeletedEventArgs>;\n\n  scope: Scope;\n  scopeContainer: ScopeContainer;\n\n  owningView: any;\n  parent: FormBase;\n\n  canGoBack: boolean;\n  focusFirstEnabledEditor: { (): void };\n  isCurrentForm: boolean;\n\n  isBound: boolean;\n\n  callOnBind(callback: { (): void }) {\n    if (this._callOnBind) {\n      this._callOnBind.push(callback);\n    } else {\n      callback();\n    }\n  }\n  callOnCommandsLoaded(callback: { (): void }) {\n    if (this._callOnCommandsLoaded) {\n      this._callOnCommandsLoaded.push(callback);\n    } else {\n      callback();\n    }\n  }\n\n  async activate(viewItemInfo: Interfaces.IViewItemModel) {\n    this.viewItemInfo = viewItemInfo;\n\n    this.viewScrollInfo = viewItemInfo && viewItemInfo.viewScrollInfo\n      ? viewItemInfo.viewScrollInfo\n      : null;\n\n    let parameters = null;\n    if (viewItemInfo && viewItemInfo.routeInfo && viewItemInfo.routeInfo.parameters) {\n      parameters = viewItemInfo.routeInfo.parameters;\n\n      if (parameters.id) {\n        this.variables.data.$id = viewItemInfo.routeInfo.parameters.id;\n      }\n    }\n\n    return this.dispatchOnActivate(parameters);\n  }\n  created(owningView: any, myView: any) {\n    this.owningView = owningView;\n\n    if (myView\n      && myView.resources\n      && myView.resources.viewUrl) {\n      this.viewUrl = myView.resources.viewUrl;\n      this.moduleId = this.viewUrl\n        ? this.viewUrl.substr(0, this.viewUrl.lastIndexOf(\".\"))\n        : null;\n    }\n  }\n  async bind(bindingContext: any, overrideContext: OverrideContext) {\n    this.isBound = true;\n    this.parent = this.owningView.bindingContext;\n\n    this.scope = {\n      bindingContext: this,\n      overrideContext: createOverrideContext(this)\n    };\n    this.scopeContainer = new ScopeContainer(this.scope);\n\n    this.registerHasChangedData();\n    this.registerReloadEventAggregator();\n    this.registerEditorValueChanged();\n    this.registerRouterCurrentViewItemChanged();\n\n    this.formBaseImport.eventAggregator.publish(\"form:bind\", {\n      form: this\n    });\n\n    for (let i = 0; i < this._callOnBind.length; i++) {\n      this._callOnBind[i]();\n    }\n    this._callOnBind = null;\n\n    this.validateViewScrollInfo();\n\n    await this.dispatchOnBind();\n\n    this.loadCommands();\n\n    for (let i = 0; i < this._callOnCommandsLoaded.length; i++) {\n      this._callOnCommandsLoaded[i]();\n    }\n    this._callOnCommandsLoaded = null;\n\n    this.toolbarOptions = this.toolbar.createFormToolbarOptions(this);\n\n    return this.models.loadModelWithKeyId();\n  }\n  async attached() {\n    await this.dispatchOnAttached();\n\n    if (!this.isEditPopup) {\n      await this.dispatchOnReady();\n    }\n\n    this.formBaseImport.taskQueue.queueTask(() => {\n      this.formBaseImport.eventAggregator.publish(\"form:title-changed\", {\n        form: this\n      });\n    });\n  }\n  async detached() {\n    await this.dispatchOnDetached();\n  }\n  async unbind() {\n    this.isBound = false;\n\n    if (this._beforeUnloadEventAggregatorSubscription) {\n      this._beforeUnloadEventAggregatorSubscription.dispose();\n      this._beforeUnloadEventAggregatorSubscription = null;\n    }\n    if (this._reloadEventAggregatorSubscription) {\n      this._reloadEventAggregatorSubscription.dispose();\n      this._reloadEventAggregatorSubscription = null;\n    }\n    if (this._routerCurrentViewItemChangedSubscription) {\n      this._routerCurrentViewItemChangedSubscription.dispose();\n      this._routerCurrentViewItemChangedSubscription = null;\n    }\n\n    const args = {\n      form: this\n    };\n\n    await this.dispatchOnUnbind();\n    this.dispose();\n  }\n  handleChangedData(): Promise<boolean> {\n    if (this.models.hasChangedData()) {\n      return new Promise((resolve, reject) => {\n        this.formBaseImport.dialogConfirm.show({\n          message: this.localization.translateOnce(\"forms.confirm_unchanged_data\"),\n          title: this.localization.translateOnce(\"base.question\"),\n          buttons: [{\n            id: \"yes\",\n            text: this.localization.translateOnce(\"base.yes\"),\n            onClick: () => {\n              if (!this.canSave()) {\n                resolve(false);\n              } else if (!this.canSaveNow()) {\n                resolve(false);\n              } else {\n                this.save().then(r => {\n                  resolve(r.isValid);\n                });\n              }\n            }\n          }, {\n            id: \"no\",\n            text: this.localization.translateOnce(\"base.no\"),\n            onClick: () => {\n              resolve(true);\n            }\n          }, {\n            id: \"cancel\",\n            text: this.localization.translateOnce(\"base.cancel\"),\n            onClick: () => {\n              resolve(false);\n            }\n          }]\n        });\n      });\n    } else {\n      return Promise.resolve(true);\n    }\n  }\n  async reactivate(): Promise<any> {\n    await this.reloadIfServerHasNewVersion();\n\n    this.formBaseImport.eventAggregator.publish(\"form:title-changed\", {\n      form: this\n    });\n\n    await this.dispatchOnReactivated();\n  }\n\n  getFileDownloadUrl(key: string): string {\n    const url = this.binding.evaluate(this.scope, key);\n    if (!url) {\n      return \"\";\n    }\n\n    return this.formBaseImport.file.getDownloadUrl(url);\n  }\n  getFormsInclOwn(): FormBase[] {\n    return [this, ...this.nestedForms.getNestedForms()];\n  }\n\n  executeCommand(id: string, options?: Toolbar.IItemExecuteOptions) {\n    options = options || {\n      event: null\n    };\n\n    if (id === \"$command\") {\n      const commands = this.commands\n        .getCommands()\n        .filter(c =>\n          this.formBaseImport.command.isVisibleAndEnabled(c));\n\n      this.formBaseImport.formEvent.onExecuteCommand.fire({\n        form: this,\n        commands: commands,\n        allowGlobalCommands: !this.isEditPopup\n      });\n    } else {\n      const command = this.commands\n        .getCommands()\n        .find(i => i.id == id);\n\n      if (!command) {\n        return;\n      }\n\n      this.command.execute(this.scope, command, options);\n    }\n  }\n\n  createValidationResult(): IValidationResult {\n    return {\n      isValid: true,\n      messages: []\n    };\n  }\n  async validate(validationResult: IValidationResult, showErrorIfInvalid: boolean = true): Promise<any> {\n    const args: IFormValidatingEventArgs = {\n      form: this,\n      validationResult: validationResult\n    }\n\n    await this.dispatchOnValidating(args);\n\n    if (showErrorIfInvalid && validationResult.isValid == false) {\n      DevExpress.ui.notify(\n        validationResult.messages.length > 0\n          ? validationResult.messages[0]\n          : this.translate(\"base.validation_error\"),\n        \"ERROR\",\n        3000);\n    }\n\n    return validationResult;\n  }\n\n  canAdd(): boolean {\n    const mainModel = this.models.modelWithKeyId;\n    if (!mainModel) {\n      return false;\n    }\n\n    if (!this.formBaseImport.permission.canWebApiNew(mainModel.webApiAction, this.moduleId)) {\n      return false;\n    }\n\n    if (!this.models.allowNew(this.scopeContainer, mainModel)) {\n      return false;\n    }\n\n    return true;\n  }\n  async add(): Promise<any> {\n    if (!this.canAdd()) {\n      return;\n    }\n\n    const hasHandled = await this.handleChangedData();\n    if (!hasHandled) {\n      return;\n    }\n\n    this.loadById(\"0\");\n\n    this.formBaseImport.taskQueue.queueTask(() => {\n      this.focusFirstEnabledEditorGuarded();\n    });\n  }\n\n  canSave(): boolean {\n    return this\n      .getFormsInclOwn()\n      .some(i => i.models.getModels().some(m => {\n        if (!m.postOnSave) {\n          return false;\n        }\n        if (!this.models.canSave(m)) {\n          return false;\n        }\n\n        return true;\n      }));\n  }\n  canSaveNow(): boolean {\n    return this\n      .getFormsInclOwn()\n      .some(i => i.models.getModels().some(m => {\n        if (!m.postOnSave) {\n          return false;\n        }\n        if (!this.models.data[m.id] || this.models.data[m.id][m.keyProperty] === undefined) {\n          return false;\n        }\n        if (!this.models.allowSave(this.scopeContainer, m)) {\n          return false;\n        }\n\n        return true;\n      }));\n  }\n  async reloadIfServerHasNewVersion(): Promise<boolean> {\n    const m = this.models.modelWithKeyId;\n    if (!m\n      || !m.optimisticLockingEnabled\n      || !this.models.data[m.id]\n      || !this.models.data[m.id][m.keyProperty]\n      || this.models.data[m.id][\"OLV\"] == void (0)) {\n      return false;\n    }\n\n    const r = await this.rest.get({\n      url: `${this.rest.getWebApiUrl(m.webApiAction)}/${this.models.data[m.id][m.keyProperty]}`,\n      getOptions: {\n        columns: [\"OLV\"]\n      },\n      moduleId: this.moduleId\n    });\n\n    if (!r) {\n      return false;\n    }\n\n    const olv = r[\"OLV\"];\n    if (olv == this.models.data[m.id][\"OLV\"]) {\n      return false;\n    }\n\n    await this.models.reloadAll();\n    return true;\n  }\n  async saveIfDirty(): Promise<IValidationResult> {\n    this.formBaseImport.windowService.blurCurrentElement();\n\n    if (this.isNestedForm && this.parent instanceof FormBase) {\n      const r = await this.parent.saveIfDirty();\n      if (!r.isValid) {\n        return r;\n      }\n    }\n\n    if (!this.models.hasChangedData()) {\n      const validationResult = this.createValidationResult();\n\n      if (this.canSave() && this.canSaveNow()) {\n        await this.validate(validationResult, true);\n      }\n\n      return validationResult;\n    }\n\n    return this.save();\n  }\n  async save(): Promise<IValidationResult> {\n    if (this.rest.isLoading == true) {\n      return {\n        isValid: false,\n        messages: []\n      };\n    }\n\n    this.formBaseImport.windowService.blurCurrentElement();\n    const validationResult = this.createValidationResult();\n\n    if (!this.canSave() || !this.canSaveNow()) {\n      validationResult.isValid = false;\n      return Promise.resolve(validationResult);\n    }\n\n    await this.validate(validationResult, true);\n\n    if (validationResult.isValid) {\n      try {\n        await this.dispatchOnSaving();\n        await this.models.save();\n\n        DevExpress.ui.notify(\n          this.translate(\"base.save_success\"),\n          \"SUCCESS\",\n          3000);\n\n        this.setCurrentUrl();\n        this.dispatchOnSaved();\n      } catch (ex) {\n        validationResult.isValid = false;\n        return validationResult;\n      }\n    }\n\n    return validationResult;\n  }\n\n  canDeleteNow(): boolean {\n    return this\n      .getFormsInclOwn()\n      .some(i => i.models.getModels().some(m => {\n        if (!m.postOnSave) {\n          return false;\n        }\n        if (!this.models.data[m.id] || !this.models.data[m.id][m.keyProperty]) {\n          return false;\n        }\n        if (!this.models.allowDelete(this.scopeContainer, m)) {\n          return false;\n        }\n        if (!this.models.canDelete(m)) {\n          return false;\n        }\n\n        return true;\n      }));\n  }\n  async delete(): Promise<boolean> {\n    if (!this.canSave() || !this.canDeleteNow()) {\n      return false;\n    }\n\n    const deletingResult = await this.dispatchOnDeleting();\n    if (!deletingResult) {\n      return false;\n    }\n\n    await this.models.delete();\n    await this.dispatchOnDeleted();\n\n    return true;\n  }\n\n  translate(key: string): string {\n    return this.localization.translateOnce(key, this.scopeContainer);\n  }\n\n  loadById(id: string): void {\n    this.setCurrentUrl(id);\n\n    if (this.variables.data.$id == id) {\n      this.models\n        .loadModelWithKeyId();\n    }\n    else {\n      this.variables.data.$id = id;\n    }\n  }\n\n  async dispatchOnCreated() {\n    const args = {\n      form: this\n    };\n\n    this.formBaseImport.formEvent.onCreated.fire(args);\n  }\n  async dispatchOnActivate(parameters: any) {\n    await this.onActivate.fire({\n      form: this,\n      parameters: parameters\n    });\n  }\n  async dispatchOnBind() {\n    const args = {\n      form: this\n    };\n\n    await this.onBind.fire(args);\n    await this.formBaseImport.formEvent.onBind.fire(args);\n  }\n  async dispatchOnAttached() {\n    const args = {\n      form: this\n    };\n\n    await this.onAttached.fire(args);\n    await this.formBaseImport.formEvent.onAttached.fire(args);\n  }\n  async dispatchOnReady() {\n    const args = {\n      form: this\n    };\n\n    this.formBaseImport.taskQueue.queueMicroTask(async () => {\n      await this.onReady.fire(args);\n      await this.formBaseImport.formEvent.onReady.fire(args);\n\n      if (!this.isNestedForm) {\n        this.focusFirstEnabledEditorGuarded();\n      }\n    });\n  }\n  async dispatchOnReactivated() {\n    const args = {\n      form: this\n    };\n\n    await this.onReactivated.fire(args);\n    await this.formBaseImport.formEvent.onReactivating.fire(args);\n  }\n  async dispatchOnValidating(args: IFormValidatingEventArgs) {\n    await this.onValidating.fire(args);\n    await this.formBaseImport.formEvent.onValidating.fire(args);\n\n    const forms = this.nestedForms.getNestedForms();\n\n    for (let form of forms) {\n      await form.validate(args.validationResult, false);\n    }\n  }\n  async dispatchOnSaving() {\n    const args = {\n      form: this\n    };\n\n    await this.onSaving.fire(args);\n    await this.formBaseImport.formEvent.onSaving.fire(args);\n  }\n  async dispatchOnSaved() {\n    const args = {\n      form: this\n    };\n\n    await this.onSaved.fire(args);\n    await this.formBaseImport.formEvent.onSaved.fire(args);\n  }\n  async dispatchOnDeleting() {\n    const args = {\n      form: this,\n      cancel: false\n    };\n\n    await this.onDeleting.fire(args);\n\n    if (args.cancel) {\n      return false;\n    }\n\n    await this.formBaseImport.formEvent.onDeleting.fire(args);\n\n    if (args.cancel) {\n      return false;\n    }\n\n    return true;\n  }\n  async dispatchOnDeleted() {\n    const args = {\n      form: this\n    };\n\n    await this.onDeleted.fire(args);\n    await this.formBaseImport.formEvent.onDeleted.fire(args);\n  }\n  async dispatchOnDetached() {\n    const args = {\n      form: this\n    };\n\n    await this.onDetached.fire(args);\n    await this.formBaseImport.formEvent.onDetached.fire(args);\n  }\n  async dispatchOnUnbind() {\n    const args = {\n      form: this\n    };\n\n    await this.onUnbind.fire(args);\n    await this.formBaseImport.formEvent.onUnbind.fire(args);\n  }\n\n  focusFirstEnabledEditorGuarded() {\n    if (this.formBaseImport.browser.isTouch) {\n      return;\n    }\n\n    if (!this.focusFirstEnabledEditor) {\n      return;\n    }\n\n    this.focusFirstEnabledEditor();\n  }\n\n  protected addModel(model: Interfaces.IModel): void {\n    this.callOnBind(() => {\n      this.models.addInfo(model);\n    });\n  }\n  protected addVariable(variable: Interfaces.IVariable): void {\n    this.callOnBind(() => {\n      this.variables.addInfo(variable);\n    });\n  }\n  protected addCommandServerData(id: string, commandServerData: Interfaces.ICommandData): void {\n    this.callOnBind(() => {\n      this.commandServerData.add(id, commandServerData);\n    });\n  }\n  protected addCommand(command: Interfaces.ICommand): void {\n    this.callOnBind(() => {\n      this.commands.addInfo(command);\n    });\n  }\n  protected addFunction(id: string, functionInstance: any, namespace: string, customParameter?: any): void {\n    if (functionInstance.registerForm) {\n      functionInstance.registerForm(this);\n    }\n\n    this.callOnBind(() => {\n      this.functions.add(id, functionInstance, namespace, customParameter);\n    });\n  }\n  protected addNestedForm(id: string, mappings: Interfaces.IMapping[]): void {\n    this.callOnBind(() => {\n      this.nestedForms.addInfo(id, mappings);\n    });\n  }\n  protected addEditPopup(editPopup: Interfaces.IEditPopup): void {\n    this.callOnBind(() => {\n      this.editPopups.addInfo(editPopup);\n    });\n  }\n  protected addMapping(mapping: Interfaces.IMapping): void {\n  }\n  protected submitForm(commandExpression: string, options?: Toolbar.IItemExecuteOptions): void {\n    const command: Interfaces.ICommandData = this.binding.evaluate(this.scope, commandExpression);\n    if (!command || !command.execute) {\n      return;\n    }\n\n    this.command.execute(this.scope, command, options);\n  }\n  protected onConstructionFinished(): void {\n    this.dispatchOnCreated();\n  }\n\n  private loadCommands() {\n    if (!this.isNestedForm) {\n      this.commands.addCommand(this.formBaseImport.defaultCommands.getFormGoBackCommand(this));\n\n      if (this.isEditPopup) {\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getFormAddCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getFormSaveCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getEditPopupSaveAndCloseCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getEditPopupSaveAndAddCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getEditPopupDeleteCommand(this));\n\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getScrollDown(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getScrollUp(this));\n      } else {\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getFormAddCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getFormSaveCommand(this));\n        this.commands.addCommand(this.formBaseImport.defaultCommands.getFormDeleteCommand(this));\n\n        if (this.viewScrollInfo) {\n          this.commands.addCommand(this.formBaseImport.defaultCommands.getScrollDown(this));\n          this.commands.addCommand(this.formBaseImport.defaultCommands.getScrollUp(this));\n        }\n      }\n    }\n\n    if (this.isEditPopup) {\n      this.commands.addCommand(this.formBaseImport.defaultCommands.getClosePopupCommand());\n    }\n  }\n  private setCurrentUrl(id: string = null): void {\n    if (this.isEditPopup || this.isNestedForm) {\n      return;\n    }\n\n    if (id == void (0)) {\n      const mainModel = this.models.modelWithKeyId;\n      if (!mainModel) {\n        return;\n      }\n\n      const data = this.models.data[mainModel.id];\n      if (!data) {\n        return;\n      }\n\n      const key = data[mainModel.keyProperty];\n      if (key == void (0)) {\n        return;\n      }\n\n      id = key;\n    }\n\n    const currentUrl = this.formBaseImport.history.getUrl();\n    const currentRoute = this.formBaseImport.router.getRoute(currentUrl);\n\n    if (!currentRoute) {\n      return;\n    }\n\n    const newUrl = this.formBaseImport.router.constructUrl(currentRoute.route, {\n      id: id\n    });\n\n    this.formBaseImport.history.setUrlWithoutNavigation(newUrl, true);\n  }\n  private focusFirstEnabledEditorEx() {\n    const elements = Array.from(this.element.querySelectorAll(\".dx-texteditor\"));\n\n    for (let element of elements) {\n      let cancelCurrent = false;\n      let parent = element.parentElement;\n      while (parent && parent != this.element) {\n        if (parent.classList.contains(\"dx-popup\")) {\n          cancelCurrent = true;\n          break;\n        }\n        parent = parent.parentElement;\n      }\n\n      if (cancelCurrent) {\n        continue;\n      }\n\n      const name = element.parentElement.getAttribute(\"name\");\n      if (!name) {\n        continue;\n      }\n\n      const instance = DxLoader.getInstance(name, element);\n      if (!instance || !instance.focus) {\n        continue;\n      }\n\n      const tabIndex = instance.option(\"tabIndex\");\n      const isDisabled = instance.option(\"disabled\");\n\n      if ((tabIndex && tabIndex < 0) || isDisabled) {\n        continue;\n      }\n\n      instance.focus();\n      return;\n    }\n  }\n\n  private registerHasChangedData() {\n    this._beforeUnloadEventAggregatorSubscription = this.formBaseImport.eventAggregator.subscribe(\"window:beforeunload\", e => {\n      e.hasChangedData = e.hasChangedData || this.models.hasChangedData();\n    });\n  }\n  private registerReloadEventAggregator() {\n    this._reloadEventAggregatorSubscription = this.formBaseImport.eventAggregator.subscribe(\n      \"data:reload\",\n      (data) => {\n        if (!data) {\n          return;\n        }\n\n        const id = data.Id;\n        const action = data.Action;\n\n        if (!id || !action) {\n          return;\n        }\n\n        const modelWithKeyId = this.models.modelWithKeyId;\n\n        //Wenn ein Model mit Key-ID existiert, dann wird nur spezifisch darauf geprüft\n        if (modelWithKeyId) {\n          if (!modelWithKeyId || modelWithKeyId.webApiAction != action) {\n            return;\n          }\n\n          const modelData = this.models.data[modelWithKeyId.id];\n          if (modelData == null || modelData[modelWithKeyId.keyProperty] != id) {\n            return;\n          }\n\n          this.models.reloadAll();\n        } else {\n          this.models\n            .getModels()\n            .filter(model => !model.key && model.webApiAction == action)\n            .forEach(model => this.models.onLoadRequired.fire({\n              model: model\n            }));\n        }\n      }\n    );\n  }\n  private registerEditorValueChanged() {\n    this.onEditorValueChanged.register((e) => {\n      if (!e.binding || !e.binding.dataContext) {\n        return Promise.resolve();\n      }\n\n      const model = this.models.getInfo(e.binding.dataContext, false);\n      if (model) {\n        this.models.setDataChanged(model);\n      }\n\n      return Promise.resolve();\n    });\n  }\n  private registerRouterCurrentViewItemChanged() {\n    if (this.isEditPopup || this.isNestedForm) {\n      return;\n    }\n\n    this._routerCurrentViewItemChangedSubscription = this.formBaseImport.eventAggregator.subscribe(\"router:current-view-item-changed\", e => {\n      this.canGoBack = e.currentViewItem.model == this.viewItemInfo\n        && this.formBaseImport.router.viewStack.length > 1;\n\n      this.isCurrentForm = e.currentViewItem.model == this.viewItemInfo;\n    });\n  }\n  private validateViewScrollInfo() {\n    if (!this.viewScrollInfo) {\n      return;\n    }\n    if (this.viewScrollInfo.resultKeyResolver) {\n      return;\n    }\n    if (this.viewScrollInfo.getNextKey) {\n      return;\n    }\n\n    const model = this.models.modelWithKeyId;\n    const isSameUrl = model\n      && model.webApiAction\n      && this.rest.getWebApiUrl(model.webApiAction) == this.viewScrollInfo.lastLoadInfo.url\n\n    if (!isSameUrl) {\n      this.viewScrollInfo = null;\n    }\n  }\n\n  private dispose() {\n    this.scopeContainer.disposeAll();\n    this.scope = null;\n\n    this.formBaseImport.dispose();\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  OnPeriodeRequest,\n  OnPeriodeRequestEvent\n} from \"../../framework-data/events\";\nimport {\n  RestService,\n  WebEventService\n} from \"./../../framework/base/services/export\";\nimport * as moment from \"moment\";\nimport { StatusService } from './status-service';\n\n@autoinject\nexport class AuftragService {\n  constructor(\n    private _restService: RestService,\n    private _webEventService: WebEventService,\n    private _statusService: StatusService) { }\n\n  async getLieferdatum(idAuftragsart: number, current: Date): Promise<Date> {\n    if (!idAuftragsart) {\n      return current;\n    }\n\n    const auftragsart = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Auftragsart/${idAuftragsart}`),\n      getOptions: {\n        columns: [\"VorbelegungLieferdatumPeriode\"]\n      }\n    });\n\n    if (!auftragsart || !auftragsart[\"VorbelegungLieferdatumPeriode\"]) {\n      return current;\n    }\n\n    const result: OnPeriodeRequest = await this._webEventService.execute(new OnPeriodeRequestEvent({\n      Datum: moment().startOf(\"day\").toDate(),\n      Periode: auftragsart[\"VorbelegungLieferdatumPeriode\"]\n    }));\n\n    if (!result) {\n      return current;\n    }\n\n    return result.Ergebnis;\n  }\n\n  onLieferdatumCellPrepared(e): void {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.Lieferdatum || !e.data._LieferdatumTyp) {\n      return;\n    }\n\n    if (e.data.IdStatus) {\n      if (!this._statusService.isOffen(e.data.IdStatus)) {\n        return;\n      }\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n\n    cell.style.backgroundColor = this.getLieferdatumTypFarbe(e.data._LieferdatumTyp);\n    cell.style.color = \"white\";\n  }\n\n  private getLieferdatumTypFarbe(typ): string {\n    switch (typ) {\n      case 1: {\n        return \"#C0392B\";\n      }\n      case 2: {\n        return \"#F39C12\";\n      }\n      default: {\n        return \"\";\n      }\n    }\n  }\n\n  async getAuftragspositionByIdIcBestellungsposition(idBestellungsposition) {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Verkauf/Auftragsposition\"),\n      getOptions: {\n        where: [\"IdIcBestellungsposition\", idBestellungsposition]\n      }\n    });\n\n    if (!r || r.length === 0) {\n      return null;\n    }\n\n    return r[0];\n  }\n\n  async hasAuftragsgruppePositionenZugeteilt(idAuftragsgruppe){\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Verkauf/Auftragsposition`),\n      getOptions: {\n        where: [\"IdAuftragsgruppe\", idAuftragsgruppe]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n}\n\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  OnPeriodeRequest,\n  OnPeriodeRequestEvent\n} from \"../../framework-data/events\";\nimport { \n  RestService,\n  WebEventService\n} from \"./../../framework/base/services/export\";\nimport * as moment from \"moment\";\n\n@autoinject\nexport class AngebotService {\n  constructor(\n    private rest: RestService,\n    private webEvent: WebEventService\n  ) { }\n\n  async getGueltigBis(idAngebotsart: number, current: Date): Promise<Date> {\n    if (!idAngebotsart) {\n      return current;\n    }\n\n    const angebotsart = await this.rest.get({\n      url: this.rest.getWebApiUrl(`ERP/Stammdaten/Angebotsart/${idAngebotsart}`),\n      getOptions: {\n        columns: [\"VorbelegungGueltigBisPeriode\"]\n      }\n    });\n\n    if (!angebotsart || !angebotsart[\"VorbelegungGueltigBisPeriode\"]) {\n      return current;\n    }\n\n    const result: OnPeriodeRequest = await this.webEvent.execute(new OnPeriodeRequestEvent({\n      Datum: moment().startOf(\"day\").toDate(),\n      Periode: angebotsart[\"VorbelegungGueltigBisPeriode\"]\n    }));\n\n    if (!result) {\n      return current;\n    }\n\n    return result.Ergebnis;\n  }\n\n  async hasAngebotsgruppePositionenZugeteilt(idAngebotsgruppe){\n    const r = await this.rest.get({\n      url: this.rest.getWebApiUrl(`ERP/Verkauf/Angebotsposition`),\n      getOptions: {\n        where: [\"IdAngebotsgruppe\", idAngebotsgruppe]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return Promise.resolve(true);\n    } else {\n      return Promise.resolve(false);\n    }\n  }\n}\n","export default __webpack_public_path__ + \"fa1cfb0e4ecd7f9555799d5973522501.jpg\";","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../framework/base/export\";\n\n@autoinject\nexport class FilialeService {\n  constructor(\n    private _restService: RestService) { }\n\n  async getIdFilialeVorbelegung(idFirma: number): Promise<number> {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/Filiale\"),\n      getOptions: {\n        columns: [\"Id\"],\n        where: [[\"IdFirma\", idFirma], [\"IsVorbelegung\", true]]\n      }\n    });\n\n    if (r && r.length > 0) {\n      return r[0].Id;\n    } else {\n      return null;\n    }\n  }\n\n  async getWaehrungIdOfFiliale(idFiliale: number): Promise<number> {\n    const r = await this._restService.get({\n      url: this._restService.getWebApiUrl(`ERP/Stammdaten/Filiale/${idFiliale}`)\n    });\n\n    if (r) {\n      return r.IdWaehrung;\n    } else {\n      return null;\n    }\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport { RestService } from './rest-service';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class PermissionService {\n  private _permissionInfo: any = {};\n\n  constructor(\n    private restService: RestService,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  allowAllPermission: boolean = false;\n\n  async loadPermissions() {\n    const result = await this.restService.get({\n      url: this.restService.getApiUrl(\"Data/Permission\")\n    });\n\n    const permissionInfo = {};\n    for (let item of result) {\n      permissionInfo[item.WebApiAction] = item;\n    }\n\n    this._permissionInfo = permissionInfo;\n  }\n\n  canWebApiNew(webApiAction: string, moduleId?: string): boolean {\n    return this.canWebApi(webApiAction, \"CanNew\", moduleId);\n  }\n  canWebApiModify(webApiAction: string, moduleId?: string): boolean {\n    return this.canWebApi(webApiAction, \"CanModify\", moduleId);\n  }\n  canWebApiDelete(webApiAction: string, moduleId?: string): boolean {\n    return this.canWebApi(webApiAction, \"CanDelete\", moduleId);\n  }\n\n  private canWebApi(webApiAction: string, property: string, moduleId?: string): boolean {\n    if (this.allowAllPermission) {\n      return true;\n    }\n\n    const args = {\n      webApiAction,\n      property,\n      moduleId,\n      hasAccess: null\n    }\n\n    this.eventAggregator.publish(\"permission:has-access\", args);\n\n    if (args.hasAccess != void(0)) {\n      return args.hasAccess;\n    }\n\n    if (!this._permissionInfo[webApiAction]) {\n      return false;\n    }\n\n    return this._permissionInfo[webApiAction][property];\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase,\n  PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport {\n  OnInventurVerbuchenEvent\n} from \"../../../../framework-data/events\";\nimport {\n  WebEventService\n} from \"../../../../framework/base/export\";\n\nimport {\n  EntitaetInfoService, VerknuepfteEntitaetService\n} from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class BenachrichtigungEditUtils {\n  constructor(\n    private entitaetInfo: EntitaetInfoService,\n    private popupInfo: PopupInfoService,\n    private verknuepfteEntitaet: VerknuepfteEntitaetService,\n    private webEvent: WebEventService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.models.onLoaded.register(r => {\n      if (r == void 0 || r.model.id != \"$m_Benachrichtigung\" || r.data == void 0) {\n        return;\n      }\n\n      this.verknuepfteEntitaetCommand.isVisible = this.form.models.data.$m_Benachrichtigung.IdVerknuepfteEntitaet != void 0;\n\n      this.doBenachrichtigungGelesen.isVisible = this.form.models.data.$m_Benachrichtigung.Id != void 0\n        && !this.form.models.data.$m_Benachrichtigung.IsGelesen;\n\n      return Promise.resolve();\n    });\n  }\n\n  verknuepfteEntitaetCommand: ICommandData = {\n    id: \"verknuepfteEntitaet\",\n    idCategory: \"benachrichtigung\",\n    title: \"benachrichtigung.verknuepfte-entitaet-command-text\",\n    icon: \"link\",\n    sortIndex: 99,\n    isVisible: false,\n    execute: this.onVerknuepfteEntitaetCommandClicked.bind(this)\n  }\n\n  doBenachrichtigungGelesen: ICommandData = {\n    id: \"doBenachrichtigungGelesen\",\n    idCategory: \"benachrichtigung\",\n    title: \"benachrichtigung.gelesen-command-text\",\n    icon: \"check\",\n    isVisible: false,\n    execute: this.doGelesen.bind(this)\n  }\n\n  async onVerknuepfteEntitaetCommandClicked(e) {\n    const idVerknuepfteEntitaet = this.form.models.data.$m_Benachrichtigung.IdVerknuepfteEntitaet;\n    if (!idVerknuepfteEntitaet) {\n      return;\n    }\n\n    await this.popupInfo.closeAllPopups();\n\n    this.verknuepfteEntitaet\n      .goTo(idVerknuepfteEntitaet, true);\n  }\n\n  private async doGelesen() {\n    this.form.models.data.$m_Benachrichtigung.IsGelesen = true;\n    await this.form.save();\n\n    if (this.form.isEditPopup) {\n      this.popupInfo.closeCurrentPopup();\n    }\n  }\n}\n","export * from \"./file-uploader-with-viewer/tip-file-uploader-with-viewer\";\nexport * from \"./list-view/list-view\";\nexport * from \"./toolbar/toolbar\";\nexport * from \"./code-editor/code-editor\";\nexport * from \"./custom-edit-popup/custom-edit-popup\";\n","export enum HeaderCommandEvent{  \n  //TODO ()\n  onShowingPopover = \"onShowingPopover\"\n}","import * as moment from \"moment\";\nimport {\n  autoinject\n} from \"aurelia-framework\";\n\ndeclare const DevExpress: any;\n\n@autoinject\nexport class GlobalizationService {\n  private groupRegex = /\\B(?=(\\d{3})+(?!\\d))/g;\n  private escapeRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n  private current: IGlobalizationProvider;\n  private formatters = {};\n  private parsers = {};\n\n  constructor() {\n    this.setProvider(new GermanGlobalizationProvider());\n  }\n\n  setProvider(provider: IGlobalizationProvider) {\n    this.current = provider;\n    this.formatters = {};\n    this.parsers = {};\n\n    const devExpress = this.getDevExpress();\n    if (devExpress) {\n      devExpress.integration.date.inject({\n        getMonthNames: (format) => {\n          if (format == \"abbreviated\") {\n            return provider.monthsShort;\n          } else {\n            return provider.months;\n          }\n        },\n        getDayNames: (format) => {\n          if (format == \"abbreviated\") {\n            return provider.daysShort;\n          } else {\n            return provider.days;\n          }\n        }\n      })\n    }\n  }\n\n  format(value: any, format: string) {\n    return this.getFormatter(format)(value);\n  }\n  getFormatter(format: string) {\n    let formatter = this.formatters[format];\n\n    if (formatter == void (0)) {\n      formatter = (value: any) => {\n        if (value == void (0)) {\n          return null;\n        }\n\n        if (format.length === 1 || format.startsWith(\"DT_\")) {\n          const momentFormat = format.startsWith(\"DT_\")\n            ? format.substr(3)\n            : this.current[format];\n\n          return moment(value).locale(this.current.culture).format(momentFormat);\n        } else {\n          const count = parseInt(format.substr(1)) || 0;\n          const formatClass = format.substr(0, 1);\n\n          if (formatClass === \"p\") {\n            value = value * 100;\n          }\n\n          const prefix = value < 0 \n            ? \"-\" \n            : \"\";\n\n          const valueInt = parseInt(value = Math.abs(Number(value) || 0).toFixed(count));\n          const valueIntAsString = String(valueInt);\n          \n          let groupRest;\n          groupRest = (groupRest = valueIntAsString.length) > 3 ? groupRest % 3 : 0;\n\n          return prefix \n            + (groupRest ? valueIntAsString.substr(0, groupRest) + this.current.groupSeparator : \"\") \n            + valueIntAsString.substr(groupRest).replace(/(\\d{3})(?=\\d)/g, \"$1\" + this.current.groupSeparator)\n            + (count ? this.current.commaSeparator + Math.abs(value - valueInt).toFixed(count).slice(2) : \"\")\n            + (formatClass === \"p\" ? \" %\" : \"\");\n        }\n      };\n\n      this.formatters[format] = formatter;\n    }\n\n    return formatter;\n  }\n  getParser(format: string) {\n    let parser = this.parsers[format];\n\n    if (parser == void (0)) {\n      parser = (value: string) => {\n        if (value == void (0)) {\n          return null;\n        }\n\n        if (format.length === 1 || format.startsWith(\"DT_\")) {\n          const momentFormat = format.startsWith(\"DT_\")\n            ? format.substr(3)\n            : this.current[format];\n\n          let result: moment.Moment = null;\n\n          if (value === \" \") {\n            result = moment().startOf(\"day\");\n          } else if (value.startsWith(\"+\") || value.startsWith(\"-\")) {\n            const numberAsStr = value.substr(1);\n            const numb = parseInt(numberAsStr);\n            if (isNaN(numb)) {\n              return null;\n            }\n\n            const isSubstract = value.startsWith(\"-\");\n            if (isSubstract) {\n              result = moment().startOf(\"day\").subtract(numb, \"days\");\n            } else {\n              result = moment().startOf(\"day\").add(numb, \"days\");\n            }\n          } else {\n            result = moment(value, momentFormat);\n          }\n\n          if (result.isValid()) {\n            return result.toDate();\n          } else {\n            return null;\n          }\n        } else {\n          const groupFinder = this.current.groupSeparator.replace(this.escapeRegex, \"\\\\$&\");\n          value = value\n            .replace(new RegExp(groupFinder, \"g\"), \"\")\n            .replace(new RegExp(\"%\", \"g\"), \"\")\n            .replace(new RegExp(\" \", \"g\"), \"\");\n\n          const indexOf = value.indexOf(this.current.commaSeparator);\n\n          let b = value;\n          let a = \"\";\n          if (indexOf >= 0) {\n            b = value.substr(0, indexOf);\n            a = value.substr(indexOf + 1);\n          }\n\n          const count = parseInt(format.substr(1));\n          const formatClass = format.substr(0, 1);\n\n          switch (formatClass) {\n            case \"f\":\n            case \"n\": {\n              return parseInt(b) + this.makeComma(a);\n            }\n            case \"p\": {\n              return (parseInt(b) + this.makeComma(a)) / 100;\n            }\n            default: {\n              throw new Error(`Not implemented format ${format}`);\n            }\n          }\n        }\n      };\n\n      this.parsers[format] = parser;\n    }\n\n    return parser;\n  }\n  getFormatterParser(format: string): any {\n    return {\n      formatter: this.getFormatter(format),\n      parser: this.getParser(format)\n    };\n  }\n  getNumberFormat(format: string): string {\n    if (format.length < 2) {\n      throw new Error(`Invalid number format ${format}`);\n    }\n\n    const f = format.substr(0, 1);\n    const n = parseInt(format.substr(1));\n\n    let nk = \"\";\n    if (n > 0) {\n      nk = \".\" + \"0\".repeat(n);\n    }\n\n    switch (f) {\n      case \"f\":\n      case \"F\": {\n        return `#0${nk}`;\n      }\n      case \"n\":\n      case \"N\": {\n        return `#,##0${nk}`;\n      }\n      case \"p\":\n      case \"P\": {\n        return `#,##0${nk} %`;\n      }\n      default: {\n        throw new Error(`Invalid number format ${format}`);\n      }\n    }\n  }\n\n  private getDevExpress(): any {\n    const w: any = window;\n    return w.DevExpress;\n  }\n  private makeComma(value: string) {\n    return parseInt(value) / Math.pow(10, value.length);\n  }\n}\n\nexport interface IGlobalizationProvider {\n  culture: string;\n\n  d: string;\n  D: string;\n  e: string;\n  E: string;\n  f: string;\n  F: string;\n  g: string;\n  G: string;\n  t: string;\n  T: string;\n\n  commaSeparator: string;\n  groupSeparator: string;\n\n  months: string[];\n  monthsShort: string[];\n  days: string[];\n  daysShort: string[];\n}\n\nexport class GermanGlobalizationProvider implements IGlobalizationProvider {\n  culture = \"de\";\n\n  d = \"DD.MM.YYYY\";\n  D = \"dddd, DD. MMM YYYY\";\n  e = \"dd., DD.MM.YYYY\";\n  E = \"dd., DD.MM.YYYY HH:mm\";\n  f = \"dddd, DD. MMM YYYY, HH:mm\";\n  F = \"dddd, DD. MMM yyyy, HH:mm:ss\";\n  g = \"DD.MM.YYYY HH:mm\";\n  G = \"DD.MM.YYYY HH:mm:ss\";\n  t = \"HH:mm\";\n  T = \"HH:mm:ss\"\n\n  commaSeparator = \",\";\n  groupSeparator = \".\";\n\n  months = [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"];\n  monthsShort = [\"Jan.\", \"Feb.\", \"März\", \"Apr.\", \"Mai\", \"Juni\", \"Juli\", \"Aug.\", \"Sep.\", \"Okt.\", \"Nov.\", \"Dez.\"];\n  days = [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"];\n  daysShort = [\"SO\", \"MO\", \"DI\", \"MI\", \"DO\", \"FR\", \"SA\"]\n}\n","export enum StuecklisteFaktorTyp{\n  ProFW = 0,\n  ProProduktion = 1\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  ICommandData,\n  FormBase,\n  TipFileUploaderWithViewer\n} from \"../../../../framework/forms/export\";\nimport {\n  WebEventService, LocalizationService\n} from \"../../../../framework/base/export\";\nimport {\n  OnCreateFibuSyncJobsEvent,\n  OnCreateFibuSyncJobs,\n  OnImportFibuOPListeEvent,\n  OnCreateFibuPersonenkontenEvent\n} from \"../../../../framework-data/events\";\nimport { IdxPopupComponent, IdxDateBoxComponent, IdxSelectBoxComponent } from '../../../interfaces/export';\n\n\n@autoinject\n@transient()\nexport class FibuSyncJobListUtils {\n  constructor(\n    private webEvent: WebEventService,\n    private localizationService: LocalizationService\n  ) { }\n\n  form: FormBase;\n\n  bind(form: FormBase) {\n    this.form = form;\n  }\n\n  showSynchronsierenPopupCommand: ICommandData = {\n    id: \"showSynchronsierenPopup\",\n    idCategory: \"fibu-sync-job\",\n    title: \"fibu-sync-job.do_synchronisieren\",\n    sortIndex: 10,\n    icon: \"refresh\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_fibuSyncFilterPopup\"];\n      popup.instance.show();\n\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_fibuSyncFirma\"];\n      if (selectBox) {\n        const dataSource = selectBox.instance.getDataSource();\n        await dataSource.reload();\n\n        if (dataSource.items().length == 1) {\n          selectBox.setOption({\n            value: dataSource.items()[0].Id\n          });\n        }\n      }\n    }\n  }\n  showExportPersonenkontenPopupCommand: ICommandData = {\n    id: \"doExportPersonenkonten\",\n    title: \"fibu-sync-job.do_export_personenkonten\",\n    idCategory: \"fibu-sync-job\",\n    sortIndex: 11,\n    icon: \"users\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_exportPersonenkontenPopup\"];\n      popup.instance.show();\n\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_exportPFirma\"];\n      if (selectBox) {\n        const dataSource = selectBox.instance.getDataSource();\n        await dataSource.reload();\n\n        if (dataSource.items().length == 1) {\n          selectBox.setOption({\n            value: dataSource.items()[0].Id\n          });\n        }\n      }\n    }\n  }\n  showOffenePostenImportPopupCommand: ICommandData = {\n    id: \"showOffenePostenImportPopup\",\n    title: \"fibu-sync-job.do_op_import\",\n    idCategory: \"fibu-sync-job\",\n    sortIndex: 12,\n    icon: \"upload\",\n    execute: async () => {\n      const fileUploader: TipFileUploaderWithViewer = this.form[\"r_impOPListe\"];\n      if (fileUploader) {\n        fileUploader.setValue(null);\n        fileUploader.downloadUrl = null;\n      }\n\n      const popup: IdxPopupComponent = this.form[\"r_importOPPopup\"];\n      popup.instance.show();\n\n      const selectBox: IdxSelectBoxComponent = this.form[\"r_impOPFirma\"];\n      if (selectBox) {\n        const dataSource = selectBox.instance.getDataSource();\n        await dataSource.reload();\n\n        if (dataSource.items().length == 1) {\n          selectBox.setOption({\n            value: dataSource.items()[0].Id\n          });\n        }\n      }\n    }\n  }\n  \n  doSynchronisierenCommand: ICommandData = {\n    id: \"doSynchronisieren\",\n    title: \"fibu-sync-job.do_synchronisieren\",\n    icon: \"refresh\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_fibuSyncFilterPopup\"];\n      const dateBox: IdxDateBoxComponent = this.form[\"r_datumBis\"];\n      const firmaSelectBox: IdxSelectBoxComponent = this.form[\"r_fibuSyncFirma\"];\n\n      const idFirma = firmaSelectBox.instance.option(\"value\");\n      if (!idFirma) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"fibu-sync-job.firma_auswaehlen\"), \"error\", 3000);\n        return;\n      }\n \n      const webEvent = new OnCreateFibuSyncJobsEvent({\n        DatumBis: dateBox.instance.option(\"value\"),\n        IdFirma: idFirma\n      });\n\n      const webEventResult: OnCreateFibuSyncJobs = await this.webEvent.execute(webEvent, true);\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  }\n  doOffenePostenImportCommand: ICommandData = {\n    id: \"doOffenePostenImport\",\n    title: \"fibu-sync-job.do_op_import\",\n    icon: \"upload\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_importOPPopup\"];\n      const firmaSelectBox: IdxSelectBoxComponent = this.form[\"r_impOPFirma\"];\n      const fileUploader: TipFileUploaderWithViewer = this.form[\"r_impOPListe\"];\n      \n      const idFirma = firmaSelectBox.instance.option(\"value\");\n      if (!idFirma) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"fibu-sync-job.firma_auswaehlen\"), \"error\", 3000);\n        return;\n      }\n\n      const dmsLink = fileUploader.currentValue;\n      if (!dmsLink) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"fibu-sync-job.op_liste_hochladen\"), \"error\", 3000);\n        return;\n      }\n\n      const webEvent = new OnImportFibuOPListeEvent({\n        IdFirma: idFirma,\n        DMSLink: dmsLink\n      });\n\n      await this.webEvent.execute(webEvent, true);\n\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  }\n  doExportPersonenkontenCommand: ICommandData = {\n    id: \"doExportPersonenkontenCommand\",\n    title: \"fibu-sync-job.do_export_personenkonten\",\n    icon: \"users\",\n    execute: async () => {\n      const popup: IdxPopupComponent = this.form[\"r_exportPersonenkontenPopup\"];\n      const firmaSelectBox: IdxSelectBoxComponent = this.form[\"r_exportPFirma\"];\n      const geschaeftspartnerartSelectBox: IdxSelectBoxComponent = this.form[\"r_exportPGeschaeftspartnerart\"];\n      \n      const idFirma = firmaSelectBox.instance.option(\"value\");\n      if (!idFirma) {\n        DevExpress.ui.notify(this.localizationService.translateOnce(\"fibu-sync-job.firma_auswaehlen\"), \"error\", 3000);\n        return;\n      }\n\n      const webEvent = new OnCreateFibuPersonenkontenEvent({\n        IdFirma: idFirma,\n        IdGeschaeftspartnerart: geschaeftspartnerartSelectBox.instance.option(\"value\")\n      });\n\n      await this.webEvent.execute(webEvent, true);\n      this.form.models.reloadAll();\n      popup.instance.hide();\n    }\n  }\n}\n","export class OnCreateLoggingEvent {\n  constructor(public data: OnCreateLogging) {}\n\n  EventName = \"TIP.ERP.Business.Events.Cloud.OnCreateLogging\";\n}\nexport class OnInstanzBenutzerRequestEvent {\n  constructor(public data: OnInstanzBenutzerRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Cloud.OnInstanzBenutzerRequest\";\n}\nexport class OnDatabaseKillSessionEvent {\n  constructor(public data: OnDatabaseKillSession) {}\n\n  EventName = \"TIP.ERP.Business.Events.Datenbank.OnDatabaseKillSession\";\n}\nexport class OnDatabaseRunningQueryRequestEvent {\n  constructor(public data: OnDatabaseRunningQueryRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Datenbank.OnDatabaseRunningQueryRequest\";\n}\nexport class OnDatabaseUpdateStatisticsEvent {\n  constructor(public data: OnDatabaseUpdateStatistics) {}\n\n  EventName = \"TIP.ERP.Business.Events.Datenbank.OnDatabaseUpdateStatistics\";\n}\nexport class OnReportDruckEvent {\n  constructor(public data: OnReportDruck) {}\n\n  EventName = \"TIP.ERP.Business.Events.DMS.OnReportDruck\";\n}\nexport class OnReportRequestEvent {\n  constructor(public data: OnReportRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.DMS.OnReportRequest\";\n}\nexport class OnDynamischesFeldEvalVorbelegungEvent {\n  constructor(public data: OnDynamischesFeldEvalVorbelegung) {}\n\n  EventName = \"TIP.ERP.Business.Events.DynamischeFelder.OnDynamischesFeldEvalVorbelegung\";\n}\nexport class OnDynamischesFeldHasManuellerTextEvent {\n  constructor(public data: OnDynamischesFeldHasManuellerText) {}\n\n  EventName = \"TIP.ERP.Business.Events.DynamischeFelder.OnDynamischesFeldHasManuellerText\";\n}\nexport class OnDynamischesFeldUpdateManuellerTextEvent {\n  constructor(public data: OnDynamischesFeldUpdateManuellerText) {}\n\n  EventName = \"TIP.ERP.Business.Events.DynamischeFelder.OnDynamischesFeldUpdateManuellerText\";\n}\nexport class OnDynamischesFeldUpdateWertEvent {\n  constructor(public data: OnDynamischesFeldUpdateWert) {}\n\n  EventName = \"TIP.ERP.Business.Events.DynamischeFelder.OnDynamischesFeldUpdateWert\";\n}\nexport class OnBestellungBestaetigtEvent {\n  constructor(public data: OnBestellungBestaetigt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungBestaetigt\";\n}\nexport class OnBestellungIntercompanyErstellenEvent {\n  constructor(public data: OnBestellungIntercompanyErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungIntercompanyErstellen\";\n}\nexport class OnBestellungKondAktualisierenEvent {\n  constructor(public data: OnBestellungKondAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungKondAktualisieren\";\n}\nexport class OnBestellungListBestaetigtEvent {\n  constructor(public data: OnBestellungListBestaetigt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungListBestaetigt\";\n}\nexport class OnBestellungListLieferdatumAendernEvent {\n  constructor(public data: OnBestellungListLieferdatumAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungListLieferdatumAendern\";\n}\nexport class OnBestellungPositionenSortierenEvent {\n  constructor(public data: OnBestellungPositionenSortieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungPositionenSortieren\";\n}\nexport class OnBestellungspositionenInNeueBestellungUebernehmenEvent {\n  constructor(public data: OnBestellungspositionenInNeueBestellungUebernehmen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungspositionenInNeueBestellungUebernehmen\";\n}\nexport class OnBestellungspositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnBestellungspositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungspositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnBestellungspositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnBestellungspositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungspositionVariablerSetartikelPreisAendern\";\n}\nexport class OnBestellungspositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnBestellungspositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungspositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnBestellungStreckengeschaeftErstellenEvent {\n  constructor(public data: OnBestellungStreckengeschaeftErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBestellungStreckengeschaeftErstellen\";\n}\nexport class OnBVArtikelBestellenEvent {\n  constructor(public data: OnBVArtikelBestellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBVArtikelBestellen\";\n}\nexport class OnBVArtikelIgnorierenEvent {\n  constructor(public data: OnBVArtikelIgnorieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBVArtikelIgnorieren\";\n}\nexport class OnBVRechnenEvent {\n  constructor(public data: OnBVRechnen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnBVRechnen\";\n}\nexport class OnCalcLieferterminEvent {\n  constructor(public data: OnCalcLiefertermin) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnCalcLiefertermin\";\n}\nexport class OnDeleteIdBestellungspositionListEvent {\n  constructor(public data: OnDeleteIdBestellungspositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnDeleteIdBestellungspositionList\";\n}\nexport class OnDeleteIdEingangsrechnungspositionListEvent {\n  constructor(public data: OnDeleteIdEingangsrechnungspositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnDeleteIdEingangsrechnungspositionList\";\n}\nexport class OnDeleteIdWarenuebernahmepositionListEvent {\n  constructor(public data: OnDeleteIdWarenuebernahmepositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnDeleteIdWarenuebernahmepositionList\";\n}\nexport class OnEingangsrechnungAbschliessenEvent {\n  constructor(public data: OnEingangsrechnungAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnEingangsrechnungAbschliessen\";\n}\nexport class OnEingangsrechnungBezahltAendernEvent {\n  constructor(public data: OnEingangsrechnungBezahltAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnEingangsrechnungBezahltAendern\";\n}\nexport class OnErstelleBestellungEvent {\n  constructor(public data: OnErstelleBestellung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnErstelleBestellung\";\n}\nexport class OnErstelleWarenuebernahmeAusBestellungEvent {\n  constructor(public data: OnErstelleWarenuebernahmeAusBestellung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnErstelleWarenuebernahmeAusBestellung\";\n}\nexport class OnEvalEinkaufArtikeldatenEvent {\n  constructor(public data: OnEvalEinkaufArtikeldaten) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnEvalEinkaufArtikeldaten\";\n}\nexport class OnImportBestellungspositionenInWarenuebernahmeEvent {\n  constructor(public data: OnImportBestellungspositionenInWarenuebernahme) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnImportBestellungspositionenInWarenuebernahme\";\n}\nexport class OnImportProdFertigwareInEingangsrechnungEvent {\n  constructor(public data: OnImportProdFertigwareInEingangsrechnung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnImportProdFertigwareInEingangsrechnung\";\n}\nexport class OnImportWarenuebernahmepositionenInEingangsrechnungEvent {\n  constructor(public data: OnImportWarenuebernahmepositionenInEingangsrechnung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnImportWarenuebernahmepositionenInEingangsrechnung\";\n}\nexport class OnWarenuebernahmeAbschliessenEvent {\n  constructor(public data: OnWarenuebernahmeAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnWarenuebernahmeAbschliessen\";\n}\nexport class OnWarenuebernahmeNichtVerrechnenEvent {\n  constructor(public data: OnWarenuebernahmeNichtVerrechnen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnWarenuebernahmeNichtVerrechnen\";\n}\nexport class OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnWarenuebernahmepositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnWarenuebernahmepositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnWarenuebernahmepositionVariablerSetartikelPreisAendern\";\n}\nexport class OnWarenuebernahmepositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnWarenuebernahmepositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Einkauf.OnWarenuebernahmepositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnCreateFibuPersonenkontenEvent {\n  constructor(public data: OnCreateFibuPersonenkonten) {}\n\n  EventName = \"TIP.ERP.Business.Events.Fibu.OnCreateFibuPersonenkonten\";\n}\nexport class OnCreateFibuSyncJobsEvent {\n  constructor(public data: OnCreateFibuSyncJobs) {}\n\n  EventName = \"TIP.ERP.Business.Events.Fibu.OnCreateFibuSyncJobs\";\n}\nexport class OnImportFibuOPListeEvent {\n  constructor(public data: OnImportFibuOPListe) {}\n\n  EventName = \"TIP.ERP.Business.Events.Fibu.OnImportFibuOPListe\";\n}\nexport class OnPrepareFibuSyncJobEvent {\n  constructor(public data: OnPrepareFibuSyncJob) {}\n\n  EventName = \"TIP.ERP.Business.Events.Fibu.OnPrepareFibuSyncJob\";\n}\nexport class OnBelegExportEvent {\n  constructor(public data: OnBelegExport) {}\n\n  EventName = \"TIP.ERP.Business.Events.Import.OnBelegExport\";\n}\nexport class OnBelegImportFreigebenEvent {\n  constructor(public data: OnBelegImportFreigeben) {}\n\n  EventName = \"TIP.ERP.Business.Events.Import.OnBelegImportFreigeben\";\n}\nexport class OnEximExportEvent {\n  constructor(public data: OnEximExport) {}\n\n  EventName = \"TIP.ERP.Business.Events.Import.OnEximExport\";\n}\nexport class OnImportCreateVorlageEvent {\n  constructor(public data: OnImportCreateVorlage) {}\n\n  EventName = \"TIP.ERP.Business.Events.Import.OnImportCreateVorlage\";\n}\nexport class OnImportFreigebenEvent {\n  constructor(public data: OnImportFreigeben) {}\n\n  EventName = \"TIP.ERP.Business.Events.Import.OnImportFreigeben\";\n}\nexport class OnErstellenIntrastatSyncEvent {\n  constructor(public data: OnErstellenIntrastatSync) {}\n\n  EventName = \"TIP.ERP.Business.Events.Intrastat.OnErstellenIntrastatSync\";\n}\nexport class OnPrepareIntrastatSyncEvent {\n  constructor(public data: OnPrepareIntrastatSync) {}\n\n  EventName = \"TIP.ERP.Business.Events.Intrastat.OnPrepareIntrastatSync\";\n}\nexport class OnDoKalkulierenEvent {\n  constructor(public data: OnDoKalkulieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kalkulation.OnDoKalkulieren\";\n}\nexport class OnKalkulationFeldRequestEvent {\n  constructor(public data: OnKalkulationFeldRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kalkulation.OnKalkulationFeldRequest\";\n}\nexport class OnKalkulationItemRequestEvent {\n  constructor(public data: OnKalkulationItemRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kalkulation.OnKalkulationItemRequest\";\n}\nexport class OnKassaCreateNullBelegEvent {\n  constructor(public data: OnKassaCreateNullBeleg) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kassen.OnKassaCreateNullBeleg\";\n}\nexport class OnKassaCreateSchlussBelegEvent {\n  constructor(public data: OnKassaCreateSchlussBeleg) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kassen.OnKassaCreateSchlussBeleg\";\n}\nexport class OnKassaCreateStartBelegEvent {\n  constructor(public data: OnKassaCreateStartBeleg) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kassen.OnKassaCreateStartBeleg\";\n}\nexport class OnKassaDEPRequestEvent {\n  constructor(public data: OnKassaDEPRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kassen.OnKassaDEPRequest\";\n}\nexport class OnKassaZertifikatAnfordernEvent {\n  constructor(public data: OnKassaZertifikatAnfordern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Kassen.OnKassaZertifikatAnfordern\";\n}\nexport class OnArtikelverleihAbholungEvent {\n  constructor(public data: OnArtikelverleihAbholung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnArtikelverleihAbholung\";\n}\nexport class OnArtikelverleihRueckgabeEvent {\n  constructor(public data: OnArtikelverleihRueckgabe) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnArtikelverleihRueckgabe\";\n}\nexport class OnArtikelverleihVerfuegbarEvent {\n  constructor(public data: OnArtikelverleihVerfuegbar) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnArtikelverleihVerfuegbar\";\n}\nexport class OnInventurFehlArtZuZaehllisteEvent {\n  constructor(public data: OnInventurFehlArtZuZaehlliste) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnInventurFehlArtZuZaehlliste\";\n}\nexport class OnInventurVerbuchenEvent {\n  constructor(public data: OnInventurVerbuchen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnInventurVerbuchen\";\n}\nexport class OnInventurZaehllisteErstellenEvent {\n  constructor(public data: OnInventurZaehllisteErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnInventurZaehllisteErstellen\";\n}\nexport class OnLagerbestandRequestEvent {\n  constructor(public data: OnLagerbestandRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnLagerbestandRequest\";\n}\nexport class OnLagerkorrekturVerbuchenEvent {\n  constructor(public data: OnLagerkorrekturVerbuchen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Lager.OnLagerkorrekturVerbuchen\";\n}\nexport class OnAppMandantWechselnEvent {\n  constructor(public data: OnAppMandantWechseln) {}\n\n  EventName = \"TIP.ERP.Business.Events.MobileSync.OnAppMandantWechseln\";\n}\nexport class OnErstelleProdAuftragEvent {\n  constructor(public data: OnErstelleProdAuftrag) {}\n\n  EventName = \"TIP.ERP.Business.Events.Produktion.OnErstelleProdAuftrag\";\n}\nexport class OnProdAuftragBestaetigtEvent {\n  constructor(public data: OnProdAuftragBestaetigt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Produktion.OnProdAuftragBestaetigt\";\n}\nexport class OnProdAuftragRohwareLieferscheinErstellenEvent {\n  constructor(public data: OnProdAuftragRohwareLieferscheinErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Produktion.OnProdAuftragRohwareLieferscheinErstellen\";\n}\nexport class OnProdFertigwareQuickEvent {\n  constructor(public data: OnProdFertigwareQuick) {}\n\n  EventName = \"TIP.ERP.Business.Events.Produktion.OnProdFertigwareQuick\";\n}\nexport class OnProjektTaetigkeitBuchungAnzahlAktiveBuchungenEvent {\n  constructor(public data: OnProjektTaetigkeitBuchungAnzahlAktiveBuchungen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Projektzeit.OnProjektTaetigkeitBuchungAnzahlAktiveBuchungen\";\n}\nexport class OnProjektTaetigkeitBuchungAusFakturaEntfernenEvent {\n  constructor(public data: OnProjektTaetigkeitBuchungAusFakturaEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Projektzeit.OnProjektTaetigkeitBuchungAusFakturaEntfernen\";\n}\nexport class OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequestEvent {\n  constructor(public data: OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Projektzeit.OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequest\";\n}\nexport class OnProjektTaetigkeitBuchungNichtVerrechenbarEvent {\n  constructor(public data: OnProjektTaetigkeitBuchungNichtVerrechenbar) {}\n\n  EventName = \"TIP.ERP.Business.Events.Projektzeit.OnProjektTaetigkeitBuchungNichtVerrechenbar\";\n}\nexport class OnProjektTaetigkeitBuchungVerrechnenEvent {\n  constructor(public data: OnProjektTaetigkeitBuchungVerrechnen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Projektzeit.OnProjektTaetigkeitBuchungVerrechnen\";\n}\nexport class OnProvisionBerechnenEvent {\n  constructor(public data: OnProvisionBerechnen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Provision.OnProvisionBerechnen\";\n}\nexport class OnProjektzeitReportDruckenEvent {\n  constructor(public data: OnProjektzeitReportDrucken) {}\n\n  EventName = \"TIP.ERP.Business.Events.Report.OnProjektzeitReportDrucken\";\n}\nexport class OnProjektzeitReportRequestEvent {\n  constructor(public data: OnProjektzeitReportRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Report.OnProjektzeitReportRequest\";\n}\nexport class OnPasswortAendernEvent {\n  constructor(public data: OnPasswortAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Security.OnPasswortAendern\";\n}\nexport class OnSpracheUebersetzenEvent {\n  constructor(public data: OnSpracheUebersetzen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Sprache.OnSpracheUebersetzen\";\n}\nexport class OnArtikelartAendernEvent {\n  constructor(public data: OnArtikelartAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnArtikelartAendern\";\n}\nexport class OnAufgabeAnzahlRequestEvent {\n  constructor(public data: OnAufgabeAnzahlRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnAufgabeAnzahlRequest\";\n}\nexport class OnAufgabeErledigenRequestEvent {\n  constructor(public data: OnAufgabeErledigenRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnAufgabeErledigenRequest\";\n}\nexport class OnBenachrichtigungAnzahlRequestEvent {\n  constructor(public data: OnBenachrichtigungAnzahlRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnBenachrichtigungAnzahlRequest\";\n}\nexport class OnBenachrichtigungGelesenEvent {\n  constructor(public data: OnBenachrichtigungGelesen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnBenachrichtigungGelesen\";\n}\nexport class OnBriefAnzahlRequestEvent {\n  constructor(public data: OnBriefAnzahlRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnBriefAnzahlRequest\";\n}\nexport class OnBriefErstellenEvent {\n  constructor(public data: OnBriefErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnBriefErstellen\";\n}\nexport class OnBriefVersendenEvent {\n  constructor(public data: OnBriefVersenden) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnBriefVersenden\";\n}\nexport class OnCreateNewsletterEmpfaengerEvent {\n  constructor(public data: OnCreateNewsletterEmpfaenger) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnCreateNewsletterEmpfaenger\";\n}\nexport class OnCreateNewsletterEmpfaengerAusAnmeldungEvent {\n  constructor(public data: OnCreateNewsletterEmpfaengerAusAnmeldung) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnCreateNewsletterEmpfaengerAusAnmeldung\";\n}\nexport class OnCreateZugriffHistorieEvent {\n  constructor(public data: OnCreateZugriffHistorie) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnCreateZugriffHistorie\";\n}\nexport class OnErstelleAngebotAusMailImportItemEvent {\n  constructor(public data: OnErstelleAngebotAusMailImportItem) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnErstelleAngebotAusMailImportItem\";\n}\nexport class OnErstelleAuftragAusMailImportItemEvent {\n  constructor(public data: OnErstelleAuftragAusMailImportItem) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnErstelleAuftragAusMailImportItem\";\n}\nexport class OnErstelleBestellungAusMailImportItemEvent {\n  constructor(public data: OnErstelleBestellungAusMailImportItem) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnErstelleBestellungAusMailImportItem\";\n}\nexport class OnErstelleDruckJobEvent {\n  constructor(public data: OnErstelleDruckJob) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnErstelleDruckJob\";\n}\nexport class OnErstelleKundenreklamationAusMailImportItemEvent {\n  constructor(public data: OnErstelleKundenreklamationAusMailImportItem) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnErstelleKundenreklamationAusMailImportItem\";\n}\nexport class OnEvalSteuertypEvent {\n  constructor(public data: OnEvalSteuertyp) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnEvalSteuertyp\";\n}\nexport class OnFehlerRequestEvent {\n  constructor(public data: OnFehlerRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnFehlerRequest\";\n}\nexport class OnFilterFeldRequestEvent {\n  constructor(public data: OnFilterFeldRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnFilterFeldRequest\";\n}\nexport class OnFirmaSteuerinformationGueltigkeitAbgrenzenEvent {\n  constructor(public data: OnFirmaSteuerinformationGueltigkeitAbgrenzen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnFirmaSteuerinformationGueltigkeitAbgrenzen\";\n}\nexport class OnGeschaeftspartnerartAendernEvent {\n  constructor(public data: OnGeschaeftspartnerartAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnGeschaeftspartnerartAendern\";\n}\nexport class OnInfobarDynFeldRequestEvent {\n  constructor(public data: OnInfobarDynFeldRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnInfobarDynFeldRequest\";\n}\nexport class OnInfoBVRohwareRequestEvent {\n  constructor(public data: OnInfoBVRohwareRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnInfoBVRohwareRequest\";\n}\nexport class OnIsDiverserGeschaeftspartnerEvent {\n  constructor(public data: OnIsDiverserGeschaeftspartner) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnIsDiverserGeschaeftspartner\";\n}\nexport class OnKopierenRequestEvent {\n  constructor(public data: OnKopierenRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnKopierenRequest\";\n}\nexport class OnLandPlzQueryOrtEvent {\n  constructor(public data: OnLandPlzQueryOrt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnLandPlzQueryOrt\";\n}\nexport class OnMailImportItemAnzahlRequestEvent {\n  constructor(public data: OnMailImportItemAnzahlRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnMailImportItemAnzahlRequest\";\n}\nexport class OnMandantWechselnEvent {\n  constructor(public data: OnMandantWechseln) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnMandantWechseln\";\n}\nexport class OnNewsletterAnmeldungStatusAendernEvent {\n  constructor(public data: OnNewsletterAnmeldungStatusAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNewsletterAnmeldungStatusAendern\";\n}\nexport class OnNewsletterAnmeldungStatusRequestEvent {\n  constructor(public data: OnNewsletterAnmeldungStatusRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNewsletterAnmeldungStatusRequest\";\n}\nexport class OnNewsletterEmpfaengerImportEvent {\n  constructor(public data: OnNewsletterEmpfaengerImport) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNewsletterEmpfaengerImport\";\n}\nexport class OnNewsletterTestVersendenEvent {\n  constructor(public data: OnNewsletterTestVersenden) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNewsletterTestVersenden\";\n}\nexport class OnNewsletterVersendenEvent {\n  constructor(public data: OnNewsletterVersenden) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNewsletterVersenden\";\n}\nexport class OnNotizAnzahlRequestEvent {\n  constructor(public data: OnNotizAnzahlRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnNotizAnzahlRequest\";\n}\nexport class OnOffice365AuthTokenAbfrageEvent {\n  constructor(public data: OnOffice365AuthTokenAbfrage) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnOffice365AuthTokenAbfrage\";\n}\nexport class OnOffice365TokenAnfordernEvent {\n  constructor(public data: OnOffice365TokenAnfordern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnOffice365TokenAnfordern\";\n}\nexport class OnPapierkorbWiederherstellenEvent {\n  constructor(public data: OnPapierkorbWiederherstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnPapierkorbWiederherstellen\";\n}\nexport class OnPeriodeRequestEvent {\n  constructor(public data: OnPeriodeRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnPeriodeRequest\";\n}\nexport class OnPersonRequestEvent {\n  constructor(public data: OnPersonRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnPersonRequest\";\n}\nexport class OnPersonWebshopEvent {\n  constructor(public data: OnPersonWebshop) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnPersonWebshop\";\n}\nexport class OnProjektDokumentRequestEvent {\n  constructor(public data: OnProjektDokumentRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnProjektDokumentRequest\";\n}\nexport class OnProjektRequestStatistikEvent {\n  constructor(public data: OnProjektRequestStatistik) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnProjektRequestStatistik\";\n}\nexport class OnRequestAnzAusdruckeEvent {\n  constructor(public data: OnRequestAnzAusdrucke) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnRequestAnzAusdrucke\";\n}\nexport class OnRequestMandantEvent {\n  constructor(public data: OnRequestMandant) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnRequestMandant\";\n}\nexport class OnRequestQRLabelEvent {\n  constructor(public data: OnRequestQRLabel) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnRequestQRLabel\";\n}\nexport class OnStatusAendernEvent {\n  constructor(public data: OnStatusAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnStatusAendern\";\n}\nexport class OnStatusMoeglichRequestEvent {\n  constructor(public data: OnStatusMoeglichRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnStatusMoeglichRequest\";\n}\nexport class OnTapiAnrufEvent {\n  constructor(public data: OnTapiAnruf) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnTapiAnruf\";\n}\nexport class OnUIDListValidierenEvent {\n  constructor(public data: OnUIDListValidieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnUIDListValidieren\";\n}\nexport class OnUIDValidierenEvent {\n  constructor(public data: OnUIDValidieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnUIDValidieren\";\n}\nexport class OnVerknuepfenEntitaetenEvent {\n  constructor(public data: OnVerknuepfenEntitaeten) {}\n\n  EventName = \"TIP.ERP.Business.Events.Stammdaten.OnVerknuepfenEntitaeten\";\n}\nexport class OnStatistikArtikelDataRequestEvent {\n  constructor(public data: OnStatistikArtikelDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikArtikelDataRequest\";\n}\nexport class OnStatistikArtikelInfoRequestEvent {\n  constructor(public data: OnStatistikArtikelInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikArtikelInfoRequest\";\n}\nexport class OnStatistikAuftragDataRequestEvent {\n  constructor(public data: OnStatistikAuftragDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikAuftragDataRequest\";\n}\nexport class OnStatistikAuftragInfoRequestEvent {\n  constructor(public data: OnStatistikAuftragInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikAuftragInfoRequest\";\n}\nexport class OnStatistikBestellungenDataRequestEvent {\n  constructor(public data: OnStatistikBestellungenDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikBestellungenDataRequest\";\n}\nexport class OnStatistikBestellungenInfoRequestEvent {\n  constructor(public data: OnStatistikBestellungenInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikBestellungenInfoRequest\";\n}\nexport class OnStatistikDataRequestEvent {\n  constructor(public data: OnStatistikDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikDataRequest\";\n}\nexport class OnStatistikEinAuszahlungsRechnungDataRequestEvent {\n  constructor(public data: OnStatistikEinAuszahlungsRechnungDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikEinAuszahlungsRechnungDataRequest\";\n}\nexport class OnStatistikEinAuszahlungsRechnungInfoRequestEvent {\n  constructor(public data: OnStatistikEinAuszahlungsRechnungInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikEinAuszahlungsRechnungInfoRequest\";\n}\nexport class OnStatistikEinkaufDetailRequestEvent {\n  constructor(public data: OnStatistikEinkaufDetailRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikEinkaufDetailRequest\";\n}\nexport class OnStatistikFakturaDataRequestEvent {\n  constructor(public data: OnStatistikFakturaDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikFakturaDataRequest\";\n}\nexport class OnStatistikFakturaInfoRequestEvent {\n  constructor(public data: OnStatistikFakturaInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikFakturaInfoRequest\";\n}\nexport class OnStatistikFeldRequestEvent {\n  constructor(public data: OnStatistikFeldRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikFeldRequest\";\n}\nexport class OnStatistikGeschaeftspartnerPersonDataRequestEvent {\n  constructor(public data: OnStatistikGeschaeftspartnerPersonDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikGeschaeftspartnerPersonDataRequest\";\n}\nexport class OnStatistikGeschaeftspartnerPersonInfoRequestEvent {\n  constructor(public data: OnStatistikGeschaeftspartnerPersonInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikGeschaeftspartnerPersonInfoRequest\";\n}\nexport class OnStatistikGruppeDataRequestEvent {\n  constructor(public data: OnStatistikGruppeDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikGruppeDataRequest\";\n}\nexport class OnStatistikGruppeInfoRequestEvent {\n  constructor(public data: OnStatistikGruppeInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikGruppeInfoRequest\";\n}\nexport class OnStatistikGruppiertDashboardEvent {\n  constructor(public data: OnStatistikGruppiertDashboard) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikGruppiertDashboard\";\n}\nexport class OnStatistikKassaDataRequestEvent {\n  constructor(public data: OnStatistikKassaDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKassaDataRequest\";\n}\nexport class OnStatistikKassaDetailDataRequestEvent {\n  constructor(public data: OnStatistikKassaDetailDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKassaDetailDataRequest\";\n}\nexport class OnStatistikKassaInfoRequestEvent {\n  constructor(public data: OnStatistikKassaInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKassaInfoRequest\";\n}\nexport class OnStatistikKennzahlenEvent {\n  constructor(public data: OnStatistikKennzahlen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKennzahlen\";\n}\nexport class OnStatistikKundeDataRequestEvent {\n  constructor(public data: OnStatistikKundeDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKundeDataRequest\";\n}\nexport class OnStatistikKundeInfoRequestEvent {\n  constructor(public data: OnStatistikKundeInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikKundeInfoRequest\";\n}\nexport class OnStatistikLagerbestandDataRequestEvent {\n  constructor(public data: OnStatistikLagerbestandDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikLagerbestandDataRequest\";\n}\nexport class OnStatistikLagerbestandInfoRequestEvent {\n  constructor(public data: OnStatistikLagerbestandInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikLagerbestandInfoRequest\";\n}\nexport class OnStatistikLagerbewegungenDataRequestEvent {\n  constructor(public data: OnStatistikLagerbewegungenDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikLagerbewegungenDataRequest\";\n}\nexport class OnStatistikLagerbewegungenInfoRequestEvent {\n  constructor(public data: OnStatistikLagerbewegungenInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikLagerbewegungenInfoRequest\";\n}\nexport class OnStatistikProjektzeitDataRequestEvent {\n  constructor(public data: OnStatistikProjektzeitDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikProjektzeitDataRequest\";\n}\nexport class OnStatistikProjektzeitInfoRequestEvent {\n  constructor(public data: OnStatistikProjektzeitInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikProjektzeitInfoRequest\";\n}\nexport class OnStatistikReklamationenDataRequestEvent {\n  constructor(public data: OnStatistikReklamationenDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikReklamationenDataRequest\";\n}\nexport class OnStatistikReklamationenInfoRequestEvent {\n  constructor(public data: OnStatistikReklamationenInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikReklamationenInfoRequest\";\n}\nexport class OnStatistikRequestEvent {\n  constructor(public data: OnStatistikRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikRequest\";\n}\nexport class OnStatistikVerkaufDetailRequestEvent {\n  constructor(public data: OnStatistikVerkaufDetailRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikVerkaufDetailRequest\";\n}\nexport class OnStatistikWebshopLoginLogDataRequestEvent {\n  constructor(public data: OnStatistikWebshopLoginLogDataRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikWebshopLoginLogDataRequest\";\n}\nexport class OnStatistikWebshopLoginLogInfoRequestEvent {\n  constructor(public data: OnStatistikWebshopLoginLogInfoRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnStatistikWebshopLoginLogInfoRequest\";\n}\nexport class OnTopArtikelEvent {\n  constructor(public data: OnTopArtikel) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnTopArtikel\";\n}\nexport class OnTopKundeEvent {\n  constructor(public data: OnTopKunde) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnTopKunde\";\n}\nexport class OnUmsatzAktuellEvent {\n  constructor(public data: OnUmsatzAktuell) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnUmsatzAktuell\";\n}\nexport class OnUmsatzLandEvent {\n  constructor(public data: OnUmsatzLand) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnUmsatzLand\";\n}\nexport class OnUmsatzMonatEvent {\n  constructor(public data: OnUmsatzMonat) {}\n\n  EventName = \"TIP.ERP.Business.Events.Statistik.OnUmsatzMonat\";\n}\nexport class OnVolltextSucheSingleEvent {\n  constructor(public data: OnVolltextSucheSingle) {}\n\n  EventName = \"TIP.ERP.Business.Events.Suche.OnVolltextSucheSingle\";\n}\nexport class OnTagCreateEvent {\n  constructor(public data: OnTagCreate) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tags.OnTagCreate\";\n}\nexport class OnTagUpdateEvent {\n  constructor(public data: OnTagUpdate) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tags.OnTagUpdate\";\n}\nexport class OnTicketAufwandBestaetigenEvent {\n  constructor(public data: OnTicketAufwandBestaetigen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tickets.OnTicketAufwandBestaetigen\";\n}\nexport class OnTicketBearbeiterRequestEvent {\n  constructor(public data: OnTicketBearbeiterRequest) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tickets.OnTicketBearbeiterRequest\";\n}\nexport class OnTicketFollowEvent {\n  constructor(public data: OnTicketFollow) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tickets.OnTicketFollow\";\n}\nexport class OnVersionHasUpdateEvent {\n  constructor(public data: OnVersionHasUpdate) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tickets.OnVersionHasUpdate\";\n}\nexport class OnVersionUpdateGelesenEvent {\n  constructor(public data: OnVersionUpdateGelesen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Tickets.OnVersionUpdateGelesen\";\n}\nexport class OnAngebotAddLieferscheinpositionEvent {\n  constructor(public data: OnAngebotAddLieferscheinposition) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotAddLieferscheinposition\";\n}\nexport class OnAngebotGewichtAktualisierenEvent {\n  constructor(public data: OnAngebotGewichtAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotGewichtAktualisieren\";\n}\nexport class OnAngebotKondAktualisierenEvent {\n  constructor(public data: OnAngebotKondAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotKondAktualisieren\";\n}\nexport class OnAngebotPositionenSortierenEvent {\n  constructor(public data: OnAngebotPositionenSortieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotPositionenSortieren\";\n}\nexport class OnAngebotspositionArtikelErsetzenEvent {\n  constructor(public data: OnAngebotspositionArtikelErsetzen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionArtikelErsetzen\";\n}\nexport class OnAngebotspositionenInNeuesAngebotUebernehmenEvent {\n  constructor(public data: OnAngebotspositionenInNeuesAngebotUebernehmen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionenInNeuesAngebotUebernehmen\";\n}\nexport class OnAngebotspositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnAngebotspositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnAngebotspositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnAngebotspositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionVariablerSetartikelPreisAendern\";\n}\nexport class OnAngebotspositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnAngebotspositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnAngebotspositionVariableStuecklisteAuswahlEvent {\n  constructor(public data: OnAngebotspositionVariableStuecklisteAuswahl) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionVariableStuecklisteAuswahl\";\n}\nexport class OnAngebotspositionVariableStuecklistenkomponentenErstellenEvent {\n  constructor(public data: OnAngebotspositionVariableStuecklistenkomponentenErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAngebotspositionVariableStuecklistenkomponentenErstellen\";\n}\nexport class OnAuftragAddLieferscheinpositionEvent {\n  constructor(public data: OnAuftragAddLieferscheinposition) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragAddLieferscheinposition\";\n}\nexport class OnAuftragBestaetigtEvent {\n  constructor(public data: OnAuftragBestaetigt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragBestaetigt\";\n}\nexport class OnAuftragGewichtAktualisierenEvent {\n  constructor(public data: OnAuftragGewichtAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragGewichtAktualisieren\";\n}\nexport class OnAuftragIntercompanyErstellenEvent {\n  constructor(public data: OnAuftragIntercompanyErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragIntercompanyErstellen\";\n}\nexport class OnAuftragKondAktualisierenEvent {\n  constructor(public data: OnAuftragKondAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragKondAktualisieren\";\n}\nexport class OnAuftragListBestaetigtEvent {\n  constructor(public data: OnAuftragListBestaetigt) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragListBestaetigt\";\n}\nexport class OnAuftragListLieferdatumAendernEvent {\n  constructor(public data: OnAuftragListLieferdatumAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragListLieferdatumAendern\";\n}\nexport class OnAuftragPositionenSortierenEvent {\n  constructor(public data: OnAuftragPositionenSortieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragPositionenSortieren\";\n}\nexport class OnAuftragRecalcLieferdatumEvent {\n  constructor(public data: OnAuftragRecalcLieferdatum) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragRecalcLieferdatum\";\n}\nexport class OnAuftragRequestStatistikEvent {\n  constructor(public data: OnAuftragRequestStatistik) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragRequestStatistik\";\n}\nexport class OnAuftragReservierenEvent {\n  constructor(public data: OnAuftragReservieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragReservieren\";\n}\nexport class OnAuftragspositionArtikelErsetzenEvent {\n  constructor(public data: OnAuftragspositionArtikelErsetzen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionArtikelErsetzen\";\n}\nexport class OnAuftragspositionenInNeuenAuftragUebernehmenEvent {\n  constructor(public data: OnAuftragspositionenInNeuenAuftragUebernehmen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionenInNeuenAuftragUebernehmen\";\n}\nexport class OnAuftragspositionRecalcLieferdatumEvent {\n  constructor(public data: OnAuftragspositionRecalcLieferdatum) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionRecalcLieferdatum\";\n}\nexport class OnAuftragspositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnAuftragspositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnAuftragspositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnAuftragspositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionVariablerSetartikelPreisAendern\";\n}\nexport class OnAuftragspositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnAuftragspositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnAuftragspositionVariableStuecklisteAuswahlEvent {\n  constructor(public data: OnAuftragspositionVariableStuecklisteAuswahl) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionVariableStuecklisteAuswahl\";\n}\nexport class OnAuftragspositionVariableStuecklistenkomponentenErstellenEvent {\n  constructor(public data: OnAuftragspositionVariableStuecklistenkomponentenErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragspositionVariableStuecklistenkomponentenErstellen\";\n}\nexport class OnAuftragVorauskasseEvent {\n  constructor(public data: OnAuftragVorauskasse) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnAuftragVorauskasse\";\n}\nexport class OnDeleteIdAngebotspositionListEvent {\n  constructor(public data: OnDeleteIdAngebotspositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnDeleteIdAngebotspositionList\";\n}\nexport class OnDeleteIdAuftragspositionListEvent {\n  constructor(public data: OnDeleteIdAuftragspositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnDeleteIdAuftragspositionList\";\n}\nexport class OnDeleteIdFakturapositionListEvent {\n  constructor(public data: OnDeleteIdFakturapositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnDeleteIdFakturapositionList\";\n}\nexport class OnDeleteIdLieferscheinpositionListEvent {\n  constructor(public data: OnDeleteIdLieferscheinpositionList) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnDeleteIdLieferscheinpositionList\";\n}\nexport class OnErstelleAngebotEvent {\n  constructor(public data: OnErstelleAngebot) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnErstelleAngebot\";\n}\nexport class OnErstelleAuftragEvent {\n  constructor(public data: OnErstelleAuftrag) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnErstelleAuftrag\";\n}\nexport class OnErstelleAuftragAusAngebotEvent {\n  constructor(public data: OnErstelleAuftragAusAngebot) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnErstelleAuftragAusAngebot\";\n}\nexport class OnErstelleFakturaStornoEvent {\n  constructor(public data: OnErstelleFakturaStorno) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnErstelleFakturaStorno\";\n}\nexport class OnErstelleLieferscheinAusAuftragEvent {\n  constructor(public data: OnErstelleLieferscheinAusAuftrag) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnErstelleLieferscheinAusAuftrag\";\n}\nexport class OnEvalLieferRechnungsortEvent {\n  constructor(public data: OnEvalLieferRechnungsort) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnEvalLieferRechnungsort\";\n}\nexport class OnEvalVerkaufArtikeldatenEvent {\n  constructor(public data: OnEvalVerkaufArtikeldaten) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnEvalVerkaufArtikeldaten\";\n}\nexport class OnFakturaAbschliessenEvent {\n  constructor(public data: OnFakturaAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturaAbschliessen\";\n}\nexport class OnFakturaBezahltAendernEvent {\n  constructor(public data: OnFakturaBezahltAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturaBezahltAendern\";\n}\nexport class OnFakturaListAbschliessenEvent {\n  constructor(public data: OnFakturaListAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturaListAbschliessen\";\n}\nexport class OnFakturaMahnenEvent {\n  constructor(public data: OnFakturaMahnen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturaMahnen\";\n}\nexport class OnFakturapositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnFakturapositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturapositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnFakturapositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnFakturapositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturapositionVariablerSetartikelPreisAendern\";\n}\nexport class OnFakturapositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnFakturapositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturapositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnFakturapositionVariableStuecklisteAuswahlEvent {\n  constructor(public data: OnFakturapositionVariableStuecklisteAuswahl) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturapositionVariableStuecklisteAuswahl\";\n}\nexport class OnFakturapositionVariableStuecklistenkomponentenErstellenEvent {\n  constructor(public data: OnFakturapositionVariableStuecklistenkomponentenErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnFakturapositionVariableStuecklistenkomponentenErstellen\";\n}\nexport class OnImportAngebotspositionenInAuftragEvent {\n  constructor(public data: OnImportAngebotspositionenInAuftrag) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnImportAngebotspositionenInAuftrag\";\n}\nexport class OnImportAuftragInLieferscheinEvent {\n  constructor(public data: OnImportAuftragInLieferschein) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnImportAuftragInLieferschein\";\n}\nexport class OnImportLieferscheinInLadelisteEvent {\n  constructor(public data: OnImportLieferscheinInLadeliste) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnImportLieferscheinInLadeliste\";\n}\nexport class OnImportLieferscheinpositionenInKundenreklamationEvent {\n  constructor(public data: OnImportLieferscheinpositionenInKundenreklamation) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnImportLieferscheinpositionenInKundenreklamation\";\n}\nexport class OnKundenreklamationAbschliessenEvent {\n  constructor(public data: OnKundenreklamationAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnKundenreklamationAbschliessen\";\n}\nexport class OnKundenreklamationErsatzauftragErstellenEvent {\n  constructor(public data: OnKundenreklamationErsatzauftragErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnKundenreklamationErsatzauftragErstellen\";\n}\nexport class OnKundenreklamationWarenuebernahmeErstellenEvent {\n  constructor(public data: OnKundenreklamationWarenuebernahmeErstellen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnKundenreklamationWarenuebernahmeErstellen\";\n}\nexport class OnLadelisteEntferneLieferscheineEvent {\n  constructor(public data: OnLadelisteEntferneLieferscheine) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLadelisteEntferneLieferscheine\";\n}\nexport class OnLieferscheinAbschliessenEvent {\n  constructor(public data: OnLieferscheinAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinAbschliessen\";\n}\nexport class OnLieferscheinFakturaStatusAendernEvent {\n  constructor(public data: OnLieferscheinFakturaStatusAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinFakturaStatusAendern\";\n}\nexport class OnLieferscheinGewichtAktualisierenEvent {\n  constructor(public data: OnLieferscheinGewichtAktualisieren) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinGewichtAktualisieren\";\n}\nexport class OnLieferscheinListAbschliessenEvent {\n  constructor(public data: OnLieferscheinListAbschliessen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinListAbschliessen\";\n}\nexport class OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernenEvent {\n  constructor(public data: OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernen\";\n}\nexport class OnLieferscheinpositionVariablerSetartikelPreisAendernEvent {\n  constructor(public data: OnLieferscheinpositionVariablerSetartikelPreisAendern) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinpositionVariablerSetartikelPreisAendern\";\n}\nexport class OnLieferscheinpositionVariablerSetartikelRabattEntfernenEvent {\n  constructor(public data: OnLieferscheinpositionVariablerSetartikelRabattEntfernen) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnLieferscheinpositionVariablerSetartikelRabattEntfernen\";\n}\nexport class OnMahnlaufEvent {\n  constructor(public data: OnMahnlauf) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnMahnlauf\";\n}\nexport class OnMahnungenVersendenEvent {\n  constructor(public data: OnMahnungenVersenden) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnMahnungenVersenden\";\n}\nexport class OnMahnungVersendenEvent {\n  constructor(public data: OnMahnungVersenden) {}\n\n  EventName = \"TIP.ERP.Business.Events.Verkauf.OnMahnungVersenden\";\n}\nexport class OnWebValidateEvent {\n  constructor(public data: OnWebValidate) {}\n\n  EventName = \"TIP.ERP.Business.Events.WebValidation.OnWebValidate\";\n}\nexport interface OnCreateLogging {\n  Beschreibung?: string;\n  Ausgangspunkt?: string;\n}\nexport interface OnInstanzBenutzerRequest {\n  Datenbank?: string;\n  OnlyCloudERP: boolean;\n  Data?: Object;\n}\nexport interface OnDatabaseKillSession {\n  SessionIdList: number[];\n}\nexport interface OnDatabaseRunningQueryRequest {\n  DatabaseQueryList?: DatabaseQuery[];\n}\nexport interface OnDatabaseUpdateStatistics {\n}\nexport interface OnReportDruck {\n  IdObjekt: number;\n  IdReport?: string;\n  DoArchivieren?: boolean;\n  AddBriefpapier?: boolean;\n  DMSLink?: string;\n}\nexport interface OnReportRequest {\n  IdObjekt: number;\n  ReportItemList?: ReportItem[];\n}\nexport interface OnDynamischesFeldEvalVorbelegung {\n  IdVorgEntitaet?: number;\n  TypeName?: string;\n  IdArt?: number;\n  ItemList?: DynamischesFeldVorbelegungItem[];\n}\nexport interface OnDynamischesFeldHasManuellerText {\n  TypeName?: string;\n  HasKopftext?: boolean;\n  HasFusstext?: boolean;\n}\nexport interface OnDynamischesFeldUpdateManuellerText {\n  Id: number;\n  Kopftext: boolean;\n  Fusstext: boolean;\n}\nexport interface OnDynamischesFeldUpdateWert {\n  IdDynamischesFeldContainer: number;\n  IdDynamischesFeld: number;\n  WertText?: string;\n  WertNummer?: number;\n  WertDatum?: Date;\n  IdWertAuswahlliste?: number;\n}\nexport interface OnBestellungBestaetigt {\n  IdBestellung: number;\n  IsBestaetigt: boolean;\n}\nexport interface OnBestellungIntercompanyErstellen {\n  IdAuftrag: number;\n  IdBestellung?: number;\n}\nexport interface OnBestellungKondAktualisieren {\n  IdBestellung: number;\n  AllePositionen: boolean;\n  IdBestellungPosList: number[];\n}\nexport interface OnBestellungListBestaetigt {\n  IdBestellungList: number[];\n  IsBestaetigt: boolean;\n}\nexport interface OnBestellungListLieferdatumAendern {\n  IdBestellungList: number[];\n  Lieferdatum: Date;\n}\nexport interface OnBestellungPositionenSortieren {\n  IdBestellung: number;\n  Typ?: PositionSortierenTyp;\n}\nexport interface OnBestellungspositionenInNeueBestellungUebernehmen {\n  IdBestellung: number;\n  IdBestellungPosList: number[];\n  IdBestellungKopie?: number;\n}\nexport interface OnBestellungspositionVariablerSetartikelManuellerPreisEntfernen {\n  IdBestellungspositionSetartikel: number;\n}\nexport interface OnBestellungspositionVariablerSetartikelPreisAendern {\n  IdBestellungspositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnBestellungspositionVariablerSetartikelRabattEntfernen {\n  IdBestellungspositionSetartikel: number;\n}\nexport interface OnBestellungStreckengeschaeftErstellen {\n  IdAuftrag: number;\n  IdBestellung?: number;\n}\nexport interface OnBVArtikelBestellen {\n  IdBestellvorschlagList: number[];\n  DoAbschliessen: boolean;\n  IdBestellung?: number;\n  IdProdAuftrag?: number;\n}\nexport interface OnBVArtikelIgnorieren {\n  IdBestellvorschlagList: number[];\n}\nexport interface OnBVRechnen {\n  IdArtikelList: number[];\n}\nexport interface OnCalcLiefertermin {\n  IdArtikel: number;\n  IdLager: number;\n  MengeLagEH: number;\n  IdAuftragsposition?: number;\n  Bereitstelldatum?: Date;\n  Lieferdatum?: Date;\n  Liefertage?: number;\n  HasFehlendeBeschaffungsperiode: boolean;\n  DetailList?: Object;\n  BestandList?: Object;\n}\nexport interface OnDeleteIdBestellungspositionList {\n  IdBestellungspositionList: number[];\n}\nexport interface OnDeleteIdEingangsrechnungspositionList {\n  IdEingangsrechnungspositionList: number[];\n}\nexport interface OnDeleteIdWarenuebernahmepositionList {\n  IdWarenuebernahmepositionList: number[];\n}\nexport interface OnEingangsrechnungAbschliessen {\n  IdEingangsrechnung: number;\n}\nexport interface OnEingangsrechnungBezahltAendern {\n  IdEingangsrechnung: number;\n  Typ?: EingangsrechnungBezahltTyp;\n}\nexport interface OnErstelleBestellung {\n  IdArtikel: number;\n  IdBestellung?: number;\n}\nexport interface OnErstelleWarenuebernahmeAusBestellung {\n  IdBestellung: number;\n  IdWarenuebernahme?: number;\n  UebernehmeAllePositionen: boolean;\n  IdBestellungPosList: number[];\n}\nexport interface OnEvalEinkaufArtikeldaten {\n  IdArtikel: number;\n  IdLieferant: number;\n  IdEingangsrechnung?: number;\n  IdArtikelEinheit?: number;\n  LieferantArtikelNr?: string;\n  LieferantArtikelbezeichnung?: string;\n  Steuersatz?: number;\n}\nexport interface OnImportBestellungspositionenInWarenuebernahme {\n  IdWarenuebernahme: number;\n  IdBestellungspositionList: number[];\n}\nexport interface OnImportProdFertigwareInEingangsrechnung {\n  IdEingangsrechnung: number;\n  IdProdFertigwareList: number[];\n}\nexport interface OnImportWarenuebernahmepositionenInEingangsrechnung {\n  IdEingangsrechnung: number;\n  IdWarenuebernahmepositionList: number[];\n}\nexport interface OnWarenuebernahmeAbschliessen {\n  IdWarenuebernahme: number;\n}\nexport interface OnWarenuebernahmeNichtVerrechnen {\n  IdWarenuebernahmepositionList: number[];\n}\nexport interface OnWarenuebernahmepositionVariablerSetartikelManuellerPreisEntfernen {\n  IdWarenuebernahmepositionSetartikel: number;\n}\nexport interface OnWarenuebernahmepositionVariablerSetartikelPreisAendern {\n  IdWarenuebernahmepositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnWarenuebernahmepositionVariablerSetartikelRabattEntfernen {\n  IdWarenuebernahmepositionSetartikel: number;\n}\nexport interface OnCreateFibuPersonenkonten {\n  IdFirma?: number;\n  IdGeschaeftspartnerart?: number;\n}\nexport interface OnCreateFibuSyncJobs {\n  IdFirma: number;\n  DatumBis?: Date;\n}\nexport interface OnImportFibuOPListe {\n  IdFirma: number;\n  DMSLink?: string;\n}\nexport interface OnPrepareFibuSyncJob {\n  IdFibuSyncJob: number;\n}\nexport interface OnBelegExport {\n  BelegImportTyp?: BelegImportTyp;\n  IdList: number[];\n  DMSLink?: string;\n}\nexport interface OnBelegImportFreigeben {\n  IdBelegImport: number;\n}\nexport interface OnEximExport {\n  EximName?: string;\n  IdList: number[];\n  DMSLink?: string;\n}\nexport interface OnImportCreateVorlage {\n  IdImport: number;\n  DMSLink?: string;\n}\nexport interface OnImportFreigeben {\n  IdImport: number;\n}\nexport interface OnErstellenIntrastatSync {\n  Typ?: IntrastatSyncTyp;\n  DatumVon: Date;\n  DatumBis: Date;\n  IdFirma: number;\n}\nexport interface OnPrepareIntrastatSync {\n  IdIntrastatSync: number;\n}\nexport interface OnDoKalkulieren {\n  LoadKonditionen: boolean;\n  IsKalkulationKopf: boolean;\n  Datum: Date;\n  TypeName?: string;\n  IdKopf?: number;\n  IdPos?: number;\n  IdBerechnungsversion: number;\n  IdFirma: number;\n  IdFiliale?: number;\n  IdLager?: number;\n  IdWaehrung?: number;\n  IdArtikel?: number;\n  IdArtikelEinheit?: number;\n  IdKunde?: number;\n  IdLieferant?: number;\n  MengeVerrVerpEH?: number;\n  Steuersatz?: number;\n  IsGratis?: boolean;\n  IsFromWebshop?: boolean;\n  Umrechner?: number;\n  GewichtBrutto?: number;\n  GewichtNetto?: number;\n  Laenge?: number;\n  Breite?: number;\n  Hoehe?: number;\n  WertNetto?: number;\n  WertSteuer?: number;\n  WertBrutto?: number;\n  InputList?: KalkulationInputItem[];\n  FixList?: KalkulationFixItem[];\n  OutputList?: KalkulationOutputItem[];\n  PosList?: KalkulationPosItem[];\n  SteuerPosList?: KalkulationSteuerPosItem[];\n}\nexport interface OnKalkulationFeldRequest {\n  IdBerechnungsversion: number;\n  IsKalkulationKopf: boolean;\n  FeldList?: KalkulationFeldItem[];\n}\nexport interface OnKalkulationItemRequest {\n  IdKalkulationContainer: number;\n  InputItemList?: KalkulationInputItem[];\n  FixItemList?: KalkulationFixItem[];\n  OutputItemList?: KalkulationOutputItem[];\n  PosItemList?: KalkulationPosItem[];\n  SteuerPosList?: KalkulationSteuerPosItem[];\n  WertNetto?: number;\n  WertSteuer?: number;\n  WertBrutto?: number;\n}\nexport interface OnKassaCreateNullBeleg {\n  IdKassa: number;\n}\nexport interface OnKassaCreateSchlussBeleg {\n  IdKassa: number;\n}\nexport interface OnKassaCreateStartBeleg {\n  IdKassa: number;\n}\nexport interface OnKassaDEPRequest {\n  IdKassa: number;\n  Von: Date;\n  Bis: Date;\n  DMSLink?: string;\n}\nexport interface OnKassaZertifikatAnfordern {\n  IdKassa: number;\n}\nexport interface OnArtikelverleihAbholung {\n  IdArtikelverleih: number;\n}\nexport interface OnArtikelverleihRueckgabe {\n  IdArtikelverleih: number;\n}\nexport interface OnArtikelverleihVerfuegbar {\n  IdLager: number;\n  IdArtikel: number;\n  IdArtikelverleih?: number;\n  DatumVon: Date;\n  DatumBis: Date;\n  ReserviertList?: ReserviertInfo[];\n  VerfuegbarList?: VerfuegbarInfo[];\n}\nexport interface OnInventurFehlArtZuZaehlliste {\n  IdInventur: number;\n}\nexport interface OnInventurVerbuchen {\n  IdInventur: number;\n}\nexport interface OnInventurZaehllisteErstellen {\n  IdInventur: number;\n}\nexport interface OnLagerbestandRequest {\n  IdFiliale: number;\n  IdArtikel: number;\n  LagerbestandList?: LagerbestandInfo[];\n}\nexport interface OnLagerkorrekturVerbuchen {\n  IdLagerkorrektur: number;\n}\nexport interface OnAppMandantWechseln {\n  IdMandant: number;\n}\nexport interface OnErstelleProdAuftrag {\n  IdArtikel: number;\n  IdProdAuftrag?: number;\n}\nexport interface OnProdAuftragBestaetigt {\n  IdProdAuftrag: number;\n  IsBestaetigt: boolean;\n}\nexport interface OnProdAuftragRohwareLieferscheinErstellen {\n  IdProdAuftrag: number;\n  IdRohwareList: number[];\n  IdLieferschein?: number;\n}\nexport interface OnProdFertigwareQuick {\n  IdProdAuftrag: number;\n  IdAbgangslagerRW: number;\n  MengeVerpEH: number;\n  IdEinheit: number;\n  DoErledigen: boolean;\n  MHDChargeEintragList?: ProdFertigwareMHDChargeEintrag[];\n}\nexport interface OnProjektTaetigkeitBuchungAnzahlAktiveBuchungen {\n  Anzahl?: number;\n}\nexport interface OnProjektTaetigkeitBuchungAusFakturaEntfernen {\n  IdProjektTaetigkeitBuchung: number;\n}\nexport interface OnProjektTaetigkeitBuchungHistorieGruppiertDatumRequest {\n  DataList?: any[];\n}\nexport interface OnProjektTaetigkeitBuchungNichtVerrechenbar {\n  IdProjektTaetigkeitBuchungList: number[];\n}\nexport interface OnProjektTaetigkeitBuchungVerrechnen {\n  IdFakturaMerge?: number;\n  IdGeschaeftspartner?: number;\n  IdProjektTaetigkeitBuchungList: number[];\n  IdFaktura?: number;\n}\nexport interface OnProvisionBerechnen {\n  IdFirma: number;\n  Bis?: Date;\n}\nexport interface OnProjektzeitReportDrucken {\n  IdReport?: string;\n  DatumVon: Date;\n  DatumBis: Date;\n  IdProjektList: number[];\n  IdBenutzerList: number[];\n  DMSLink?: string;\n}\nexport interface OnProjektzeitReportRequest {\n  ReportItemList?: ReportItem[];\n}\nexport interface OnPasswortAendern {\n  PasswortAlt?: string;\n  PasswortNeu?: string;\n}\nexport interface OnSpracheUebersetzen {\n  IdSpracheContainer: number;\n  DoSave: boolean;\n  ItemList?: SpracheItemInfo[];\n}\nexport interface OnArtikelartAendern {\n  IdArtikel: number;\n  IdArtikelart: number;\n}\nexport interface OnAufgabeAnzahlRequest {\n  AufgabeBenutzer: boolean;\n  IdVerknuepfteEntitaet?: number;\n  Anzahl?: number;\n  AnzahlErinnernFaellig?: number;\n}\nexport interface OnAufgabeErledigenRequest {\n  IdAufgabe: number;\n}\nexport interface OnBenachrichtigungAnzahlRequest {\n  Anzahl?: number;\n}\nexport interface OnBenachrichtigungGelesen {\n  IdBenachrichtigung: number;\n}\nexport interface OnBriefAnzahlRequest {\n  Anzahl?: number;\n  IdVerknuepfteEntitaet: number;\n}\nexport interface OnBriefErstellen {\n  IdVerknuepfteEntitaet?: number;\n  IsHauptdokument: boolean;\n  DMSLinkList?: string[];\n  IdBrief?: number;\n}\nexport interface OnBriefVersenden {\n  IdBrief: number;\n  IdVerknuepfteEntitaet?: number;\n  VersandTyp?: BriefVersendenTyp;\n}\nexport interface OnCreateNewsletterEmpfaenger {\n  Bezeichnung?: string;\n  IdPersonList: number[];\n  IdNewsletterEmpfaenger?: number;\n}\nexport interface OnCreateNewsletterEmpfaengerAusAnmeldung {\n  Bezeichnung?: string;\n  Briefanrede?: string;\n  IdNewsletterEmpfaenger?: number;\n}\nexport interface OnCreateZugriffHistorie {\n  IdEntitaet: number;\n}\nexport interface OnErstelleAngebotAusMailImportItem {\n  IdMailImportItem: number;\n  IdAngebot?: number;\n}\nexport interface OnErstelleAuftragAusMailImportItem {\n  IdMailImportItem: number;\n  IdAuftrag?: number;\n}\nexport interface OnErstelleBestellungAusMailImportItem {\n  IdMailImportItem: number;\n  IdBestellung?: number;\n}\nexport interface OnErstelleDruckJob {\n  DMSLink?: string;\n  AnzAusdrucke?: number;\n}\nexport interface OnErstelleKundenreklamationAusMailImportItem {\n  IdMailImportItem: number;\n  IdKundenreklamation?: number;\n}\nexport interface OnEvalSteuertyp {\n  IdFirma: number;\n  IdGeschaeftspartner: number;\n  SteuerTyp?: SteuerTyp;\n}\nexport interface OnFehlerRequest {\n  IdGeschaeftspartner?: number;\n  IdRechnungsort?: number;\n  IdArtikel?: number;\n  FehlerList?: string[];\n}\nexport interface OnFilterFeldRequest {\n  TypeName?: string;\n  FeldList?: FilterFeldItem[];\n}\nexport interface OnFirmaSteuerinformationGueltigkeitAbgrenzen {\n  IdFirmaSteuerinformation: number;\n  GueltigVonFirmaSteuerinformationNeu: Date;\n  IdKassaList: number[];\n  SchlussBelegErstellen: boolean;\n}\nexport interface OnGeschaeftspartnerartAendern {\n  IdGeschaeftspartner: number;\n  IdGeschaeftspartnerart: number;\n}\nexport interface OnInfobarDynFeldRequest {\n  Id: number;\n  ItemList?: InfobarDynFeldItem[];\n}\nexport interface OnInfoBVRohwareRequest {\n  IdArtikel: number;\n  IdFiliale: number;\n  Bestand?: number;\n  BestandFW?: number;\n  Einheit?: string;\n  DetailFWList?: InfoBVRohwareDetail[];\n  DetailRWList?: InfoBVRohwareDetail[];\n  DetailVerwandtList?: InfoBVRohwareDetail[];\n}\nexport interface OnIsDiverserGeschaeftspartner {\n  IdGeschaeftspartner: number;\n  IsDivers?: boolean;\n}\nexport interface OnKopierenRequest {\n  IdSourceOjekt: number;\n  CustomData?: any;\n  IdTargetObjekt?: number;\n}\nexport interface OnLandPlzQueryOrt {\n  IdLand: number;\n  Plz?: string;\n  Ort?: string;\n}\nexport interface OnMailImportItemAnzahlRequest {\n  Anzahl?: number;\n}\nexport interface OnMandantWechseln {\n  IdMandant: number;\n}\nexport interface OnNewsletterAnmeldungStatusAendern {\n  IdAnmeldung: number;\n  Status?: NewsletterAnmeldungStatus;\n}\nexport interface OnNewsletterAnmeldungStatusRequest {\n  Email?: string;\n  Status?: string;\n}\nexport interface OnNewsletterEmpfaengerImport {\n  Bezeichnung?: string;\n  DMSLink?: string;\n}\nexport interface OnNewsletterTestVersenden {\n  IdNewsletter: number;\n  Email?: string;\n}\nexport interface OnNewsletterVersenden {\n  IdNewsletter: number;\n}\nexport interface OnNotizAnzahlRequest {\n  Anzahl?: number;\n  IdVerknuepfteEntitaet?: number;\n}\nexport interface OnOffice365AuthTokenAbfrage {\n  HasAuthToken: boolean;\n}\nexport interface OnOffice365TokenAnfordern {\n  AuthUrl?: string;\n}\nexport interface OnPapierkorbWiederherstellen {\n  IdPapierkorb: number;\n}\nexport interface OnPeriodeRequest {\n  Datum: Date;\n  Periode?: string;\n  Ergebnis?: Date;\n}\nexport interface OnPersonRequest {\n  IdGeschaeftspartner: number;\n  Typ?: PersonRequestTyp;\n  IdPerson?: number;\n}\nexport interface OnPersonWebshop {\n  IdPerson: number;\n  StatusWechselTyp?: PersonWebshopStatusWechselTyp;\n}\nexport interface OnProjektDokumentRequest {\n  IdProjekt: number;\n  DokumentList?: ProjektDokumentInfo[];\n}\nexport interface OnProjektRequestStatistik {\n  IdProjekt: number;\n  HasData?: boolean;\n  Nettoumsatz?: number;\n  Einstandswert?: number;\n  DB?: number;\n  DBProzent?: number;\n  AnzLieferscheinpositionen?: number;\n}\nexport interface OnRequestAnzAusdrucke {\n  IdEntitaet: number;\n  AnzAusdrucke?: number;\n}\nexport interface OnRequestMandant {\n  Id?: number;\n  Bezeichnung?: string;\n}\nexport interface OnRequestQRLabel {\n  IdFirma: number;\n  Anzahl: number;\n  DMSLink?: string;\n}\nexport interface OnStatusAendern {\n  IdObjekt: number;\n  IdStatus: number;\n}\nexport interface OnStatusMoeglichRequest {\n  IdObjekt: number;\n  StatusList?: StatusItem[];\n}\nexport interface OnTapiAnruf {\n  Anrufer?: string;\n  Geschaeftspartner?: string;\n  UrlGeschaeftspartner?: string;\n  Person?: string;\n  UrlPerson?: string;\n}\nexport interface OnUIDListValidieren {\n  IdUIDNummerList: number[];\n}\nexport interface OnUIDValidieren {\n  UIDNummer?: string;\n  NeuValidieren: boolean;\n  IsGueltig: boolean;\n  Text?: string;\n  Exists: boolean;\n}\nexport interface OnVerknuepfenEntitaeten {\n  IdEntitaet1: number;\n  IdEntitaet2: number;\n}\nexport interface OnStatistikArtikelDataRequest {\n  Von: Date;\n  Bis: Date;\n  IdFirma: number;\n  UmsatzTyp?: StatistikUmsatzTyp;\n  Filter?: any;\n  ArtikelList?: any[];\n  DynamischeSpalteList?: string[];\n}\nexport interface OnStatistikArtikelInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikAuftragDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  IdFirma: number;\n  NurOffenePositionen: boolean;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  AuftraegeList?: any[];\n}\nexport interface OnStatistikAuftragInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikBestellungenDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  IdFirma: number;\n  NurOffenePositionen: boolean;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  BestellungenList?: any[];\n}\nexport interface OnStatistikBestellungenInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikDataRequest {\n  KeyStatistik?: string;\n  Von: Date;\n  Bis: Date;\n  FeldList?: StatistikFeldDataItem[];\n  DataList?: any[];\n}\nexport interface OnStatistikEinAuszahlungsRechnungDataRequest {\n  DatumVon?: Date;\n  DatumBis?: Date;\n  IdFirma: number;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  EinAuszahlungsRechnungList?: any[];\n  SteuerSpalteList?: SteuerListZusatzspalte[];\n}\nexport interface OnStatistikEinAuszahlungsRechnungInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikEinkaufDetailRequest {\n  DoGruppieren: boolean;\n  Where?: UmsatzWhereItem;\n  Data?: Object;\n}\nexport interface OnStatistikFakturaDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  IdFirma: number;\n  NurOffenePositionen: boolean;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  FakturaList?: any[];\n}\nexport interface OnStatistikFakturaInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikFeldRequest {\n  KeyStatistik?: string;\n  InklDynFelder: boolean;\n  FeldList?: StatistikFeldItem[];\n}\nexport interface OnStatistikGeschaeftspartnerPersonDataRequest {\n  Filter?: any;\n  LoadPerson: boolean;\n  LoadPersonDynFelder: boolean;\n  LoadAktion: boolean;\n  LoadFunktion: boolean;\n  LoadUmsatz: boolean;\n  LoadDynFelder: boolean;\n  LoadBriefanrede: boolean;\n  ItemList?: any[];\n  ZusatzspalteList?: Zusatzspalte[];\n}\nexport interface OnStatistikGeschaeftspartnerPersonInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikGruppeDataRequest {\n  Von: Date;\n  Bis: Date;\n  IdFirma: number;\n  Filter?: any;\n  IdGruppe?: string;\n  Vergleich?: StatistikGruppeVergleich;\n  Caption?: string;\n  DataList?: StatistikGruppeData[];\n}\nexport interface OnStatistikGruppeInfoRequest {\n  GruppeInfoList?: StatistikGruppeInfo[];\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikGruppiertDashboard {\n  EntitaetFullName?: string;\n  IdDynFeld?: number;\n  ZeitraumTyp?: StatistikVerkaufZeitraumTyp;\n  Anzahl: number;\n  ShowRest: boolean;\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdFirma?: number;\n  DataList?: StatistikGruppiertDashboardData[];\n}\nexport interface OnStatistikKassaDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  IdKassa: number;\n  Filter?: any;\n  KassaInfoList?: any[];\n}\nexport interface OnStatistikKassaDetailDataRequest {\n  Datum: Date;\n  IdKassa: number;\n  Filter?: any;\n  DynamischeSpalteList?: string[];\n  KassaInfoList?: any[];\n}\nexport interface OnStatistikKassaInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikKennzahlen {\n  TypList?: StatistikKennzahlenTyp[];\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdFirma?: number;\n  ItemList?: StatistikKennzahl[];\n}\nexport interface OnStatistikKundeDataRequest {\n  Von: Date;\n  Bis: Date;\n  IdFirma: number;\n  UmsatzTyp?: StatistikUmsatzTyp;\n  Filter?: any;\n  KundeList?: any[];\n  DynamischeSpalteList?: string[];\n}\nexport interface OnStatistikKundeInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikLagerbestandDataRequest {\n  InklDetail: boolean;\n  Filter?: any;\n  LagerbestandList?: any[];\n  ZusatzspalteList?: Zusatzspalte[];\n  DynamischeSpalteList?: string[];\n}\nexport interface OnStatistikLagerbestandInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikLagerbewegungenDataRequest {\n  DatumVon?: Date;\n  DatumBis?: Date;\n  LagerbuchungsartIdList: number[];\n  IdArtikel?: number;\n  LagerIdList: number[];\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  LagerbewegungenList?: any[];\n}\nexport interface OnStatistikLagerbewegungenInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikProjektzeitDataRequest {\n  Von: Date;\n  Bis: Date;\n  Filter?: any;\n  DataList?: any[];\n}\nexport interface OnStatistikProjektzeitInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikReklamationenDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  IdFirma: number;\n  NurOffeneReklamationen: boolean;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  ReklamationspositionList?: any[];\n}\nexport interface OnStatistikReklamationenInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnStatistikRequest {\n  ItemList?: StatistikItem[];\n}\nexport interface OnStatistikVerkaufDetailRequest {\n  ViewTyp?: StatistikVerkaufDetailViewTyp;\n  DoGruppieren: boolean;\n  Where?: UmsatzWhereItem;\n  Data?: Object;\n}\nexport interface OnStatistikWebshopLoginLogDataRequest {\n  DatumVon: Date;\n  DatumBis: Date;\n  DynamischeSpalteList?: string[];\n  Filter?: any;\n  WebshoploginLogList?: any[];\n}\nexport interface OnStatistikWebshopLoginLogInfoRequest {\n  FilterInfoList?: StatistikFilterInfo[];\n}\nexport interface OnTopArtikel {\n  Anzahl: number;\n  IdGeschaeftspartner?: number;\n  IdFirma?: number;\n  ItemList?: TopArtikelItem[];\n  Where?: string;\n}\nexport interface OnTopKunde {\n  Anzahl: number;\n  Art?: TopKundeArt;\n  IdArtikel?: number;\n  IdFirma?: number;\n  ItemList?: TopKundeItem[];\n  Where?: string;\n}\nexport interface OnUmsatzAktuell {\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdFirma?: number;\n  WertTyp?: StatistikVerkaufWertTyp;\n  ItemList?: UmsatzItem[];\n}\nexport interface OnUmsatzLand {\n  IdArtikel?: number;\n  IdFirma?: number;\n  ZeitraumTyp?: StatistikVerkaufZeitraumTyp;\n  WertTyp?: StatistikVerkaufWertTyp;\n  Data?: Object;\n}\nexport interface OnUmsatzMonat {\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdFirma?: number;\n  WertTyp?: StatistikVerkaufWertTyp;\n  Data?: Object;\n}\nexport interface OnVolltextSucheSingle {\n  Suchtext?: string;\n  VerknuepfteEntitaetTypeName?: string;\n  IdVerknuepfteEntitaet?: number;\n  SuchtextPlain?: string;\n}\nexport interface OnTagCreate {\n  Bezeichnung?: string;\n  EntitaetFullName?: string;\n  Tag?: Object;\n}\nexport interface OnTagUpdate {\n  IdTag: number;\n  Bezeichnung?: string;\n  Farbe?: string;\n}\nexport interface OnTicketAufwandBestaetigen {\n  IdTicket: number;\n}\nexport interface OnTicketBearbeiterRequest {\n  IdTicket: number;\n  BearbeiterList?: Object;\n}\nexport interface OnTicketFollow {\n  IdTicket: number;\n  Follow: boolean;\n}\nexport interface OnVersionHasUpdate {\n  HasNewVersion: boolean;\n}\nexport interface OnVersionUpdateGelesen {\n}\nexport interface OnAngebotAddLieferscheinposition {\n  IdAngebot: number;\n  IdLieferscheinposition: number;\n}\nexport interface OnAngebotGewichtAktualisieren {\n  IdAngebot: number;\n}\nexport interface OnAngebotKondAktualisieren {\n  IdAngebot: number;\n  AllePositionen: boolean;\n  IdAngebotPosList: number[];\n}\nexport interface OnAngebotPositionenSortieren {\n  IdAngebot: number;\n  Typ?: PositionSortierenTyp;\n}\nexport interface OnAngebotspositionArtikelErsetzen {\n  IdAngebotsposition: number;\n  IdArtikel: number;\n  IdAngebotspositionNeu?: number;\n}\nexport interface OnAngebotspositionenInNeuesAngebotUebernehmen {\n  IdAngebot: number;\n  IdAngebotPosList: number[];\n  IdAngebotKopie?: number;\n}\nexport interface OnAngebotspositionVariablerSetartikelManuellerPreisEntfernen {\n  IdAngebotspositionSetartikel: number;\n}\nexport interface OnAngebotspositionVariablerSetartikelPreisAendern {\n  IdAngebotspositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnAngebotspositionVariablerSetartikelRabattEntfernen {\n  IdAngebotspositionSetartikel: number;\n}\nexport interface OnAngebotspositionVariableStuecklisteAuswahl {\n  IdArtikel?: number;\n  IdAngebotsposition?: number;\n  StuecklistenkomponentenAuswahlList?: StuecklistenkomponentenAuswahl[];\n}\nexport interface OnAngebotspositionVariableStuecklistenkomponentenErstellen {\n  IdAngebotsposition: number;\n  StuecklistenkomponentenMengeList?: StuecklistenkomponentenMenge[];\n}\nexport interface OnAuftragAddLieferscheinposition {\n  IdAuftrag: number;\n  IdLieferscheinposition: number;\n}\nexport interface OnAuftragBestaetigt {\n  IdAuftrag: number;\n  IsBestaetigt: boolean;\n}\nexport interface OnAuftragGewichtAktualisieren {\n  IdAuftrag: number;\n}\nexport interface OnAuftragIntercompanyErstellen {\n  IdBestellung: number;\n  IdAuftrag?: number;\n}\nexport interface OnAuftragKondAktualisieren {\n  IdAuftrag: number;\n  AllePositionen: boolean;\n  IdAuftragPosList: number[];\n}\nexport interface OnAuftragListBestaetigt {\n  IdAuftragList: number[];\n  IsBestaetigt: boolean;\n}\nexport interface OnAuftragListLieferdatumAendern {\n  IdAuftragList: number[];\n  Lieferdatum: Date;\n}\nexport interface OnAuftragPositionenSortieren {\n  IdAuftrag: number;\n  Typ?: PositionSortierenTyp;\n}\nexport interface OnAuftragRecalcLieferdatum {\n  IdAuftrag: number;\n}\nexport interface OnAuftragRequestStatistik {\n  IdAuftrag: number;\n  HasData?: boolean;\n  Nettoumsatz?: number;\n  Einstandswert?: number;\n  DB?: number;\n  DBProzent?: number;\n  AnzLieferscheinpositionen?: number;\n}\nexport interface OnAuftragReservieren {\n  IdAuftrag: number;\n  DoReservieren: boolean;\n  AllePositionen: boolean;\n  IdAuftragPosList: number[];\n}\nexport interface OnAuftragspositionArtikelErsetzen {\n  IdAuftragsposition: number;\n  IdArtikel: number;\n  IdAuftragspositionNeu?: number;\n}\nexport interface OnAuftragspositionenInNeuenAuftragUebernehmen {\n  IdAuftrag: number;\n  IdAuftragPosList: number[];\n  IdAuftragKopie?: number;\n}\nexport interface OnAuftragspositionRecalcLieferdatum {\n  IdAuftragsposition: number;\n}\nexport interface OnAuftragspositionVariablerSetartikelManuellerPreisEntfernen {\n  IdAuftragspositionSetartikel: number;\n}\nexport interface OnAuftragspositionVariablerSetartikelPreisAendern {\n  IdAuftragspositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnAuftragspositionVariablerSetartikelRabattEntfernen {\n  IdAuftragspositionSetartikel: number;\n}\nexport interface OnAuftragspositionVariableStuecklisteAuswahl {\n  IdArtikel?: number;\n  IdAuftragsposition?: number;\n  StuecklistenkomponentenAuswahlList?: StuecklistenkomponentenAuswahl[];\n}\nexport interface OnAuftragspositionVariableStuecklistenkomponentenErstellen {\n  IdAuftragsposition: number;\n  StuecklistenkomponentenMengeList?: StuecklistenkomponentenMenge[];\n}\nexport interface OnAuftragVorauskasse {\n  IdAuftrag: number;\n}\nexport interface OnDeleteIdAngebotspositionList {\n  IdAngebotspositionList: number[];\n}\nexport interface OnDeleteIdAuftragspositionList {\n  IdAuftragspositionList: number[];\n}\nexport interface OnDeleteIdFakturapositionList {\n  IdFakturapositionList: number[];\n}\nexport interface OnDeleteIdLieferscheinpositionList {\n  IdLieferscheinpositionList: number[];\n}\nexport interface OnErstelleAngebot {\n  IdGeschaeftspartner: number;\n  IdAngebot?: number;\n}\nexport interface OnErstelleAuftrag {\n  IdGeschaeftspartner: number;\n  IdAuftrag?: number;\n}\nexport interface OnErstelleAuftragAusAngebot {\n  IdAngebot: number;\n  IdAuftrag?: number;\n  UebernehmeAllePositionen: boolean;\n  IdAngebotPosList: number[];\n}\nexport interface OnErstelleFakturaStorno {\n  IdFaktura: number;\n  AllePositionen: boolean;\n  IdFakturaPosList: number[];\n  IdStorno?: number;\n}\nexport interface OnErstelleLieferscheinAusAuftrag {\n  IdAuftrag: number;\n  IdMergeMitLieferschein?: number;\n  IdLieferschein?: number;\n  UebernehmeAllePositionen: boolean;\n  IdAuftragPosList: number[];\n}\nexport interface OnEvalLieferRechnungsort {\n  IdKunde: number;\n  IdLieferort?: number;\n  HasMoreThanOneLieferort?: boolean;\n  IdRechnungsort?: number;\n}\nexport interface OnEvalVerkaufArtikeldaten {\n  IdArtikel: number;\n  IdKunde: number;\n  IdArtikelEinheit?: number;\n  KundeArtikelNr?: string;\n  KundeArtikelbezeichnung?: string;\n}\nexport interface OnFakturaAbschliessen {\n  IdFaktura: number;\n}\nexport interface OnFakturaBezahltAendern {\n  IdFaktura: number;\n  Typ?: FakturaBezahltTyp;\n}\nexport interface OnFakturaListAbschliessen {\n  IdFakturaList: number[];\n}\nexport interface OnFakturaMahnen {\n  IdFaktura: number;\n  IdMahnung?: number;\n}\nexport interface OnFakturapositionVariablerSetartikelManuellerPreisEntfernen {\n  IdFakturapositionSetartikel: number;\n}\nexport interface OnFakturapositionVariablerSetartikelPreisAendern {\n  IdFakturapositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnFakturapositionVariablerSetartikelRabattEntfernen {\n  IdFakturapositionSetartikel: number;\n}\nexport interface OnFakturapositionVariableStuecklisteAuswahl {\n  IdArtikel?: number;\n  IdFakturaposition?: number;\n  StuecklistenkomponentenAuswahlList?: StuecklistenkomponentenAuswahl[];\n}\nexport interface OnFakturapositionVariableStuecklistenkomponentenErstellen {\n  IdFakturaposition: number;\n  StuecklistenkomponentenMengeList?: StuecklistenkomponentenMenge[];\n}\nexport interface OnImportAngebotspositionenInAuftrag {\n  IdAuftrag: number;\n  IdAngebotspositionList: number[];\n}\nexport interface OnImportAuftragInLieferschein {\n  IdLieferschein: number;\n  IdAuftragList: number[];\n}\nexport interface OnImportLieferscheinInLadeliste {\n  IdLadeliste: number;\n  IdLieferscheinList: number[];\n}\nexport interface OnImportLieferscheinpositionenInKundenreklamation {\n  IdKundenreklamation: number;\n  IdLieferscheinpositionList: number[];\n}\nexport interface OnKundenreklamationAbschliessen {\n  IdKundenreklamation: number;\n}\nexport interface OnKundenreklamationErsatzauftragErstellen {\n  IdKundenreklamation: number;\n  IdAuftrag?: number;\n}\nexport interface OnKundenreklamationWarenuebernahmeErstellen {\n  IdKundenreklamation: number;\n  IdWarenuebernahme?: number;\n}\nexport interface OnLadelisteEntferneLieferscheine {\n  IdLadeliste: number;\n  IdLadelistePosList: number[];\n}\nexport interface OnLieferscheinAbschliessen {\n  IdLieferschein: number;\n}\nexport interface OnLieferscheinFakturaStatusAendern {\n  IdLieferschein: number;\n  Status?: LieferscheinFakturaStatus;\n}\nexport interface OnLieferscheinGewichtAktualisieren {\n  IdLieferschein: number;\n}\nexport interface OnLieferscheinListAbschliessen {\n  IdLieferscheinList: number[];\n}\nexport interface OnLieferscheinpositionVariablerSetartikelManuellerPreisEntfernen {\n  IdLieferscheinpositionSetartikel: number;\n}\nexport interface OnLieferscheinpositionVariablerSetartikelPreisAendern {\n  IdLieferscheinpositionSetartikel: number;\n  Typ?: VariablerSetartikelKalkulationFeldTyp;\n  Wert: number;\n}\nexport interface OnLieferscheinpositionVariablerSetartikelRabattEntfernen {\n  IdLieferscheinpositionSetartikel: number;\n}\nexport interface OnMahnlauf {\n}\nexport interface OnMahnungenVersenden {\n}\nexport interface OnMahnungVersenden {\n  IdMahnung: number;\n}\nexport interface OnWebValidate {\n  TypeName?: string;\n  Id: number;\n  Code?: string;\n  ResultList?: WebValidationResult[];\n}\nexport interface Object {\n}\nexport interface DatabaseQuery {\n  SessionId: number;\n  Text?: string;\n  Status?: string;\n  Command?: string;\n  CpuTime: number;\n  TotalElapsedTime: number;\n}\nexport interface ReportItem {\n  Id?: string;\n  Bezeichnung?: string;\n}\nexport interface DynamischesFeldVorbelegungItem {\n  IdDynamischesFeld: number;\n  VorbIdWertAuswahlliste?: number;\n  VorbWertText?: string;\n  VorbWertDatum?: Date;\n  VorbWertNummer?: number;\n}\nexport enum PositionSortierenTyp {\n  ArtikelNr = 0,\n  Artikelbezeichnung = 1\n}\nexport enum VariablerSetartikelKalkulationFeldTyp {\n  Rabatt = 0,\n  ManuellerPreis = 1\n}\nexport enum EingangsrechnungBezahltTyp {\n  Offen = 0,\n  Bezahlt = 1\n}\nexport enum BelegImportTyp {\n  Eingangsrechnung = 0,\n  EingangsrechnungDokument = 1,\n  QRDokument = 2,\n  Dokument = 3,\n  Angebot = 4,\n  Auftrag = 5,\n  Bestellung = 6,\n  Artikel = 7,\n  FertigstellungStreckengeschaeft = 8,\n  Faktura = 9\n}\nexport enum IntrastatSyncTyp {\n  Export = 0,\n  Import = 1\n}\nexport interface KalkulationInputItem {\n  Code?: string;\n  IsManuell: boolean;\n  Id: number;\n  Wert?: number;\n  WertPer?: number;\n  Staffel?: number;\n  WaehrungISO4217?: string;\n}\nexport interface KalkulationFixItem {\n  Typ?: KalkulationItemFixTyp;\n  Id: number;\n  Wert?: number;\n  WertPer?: number;\n  Staffel?: number;\n  WaehrungISO4217?: string;\n}\nexport interface KalkulationOutputItem {\n  Code?: string;\n  Id: number;\n  Wert?: number;\n  WertPer?: number;\n  Staffel?: number;\n  WaehrungISO4217?: string;\n}\nexport interface KalkulationPosItem {\n  Code?: string;\n  PosType?: KalkulationItemPosInputType;\n  Id: number;\n  Wert?: number;\n  WertPer?: number;\n  Staffel?: number;\n  WaehrungISO4217?: string;\n}\nexport interface KalkulationSteuerPosItem {\n  Steuersatz: number;\n  WertNettoPos: number;\n  WertNettoGes: number;\n  WertSteuerPos: number;\n  WertSteuerGes: number;\n  WertBruttoPos: number;\n  WertBruttoGes: number;\n}\nexport interface KalkulationFeldItem {\n  Id: number;\n  Typ?: KalkulationFeldTyp;\n  Code?: string;\n  Bezeichnung?: string;\n  SortNr: number;\n  AnzKommastellen?: number;\n  Waehrung?: KonditionsfeldWaehrung;\n  HasWertPer: boolean;\n  HasStaffel: boolean;\n  VorbWaehrungISO4217?: string;\n  IsAenderbar: boolean;\n  IsSichtbar: boolean;\n}\nexport interface ReserviertInfo {\n  IdArtikelverleih: number;\n  Firmenbez1?: string;\n  Ort?: string;\n  MengeLagEH: number;\n  Einheit?: string;\n  Abholung?: Date;\n  Rueckgabe?: Date;\n  IsGleichzeitig: boolean;\n}\nexport interface VerfuegbarInfo {\n  Datum: Date;\n  VerfuegbarLagEH: number;\n}\nexport interface LagerbestandInfo {\n  IdLager: number;\n  Bezeichnung?: string;\n  Bestand: number;\n  Frei: number;\n  Schwimmend: number;\n  Bestellt: number;\n  Produktion: number;\n  Auftrag: number;\n  Reserviert: number;\n}\nexport interface ProdFertigwareMHDChargeEintrag {\n  MHD: Date;\n  Charge?: string;\n  MengeVerpEH: number;\n}\nexport interface SpracheItemInfo {\n  IdSprache: number;\n  Eigenschaft?: string;\n  Caption?: string;\n  EditorTyp?: SpracheEditorTyp;\n  MaxLaenge: number;\n  Original?: string;\n  Uebersetzung?: string;\n}\nexport enum BriefVersendenTyp {\n  Drucken = 0,\n  Email = 1\n}\nexport enum SteuerTyp {\n  ReverseCharge = 0,\n  Binnenlieferung = 1,\n  InnergemeinschaftlichDreieck = 2,\n  Innergemeinschaftlich = 3,\n  GrenzueberschrOhneUSt = 4,\n  GrenzueberschrMitUSt = 5,\n  Steuerfrei = 6,\n  InnergemeinschaftlichMitUst = 7,\n  EUOSS = 8\n}\nexport interface FilterFeldItem {\n  Name?: string;\n  Bezeichnung?: string;\n  Datentyp?: string;\n  Format?: string;\n  Operatoren?: string[];\n  IdDynFeld: number;\n  DynFeldAuswahlliste?: string;\n  IdSelect?: string;\n  SelectFilter?: string;\n  SelectCustoms?: string;\n}\nexport interface InfobarDynFeldItem {\n  Bezeichnung?: string;\n  Typ?: DynamischesFeldtyp;\n  Wert?: string;\n}\nexport interface InfoBVRohwareDetail {\n  IdArtikel: number;\n  Nummer?: string;\n  Bezeichnung?: string;\n  Bestand: number;\n  Einheit?: string;\n}\nexport enum NewsletterAnmeldungStatus {\n  ManuelleAnlage = 0,\n  Angemeldet = 1,\n  Aktiviert = 2,\n  Abgemeldet = 3\n}\nexport enum PersonRequestTyp {\n  Angebot = 0,\n  Auftrag = 1,\n  Lieferschein = 2,\n  Faktura = 3,\n  Bestellung = 4\n}\nexport enum PersonWebshopStatusWechselTyp {\n  Aktivieren = 0,\n  Deaktiviern = 1,\n  NeuesPasswort = 2\n}\nexport interface ProjektDokumentInfo {\n  Id: number;\n  TypeName?: string;\n  Gruppe?: string;\n  Dateiname?: string;\n  IdDokumentenart?: number;\n  Dokumentenart?: string;\n  DMSLink?: string;\n  MimeType?: string;\n  AnlageDatum?: Date;\n}\nexport interface StatusItem {\n  Id: number;\n  Bezeichnung?: string;\n}\nexport enum StatistikUmsatzTyp {\n  Alle = 0,\n  MitUmsatz = 1,\n  OhneUmsatz = 2\n}\nexport interface StatistikFilterInfo {\n  Name?: string;\n  Bezeichnung?: string;\n  Datentyp?: string;\n  Format?: string;\n  Operatoren?: string[];\n  IdDynFeld: number;\n  DynFeldAuswahlliste?: string;\n  IdSelect?: string;\n  SelectFilter?: string;\n  SelectCustoms?: string;\n}\nexport interface StatistikFeldDataItem {\n  Key?: string;\n  Aggregate: boolean;\n}\nexport interface SteuerListZusatzspalte {\n  DataField?: string;\n  Bezeichnung?: string;\n  DataType?: string;\n  Breite?: string;\n  MinBreite?: number;\n  Format?: string;\n  Steuersatz?: string;\n}\nexport interface UmsatzWhereItem {\n  Typ?: UmsatzWhereTyp;\n  Data?: any;\n  IdGeschaeftspartner?: number;\n  IdArtikel?: number;\n  IdProjekt?: number;\n  IdFirma?: number;\n}\nexport interface StatistikFeldItem {\n  Key?: string;\n  Typ?: StatistikFeldTyp;\n  Expression?: string;\n  Bezeichnung?: string;\n  Datentyp?: string;\n  Format?: string;\n  DynFeldAuswahlliste?: string;\n  Width?: string;\n  IsVisible: boolean;\n  CanAggregate: boolean;\n  StandardArea?: string;\n}\nexport interface Zusatzspalte {\n  DataField?: string;\n  Bezeichnung?: string;\n  DataType?: string;\n  Breite?: string;\n  MinBreite?: number;\n  Format?: string;\n}\nexport enum StatistikGruppeVergleich {\n  Kein = 0,\n  Monat = 1,\n  Jahr = 2\n}\nexport interface StatistikGruppeData {\n  Bezeichnung?: string;\n  Wert?: number;\n  WertVergleich?: number;\n}\nexport interface StatistikGruppeInfo {\n  Id?: string;\n  Bezeichnung?: string;\n}\nexport enum StatistikVerkaufZeitraumTyp {\n  Jahr = 0,\n  YTD = 1,\n  Vorjahr = 2\n}\nexport interface StatistikGruppiertDashboardData {\n  Bezeichnung?: string;\n  Wert: number;\n  Id: number;\n}\nexport enum StatistikKennzahlenTyp {\n  OffeneBestellungen = 0,\n  OffeneWarenuebernahmen = 1,\n  OffeneEingangsrechnungen = 2,\n  OffeneAngebote = 3,\n  OffeneAuftraege = 4,\n  OffeneLieferscheine = 5,\n  OffeneFakturen = 6,\n  OffenePosten = 7,\n  OffeneKundenreklamationen = 8,\n  OffeneProduktionen = 9,\n  AnzArtikel = 10,\n  AnzKunden = 11,\n  AnzLieferanten = 12,\n  AnzNewsletterAnmeldung = 13,\n  AnzNewsletterAbmeldung = 14\n}\nexport interface StatistikKennzahl {\n  Bezeichnung?: string;\n  Anzahl: number;\n  Wert?: number;\n  TypeName?: string;\n  FilterInject?: string;\n}\nexport interface StatistikItem {\n  Key?: string;\n  Bezeichnung?: string;\n}\nexport enum StatistikVerkaufDetailViewTyp {\n  Statistik = 0,\n  Auftrag = 1,\n  Forecast = 2\n}\nexport interface TopArtikelItem {\n  Id: number;\n  Nummer?: string;\n  Bezeichnung?: string;\n  Wert: number;\n  Vergleich: number;\n  Menge: number;\n  MengeVergleich: number;\n  Einheit?: string;\n}\nexport enum TopKundeArt {\n  Kunde = 0,\n  Lieferant = 1\n}\nexport interface TopKundeItem {\n  Id: number;\n  Nummer?: number;\n  Firmenbez1?: string;\n  Ort?: string;\n  Wert: number;\n  Vergleich: number;\n}\nexport enum StatistikVerkaufWertTyp {\n  Netto = 0,\n  Einsatz = 1,\n  DB = 2,\n  Auftragseingang = 3,\n  NettoMitForecast = 4\n}\nexport interface UmsatzItem {\n  Name?: string;\n  NameVergleich?: string;\n  NameVergleich2?: string;\n  Wert: number;\n  Vergleich: number;\n  Vergleich2: number;\n  Plan: number;\n  WhereWert?: UmsatzWhereItem;\n  WhereVergleich?: UmsatzWhereItem;\n  WhereVergleich2?: UmsatzWhereItem;\n}\nexport interface StuecklistenkomponentenAuswahl {\n  Id: number;\n  Artikelnummer?: string;\n  Artikelbezeichnung?: string;\n  Menge: number;\n  Einheit?: string;\n  Faktor?: string;\n  IsInaktiv: boolean;\n  HasVariablerSetartikelVorbelegung: boolean;\n}\nexport interface StuecklistenkomponentenMenge {\n  IdStuecklistenkomponente: number;\n  Menge: number;\n}\nexport enum FakturaBezahltTyp {\n  Offen = 0,\n  Bezahlt = 1,\n  Inkasso = 2,\n  Uneinbringbar = 3\n}\nexport enum LieferscheinFakturaStatus {\n  Offen = 0,\n  FakturaErstellt = 1,\n  FakturaNichtNotwendig = 2,\n  FakturaGeloescht = 3\n}\nexport interface WebValidationResult {\n  IsError: boolean;\n  Text?: string;\n}\nexport enum KalkulationItemFixTyp {\n  Einstandspreis = 0,\n  ProdExterneKosten = 1,\n  Transportkosten = 2,\n  VariablerSetartikel = 3\n}\nexport enum KalkulationItemPosInputType {\n  Sum = 0\n}\nexport enum KalkulationFeldTyp {\n  Konditionsfeld = 0,\n  Berechnungsfeld = 1\n}\nexport enum KonditionsfeldWaehrung {\n  Waehrung = 0,\n  Prozent = 1,\n  Alles = 2\n}\nexport enum SpracheEditorTyp {\n  TextBox = 0,\n  TextArea = 1,\n  HtmlEditor = 2\n}\nexport enum DynamischesFeldtyp {\n  Text = 0,\n  Datum = 1,\n  Nummer = 2,\n  Auswahlliste = 3,\n  FormatiertenText = 4,\n  Checkbox = 5,\n  MehrzeiligerText = 6\n}\nexport enum UmsatzWhereTyp {\n  Tag = 0,\n  Monat = 1,\n  Jahr = 2,\n  YTD = 3,\n  YTD2 = 4\n}\nexport enum StatistikFeldTyp {\n  Property = 0,\n  DynFeld = 1\n}\n","import {\n  autoinject,\n  computedFrom\n} from \"aurelia-framework\";\nimport {\n  RestService\n} from \"../../base/export\";\n\n@autoinject\nexport class LoadingService {\n  constructor(\n    private rest: RestService\n  ) { }\n\n  loadingCount: number = 0;\n\n  @computedFrom(\"loadingCount\", \"rest.isLoading\")\n  get isLoading() {\n    return this.loadingCount > 0\n      || this.rest.isLoading;\n  }\n\n  beginLoading() {\n    this.loadingCount++;\n  }\n  endLoading() {\n    if (this.loadingCount === 0) {\n      return;\n    }\n\n    this.loadingCount--;\n  }\n}","export default __webpack_public_path__ + \"88da720af42278fb153aefbcdf1e2163.jpg\";","import {\n  autoinject,\n  createOverrideContext,\n  Scope,\n  TemplatingEngine,\n  newInstance,\n  View\n} from \"aurelia-framework\";\nimport * as DxLoader from \"../dx-loader\";\n\n@autoinject\nexport class DxTemplateService {\n  private templates = {};\n\n  constructor(\n    private templatingEngine: TemplatingEngine\n  ) { }\n\n  registerTemplate(key: string, template: string) {\n    this.templates[key] = template;\n  }\n\n  getTemplates(scope: Scope, resources: any): any {\n    const result = {};\n\n    for (let templateKey in this.templates) {\n      result[templateKey] = {\n        render: (renderData) => {\n          return this.render(\n            this.templates[templateKey],\n            renderData.container,\n            resources,\n            scope,\n            renderData.model,\n            templateKey\n          ).element;\n        }\n      };\n    }\n\n    return result;\n  }\n\n  render(template: string | Element, container: Element, resources: any, scope: Scope, model?: any, templateKey?: string): IDxWidgetRenderInfo {\n    let newElement: Element;\n\n    if (typeof template === \"string\") {\n      newElement = document.createElement(\"div\");\n      newElement.innerHTML = template;\n    } else {\n      newElement = <Element>template.cloneNode(true)\n    }\n\n    container.appendChild(newElement);\n\n    let itemBindingContext: any;\n    let itemOverrideContext: any;\n\n    //per Konvention muss ein Field-Template mit \"-field-template\" enden\n    const isFieldTemplate = (templateKey || \"\").endsWith(\"-field-template\");\n\n    if (model || isFieldTemplate) {\n      itemBindingContext = {\n        data: model\n      };\n\n      itemOverrideContext = createOverrideContext(scope.bindingContext, scope.overrideContext);\n    } else {\n      itemBindingContext = scope.bindingContext;\n      itemOverrideContext = scope.overrideContext;\n    }\n\n    const view = this.templatingEngine.enhance({\n      element: newElement,\n      bindingContext: itemBindingContext,\n      overrideContext: itemOverrideContext,\n      resources: resources\n    });\n\n    if (isFieldTemplate) {\n      this.extendFieldTemplate(newElement);\n    }\n\n    const dxEventOn: any = DevExpress.events.on;\n    dxEventOn(<any>newElement, \"dxremove\", () => {\n      view.unbind();\n      view.detached();\n    });\n\n    return {\n      element: newElement,\n      view: view\n    };\n  }\n  private extendFieldTemplate(element: Element) {\n    const textbox = element.querySelector(\".dx-textbox\");\n    if (!textbox) {\n      return;\n    }\n\n    let instance = DxLoader.getInstance(\"dxTextBox\", textbox);\n\n    instance.on(\"focusIn\", () => {\n      element.classList.add(\"t--field-template-editor-focused\");\n    });\n    instance.on(\"focusOut\", () => {\n      element.classList.remove(\"t--field-template-editor-focused\");\n    });\n    instance.on(\"disposing\", () => {\n      element = null;\n      instance = null;\n    });\n  }\n}\n\nexport interface IDxWidgetRenderInfo {\n  element: Element;\n  view: View;\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  DxTemplateService\n} from \"../../framework/dx/export\";\n\nimport * as cboTypeBezeichnung from \"html-loader!../templates/cbo-type-bezeichnung.xhtml\";\nimport * as cboTypeBezeichnungField from \"html-loader!../templates/cbo-type-bezeichnung-field.xhtml\";\nimport * as cboTypeBezeichnungTag from \"html-loader!../templates/cbo-type-bezeichnung-tag.xhtml\";\n\n@autoinject\nexport class TemplateRegisterService {\n  constructor(\n    private dxTemplate: DxTemplateService\n  ) { }\n\n  register() {\n    this.dxTemplate.registerTemplate(\n      \"erp--cbo-type-bezeichnung\",\n      <string>cboTypeBezeichnung);\n\n    this.dxTemplate.registerTemplate(\n      \"erp--cbo-type-bezeichnung-field-template\",\n      <string>cboTypeBezeichnungField);\n\n    this.dxTemplate.registerTemplate(\n      \"erp--cbo-type-bezeichnung-tag-template\",\n      <string>cboTypeBezeichnungTag);\n  }\n}","import { RestService } from \"./../../framework/base/services/rest-service\";\nimport { autoinject } from \"aurelia-framework\";\nimport { OnBelegExport, OnBelegExportEvent } from \"../../framework-data/events\";\nimport { FileService } from \"../../framework/base/services/file-service\";\nimport { WebEventService } from \"../../framework/base/services/web-event-service\";\nimport { BelegImportTyp } from \"./../enumerations/beleg-import-typ\";\n\n@autoinject\nexport class BelegExportService {\n  constructor(\n    private _fileService: FileService,\n    private _restService: RestService,\n    private _webEventService: WebEventService\n  ) { }\n\n  async export(typ: BelegImportTyp, keys: number[]): Promise<any> {\n    const result: OnBelegExport = await this._webEventService.execute(new OnBelegExportEvent({\n      BelegImportTyp: typ,\n      IdList: keys\n    }), true);\n\n    if (!result.DMSLink) {\n      return;\n    }\n\n    this._fileService.download(result.DMSLink);\n  }\n\n  async isBelegExportMandantAktiv(typ: BelegImportTyp) {\n    const result = await this._restService.get({\n      url: this._restService.getWebApiUrl(\"ERP/Stammdaten/MandantZuBelegImportTyp\"),\n      getOptions: {\n        where: [\"Typ\", typ],\n        columns: [\"Typ\"]\n      }\n    });\n\n    if (result.length == 0) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n}\n","import {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, ICommandData\n} from \"../../../../framework/forms/export\";\nimport { WebEventService, LocalizationService } from '../../../../framework/base/export';\nimport { OnNewsletterAnmeldungStatusRequestEvent, OnNewsletterAnmeldungStatusRequest, OnPersonWebshopEvent } from '../../../../framework-data/events';\nimport { DxCustomizeService } from '../../../services/dx-customize-service';\nimport { BriefService } from '../../../services/export';\n\n@autoinject\n@transient()\nexport class PersonEditUtils {\n  constructor(\n    private webEventService: WebEventService,\n    private dxCustomizeService: DxCustomizeService,\n    private briefService: BriefService,\n    private localizationService: LocalizationService\n  ) { }\n\n  form: FormBase;\n\n  statusNewsletter: string;\n\n  webshopAktivierenCommand: ICommandData = {\n    id: \"webshopAktivieren\",\n    title: \"person.webshop_aktivieren\",\n    sortIndex: 100,\n    idCategory: \"webshop\",\n    isVisibleExpression: \"!models.data.$m_Person.IsWebshopAktiv\",\n    execute: async () => {\n      this.changeWebshopStatus(0);\n    }\n  };\n  webshopDeaktivierenCommand: ICommandData = {\n    id: \"webshopDeaktivieren\",\n    title: \"person.webshop_deaktivieren\",\n    sortIndex: 101,\n    idCategory: \"webshop\",\n    isVisibleExpression: \"models.data.$m_Person.IsWebshopAktiv\",\n    execute: async () => {\n      this.changeWebshopStatus(1);\n    }\n  };\n  webshopNeuesPasswortCommand: ICommandData = {\n    id: \"webshopNeuesPasswort\",\n    title: \"person.webshop_neues_passwort\",\n    sortIndex: 102,\n    idCategory: \"webshop\",\n    isVisibleExpression: \"models.data.$m_Person.IsWebshopAktiv\",\n    execute: async () => {\n      this.changeWebshopStatus(2);\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.callOnBind(() => {\n      this.dxCustomizeService.addTelefon(this.form[\"r_telefonOptions\"]);\n      this.dxCustomizeService.addTelefon(this.form[\"r_mobiltelefonOptions\"]);\n      this.dxCustomizeService.addBrief(this.form[\"r_emailOptions\"], async () => {\n        if (!this.form.models.data.$m_Person.Email) {\n          DevExpress.ui.notify(\n            this.localizationService.translateOnce(\"person.email-fehlt\"),\n            \"error\",\n            3000\n          );\n\n          return;\n        }\n\n        const saveResult = await this.form.saveIfDirty();\n        if (!saveResult.isValid) {\n          return;\n        }\n\n        this.briefService.createAndGoToBrief(this.form.models.data.$m_Person.Id);\n      });\n    });\n\n    this.form.focusFirstEnabledEditor = () => {\n      const anrede = form[\"r_anrede\"];\n      if (anrede && anrede.instance) {\n        anrede.instance.focus();\n      }\n    };\n\n    this.form.models.onLoaded.register(r => {\n      if (r.model.id == \"$m_Person\") {\n        this.checkNewsletterAnmeldungStatus();\n      }\n\n      return Promise.resolve();\n    });\n  }\n\n  private async checkNewsletterAnmeldungStatus() {\n    this.statusNewsletter = null;\n\n    const data = this.form.models.data.$m_Person;\n    if (!data || !data.Email) {\n      return;\n    }\n\n    const args = new OnNewsletterAnmeldungStatusRequestEvent({\n      Email: data.Email\n    });\n\n    const result: OnNewsletterAnmeldungStatusRequest = await this.webEventService.execute(args);\n    if (!result) {\n      return;\n    }\n\n    this.statusNewsletter = result.Status;\n  }\n  private async changeWebshopStatus(status) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    await this.webEventService.execute(new OnPersonWebshopEvent({\n      IdPerson: this.form.models.data.$m_Person.Id,\n      StatusWechselTyp: status\n    }), true);\n\n    await this.form.reloadIfServerHasNewVersion();\n  }\n}\n","// Module\nvar code = \"<div class=\\\"erp--text-with-leading-label-badge erp--background-ddd erp--margin-top-left-2px\\\"> <div class=\\\"${data.TypeBezeichnung ? '' : 'erp--empty-badge'}\\\"> ${data.TypeBezeichnung} </div> <div class=\\\"erp--margin-right-36px\\\"> ${data.CboBezeichnung} </div> <div class=\\\"erp-tag-navigate-button\\\" open-edit.bind=\\\"data\\\"> <i class=\\\"fa fa-pencil\\\"></i> </div> <div class=\\\"dx-tag-remove-button\\\"> </div> </div> \";\n// Exports\nmodule.exports = code;","import {\n  autoinject,\n  BindingEngine,\n  Disposable,\n  Scope,\n  LiteralPrimitive,\n  TaskQueue,\n  Aurelia\n} from \"aurelia-framework\";\nimport { IBindingObserveArguments } from '../export';\n\n\n@autoinject\nexport class BindingService {\n  constructor(\n    private _bindingEngine: BindingEngine,\n    private _taskQueue: TaskQueue,\n    private _aurelia: Aurelia\n  ) {}\n\n  assign(scope: Scope, expression: string, value: any) {\n    this._bindingEngine\n      .parseExpression(expression)\n      .assign(scope, value, null);\n  }\n  evaluate(scope: Scope, expression: string): any {\n    if (!scope.bindingContext) {\n      return null;\n    }\n    \n    return this._bindingEngine\n      .parseExpression(expression)\n      .evaluate(scope, {\n        bindingBehaviors: (name) => this._aurelia.resources.getBindingBehavior(name),\n        valueConverters: (name) => this._aurelia.resources.getValueConverter(name)\n      });\n  }\n  execute(scope: Scope, expression: string, ...parameters: any[]): any {\n    let context = this.getBindingContext(scope, expression);\n    let obj: any = this._bindingEngine.parseExpression(expression);\n\n    if (obj.object) {\n      context = obj.object.evaluate({\n        bindingContext: context\n      });\n    }\n    \n    return obj.evaluate(scope).call(context, ...parameters);\n  }\n  observe(args: IBindingObserveArguments): Disposable {\n    //Prüfen ob es sich um einen Pfad handelt oder einfach nur um einen primitiven Typ\n    const parsedExpression = this._bindingEngine.parseExpression(args.expression);\n    \n    if (args.checkPrimitiveType && parsedExpression instanceof LiteralPrimitive) {\n      //Nicht sofort ausführen, sondern so, wie es auch das Binding machen würde - leicht verzögert\n      this._taskQueue.queueTask(() => {\n        args.callback(parsedExpression.value, null);\n      });\n\n      return {\n        dispose: () => {} \n      };\n    }\n    \n    const disposable = this._bindingEngine\n      .expressionObserver(\n        this.getBindingContext(args.customScope || args.scopeContainer.scope, args.expression),\n        args.expression\n      ).subscribe(args.callback);\n\n      args.scopeContainer.addDisposable(disposable);\n      return disposable;\n  }\n  getBindingContext(scope: Scope, expression: string) {\n    let obj: any = this._bindingEngine\n      .parseExpression(expression);\n    \n    while (obj.object) {\n      obj = obj.object;\n    }\n\n    if (obj.name in scope.bindingContext) {\n      return scope.bindingContext;\n    } else {\n      let ov = scope.overrideContext;\n\n      while (ov) {\n        if (obj.name in ov.bindingContext) {\n          return ov.bindingContext;\n        }\n\n        ov = ov.parentOverrideContext;\n      }\n    }\n\n    return scope.bindingContext || scope.overrideContext;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  WebEventService, IViewScrollInfo\n} from \"../../framework/base/export\";\nimport {\n  OnBriefErstellen,\n  OnBriefErstellenEvent\n} from \"../../framework-data/events\";\nimport {\n  BriefFormCommand\n} from \"../elements/brief-form-command/brief-form-command\";\nimport {\n  CustomEditPopupService\n} from \"./custom-edit-popup-service\";\n\n@autoinject\nexport class BriefService {\n  constructor(\n    private customEditPopup: CustomEditPopupService,\n    private webEvent: WebEventService\n  ) { }\n\n  async createAndGoToBrief(idVerknuepfteEntitaet: number = null, dmsLinkList: string[] = [], isHauptdokument: boolean = false) {\n    const idBrief = await this.createBrief(idVerknuepfteEntitaet, dmsLinkList, isHauptdokument);\n    if (idBrief == void 0) {\n      return;\n    }\n\n    this.goToBrief(idBrief);\n  }\n  goToBrief(id: number, viewScrollInfo?: IViewScrollInfo) {\n    this.customEditPopup.briefEditPopup.show({\n      mappings: { \"$id\": id },\n      viewScrollInfo\n    });\n  }\n  \n  private async createBrief(idVerknuepfteEntitaet: number = null, dmsLinkList: string[] = [], isHauptdokument: boolean = false): Promise<number> {\n    const webEvent = new OnBriefErstellenEvent({ \n      IsHauptdokument: isHauptdokument,\n      DMSLinkList: dmsLinkList, \n      IdVerknuepfteEntitaet: idVerknuepfteEntitaet \n    });\n    const result: OnBriefErstellen = await this.webEvent.execute(webEvent, true)\n\n    if (result == void 0 || result.IdBrief == void 0) {\n      return undefined;\n    }\n\n    return result.IdBrief;\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  ISelectItem\n} from \"../widget-options/select-item\";\nimport {\n  DxTemplateService\n} from \"../../dx/services/export\";\n\nimport * as selectItems from \"../../../framework-data/select-items.json\";\nimport { ScopeContainer } from '../../base/classes/scope-container';\nimport { IDataSourceOptionFilter } from '../../base/interfaces/data-source-option-filter';\nimport { IDataSourceOptionCustom } from '../../base/interfaces/data-source-option-custom';\nimport { RestService, DataSourceService } from '../../base/export';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\n@autoinject\nexport class SelectItemService {\n\n  constructor(\n    private dxTemplate: DxTemplateService,\n    private restService: RestService,\n    private eventAggregator: EventAggregator,\n    private dataSourceService: DataSourceService\n  ) {}\n\n  addSelectItem(id: string, data: any) {\n    selectItems[id] = data;\n  }\n  getSelectItem(id: string): ISelectItem {\n    if (!selectItems) {\n      throw new Error(\"No select-items defined\");\n    }\n    if (!selectItems[id]) {\n      throw new Error(`Select-item ${id} is not defined`);\n    }\n\n    return selectItems[id];\n  }  \n\n  createSelectDataSource(\n    scopeContainer: ScopeContainer, \n    selectItem: ISelectItem, \n    filter: any, \n    filters: IDataSourceOptionFilter[], \n    customs: IDataSourceOptionCustom[],\n    observerCallback?: {(dataSourceOptions: any): void}): DevExpress.data.DataSource {\n    if (selectItem.loadItemListDeferred) {\n      return new DevExpress.data.DataSource(<any>new DevExpress.data.CustomStore({\n        cacheRawData: true,\n        loadMode: \"raw\",\n        load: async () => {\n          const result = await this.restService.get({\n            url: this.restService.getApiUrl(`base/FormSelectItem/Items/${selectItem.id}`)\n          });\n\n          const args = {\n            selectItemId: selectItem.id,\n            data: result\n          };\n\n          this.eventAggregator.publish(\"form-select-item:data-loaded\", args);\n          return args.data;\n        }\n      }));\n    } else if (selectItem.items && selectItem.items.length > 0) {\n      return new DevExpress.data.DataSource(<any>new DevExpress.data.ArrayStore({\n        data: selectItem.items\n      }));\n    } else if (selectItem.action) {\n      const where = [];\n      if (filter) {\n        where.push(filter);\n      }\n      if (selectItem.where) {\n        where.push(selectItem.where);\n      }\n\n      const dataSourcefilters: IDataSourceOptionFilter[] = [];\n      if (selectItem.customs) {\n        dataSourcefilters.push(...selectItem.customs);\n      }\n      if (customs) {\n        customs.forEach(custom => {\n          dataSourcefilters.push({\n            webApiCustomKey: custom.key,\n            webApiCustomValue: custom.value\n          })\n        });\n      }\n      if (filters) {\n        dataSourcefilters.push(...filters);\n      }\n\n      const dataSourceOptions = {\n        keyProperty: selectItem.valueMember,\n        webApiAction: selectItem.action,\n        webApiColumns: selectItem.columns,\n        webApiExpand: selectItem.expand,\n        webApiOrderBy: selectItem.orderBy,\n        webApiWhere: where,\n        webApiSearchtextEnabled: selectItem.searchtextEnabled,\n        filters: dataSourcefilters\n      };\n\n      const dataSource = this.dataSourceService.createDataSource(scopeContainer, dataSourceOptions);\n\n      if (observerCallback) {\n        observerCallback(dataSourceOptions);\n      }\n\n      return dataSource;\n    }\n  }\n}","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnLieferscheinListAbschliessenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, ScopeContainer, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { ValidationExService } from \"../../../services/export\";\n\n@autoinject\n@transient()\nexport class LieferscheinListUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    private _webEventService: WebEventService,\n    private _asyncService: AsyncService,\n    private _localizationService: LocalizationService,\n    private _validationExService: ValidationExService) { }\n\n  form: FormBase;\n  scopeContainer: ScopeContainer;\n\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"lieferschein\",\n    title: \"lieferschein.abschliessen\",\n    icon: \"check\",\n    sortIndex: 999,\n    execute: async () => {\n      const grid: IdxDataGridComponent = this.form[\"r_lieferscheinGrid\"];\n      await this._asyncService.convertToPromise(grid.instance.selectAll());\n      const lieferscheinGridRowData = await this._asyncService.convertToPromise(grid.instance.getSelectedRowsData());\n\n      if (lieferscheinGridRowData.length == 0) {\n        return;\n      }\n      \n      grid.instance.clearSelection();\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"lieferschein.sure_abschliessen\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      const hasErledigteLieferscheine = lieferscheinGridRowData\n        .some((c) => c.Status.Typ != 0);\n\n      if (hasErledigteLieferscheine) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"lieferschein.fehler_abschliessen_status\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      lieferscheinGridRowData.forEach(async (lieferschein) => {\n        const validationResult = await this._validationExService.executeServerValidation(\n          \"TIP.ERP.Business.Entitaeten.Verkauf.Lieferschein\",\n          lieferschein.Id,\n          \"ABSCHLIESSEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      });\n\n      const idLieferscheinList = lieferscheinGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnLieferscheinListAbschliessenEvent({\n        IdLieferscheinList: idLieferscheinList\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.scopeContainer = new ScopeContainer({\n      bindingContext: this,\n      overrideContext: null\n    });\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnAuftragspositionArtikelErsetzen, OnAuftragspositionArtikelErsetzenEvent, OnAuftragspositionRecalcLieferdatumEvent, OnAuftragspositionVariableStuecklisteAuswahl, OnAuftragspositionVariableStuecklisteAuswahlEvent, OnAuftragspositionVariableStuecklistenkomponentenErstellen, OnAuftragspositionVariableStuecklistenkomponentenErstellenEvent, OnAuftragspositionVariablerSetartikelManuellerPreisEntfernenEvent, OnAuftragspositionVariablerSetartikelPreisAendernEvent, OnAuftragspositionVariablerSetartikelRabattEntfernenEvent, OnEvalVerkaufArtikeldaten, OnEvalVerkaufArtikeldatenEvent } from \"../../../../framework-data/events\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { AsyncService } from \"../../../../framework/base/services/async-service\";\nimport { FormBase, ICommandData, ModelUtilsService, PopupInfoService } from \"../../../../framework/forms/export\";\nimport { CalcLiefertermin } from '../../../elements/calc-liefertermin/calc-liefertermin';\nimport { VariablerSetartikelKomponentenAuswahl } from \"../../../elements/variabler-setartikel-komponenten-auswahl/variabler-setartikel-komponenten-auswahl\";\nimport { IVariablerSetartikelPreisAendernResult, VariablerSetartikelPreisAendern } from \"../../../elements/variabler-setartikel-preis-aendern/variabler-setartikel-preis-aendern\";\nimport { IKalkulationRefreshOptions } from \"../../../interfaces/kalkulation-refresh-options\";\nimport { BestellungService } from \"../../../services/bestellung-service\";\nimport { ArtikelService, AuftragService, DynFelderDataService, DynFelderService, StartupService } from '../../../services/export';\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { DxCustomizeService } from './../../../services/dx-customize-service';\nimport { DynFeldLogikTyp } from \"../../../enumerations/dyn-feld-logik-typ\";\n\n@autoinject\n@transient()\nexport class AuftragspositionEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public startupService: StartupService,\n    public dynFelderDataService: DynFelderDataService,\n    private _auftragService: AuftragService,\n    private _asyncService: AsyncService,\n    private _bestellungService: BestellungService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _modelUtilsService: ModelUtilsService,\n    private _artikelService: ArtikelService,\n    private _dynFelderService: DynFelderService,\n    private _webEventService: WebEventService,\n    private _popupInfoService: PopupInfoService,\n    private _localizationService: LocalizationService,\n    private _dxCustomizeService: DxCustomizeService) { }\n\n  form: FormBase;\n  refreshOptions: IKalkulationRefreshOptions;\n  idArtikelErsetzen: number;\n  showVariablerSetartikelCheckbox: boolean;\n  variablerSetartikelKomponentenAuswahlList: any[];\n  onReloadStuecklistemkomponentenlist: boolean;\n  mengeVerpEH: number;\n  hasIntercompanyBestellung: boolean;\n\n  showArtikelErsetzenCommand: ICommandData = {\n    id: \"artikelErsetzenCommand\",\n    idCategory: \"auftragsposition\",\n    icon: \"exchange\",\n    title: \"auftrag.artikel_ersetzen\",\n    isEnabledExpression: `!!models.data.$m_Auftragsposition\n      && !!models.data.$m_Auftragsposition.CanSave \n      && !!models.data.$m_Auftragsposition.Id\n      && !models.data.$m_Auftragsposition.MengeLieferscheinVerpEH\n      && !models.data.$m_Auftragsposition.IsPositionVariableStuecklistenkomponente\n      && !models.data.$m_Auftragsposition.MengeGeliefertVerpEH\n      && !models.data.$m_Auftrag.IsIcAuftrag`,\n    sortIndex: 990,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      this.idArtikelErsetzen = null;\n\n      await this.form[\"r_artikelErsetzenPopup\"].instance.show();\n\n      const artikel = this.form[\"r_artikelErsetzenElement\"];\n      artikel.artikelNummer.instance.focus();\n    }\n  }\n  doArtikelErsetzenCommand: ICommandData = {\n    id: \"doArtikelErsetzenCommand\",\n    title: \"auftrag.artikel_ersetzen\",\n    icon: \"exchange\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const webEvent = new OnAuftragspositionArtikelErsetzenEvent({\n        IdAuftragsposition: this.form.models.data.$m_Auftragsposition.Id,\n        IdArtikel: this.idArtikelErsetzen\n      });\n\n      if (!this.idArtikelErsetzen) {\n        DevExpress.ui.notify(this._localizationService.translateOnce(\"auftrag.kein_artikel_ausgewaehlt\"), \"ERROR\", 3000);\n        return;\n      }\n\n      const webEventResult: OnAuftragspositionArtikelErsetzen = await this._webEventService.execute(webEvent, true);\n      DevExpress.ui.notify(this._localizationService.translateOnce(\"auftrag.artikel_erfolgreich_ersetzt\"), \"SUCCESS\", 3000);\n      this._popupInfoService.closeAllPopups();\n    }\n  }\n  calcLieferdatumCommand: ICommandData = {\n    id: \"calcLieferdatumCommand\",\n    icon: \"calendar\",\n    idCategory: \"artikel_bestellvorschlag\",\n    title: \"auftrag.calc-lieferdatum\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Auftragsposition.IdArtikel > 0 && models.data.$m_Auftragsposition.CanSave\",\n    isVisible: this.startupService.startupInfo.Mandant.IsBerechnungLieferdatumAktiv,\n    execute: async (e) => {\n      const calcLiefertermin: CalcLiefertermin = this.form[\"r_calcLiefertermin\"];\n      calcLiefertermin.show(\n        this.form.models.data.$m_Auftragsposition.IdArtikel,\n        this.form.models.data.$m_Auftragsposition.IdLieferlager || this.form.models.data.$m_Auftrag.IdLieferlager,\n        this.form.models.data.$m_Auftragsposition.MengeVerpEH,\n        this.form.models.data.$m_Auftragsposition.IdEinheit);\n    }\n  }\n  recalcLieferdatumCommand: ICommandData = {\n    id: \"recalcLieferdatumCommand\",\n    icon: \"calculator\",\n    idCategory: \"artikel_bestellvorschlag\",\n    title: \"auftrag.recalc-lieferdatum\",\n    sortIndex: 100,\n    isEnabledExpression: \"models.data.$m_Auftragsposition.Id > 0 && models.data.$m_Auftragsposition.CanSave\",\n    isVisible: this.startupService.startupInfo.Mandant.IsBerechnungLieferdatumAktiv,\n    execute: async (e) => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnAuftragspositionRecalcLieferdatumEvent({\n        IdAuftragsposition: this.form.models.data.$m_Auftragsposition.Id\n      }), true);\n\n      this.form.models.reloadAll();\n\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"auftrag.lieferdatum-neu-berechnet\"),\n        \"success\",\n        3000\n      );\n    }\n  }\n  showVariablerSetartikelKomponentenAuswahlCommand: ICommandData = {\n    id: \"variablerSetartikelKomponentenAuswahlCommand\",\n    idCategory: \"auftragsposition\",\n    icon: \"list\",\n    title: \"auftrag.stueckliste_auswaehlen\",\n    isVisibleExpression: \"functions.$f_AuftragspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Auftragsposition && models.data.$m_Auftragsposition.Id > 0 && models.data.$m_Auftragsposition.IsVariablerSetartikel && models.data.$m_Auftragsposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n    }\n  }\n  showVariablerSetartikelPreisAendernCommand: ICommandData = {\n    id: \"variablerSetartikelPreisAendernCommand\",\n    idCategory: \"auftragsposition\",\n    icon: \"money\",\n    title: \"auftrag.preis_aendern\",\n    isVisibleExpression: \"functions.$f_AuftragspositionEditUtils.startupService.startupInfo.Lizenz.HasVariablerSetartikel && !!models.data.$m_Auftragsposition && models.data.$m_Auftragsposition.Id > 0 && models.data.$m_Auftragsposition.IsVariablerSetartikel && models.data.$m_Auftragsposition.CanSave\",\n    sortIndex: 991,\n    execute: async () => {\n      this.showVariablerSetartikelPreisAendernAuswahl();\n    }\n  }\n\n  onMengeReserviertCellPrepared(e): void {\n    if (e.rowType != \"data\" || this.form.models.data.$m_Auftragsposition.IsAuftragBestaetigt == false || e.data.Status.Typ === 1) {\n      return;\n    }\n\n    const rowData = e.data;\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = rowData.MengeReserviertVerpEH < rowData.MengeOffenVerpEH\n      ? \"#C1392D\"\n      : (rowData.HasLagerfuehrung ? \"#2DCC70\" : \"#566473\");\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Auftragsposition\",\n      idVorgEntitaetPropertyName: \"IdArtikel\"\n    });\n\n    this.refreshOptions = {\n      form: form,\n      modelName: \"$m_Auftragsposition\",\n      kalkulationRef: \"r_kalkulation\",\n      einheitPropertyName: \"IdEinheit\",\n      mengeVerpEHPropertyName: \"MengeVerpEH\"\n    }\n\n    this._kalkulationRefreshService.registerRefresh(this.refreshOptions);\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"auftragspositionEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    this.form.models.onLoaded.register(async (e) => {\n      if (e == void 0) {\n        return;\n      }\n      else if (e.model.id == \"$m_Auftrag\") {\n        if (this.form.models.data.$m_Auftragsposition && this.form.models.data.$m_Auftrag) {\n          this.mengeVerpEH = this.form.models.data.$m_Auftragsposition.MengeVerpEH;\n\n          this.hasIntercompanyBestellungBereitsErstellt();\n          this.refreshAuftragsgruppeButton();\n        }\n      }\n      else if (e.model.id == \"$m_Auftragsposition\") {\n        this.showVariablerSetartikelCheckbox = this.form.models.data.$m_Auftragsposition\n          && this.form.models.data.$m_Auftragsposition.Artikel != null\n          && this.form.models.data.$m_Auftragsposition.Artikel.BezugTyp == 3\n          ? true\n          : false;\n\n        this.refreshAuftragsgruppeButton();\n      }\n    });\n\n    this.form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        let result = await this.validateVariablerSetartikel();\n\n        if (!result) {\n          throw new Error();\n        }\n\n        result = await this.validateIntercompany();\n\n        if (!result) {\n          throw new Error();\n        }\n      }\n\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n\n      if (!this.form.models.data.$m_Auftragsposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      if (r.form.models.data.$m_Auftragsposition.Id > 0) {\n        return;\n      }\n\n      if (this.variablerSetartikelKomponentenAuswahlList != null) {\n        return;\n      }\n\n      this.showVariablerSetartikelStuecklistenKomponentenAuswahl();\n\n      return Promise.reject();\n    });\n\n    this.form.onSaved.register(async (r) => {\n      if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n        return;\n      }\n\n      if (this.variablerSetartikelKomponentenAuswahlList == null && this.form.models.data.$m_Auftragsposition.IsSetartikel) {\n        if (this.onReloadStuecklistemkomponentenlist) {\n          this.onReloadStuecklistemkomponentenlist = false;\n          this.form.models.reloadAll();\n        }\n        return;\n      }\n\n      if (r.form.models.data.$m_Auftragsposition.Id > 0 && !this.form.models.data.$m_Auftragsposition.IsVariablerSetartikel) {\n        return;\n      }\n\n      const webEvent = new OnAuftragspositionVariableStuecklistenkomponentenErstellenEvent({\n        IdAuftragsposition: r.form.models.data.$m_Auftragsposition.Id,\n        StuecklistenkomponentenMengeList: this.variablerSetartikelKomponentenAuswahlList\n      });\n\n      const result: OnAuftragspositionVariableStuecklistenkomponentenErstellen = await this._webEventService.execute(webEvent);\n\n      this.form.models.reloadAll();\n      this.variablerSetartikelKomponentenAuswahlList = null;\n    });\n  }\n\n  async idArtikelChanged(e) {\n    this._kalkulationRefreshService.onIdArtikelChanged(this.refreshOptions);\n\n    if (!this.form.models.data.$m_Auftragsposition.Id) {\n      await this.dynFelderDataService.loadVorbelegungen();\n      this._modelUtilsService.setDirty(this.form.models.data.$m_Auftragsposition);\n    }\n\n    this.doEvalVerkaufArtikeldaten(e.detail.value);\n\n    if (!this.startupService.startupInfo.Lizenz.HasVariablerSetartikel) {\n      return;\n    }\n\n    if (e.detail.value != null) {\n      const artikel = await this._artikelService.getArtikelById(e.detail.value);\n\n      this.form.models.data.$m_Auftragsposition.IsVariablerSetartikel = false;\n      this.showVariablerSetartikelCheckbox = false;\n      this.variablerSetartikelKomponentenAuswahlList = null;\n\n      if (artikel.BezugTyp != 3) {\n        return;\n      }\n\n      const dynFeldEintrag = await this._dynFelderService.loadDynFeldEintragByLogikttyp(artikel.IdDynamischesFeldContainer, DynFeldLogikTyp.VariablerSetartikel);\n      this.showVariablerSetartikelCheckbox = true;\n\n      if (dynFeldEintrag != null && dynFeldEintrag[0].WertNummer == 1) {\n        this.form.models.data.$m_Auftragsposition.IsVariablerSetartikel = true;\n      }\n    }\n  }\n\n  copyAuftragsposition($delegate: { (customData: any): Promise<any> }) {\n    $delegate({ \"PosNrUeberschreiben\": true })\n  }\n\n  private async doEvalVerkaufArtikeldaten(idArtikel) {\n    if (!idArtikel) {\n      return;\n    }\n\n    const webEvent = new OnEvalVerkaufArtikeldatenEvent({\n      IdArtikel: idArtikel,\n      IdKunde: this.form.models.data.$m_Auftrag.IdKunde\n    });\n\n    const result: OnEvalVerkaufArtikeldaten = await this._webEventService.execute(webEvent);\n    if (result == void 0) {\n      return;\n    }\n\n    this.form.models.data.$m_Auftragsposition.IdEinheit = result.IdArtikelEinheit;\n    this.form.models.data.$m_Auftragsposition.KundeArtikelNr = result.KundeArtikelNr;\n    this.form.models.data.$m_Auftragsposition.KundeArtikelbezeichnung = result.KundeArtikelbezeichnung;\n  }\n\n  onReloadStuecklistenkomponentenChanged(e) {\n    if (!this.form.models.data.$m_Auftragsposition) {\n      return;\n    }\n\n    if (this.form.models.data.$m_Auftragsposition.IsSetartikel && e.previousValue != null) {\n      this.onReloadStuecklistemkomponentenlist = true;\n    }\n  }\n\n\n  onAuftragsgruppeChanged() {\n    this.refreshAuftragsgruppeButton();\n  }\n\n  private refreshAuftragsgruppeButton() {\n    const data = this.form.models.data.$m_Auftragsposition;\n    const dataAuftrag = this.form.models.data.$m_Auftrag;\n\n    if (!data || !dataAuftrag) {\n      return;\n    }\n    const editor = this.form[\"r_auftragsgruppe\"].instance;\n    const buttons: DevExpress.ui.dxTextEditorButton[] = [];\n\n    if (!data.IdAuftragsgruppe && data.CanSave && !dataAuftrag.IsIcAuftrag) {\n      buttons.push({\n        location: \"after\",\n        name: \"ap\",\n        options: {\n          disabled: false,\n          icon: \"fa fa-plus\",\n          stylingMode: \"text\",\n          tabIndex: -1,\n          onClick: async () => {\n            this.form.models.data.$m_AuftragsgruppeEdit = {\n              Id: 0\n            };\n\n            this.form.editPopups.showEx({\n              idEditPopup: \"auftragsgruppeEditPopup\",\n              modelLoaded: (form, ev) => {\n                if (!form.models.data.$m_Auftragsgruppe) {\n                  return;\n                }\n                form.models.data.$m_Auftragsgruppe.IdAuftrag = this.form.models.data.$m_Auftragsposition.IdAuftrag;\n              },\n              closeCallback: async (form) => {\n                this.form[\"r_auftragsgruppe\"].instance.getDataSource().reload();\n\n                const model = form.models.modelWithKeyId;\n                const data = form.models.data[model.id];\n                this.form.models.data.$m_Auftragsposition.IdAuftragsgruppe = data.Id;\n\n                this.form.onEditorValueChanged.fire({\n                  binding: {\n                    dataContext: \"$m_Auftragsposition\",\n                    bindTo: \"IdAuftragsgruppe\"\n                  },\n                  value: data.Id\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n\n    buttons.push({\n      location: \"after\",\n      name: \"clear\"\n    }, {\n      location: \"after\",\n      name: \"dropDown\"\n    });\n\n    this._dxCustomizeService.updateEditorButtons(editor, buttons);\n  }\n\n  private async hasIntercompanyBestellungBereitsErstellt() {\n    if (this.startupService.startupInfo.Lizenz.HasIntercompany && this.form.models.data.$m_Auftrag && this.form.models.data.$m_Auftrag.IsIntercompany) {\n      const bestellungList = await this._bestellungService.getBestellungListByIdAuftrag(this.form.models.data.$m_Auftrag.Id);\n\n      this.hasIntercompanyBestellung = bestellungList.length > 0\n        ? true\n        : false;\n    } else {\n      this.hasIntercompanyBestellung = false;\n    }\n  }\n\n  private async validateVariablerSetartikel() {\n    if (!this.form.models.data.$m_Auftragsposition.IsVariablerSetartikel)\n      return true;\n\n    if (this.form.models.data.$m_Auftrag.IsIntercompany) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"auftrag.fehler_variabler_setartikel_intercompany\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT)\n      return false;\n    } else if (this.form.models.data.$m_Auftrag.IsStreckengeschaeft) {\n      DevExpress.ui.notify(\n        this._localizationService.translateOnce(\"auftrag.fehler_variabler_setartikel_streckengeschaeft\"),\n        \"error\",\n        this.NOTIFY_TIMEOUT);\n\n      return false;\n    }\n    return true;\n  }\n\n  private async validateIntercompany() {\n    const checkIntercompany = this.startupService.startupInfo.Lizenz.HasIntercompany\n      && this.form.models.data.$m_Auftrag.IsIntercompany\n      && this.hasIntercompanyBestellung\n\n\n    if (!checkIntercompany) {\n      return true;\n    }\n\n    if (this.mengeVerpEH < this.form.models.data.$m_Auftragsposition.MengeVerpEH) {\n      const icAuftragsposition = await this.getIcAuftragsposition();\n\n      if (icAuftragsposition != null) {\n        let doExecute = await this.validateIntercompanyLieferschein(icAuftragsposition);\n\n        if (doExecute) {\n          doExecute = await this.validateIntercompanyBestellung(icAuftragsposition);\n\n          if (!doExecute) {\n            return false;\n          }\n          return true;\n        }\n      }\n    }\n\n    return true;\n  }\n\n  private async validateIntercompanyLieferschein(icAuftragsposition: any) {\n    if (icAuftragsposition.MengeLieferscheinVerpEH > 0) {\n      const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n        this._localizationService.translateOnce(\"bestellung.sure_intercompany_menge_lieferschein\"),\n        this._localizationService.translateOnce(\"base.question\")));\n\n      if (!doExecute) {\n        return false;\n      }\n      return true;\n    }\n    return true;\n  }\n\n  private async validateIntercompanyBestellung(icAuftragsposition: any) {\n    const mengeBestellungIcAuftragsposition = await this._bestellungService.getMengeVerpEHByIdAuftragsposition(icAuftragsposition.Id);\n\n    if (mengeBestellungIcAuftragsposition > 0) {\n      const doExecute = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(\n        this._localizationService.translateOnce(\"bestellung.sure_intercompany_menge_bestellung\"),\n        this._localizationService.translateOnce(\"base.question\")));\n\n      if (!doExecute) {\n        return false;\n      }\n      return true;\n    }\n    return true;\n  }\n\n  private async getIcAuftragsposition() {\n    const idBestellungsposition = await this._bestellungService.getIdBestellungspositionByIdAuftragsposition(this.form.models.data.$m_Auftragsposition.Id);\n\n    if (idBestellungsposition == null) {\n      return null;\n    }\n\n    return await this._auftragService.getAuftragspositionByIdIcBestellungsposition(idBestellungsposition);\n  }\n\n  private async showVariablerSetartikelStuecklistenKomponentenAuswahl() {\n    const webEvent = new OnAuftragspositionVariableStuecklisteAuswahlEvent({\n      IdArtikel: this.form.models.data.$m_Auftragsposition.IdArtikel,\n      IdAuftragsposition: this.form.models.data.$m_Auftragsposition.Id\n    });\n\n    const result: OnAuftragspositionVariableStuecklisteAuswahl = await this._webEventService.execute(webEvent);\n\n    if (result == void 0) {\n      return;\n    }\n\n    if (result.StuecklistenkomponentenAuswahlList.length == 0) {\n      return;\n    }\n\n    const variablerSetartikelAuswahlPopup: VariablerSetartikelKomponentenAuswahl = this.form[\"r_variablerSetartikelKomponentenAuswahlElement\"];\n\n    variablerSetartikelAuswahlPopup.show({\n      StuecklisteList: result.StuecklistenkomponentenAuswahlList,\n      callback: async (auswahl) => {\n        console.log(auswahl);\n        this.variablerSetartikelKomponentenAuswahlList = auswahl;\n        this.form.save();\n      }\n    });\n  }\n\n  private async showVariablerSetartikelPreisAendernAuswahl() {\n    const variablerSetartikelPreisAendernPopup: VariablerSetartikelPreisAendern = this.form[\"r_variablerSetartikelPreisAendernElement\"];\n\n    variablerSetartikelPreisAendernPopup.show({\n      callback: async (result: IVariablerSetartikelPreisAendernResult) => {\n        if (result.RabattEntfernen) {\n          const webEvent = new OnAuftragspositionVariablerSetartikelRabattEntfernenEvent({\n            IdAuftragspositionSetartikel: this.form.models.data.$m_Auftragsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else if (result.ManuellerPreisEntfernen) {\n          const webEvent = new OnAuftragspositionVariablerSetartikelManuellerPreisEntfernenEvent({\n            IdAuftragspositionSetartikel: this.form.models.data.$m_Auftragsposition.Id\n          });\n\n          await this._webEventService.execute(webEvent);\n        } else {\n          const webEvent = new OnAuftragspositionVariablerSetartikelPreisAendernEvent({\n            IdAuftragspositionSetartikel: this.form.models.data.$m_Auftragsposition.Id,\n            Typ: result.KalkulationsFeldTyp,\n            Wert: result.Wert\n          });\n\n          await this._webEventService.execute(webEvent);\n        }\n\n        this.form.models.reloadAll();\n      }\n    });\n  }\n}\n","import {\n  autoinject\n} from \"aurelia-framework\";\nimport {\n  IRoute\n} from \"../interfaces/route\";\n\nexport class RoutesCreatorService {\n  constructor() {}\n\n  createRoutes(structure: any[], routeForms: any, canActivate?: {(route: IRoute): boolean}) {\n    const routes: IRoute[] = [];\n    const parentDic: any = {};\n\n    structure.forEach(s => {\n      const route: IRoute = {\n        caption: s.caption,\n        navigation: {\n          icon: s.icon\n        },\n        children: []\n      };\n\n      routes.push(route);\n      parentDic[s.id] = route;\n    });\n\n    for (let routeFormKey in routeForms) {\n      const routeForm = routeForms[routeFormKey];\n\n      const route: IRoute = {\n        caption: routeForm.caption,\n        route: routeForm.route,\n        moduleId: routeForm.moduleId\n      };\n\n      if (routeForm.isEnabled) {\n        route.navigation = {};\n\n        if (routeForm.category) {\n          route.navigation.category = routeForm.category;\n        }\n        if (routeForm.icon) {\n          route.navigation.icon = routeForm.icon;\n        }\n      }\n\n      if (canActivate) {\n        route.canActivate = () => {\n          return canActivate(route);\n        }\n      }\n      \n      if (routeForm.idParent) {\n        parentDic[routeForm.idParent].children.push(route);\n      } else {\n        routes.push(route);\n      }\n    }\n\n    return routes;\n  }\n}","export enum ArtikelBezugTyp {\n  BestellungBeiLieferant = 0,\n  Eigenfertigung = 1,\n  Fremdfertigung = 2,\n  Setartikel = 3\n}\n","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { autoinject, transient } from \"aurelia-framework\";\nimport { LocalizationService, WebEventService } from \"../../../../framework/base/export\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { FormBase, ICommandData, PopupInfoService } from \"../../../../framework/forms/export\";\nimport { IdxPopupComponent, IdxSelectBoxComponent } from \"../../../interfaces/export\";\nimport { DxCustomizeService } from \"../../../services/dx-customize-service\";\nimport { DynFelderDataService } from \"../../../services/dyn-felder-data-service\";\nimport { BriefService } from \"../../../services/export\";\nimport { OnErstelleAngebotEvent, OnErstelleAuftragEvent, OnGeschaeftspartnerartAendern, OnGeschaeftspartnerartAendernEvent } from \"./../../../../framework-data/events\";\nimport { IdxTextBoxComponent } from \"./../../../interfaces/dx-components\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class GeschaeftspartnerEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderDataService: DynFelderDataService,\n    public startupService: StartupService,\n    private _webEventService: WebEventService,\n    private _localizationService: LocalizationService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService,\n    private _dxCustomizeService: DxCustomizeService,\n    private _briefService: BriefService,\n    private _eventAggregator: EventAggregator) {\n    const mahnung = this.startupService.startupInfo.Lizenz.HasMahnung;\n    this.hasMahnung = mahnung;\n  }\n\n  form: FormBase;\n  hasMahnung: boolean;\n\n  doCopyCommand: ICommandData = {\n    id: \"doCopyCommand\",\n    icon: \"clone\",\n    title: \"geschaeftspartner-edit-utils.geschaeftspartner-kopie-erstellen\",\n    isEnabledExpression: \"models.data.$m_GeschaeftspartnerCopy.IdGeschaeftspartnerart\",\n    execute: null\n  };\n  doGeschaeftspartnerartAendernCommand: ICommandData = {\n    id: \"doGeschaeftspartnerartAendern\",\n    icon: \"floppy-o\",\n    title: \"base.save\",\n    execute: async () => {\n      this.doGeschaeftspartnerartAendern();\n    }\n  };\n  showGeschaeftspartnerartAendernCommand: ICommandData = {\n    id: \"showGeschaeftspartnerartAendern\",\n    idCategory: \"geschaeftspartner_art\",\n    icon: \"pencil-square-o\",\n    title: \"geschaeftspartner-edit-utils.geschaeftspartnerart_aendern\",\n    sortIndex: 955,\n    isEnabledExpression: \"models.data.$m_Geschaeftspartner.Id > 0\",\n    execute: this.onShowGeschaeftspartnerartAendernClicked.bind(this)\n  };\n  gpAngebotErstellenCommand: ICommandData = {\n    id: \"gpAngebotErstellen\",\n    idCategory: \"geschaeftspartner\",\n    icon: \"plus-circle\",\n    title: \"geschaeftspartner-edit-utils.angebot_erstellen\",\n    sortIndex: 980,\n    isEnabledExpression: \"models.data.$m_Geschaeftspartner.CanSave && models.data.$m_Geschaeftspartner.Id > 0\",\n    isVisibleExpression: \"models.data.$m_Geschaeftspartnerart.IsKunde\",\n    execute: async (e) => {\n      this.OnNeuErstellenClicked(\"Angebot\", e);\n    }\n  };\n  gpAuftragErstellenCommand: ICommandData = {\n    id: \"gpAuftragErstellen\",\n    idCategory: \"geschaeftspartner\",\n    icon: \"plus-circle\",\n    title: \"geschaeftspartner-edit-utils.auftrag_erstellen\",\n    sortIndex: 990,\n    isEnabledExpression: \"models.data.$m_Geschaeftspartner.CanSave && models.data.$m_Geschaeftspartner.Id > 0\",\n    isVisibleExpression: \"models.data.$m_Geschaeftspartnerart.IsKunde\",\n    execute: async (e) => {\n      this.OnNeuErstellenClicked(\"Auftrag\", e);\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.dynFelderDataService.register(this.form, {\n      idMainModel: \"$m_Geschaeftspartner\",\n      idArtPropertyName: \"IdGeschaeftspartnerart\"\n    });\n\n    this.form.callOnBind(() => {\n      this._dxCustomizeService.addTelefon(this.form[\"r_telefonOptions\"]);\n      this._dxCustomizeService.addHomepage(this.form[\"r_homepageOptions\"]);\n      this._dxCustomizeService.addUid(this.form[\"r_uidNummerOptions\"]);\n      this._dxCustomizeService.addBrief(this.form[\"r_emailOptions\"], async () => {\n        if (!this.form.models.data.$m_Geschaeftspartner.Email) {\n          DevExpress.ui.notify(\n            this._localizationService.translateOnce(\"geschaeftspartner-edit-utils.email-fehlt\"),\n            \"error\",\n            this.NOTIFY_TIMEOUT\n          );\n\n          return;\n        }\n\n        const saveResult = await this.form.saveIfDirty();\n        if (!saveResult.isValid) {\n          return;\n        }\n\n        this._briefService.createAndGoToBrief(this.form.models.data.$m_Geschaeftspartner.Id);\n      });\n    });\n\n    this._eventAggregator.subscribe(\"uid:reload\", (e) => {\n      if (this.form.models.data.$m_Geschaeftspartner.UIDNummer == e.UIDNummer) {\n        const uidNummerField: IdxTextBoxComponent = this.form[\"r_uidNummer\"];\n        this._dxCustomizeService.reloadUid(uidNummerField.instance);\n      }\n    });\n\n    this.form.onSaving.register(async (r) => {\n      if (r.form.models.hasChangedData()) {\n        if (r.form.models.data.$m_Geschaeftspartner.UIDNummer != null) {\n          r.form.models.data.$m_Geschaeftspartner.UIDNummer = r.form.models.data.$m_Geschaeftspartner.UIDNummer.replace(new RegExp(\" \", \"g\"), \"\");\n        }\n\n        return Promise.resolve();\n      }\n    });\n\n    this.form.models.onLoaded.register(async (r) => {\n      if (r.model.id == \"$m_ProjektZuGeschaeftspartnerRel\") {\n        if (r.data && r.data.data && Array.isArray(r.data.data)) {\n          for (const item of r.data.data) {\n            if (!item.ProjektEx || !item.ProjektEx.IdStatus) {\n              continue;\n            }\n\n            item[\"IdStatus\"] = item.ProjektEx.IdStatus;\n          }\n        }\n      }\n      return Promise.resolve();\n    });\n  }\n\n  copyGeschaeftspartner($delegate: { (customData: any): Promise<any> }) {\n    const copyPopup: IdxPopupComponent = this.form[\"r_copyPopup\"];\n\n    this.form.models.data.$m_GeschaeftspartnerCopy = {\n      IdGeschaeftspartnerart: this.form.models.data.$m_Geschaeftspartner.IdGeschaeftspartnerart,\n      DoKopierenNotizen: true,\n      DoKopierenKonditionen: false\n    };\n\n    copyPopup.instance\n      .show()\n      .then(() => {\n        this.form[\"r_geschaeftspartnerCopyNummer\"].instance.focus();\n      });\n\n    this.doCopyCommand.execute = () => {\n      $delegate(this.form.models.data.$m_GeschaeftspartnerCopy)\n        .then((r) => {\n          copyPopup.instance.hide();\n        });\n    };\n  }\n\n  onReservierungsgradCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.IsBestaetigt == false || e.data.Status.Typ !== 0) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.Reservierungsgrad < 1\n      ? \"#C1392D\"\n      : (e.data.HasArtikelNichtLagerfuehrendOffen ? \"#566473\" : \"#2DCC70\");\n  }\n  onZahlungFaelligCellPrepared(e): void {\n    if (e.rowType != \"data\" || e.data.BezahltTyp == void (0) || !e.data.ZahlungFaelligkeit || !e.data.Status || e.data.Status.Typ != 1) {\n      return;\n    }\n    if (e.data.BezahltTyp != 0 && e.data.BezahltTyp != 2) {\n      return;\n    }\n\n    const cell: HTMLTableCellElement = e.cellElement;\n\n    cell.style.color = \"white\";\n    cell.style.backgroundColor = e.data.ZahlungFaelligkeit.getTime() >= new Date().getTime()\n      ? \"#2DCC70\"\n      : \"#C1392D\";\n  }\n\n  async onShowGeschaeftspartnerartAendernClicked() {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const selectBox: IdxSelectBoxComponent = this.form[\"r_geschaeftspartnerartEdit\"];\n    if (selectBox) {\n      const dataSource = selectBox.instance.getDataSource();\n      dataSource.reload();\n\n      selectBox.setOption({ value: null });\n    }\n\n    const popup: IdxPopupComponent = this.form[\"r_geschaeftspartnerartPopup\"];\n    popup.instance.show();\n  }\n  async doGeschaeftspartnerartAendern() {\n    const popup: IdxPopupComponent = this.form[\"r_geschaeftspartnerartPopup\"];\n    const onGeschaeftspartnerartAendernEvent = new OnGeschaeftspartnerartAendernEvent({\n      IdGeschaeftspartner: this.form.models.data.$m_Geschaeftspartner.Id,\n      IdGeschaeftspartnerart: this.form[\"r_geschaeftspartnerartEdit\"].instance.option(\"value\")\n    });\n\n    if (!this.form[\"r_geschaeftspartnerartEdit\"].instance.option(\"value\")) {\n      DevExpress.ui.notify(this._localizationService.translateOnce(\"geschaeftspartner-edit-utils.keine_geschaeftspartnerart_ausgewaehlt\"), \"error\", this.NOTIFY_TIMEOUT);\n      return;\n    }\n\n    const result: OnGeschaeftspartnerartAendern = await this._webEventService.execute(onGeschaeftspartnerartAendernEvent, true);\n\n    this.form.models.reloadAll();\n\n    DevExpress.ui.notify(this._localizationService.translateOnce(\"geschaeftspartner-edit-utils.geschaeftspartnerart_geaendert\"), \"SUCCESS\", this.NOTIFY_TIMEOUT);\n    popup.instance.hide();\n  }\n\n  private async OnNeuErstellenClicked(entitaetName: string, event: any) {\n    const saveResult = await this.form.saveIfDirty();\n    if (!saveResult.isValid) {\n      return;\n    }\n\n    const idGeschaeftspartner = this.form.models.data.$m_Geschaeftspartner.Id;\n    const webEvent = this.getWebEvent(entitaetName, idGeschaeftspartner);\n\n    const webEventResult = await this._webEventService.execute(webEvent, true);\n    if (!webEventResult) {\n      return;\n    }\n\n    const navigationUrl = this.getNavigationUrlFromWebEventResult(entitaetName, webEventResult);\n    if (!navigationUrl) {\n      return;\n    }\n\n    this._locationService.goTo({\n      url: navigationUrl,\n      clearStack: false\n    });\n\n    this._popupInfoService.closeAllPopups();\n  }\n  private getWebEvent(entitaetName: string, idGeschaeftspartner: number) {\n    switch (entitaetName) {\n      case \"Angebot\":\n        return new OnErstelleAngebotEvent({ IdGeschaeftspartner: idGeschaeftspartner });\n      case \"Auftrag\":\n        return new OnErstelleAuftragEvent({ IdGeschaeftspartner: idGeschaeftspartner });\n      default:\n        return null;\n    }\n  }\n  private getNavigationUrlFromWebEventResult(entitaetName: string, webEventResult: any): string {\n    if (!webEventResult) {\n      return null;\n    }\n\n    let result = null;\n    switch (entitaetName) {\n      case \"Angebot\":\n        result = webEventResult.IdAngebot\n          ? `ERP/Verkauf/${entitaetName}/${webEventResult.IdAngebot}`\n          : null;\n        break;\n      case \"Auftrag\":\n        result = webEventResult.IdAuftrag\n          ? `ERP/Verkauf/${entitaetName}/${webEventResult.IdAuftrag}`\n          : null;\n        break;\n    }\n\n    return result;\n  }\n}\n","export * from \"./widget-creator-service\";\nexport * from \"./simple-widget-creator-service\";","import { autoinject } from \"aurelia-framework\";\nimport { ElementService } from \"./element-service\";\nimport { IViewModel } from '../interfaces/view-model';\nimport { ExcelExportService } from \"../../forms/services/excel-export-service\";\n\n@autoinject\nexport class DataGridService {\n  constructor(\n    private _elementService: ElementService,\n    private _excelExportService: ExcelExportService\n  ) { }\n\n  createOptions(viewModel: IViewModel, idDataSource: string, options: DevExpress.ui.dxDataGridOptions) {\n    const result = Object.assign({\n    }, options, <DevExpress.ui.dxDataGridOptions>{\n        dataSource: [],\n        focusedRowEnabled: true,\n        keyExpr: \"_id\",\n        readOnly: true,\n        onContextMenuPreparing: (e) => {\n          e.items = e.items || [];\n\n          e.items.push({\n            beginGroup: e.items.length > 0,\n            text: \"Daten neu laden\",\n            onClick: () => {\n              viewModel.report.loadDataSource(idDataSource);\n            }\n          });\n\n          e.items.push({\n            beginGroup: true,\n            text: \"Export\",\n            onClick: () => {\n              this._excelExportService.exportDataGrid({\n                component: e.component,\n                selectedRowsOnly: false,\n                exporting: options[\"excelExporting\"],\n                customizeCell: options[\"excelCustomizeCell\"],\n                saving: options[\"excelSaving\"]\n              });\n            }\n          });\n        },\n        onOptionChanged: (e) => {\n          if (e.name == \"focusedRowKey\") {\n            if (e.value) {\n              const item = viewModel.dataSource[idDataSource].find(c => c._id == e.value);\n              viewModel.fireDataSourceSelectionChanged(idDataSource, item ? [item]: []);\n            } else {\n              viewModel.fireDataSourceSelectionChanged(idDataSource, []);\n            }\n          }\n        }\n      });\n\n    this._elementService.prepareContentReady(result);\n    this._elementService.addOnInitialized(result, (e) => {\n      viewModel.registerDataSourceChanged(idDataSource, (idDataSource, data) => {\n        e.component.option({\n          focusedRowKey: undefined,\n          focusedRowIndex: -1,\n          dataSource: data\n        });\n\n        this._elementService.addToContentReady(e.component, () => {\n          if (data.length > 0) {\n            const key = e.component.getKeyByRowIndex(0);\n            e.component.option(\"focusedRowKey\", key);\n          };\n        });\n      }, true);\n\n      const data = viewModel.dataSource[idDataSource] || [];\n      e.component.option({\n        focusedRowKey: undefined,\n        dataSource: data\n      });\n\n      this._elementService.addToContentReady(e.component, () => {\n        if (data.length > 0) {\n          const key = e.component.getKeyByRowIndex(0);\n          e.component.option(\"focusedRowKey\", key);\n        }\n      });\n    });\n\n    return result;\n  }\n}","import { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class BrowserService {\n  constructor() {\n    this.isIE = navigator.userAgent.indexOf(\"Trident/\") >= 0;\n    this.isEdge = navigator.userAgent.indexOf(\"Edge/\") >= 0;\n    this.isFirefox = navigator.userAgent.indexOf(\"Firefox/\") >= 0;\n\n    this.isMobile = window.screen.height < 700\n      || window.screen.width < 700;\n\n    this.isXL = window.screen.width >= 1500;\n    this.isLG = !this.isXL && window.screen.width >= 1200;\n    this.isMD = !this.isXL && !this.isLG && window.screen.width >= 992;\n    this.isSM = !this.isXL && !this.isLG && !this.isMD && window.screen.width >= 768;\n    this.isXS = window.screen.width < 768;\n\n    this.isTouch = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i\n      .test(navigator.userAgent);\n\n    const iOS = !!navigator.userAgent.match(/iPad/i) || !!navigator.userAgent.match(/iPhone/i);\n    const webkit = !!navigator.userAgent.match(/WebKit/i);\n    this.isIOSSafari = iOS && webkit && !navigator.userAgent.match(/CriOS/i);\n    this.isIOS = iOS && webkit;\n\n    const body = document.getElementsByTagName(\"body\")[0];\n\n    if (this.isMobile) {\n      body.classList.add(\"t--is-mobile\");\n    }\n    if (this.isTouch) {\n      body.classList.add(\"t--is-touch\");\n    }\n    if (this.isIE) {\n      body.classList.add(\"t--is-ie\");\n    }\n    if (this.isEdge) {\n      body.classList.add(\"t--is-edge\");\n    }\n    if (this.isFirefox) {\n      body.classList.add(\"t--is-firefox\");\n    }\n    if (this.isXL) {\n      body.classList.add(\"t--is-xl\");\n    }\n    if (this.isLG) {\n      body.classList.add(\"t--is-lg\");\n    }\n    if (this.isMD) {\n      body.classList.add(\"t--is-md\");\n    }\n    if (this.isSM) {\n      body.classList.add(\"t--is-sm\");\n    }\n    if (this.isXS) {\n      body.classList.add(\"t--is-xs\");\n    }\n  }\n\n  isFirefox: boolean;\n  isIE: boolean;\n  isEdge: boolean;\n  isIOSSafari: boolean;\n  isIOS: boolean;\n\n  isMobile: boolean;\n  isTouch: boolean;\n\n  isXS: boolean;\n  isSM: boolean;\n  isMD: boolean;\n  isLG: boolean;\n  isXL: boolean;\n}\n","import {\n  IContextMenuItem\n} from \"../interfaces/context-menu-item\";\nimport * as DxLoader from \"../../dx/dx-loader\";\n\nexport class ContextMenu {\n  constructor(\n    private options?: IContextMenuOptions) { }\n\n  items: IContextMenuItem[] = [];\n\n  show(target) {\n    if (this.items.length === 0) {\n      return;\n    }\n\n    const options: DevExpress.ui.dxContextMenuOptions = {\n      target: target,\n      position: {\n        boundary: document.body,\n        boundaryOffset: {\n          x: 5,\n          y: 5\n        },\n        my: \"top\",\n        at: \"bottom\"\n      },\n      items: this.items,\n      onItemClick: (e) => {\n        e.itemData.execute(e);\n\n        if (this.options && this.options.onItemClick) {\n          this.options.onItemClick(e.itemData);\n        }\n      },\n      onHidden: (e) => {\n        element.remove();\n\n        if (instance) {\n          instance.dispose();\n        }\n\n        if (this.options && this.options.onHidden) {\n          this.options.onHidden();\n        }\n      }\n    };\n\n    const element =  document.createElement(\"div\");\n    \n    document.body.appendChild(element);\n\n    const instance: DevExpress.ui.dxContextMenu = DxLoader.createInstance(\"dxContextMenu\", element, options);\n    instance.show();\n  }\n}\nexport interface IContextMenuOptions {\n  onHidden?(): void;\n  onItemClick?(item: any): void;\n}","export { AdresseService } from \"./adresse-service\";\nexport { AuftragService } from \"./auftrag-service\";\nexport { AngebotService } from \"./angebot-service\";\nexport { ArtikelService } from \"./artikel-service\";\nexport { EntitaetInfoService } from \"./entitaet-info-service\";\nexport { GeschaeftspartnerService } from \"./geschaeftspartner-service\";\nexport { StartupService } from \"./startup-service\";\nexport { DynFelderService } from \"./dyn-felder-service\";\nexport { GeschaeftspartnerSearchService } from \"./geschaeftspartner-search-service\";\nexport { ArtikelSearchService } from \"./artikel-search-service\";\nexport { SearchResultSearchService } from \"./search-result-search-service\";\nexport { ProjektService } from \"./projekt-service\";\nexport { ProjektSearchService } from \"./projekt-search-service\";\nexport { DmsViewerService } from \"./dms-viewer-service\";\nexport { HeaderCommandService } from \"./header-command-service\";\nexport { StatusService } from \"./status-service\";\nexport { KonditionService } from \"./kondition-service\";\nexport { WaehrungService } from \"./waehrung-service\";\nexport { DruckenService } from \"./drucken-service\";\nexport { LieferscheinService } from \"./lieferschein-service\";\nexport { PersonService } from \"./person-service\";\nexport { FormCommandService } from \"./form-command-service\";\nexport { CustomEditPopupService } from \"./custom-edit-popup-service\";\nexport { TemplateRegisterService } from \"./template-register-service\";\nexport { KalkulationRefreshService } from \"./kalkulation-refresh-service\";\nexport { FilialeService } from \"./filiale-service\";\nexport { FirmaService } from \"./firma-service\";\nexport { LagerService } from \"./lager-service\";\nexport { SpracheUebersetzungService } from \"./sprache-uebersetzung-service\";\nexport { BriefService } from \"./brief-service\";\nexport { FilterService } from \"./filter-service\";\nexport { FormExtenderService } from \"./form-extender-service\";\nexport { ValidationExService } from \"./validation-ex-service\";\nexport { DynFelderDataService } from \"./dyn-felder-data-service\";\nexport { ProdAuftragService } from \"./prod-auftrag-service\";\nexport { ProdAuftragSearchService } from \"./prod-auftrag-search-service\";\nexport { VerknuepfteEntitaetService } from \"./verknuepfte-entitaet-service\";\nexport { FakturaService } from \"./faktura-service\";\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { WebEventService } from \"../../../../framework/base/export\";\nimport { LocalizationService } from \"../../../../framework/base/services/localization-service\";\nimport { LocationService } from \"../../../../framework/base/services/location-service\";\nimport { ContextMenu } from \"../../../../framework/forms/classes/context-menu\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { IdxDataGridComponent } from \"../../../interfaces/export\";\nimport { DynFelderDataService, DynFelderService, FirmaService, GeschaeftspartnerService, ValidationExService } from \"../../../services/export\";\nimport { KalkulationRefreshService } from \"../../../services/kalkulation-refresh-service\";\nimport { OnDeleteIdFakturapositionListEvent, OnErstelleFakturaStorno, OnErstelleFakturaStornoEvent, OnFakturaAbschliessenEvent, OnFakturaBezahltAendernEvent, OnFakturaMahnen, OnFakturaMahnenEvent, OnKopierenRequest, OnKopierenRequestEvent } from \"./../../../../framework-data/events\";\nimport { AsyncService } from \"./../../../../framework/base/services/async-service\";\nimport { StartupService } from \"./../../../services/startup-service\";\nimport { BelegExportService } from \"../../../services/beleg-export-service\";\nimport { BelegImportTyp } from \"../../../enumerations/beleg-import-typ\";\n\n@autoinject\n@transient()\nexport class FakturaEditUtils {\n  private NOTIFY_TIMEOUT: number = 3000;\n\n  constructor(\n    public dynFelderData: DynFelderDataService,\n    public startupService: StartupService,\n    private _asyncService: AsyncService,\n    private _belegExportService: BelegExportService,\n    private _dynFelderService: DynFelderService,\n    private _firmaService: FirmaService,\n    private _geschaeftspartnerService: GeschaeftspartnerService,\n    private _kalkulationRefreshService: KalkulationRefreshService,\n    private _localizationService: LocalizationService,\n    private _locationService: LocationService,\n    private _validationExService: ValidationExService,\n    private _webEventService: WebEventService) { }\n\n  form: FormBase;\n  //für Binding ZahlungEditForm benötigt\n  id0: number = 0;\n  isBelegExportMandantAktiv: boolean;\n\n  doExport: ICommandData = {\n    id: \"doExport\",\n    icon: \"download\",\n    idCategory: \"beleg-export\",\n    sortIndex: 999,\n    isVisibleExpression: \"functions.$f_FakturaEditUtils.startupService.startupInfo.Lizenz.HasBelegImportExport && functions.$f_FakturaEditUtils.isBelegExportMandantAktiv && models.data.$m_Faktura.Id > 0 && models.data.$m_Faktura.Typ != 1 && models.data.$m_Faktura.StornoTyp == 0\",\n    title: \"erp.beleg-export\",\n    execute: async () => {\n      const id = this.form.models.data.$m_Faktura.Id;\n      this._belegExportService.export(BelegImportTyp.Faktura, [id]);\n    }\n  };\n\n  doAbschliessenCommand: ICommandData = {\n    id: \"doAbschliessen\",\n    idCategory: \"faktura\",\n    title: \"faktura.abschliessen\",\n    icon: \"check\",\n    isEnabledExpression: \"models.data.$m_Faktura.Status && models.data.$m_Faktura.Status.Typ === 0\",\n    sortIndex: 998,\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const validationResult = await this._validationExService.executeServerValidation(\n        this.form.models.data.$m_Faktura.TypeName,\n        this.form.models.data.$m_Faktura.Id,\n        \"ABSCHLIESSEN\"\n      );\n\n      if (!validationResult) {\n        return;\n      }\n\n      await this._webEventService.execute(new OnFakturaAbschliessenEvent({\n        IdFaktura: this.form.models.data.$m_Faktura.Id\n      }), true);\n\n      return this.form.models.reloadAll();\n    }\n  };\n  doStornierenCommand: ICommandData = {\n    id: \"doStornieren\",\n    idCategory: \"faktura\",\n    icon: \"times-circle\",\n    title: \"faktura.stornieren\",\n    sortIndex: 999,\n    isVisibleExpression: \"models.data.$m_Faktura.Status.Typ === 1\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_fakturapositionGrid\"];\n      const selectedKeys: number[] = grid.instance.getSelectedRowKeys();\n\n      const webEvent = new OnErstelleFakturaStornoEvent({\n        IdFaktura: this.form.models.data.$m_Faktura.Id,\n        AllePositionen: selectedKeys.length === 0,\n        IdFakturaPosList: selectedKeys\n      });\n\n      const webEventResult: OnErstelleFakturaStorno = await this._webEventService.execute(webEvent, true);\n      if (!webEventResult || !webEventResult.IdStorno) {\n        return;\n      }\n\n      this._locationService.goTo({\n        url: `ERP/Verkauf/Faktura/${webEventResult.IdStorno}`,\n        clearStack: false\n      });\n    }\n  };\n  doBezahltAendernCommand: ICommandData = {\n    id: \"doBezahltAendern\",\n    idCategory: \"faktura\",\n    icon: \"flag\",\n    title: \"faktura.bezahlt_aendern\",\n    sortIndex: 1000,\n    isVisibleExpression: \"models.data.$m_Faktura.Status.Typ === 1\",\n    execute: async (e) => {\n      const changeStatus = async (typ) => {\n        const webEvent = new OnFakturaBezahltAendernEvent({\n          IdFaktura: this.form.models.data.$m_Faktura.Id,\n          Typ: typ\n        });\n\n        await this._webEventService.execute(webEvent, true);\n        this.form.models.reloadAll();\n      };\n\n      const contextMenu = new ContextMenu();\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"faktura.bezahlt_offen\"),\n        execute: () => {\n          changeStatus(0);\n        }\n      });\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"faktura.bezahlt_bezahlt\"),\n        execute: () => {\n          changeStatus(1);\n        }\n      });\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"faktura.bezahlt_inkasso\"),\n        execute: () => {\n          changeStatus(2);\n        }\n      });\n      contextMenu.items.push({\n        text: this._localizationService.translateOnce(\"faktura.bezahlt_uneinbringbar\"),\n        execute: () => {\n          changeStatus(3);\n        }\n      });\n\n      if (this.form.models.data.$m_Faktura.BezahltTyp == 0 && this.form.models.data.$m_Faktura.Status && this.form.models.data.$m_Faktura.Status.Typ == 1) {\n        contextMenu.items.push({\n          beginGroup: true,\n          text: this._localizationService.translateOnce(\"faktura.zahlungseingang_erfassen\"),\n          execute: async () => {\n            const saveResult = await this.form.saveIfDirty();\n            if (!saveResult.isValid) {\n              return;\n            }\n\n            this.form.editPopups.show(\"zahlungseingangEditPopup\", null);\n          }\n        });\n      }\n\n      contextMenu.show(e.event && e.event.target ? e.event.target : null);\n    }\n  };\n  doMahnenCommand: ICommandData = {\n    id: \"doMahnen\",\n    idCategory: \"faktura\",\n    icon: \"tags\",\n    title: \"faktura.mahnen\",\n    sortIndex: 999,\n    isVisibleExpression: \"functions.$f_FakturaEditUtils.startupService.startupInfo.Lizenz.HasMahnung && models.data.$m_Faktura.Status.Typ === 1 && models.data.$m_Faktura.BezahltTyp == 0 && models.data.$m_Faktura.WertBrutto > 0\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const onFakturaMahnenEvent = new OnFakturaMahnenEvent({\n        IdFaktura: this.form.models.data.$m_Faktura.Id\n      });\n\n      const result: OnFakturaMahnen = await this._webEventService.execute(onFakturaMahnenEvent, true);\n      if (result.IdMahnung) {\n        this._locationService.goTo({\n          url: \"ERP/Verkauf/Mahnung/\".concat(result.IdMahnung.toString()),\n          clearStack: false\n        });\n      }\n    }\n  };\n  doCopyPosCommand: ICommandData = {\n    id: \"doCopyPosCommand\",\n    icon: \"clone\",\n    sortIndex: 1000,\n    title: \"form-command.kopieren-command-icon-text\",\n    isEnabledExpression: \"models.data.$m_Faktura.CanSave\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_fakturapositionGrid\"];\n      const fakturaPosGridRowData = grid.instance.getSelectedRowsData();\n\n      if (fakturaPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"faktura.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const faktura of fakturaPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          faktura.TypeName,\n          faktura.Id,\n          \"KOPIEREN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      for (const faktura of fakturaPosGridRowData) {\n        const onKopierenRequest: OnKopierenRequest = await this._webEventService.execute(new OnKopierenRequestEvent({\n          IdSourceOjekt: faktura.Id,\n          CustomData: { \"PosNrUeberschreiben\": true }\n        }),\n          true);\n      }\n\n      this.form.models.reloadAll();\n    }\n  };\n  doDeletePosCommand: ICommandData = {\n    id: \"$delete\",\n    icon: \"times\",\n    title: \"base.delete\",\n    tooltip: \"base.delete_tooltip\",\n    sortIndex: 1001,\n    isEnabledExpression: \"models.data.$m_Faktura.CanDelete\",\n    execute: async () => {\n      const saveResult = await this.form.saveIfDirty();\n      if (!saveResult.isValid) {\n        return;\n      }\n\n      const grid: IdxDataGridComponent = this.form[\"r_fakturapositionGrid\"];\n      const fakturaPosGridRowData = grid.instance.getSelectedRowsData();\n      grid.instance.clearSelection();\n\n      if (fakturaPosGridRowData.length == 0) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"faktura.fehler_keine_auswahl\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      const title = this._localizationService.translateOnce(\"base.question\");\n      const question = this._localizationService.translateOnce(\"base.sure_delete_question\");\n\n      const isConfirmed = await this._asyncService.convertToPromise(DevExpress.ui.dialog.confirm(question, title));\n      if (!isConfirmed) {\n        return;\n      }\n\n      if (fakturaPosGridRowData.some((c) => c.CanDelete == false)) {\n        DevExpress.ui.notify(\n          this._localizationService.translateOnce(\"faktura.fehler_loeschen\"),\n          \"error\",\n          this.NOTIFY_TIMEOUT);\n        return;\n      }\n\n      for (const fakturaposition of fakturaPosGridRowData) {\n        const validationResult = await this._validationExService.executeServerValidation(\n          fakturaposition.TypeName,\n          fakturaposition.Id,\n          \"LOESCHEN\"\n        );\n\n        if (!validationResult) {\n          return;\n        }\n      }\n\n      const idList = fakturaPosGridRowData.map((c) => c.Id);\n\n      await this._webEventService.execute(new OnDeleteIdFakturapositionListEvent({\n        IdFakturapositionList: idList\n      }), true);\n\n      this.form.models.reloadAll();\n    }\n  };\n\n  bind(form: FormBase) {\n    this.form = form;\n\n    form.focusFirstEnabledEditor = () => {\n      const rechnungsort = <HTMLInputElement>form.element.querySelector(\"geschaeftspartner[view-model\\\\.ref='r_rechnungsort'] .dx-searchbox input\");\n      if (!rechnungsort) {\n        return;\n      }\n\n      rechnungsort.focus();\n    };\n\n    this.dynFelderData.register(this.form, {\n      idMainModel: \"$m_Faktura\",\n      idVorgEntitaetPropertyName: \"IdRechnungsort\"\n    });\n\n    this._kalkulationRefreshService.registerRefresh({\n      form: form,\n      modelName: \"$m_Faktura\",\n      kalkulationRef: \"r_kalkulation\",\n      editPopups: [\"fakturapositionEditPopup\", \"fakturagruppeEditPopup\"]\n    });\n\n    form.models.onLoaded.register(async (r) => {\n      if (r == void 0 || r.model.id != \"$m_Faktura\") {\n        return;\n      }\n\n      this.isBelegExportMandantAktiv = await this._belegExportService.isBelegExportMandantAktiv(BelegImportTyp.Faktura);\n\n      return Promise.resolve();\n    });\n\n    form.onSaved.register((r) => {\n      this.form.models.onLoadRequired.fire({\n        model: this.form.models.getInfo(\"$m_FakturapositionRel\"),\n        onlyCurrentPage: true\n      });\n\n      return Promise.resolve();\n    });\n\n    form.editPopups.onEditPopupHidden.register((r) => {\n      if (r.hasDataReloaded) {\n        return Promise.resolve();\n      }\n\n      if (r.editPopup.id == \"fakturapositionEditPopup\") {\n        form[\"r_fakturagruppeGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"fakturagruppeEditPopup\") {\n        form[\"r_fakturapositionGrid\"].instance.refresh();\n      } else if (r.editPopup.id == \"zahlungseingangEditPopup\") {\n        this.form.models.reloadAll();\n      }\n\n      return Promise.resolve();\n    });\n\n    form.onEditorValueChanged.register(async (args) => {\n      if (args.binding.dataContext === \"$m_Faktura\") {\n        if (!args.value) {\n          return;\n        }\n\n        if (args.binding.bindTo === \"IdFirma\") {\n          const model = form.models.data[\"$m_Faktura\"];\n          if (model) {\n            model.IdWaehrung = await this._firmaService.getWaehrungIdOfFirma(args.value);\n          }\n        }\n      }\n    });\n  }\n\n  async onRechnungsortChanged() {\n    await this.dynFelderData.loadVorbelegungen();\n\n    this.setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen();\n  }\n\n  private async setFirmaVorbelegungDynFeldLogikFirmaUmstellungBeiMehrerenFirmen() {\n    if (this.form.models.data.$m_Faktura.CanSave && this.form.models.data.$m_Faktura.Id > 0) {\n      return;\n    }\n\n    const geschaeftspartner = await this._geschaeftspartnerService.getGeschaeftspartnerById(this.form.models.data.$m_Faktura.IdRechnungsort);\n    let idFirma = await this._dynFelderService.getIdFirmaDynFeldLogikFirmaUmstellungBeiMehrerenFirmen(geschaeftspartner.IdDynamischesFeldContainer);\n\n    if (idFirma == null) {\n      idFirma = await this._firmaService.getIdFirmaVorbelegung();\n    }\n\n    this.form.models.data.$m_Faktura.IdFirma = idFirma;\n\n    this.form.onEditorValueChanged.fire({\n      binding: {\n        dataContext: \"$m_Faktura\",\n        bindTo: \"IdFirma\"\n      },\n      value: idFirma\n    });\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase } from \"../../../../framework/forms/export\";\nimport { StartupService } from \"./../../../services/startup-service\";\n\n@autoinject\n@transient()\nexport class AbschlagfakturaEditUtils {\n\n  constructor(\n    private _startupService: StartupService) { }\n\n  form: FormBase;\n\n  onWertProzentValueChanged(e): void {\n    if (!this.form.models.data.$m_Auftrag) {\n      return;\n    }\n    if (e.value == null) {\n      return;\n    }\n    const wert = this.form.models.data.$m_Auftrag.WertNetto;\n    const wertNetto = parseFloat(((wert / 100) * e.value).toFixed(2));\n    this.form.models.data.$m_Abschlagsfaktura.WertNetto = wertNetto;\n  }\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.models.onLoaded.register((r) => {\n      if (r == void 0 || r.model.id != \"$m_Abschlagsfaktura\") {\n        return;\n      }\n\n      const data = this.form.models.data.$m_Abschlagsfaktura;\n      if (!data) {\n        return;\n      }\n      data.IsVorausinkasso = this._startupService.startupInfo.Mandant.IsVorauskasseAbschlagfakturaVorbelegt;\n\n      return Promise.resolve();\n    });\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { FormBase } from '../../../../framework/forms/export';\n\n@autoinject\n@transient()\nexport class ImpressumUtils {\n  constructor() {}\n    \n  form: FormBase;\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n  }\n}\n","import { IDataSourceCustomizationOptions } from './../../../../framework/base/interfaces/data-source-customization-options';\nimport { ICommandData } from './../../../../framework/forms/interfaces/command-data';\nimport { IdxPopupComponent } from './../../../interfaces/dx-components';\nimport { IPopupInfo } from './../../../../framework/forms/interfaces/popup-info';\nimport {\n  autoinject,\n  transient\n} from \"aurelia-framework\";\nimport {\n  FormBase, PopupInfoService\n} from \"../../../../framework/forms/export\";\nimport {\n  LocationService\n} from \"../../../../framework/base/export\";\nimport { EntitaetInfoService } from '../../../services/export';\n\n@autoinject\n@transient()\nexport class LagerbuchungListNestedUtils {\n  constructor(\n    private _entitaetInfoService: EntitaetInfoService,\n    private _popupInfoService: PopupInfoService,\n    private _locationService: LocationService\n  ) { }\n\n  form: FormBase;\n  \n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    this.form.binding.observe({\n      scopeContainer: this.form.scopeContainer,\n      expression: \"models.data.$m_LagerbuchungE\",\n      callback: async (newValue) => {\n        if (!newValue) {\n          return;\n        }\n\n        this.form.models.data.$m_LagerbuchungE = null;\n        if (!newValue.VerknuepfteEntitaet) {\n          return;\n        }\n\n        this._entitaetInfoService\n          .getUrl(newValue.VerknuepfteEntitaet.TypeName, newValue.VerknuepfteEntitaet.Id)\n          .then(r => {\n            this._popupInfoService.closeAllPopups().then(pr => {\n              if (!pr) {\n                return;\n              }\n\n              this._locationService.goTo({\n                url: r\n              });\n            });\n          });\n      }\n    });\n\n    this.form.callOnBind(() => {\n      const gridOptions = <DevExpress.ui.dxDataGridOptions>form[\"r_lagerbuchungGridOptions\"];\n      (<DevExpress.ui.dxDataGridColumn[]>gridOptions.columns)\n        .filter(c => c.dataField == \"IdVerknuepfteEntitaet\")\n        .forEach(c => {\n          c.allowHeaderFiltering = false;\n          c.filterOperations = [\"contains\"];\n        });\n    });\n  }\n\n  onVerknEntitaetCellPrepared(e) {\n    if (e.rowType != \"data\") {\n      return;\n    }\n\n    if (!e.data || !e.data.VerknuepfteEntitaet) {\n      return;\n    }\n\n    const cell: HTMLTableDataCellElement = e.cellElement;\n    var verkn = e.data.VerknuepfteEntitaet;\n\n    const html = `<div class=\"erp--text-with-leading-label-badge\">\n      <div class=\"${verkn.TypeBezeichnung ? \"\" : \"erp--empty-badge\"}\">\n        ${verkn.TypeBezeichnung ? verkn.TypeBezeichnung : \"\"}\n      </div>\n      <div>\n        ${verkn.CboBezeichnung ? verkn.CboBezeichnung : \"\"}\n      </div>\n    </div>`;\n\n     cell.innerHTML = html;\n  }\n  onVerknEntitaetCalcFilter(e) {\n    return [\"VerknuepfteEntitaet.CboBezeichnung\", \"contains\", e.value];\n  }\n}\n","import { autoinject, transient } from \"aurelia-framework\";\nimport { OnOffice365AuthTokenAbfrage, OnOffice365AuthTokenAbfrageEvent, OnOffice365TokenAnfordern, OnOffice365TokenAnfordernEvent } from \"../../../../framework-data/events\";\nimport { FormBase, ICommandData } from \"../../../../framework/forms/export\";\nimport { StartupService } from \"../../../services/export\";\nimport { WebEventService } from \"./../../../../framework/base/services/web-event-service\";\n\n@autoinject\n@transient()\nexport class BenutzerEinstellungenEditUtils {\n  constructor(\n    private _startupService: StartupService,\n    private _webEventService: WebEventService\n  ) {\n    this.isSupport = this._startupService.startupInfo.Benutzer.IsSupport;\n  }\n\n  form: FormBase;\n  isSupport = false;\n\n  office365AuthCommand: ICommandData = {\n    id: \"office365Auth\",\n    idCategory: \"benutzer\",\n    title: \"erp_header.office365_auth\",\n    icon: \"lock\",\n    sortIndex: 22,\n    isVisible: false,\n    execute: async () => {\n      const r: OnOffice365TokenAnfordern = await this._webEventService.execute(new OnOffice365TokenAnfordernEvent({}));\n      window.open(r.AuthUrl, \"_blank\");\n    }\n  };\n\n  bind(form: FormBase, namespace: string) {\n    this.form = form;\n\n    form.models.onLoaded.register(async (e) => {\n      if (e.model.id == \"$m_Benutzer\" && e.data) {\n        if (!this._startupService.startupInfo.Benutzer.HasOffice365MailServer) {\n          this.office365AuthCommand.isVisible = false;\n          return;\n        }\n\n        const r: OnOffice365AuthTokenAbfrage = await this._webEventService.execute(new OnOffice365AuthTokenAbfrageEvent({\n          HasAuthToken: false\n        }));\n\n        this.office365AuthCommand.isVisible = r && !r.HasAuthToken\n          ? true\n          : false;\n      }\n\n      return Promise.resolve();\n    });\n  }\n}\n"],"sourceRoot":""}