mobicloud-core 1.0.39 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bundles/mobicloud-core-components.umd.js +593 -4
  2. package/bundles/mobicloud-core-components.umd.js.map +1 -1
  3. package/bundles/mobicloud-core-components.umd.min.js +2 -2
  4. package/bundles/mobicloud-core-components.umd.min.js.map +1 -1
  5. package/bundles/mobicloud-core-icons.umd.js +1 -1
  6. package/bundles/mobicloud-core-icons.umd.js.map +1 -1
  7. package/bundles/mobicloud-core-icons.umd.min.js +1 -1
  8. package/bundles/mobicloud-core-icons.umd.min.js.map +1 -1
  9. package/bundles/mobicloud-core.umd.js +8 -0
  10. package/bundles/mobicloud-core.umd.js.map +1 -1
  11. package/bundles/mobicloud-core.umd.min.js +1 -1
  12. package/bundles/mobicloud-core.umd.min.js.map +1 -1
  13. package/components/dimension/dimension-group-box/dimension-group-box.component.d.ts +46 -0
  14. package/components/dimension/dimension-groups/dimension-groups.component.d.ts +31 -0
  15. package/components/mobicloud-core-components.metadata.json +1 -1
  16. package/components/print-dialog/print-dialog.component.d.ts +23 -0
  17. package/components/public-api.d.ts +3 -0
  18. package/esm2015/components/content-toolbar/content-toolbar.component.js +2 -2
  19. package/esm2015/components/dimension/dimension-group-box/dimension-group-box.component.js +360 -0
  20. package/esm2015/components/dimension/dimension-groups/dimension-groups.component.js +150 -0
  21. package/esm2015/components/mobicloud-components.module.js +6 -3
  22. package/esm2015/components/pickinglist/pickinglist-add-new-shipment/pickinglist-add-new-shipment.component.js +2 -2
  23. package/esm2015/components/print-dialog/print-dialog.component.js +60 -0
  24. package/esm2015/components/public-api.js +4 -1
  25. package/esm2015/icons/mobicloud-icons.module.js +2 -2
  26. package/esm2015/lib/services/mobicloud-config.service.js +5 -1
  27. package/fesm2015/mobicloud-core-components.js +552 -6
  28. package/fesm2015/mobicloud-core-components.js.map +1 -1
  29. package/fesm2015/mobicloud-core-icons.js +1 -1
  30. package/fesm2015/mobicloud-core-icons.js.map +1 -1
  31. package/fesm2015/mobicloud-core.js +4 -0
  32. package/fesm2015/mobicloud-core.js.map +1 -1
  33. package/icons/assets/svg/sync.svg +6 -0
  34. package/lib/services/mobicloud-config.service.d.ts +2 -0
  35. package/mobicloud-core.metadata.json +1 -1
  36. package/package.json +1 -1
@@ -344,7 +344,7 @@
344
344
  ContentToolbarComponent.decorators = [
345
345
  { type: core.Component, args: [{
346
346
  selector: 'mobicloud-content-toolbar',
347
- template: "<mat-toolbar class=\"content-toolbar\" *ngIf=\"toobarEnabled\">\n <mat-toolbar-row class=\"content-toolbar-row\">\n <ng-container *ngIf=\"preToolbarItems\"> \n <ng-container *ngFor=\"let toolbarItem of preToolbarItems\">\n <button aria-label=\"Button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-pre-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n <mat-icon svgIcon=\"{{toolbarItem.svg}}\" class=\"content-pre-toolbar-button-icon\"></mat-icon>\n </button>\n </ng-container>\n <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n </ng-container> \n <div class=\"content-toolbar-title\">\n <!-- <mat-icon svgIcon=\"{{toobarTitleIcon}}\" class=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></mat-icon> -->\n <svg-icon [name]=\"toobarTitleIcon\" svgClass=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></svg-icon>\n {{toobarTitle}}\n </div>\n \n\n <span class=\"content-toolbar-divider\"></span>\n \n <ng-container *ngIf=\"toolbarItems\"> \n <ng-container *ngFor=\"let toolbarItem of toolbarItems\">\n <button aria-label=\"Button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n <!-- <mat-icon svgIcon=\"{{toolbarItem.svg}}\" class=\"content-toolbar-button-icon\"></mat-icon> -->\n <svg-icon name=\"{{toolbarItem.svg}}\" svgClass=\"content-toolbar-button-icon\" viewBox=\"0 0 48 48\"></svg-icon>\n </button>\n </ng-container>\n <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n </ng-container>\n </mat-toolbar-row>\n </mat-toolbar> ",
347
+ template: "<mat-toolbar class=\"content-toolbar\" *ngIf=\"toobarEnabled\">\n <mat-toolbar-row class=\"content-toolbar-row\">\n <ng-container *ngIf=\"preToolbarItems\"> \n <ng-container *ngFor=\"let toolbarItem of preToolbarItems\">\n <button aria-label=\"button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-pre-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n <mat-icon svgIcon=\"{{toolbarItem.svg}}\" class=\"content-pre-toolbar-button-icon\"></mat-icon>\n </button>\n </ng-container>\n <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n </ng-container> \n <div class=\"content-toolbar-title\">\n <!-- <mat-icon svgIcon=\"{{toobarTitleIcon}}\" class=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></mat-icon> -->\n <svg-icon [name]=\"toobarTitleIcon\" svgClass=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></svg-icon>\n {{toobarTitle}}\n </div>\n \n <ng-content></ng-content>\n <span class=\"content-toolbar-divider\"></span>\n \n <ng-container *ngIf=\"toolbarItems\"> \n <ng-container *ngFor=\"let toolbarItem of toolbarItems\">\n <button aria-label=\"button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n <!-- <mat-icon svgIcon=\"{{toolbarItem.svg}}\" class=\"content-toolbar-button-icon\"></mat-icon> -->\n <svg-icon name=\"{{toolbarItem.svg}}\" svgClass=\"content-toolbar-button-icon\" viewBox=\"0 0 48 48\"></svg-icon>\n </button>\n </ng-container>\n <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n </ng-container>\n </mat-toolbar-row>\n </mat-toolbar> ",
348
348
  styles: [".content-toolbar{background-color:transparent!important;min-height:32px!important;max-height:32px!important;margin-bottom:14px}.content-toolbar-row{padding:0}.content-pre-toolbar-button{background-color:transparent!important;width:32px;height:32px;min-width:unset!important;padding:0!important;margin-right:10px!important}.content-pre-toolbar-button-icon{margin-bottom:8px;width:20px;fill:var(--default-toolbar-iconcolor-nobackground)}.content-toolbar-title{font-size:large;font-weight:600;color:var(--default-pagecaption-textcolor);display:flex}.content-toolbar-title-icon{height:20px;width:20px;margin-right:8px;margin-top:5px;fill:var(--default-pagecaption-iconcolor)}.content-toolbar-divider{flex:1 1 auto}.content-toolbar-button{background-color:var(--default-toolbar-iconcolor-withbackground)!important;width:32px;height:32px;min-width:unset!important;padding:0!important;margin-left:8px!important}.content-toolbar-button-icon{pointer-events:none;fill:var(--default-toolbar-iconcolor);width:16px;height:16px;margin-top:6px}"]
349
349
  },] }
350
350
  ];
@@ -4106,7 +4106,7 @@
4106
4106
  PickinglistAddNewShipment.decorators = [
4107
4107
  { type: core.Component, args: [{
4108
4108
  selector: 'mobicloud-pickinglist-add-new-shipment',
4109
- template: "<div mat-dialog-container class=\"dialog-container\">\n <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n <mat-card-header i18n=\"@@FieldCaption-CreateShipment\">Create shipment</mat-card-header>\n <span class=\"dialog-caption-spacer\"></span>\n <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"dialog-toolbar-button\" (click)=\"onCancel()\">\n <svg-icon name=\"mobicloud_close\" svgClass=\"dialog-toolbar-button-icon\"></svg-icon>\n </button> \n </mat-toolbar> \n\n <div #shipment_dialog_container id=\"shipment_dialog_container\" class=\"dialog-wizard-steps-container\">\n <mat-horizontal-stepper [linear]=\"true\" #stepper class=\"dialog-wizard-steps\" (animationDone)=\"setFocus()\" labelPosition='bottom'>\n <mat-step label=\"Lines\" i18n-label=\"@@CaptionHeader-Lines\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\"> \n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"invalid-message-Lines\" *ngIf=\"!pickingLinesSelectionValid\" i18n=\"@@ValidationText-NoShipmentPickingLinesSelected\">No lines has been selected for shipping</div>\n <dx-data-grid keyExpr=\"Id\" #datagrid_pickinglines id=\"datagrid_pickinglines\" [(selectedRowKeys)]=\"selectedPickingLinesKeys\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"pickingLines\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\">\n <dxo-editing mode=\"batch\" refreshMode=\"full\" [selectTextOnEditStart]=\"true\" startEditAction=\"click\" [allowAdding]=\"false\" [allowUpdating]=\"false\" [allowDeleting]=\"false\" [confirmDelete]=\"true\"></dxo-editing>\n <dxo-column-chooser [enabled]=\"true\" mode=\"select\" title=\"Choose columns\" i18n-title=\"@@CaptionHeader-ColumnChooser\"></dxo-column-chooser> \n <dxo-filter-row [visible]=\"true\"></dxo-filter-row> \n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-group-panel [visible]=\"false\" emptyPanelText=\"\"></dxo-group-panel> \n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [allowSelectAll]=\"true\" showCheckBoxesMode=\"always\" [mode]=\"allowSelectPickingLines ? 'multiple' : 'none'\"></dxo-selection> \n <dxi-column dataField=\"MetaData.Index\" [width]=\"40\" [visible]=\"true\" hidingPriority=\"99\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineNumber\" caption=\"#\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"LineId\" [visible]=\"true\" hidingPriority=\"20\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineId\" caption=\"Line id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SalesLine.LineId\" hidingPriority=\"92\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SalesLineId\" caption=\"Sales line id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"ProductId\" hidingPriority=\"58\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductUId\" caption=\"Product uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product\" hidingPriority=\"68\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Product\" caption=\"Product\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product.ProductId\" [fixed]=\"true\" fixedPosition=\"left\" hidingPriority=\"98\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductId\" caption=\"Product id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product.Name\" hidingPriority=\"94\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductName\" caption=\"Product name\" dataType=\"string\"></dxi-column> \n <dxi-column dataField=\"Product.SKU\" hidingPriority=\"54\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SKU\" caption=\"SKU\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color\" hidingPriority=\"84\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"ColorId\" hidingPriority=\"48\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorUId\" caption=\"Color uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color.Code\" hidingPriority=\"82\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color.Name\" hidingPriority=\"46\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorName\" caption=\"Color name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size\" hidingPriority=\"78\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SizeId\" hidingPriority=\"44\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeUId\" caption=\"Size uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size.Code\" hidingPriority=\"76\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size.Name\" hidingPriority=\"42\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeName\" caption=\"Size name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config\" hidingPriority=\"74\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column> \n <dxi-column dataField=\"ConfigId\" hidingPriority=\"40\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigUId\" caption=\"Config uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config.Code\" hidingPriority=\"72\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config.Name\" hidingPriority=\"38\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigName\" caption=\"Config name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Qty\" hidingPriority=\"74\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Qty\" caption=\"Quantity\" dataType=\"number\"></dxi-column>\n <dxi-column dataField=\"QtyPick\" hidingPriority=\"96\" [width]=\"100\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-QtyPick\" caption=\"Quantity pick\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n <dxi-column dataField=\"Note\" hidingPriority=\"28\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Note\" caption=\"Note\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SortCode\" hidingPriority=\"26\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SortCode\" caption=\"Sort code\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"WMSZone\" hidingPriority=\"24\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-WMSZone\" caption=\"WMS zone\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"MetaData.Created\" hidingPriority=\"10\" [visible]=\"false\" [allowHeaderFiltering]=\"true\" i18n-caption=\"@@GridColumn-Created\" caption=\"Created\" dataType=\"date\"></dxi-column>\n <dxo-summary>\n <dxi-total-item column=\"Qty\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n <dxi-total-item column=\"QtyPick\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n </dxo-summary> \n <dxi-column type=\"buttons\" [allowHiding]=\"false\" [fixed]=\"true\" fixedPosition=\"right\">\n </dxi-column>\n <dxi-column type=\"adaptive\" [allowHiding]=\"false\" cellTemplate=\"adaptiveCellTemplate\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n \n <!-- Templates -->\n \n <div *dxTemplate=\"let column of 'adaptiveCellTemplate'\">\n <button aria-label=\"Collapse/Expand\" mat-icon-button (click)=\"column.component.isAdaptiveDetailRowExpanded(column.row.key) ? column.component.collapseAdaptiveDetailRow() : column.component.expandAdaptiveDetailRow(column.row.key);\">\n <mat-icon *ngIf=\"!column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_expand_arrows\" class=\"expand_gridrow\"></mat-icon>\n <mat-icon *ngIf=\"column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_collapse_arrows\" class=\"collapse_gridrow\"></mat-icon>\n </button> \n </div>\n \n <dxo-paging [enabled]=\"false\"></dxo-paging>\n </dx-data-grid> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"button1\" i18n=\"@@Button-Cancel\">Cancel</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Lines()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button>\n </div> \n </div> \n </mat-step>\n <mat-step label=\"Sender\" i18n-label=\"@@CaptionHeader-Sender\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <dx-select-box id=\"custom-templates\" class=\"sender-selectbox\" [dataSource]=\"inventLocation_ds\" displayExpr=\"Name\" [value]=\"inventLocationId\" [showClearButton]=\"true\" (onValueChanged)=\"senderSelectbox_onValueChanged($event)\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"custom-item\">\n <!-- <img src=\"{{ data.ImageSrc }}\" /> -->\n <div>\n {{ data.Name }} (test)\n </div>\n </div>\n </div>\n </dx-select-box> \n <fieldset class=\"shipment-fieldset-default shipment-fieldset-address\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Sender\">Sender</legend>\n <dx-form #form_Sender id=\"form_Sender\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formSender\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Name\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\"> \n <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule> \n </dxi-item>\n <dxi-item dataField=\"Sender_Attention\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n <dxo-label text=\"Attention\" i18n-text=\"@@FieldCaption-Attention\"></dxo-label>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Address1\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Sender_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Sender_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item>\n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"1\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_CountryCode\">\n <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label> \n <div *dxTemplate=\"let data of 'content'\">\n <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"false\" fieldTemplate=\"fieldTemplate\"\n [dataSource]=\"sender_country_ds\" \n [(value)]=\"_senderCountryId\"\n valueExpr=\"Code2\" \n displayExpr=\"LocalName\" \n [(opened)]=\"_senderCountryOpened\"> \n <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n </dxo-drop-down-options> \n <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n [dataSource]=\"sender_country_ds\"\n [(selectedRowKeys)]=\"_senderCountryId\"\n (onSelectionChanged)=\"senderCountryChanged($event)\"\n (onRowClick)=\"_senderCountryOpened = false\">\n <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n <img alt=\"\" [src]=\"data.value | countryCodeToFlagUrl\"/>\n </div>\n </dx-data-grid>\n <div *dxTemplate=\"let data of 'fieldTemplate'\">\n <div class=\"country-edit-item\">\n <div class=\"country-edit-image\"><img alt=\"\" [src]=\"_selectedSenderCountry?.Code2 | countryCodeToFlagUrl\" *ngIf=\"_selectedSenderCountry?.Code2\"></div>\n <div class=\"country-edit-text\">\n <dx-text-box stylingMode=\"filled\" [value]=\"_selectedSenderCountry?.Code2 | countryCodeToName\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n </div>\n </dx-drop-down-box>\n </div> \n <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Email\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Sender_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n </dxi-item> \n </dxi-item> \n </dx-form> \n </fieldset> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <!-- <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"button1\" i18n=\"@@Button-Cancel\">Cancel</button> -->\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Sender()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </div> \n </mat-step>\n <mat-step label=\"Receiver\" i18n-label=\"@@CaptionHeader-Receiver\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <fieldset class=\"shipment-fieldset-default shipment-fieldset-address\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Receiver\">Receiver</legend>\n <dx-form #form_Receiver id=\"form_Receiver\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formReceiver\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Name\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\"> \n <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule> \n </dxi-item>\n <dxi-item dataField=\"Receiver_Attention\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n <dxo-label text=\"Attention\" i18n-text=\"@@FieldCaption-Attention\"></dxo-label>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Address1\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Receiver_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Receiver_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item>\n <dxi-item itemType=\"group\" caption=\"\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_CountryCode\">\n <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label> \n <div *dxTemplate=\"let data of 'content'\">\n <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"false\" fieldTemplate=\"fieldTemplate\"\n [dataSource]=\"receiver_country_ds\" \n [(value)]=\"_receiverCountryId\"\n valueExpr=\"Code2\" \n displayExpr=\"LocalName\" \n [(opened)]=\"_receiverCountryOpened\"> \n <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n </dxo-drop-down-options> \n <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n [dataSource]=\"receiver_country_ds\"\n [(selectedRowKeys)]=\"_receiverCountryId\"\n (onSelectionChanged)=\"receiverCountryChanged($event)\"\n (onRowClick)=\"_receiverCountryOpened = false\">\n <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n <img alt=\"\" [src]=\"data.value | countryCodeToFlagUrl\"/>\n </div>\n </dx-data-grid>\n <div *dxTemplate=\"let data of 'fieldTemplate'\">\n <div class=\"country-edit-item\">\n <div class=\"country-edit-image\"><img alt=\"\" [src]=\"_selectedReceiverCountry?.Code2 | countryCodeToFlagUrl\" *ngIf=\"_selectedReceiverCountry?.Code2\"></div>\n <div class=\"country-edit-text\">\n <dx-text-box stylingMode=\"filled\" [value]=\"_selectedReceiverCountry?.Code2 | countryCodeToName\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n </div>\n </dx-drop-down-box>\n </div> \n <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Email\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Receiver_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n </dxi-item> \n </dxi-item> \n </dx-form> \n </fieldset> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Receiver()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </div> \n </mat-step> \n <mat-step label=\"Packages\" i18n-label=\"@@CaptionHeader-Packages\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"invalid-message-Lines\" *ngIf=\"!boxesSelectionValid\" i18n=\"@@ValidationText-NoShipmentBoxesSelected\">No boxes has been selected for shipping</div>\n <dx-data-grid #selectedBoxesList id=\"selectedBoxesList\" keyExpr=\"Id\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"selectedBoxes\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\" (onInitNewRow)=\"onInitNewRow_Boxes($event)\">\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <dxo-editing mode=\"batch\" [allowUpdating]=\"true\" [allowAdding]=\"true\" [allowDeleting]=\"true\" [selectTextOnEditStart]=\"true\">\n </dxo-editing>\n\n <dxi-column dataField=\"Quantity\" caption=\"Quantity\" i18n-caption=\"@@GridColumn-Quantity\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"BoxType\" [setCellValue]=\"setCellValue_BoxType\" caption=\"Box type\" i18n-caption=\"@@GridColumn-BoxType\" dataType=\"string\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxo-lookup\n [dataSource]=\"packagingBoxType_ds\"\n displayExpr=\"text\"\n valueExpr=\"value\">\n </dxo-lookup> \n <dxo-header-filter\n [dataSource]=\"packagingBoxType_ds\">\n </dxo-header-filter> \n <dxi-validation-rule type=\"required\" message=\"Box type is required\" i18n-text=\"@@ValidationText-BoxType-Required\"></dxi-validation-rule> \n </dxi-column> \n <dxi-column dataField=\"Length_InCm\" i18n-caption=\"@@GridColumn-Length_CM\" caption=\"Length (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxi-validation-rule type=\"required\" message=\"Length is required\" i18n-text=\"@@ValidationText-Length-Required\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"Width_InCm\" i18n-caption=\"@@GridColumn-Width_CM\" caption=\"Width (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxi-validation-rule type=\"required\" message=\"Width is required\" i18n-text=\"@@ValidationText-Width-Required\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"Height_InCm\" i18n-caption=\"@@GridColumn-Height_CM\" caption=\"Height (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"Weight_InKg\" i18n-caption=\"@@GridColumn-Weight_KG\" caption=\"Weight (kg)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxo-toolbar>\n <dxi-item location=\"before\">\n <!-- <dx-drop-down-button text=\"Add box\" icon=\"box\" [items]=\"[{text:'A', id:'a'},{text:'B', id:'b'},{text:'C', id:'c'}]\" (onItemClick)=\"onAddBoxButtonClick($event)\"></dx-drop-down-button> -->\n <dx-drop-down-button text=\"Add box\" icon=\"box\" [items]=\"packagingBoxes\" displayExpr=\"Name\" (onItemClick)=\"onAddBoxButtonClick($event)\"></dx-drop-down-button> \n </dxi-item> \n <dxi-item name=\"addRowButton\" cssClass=\"action-button\"></dxi-item>\n <dxi-item name=\"revertButton\" cssClass=\"action-button\"></dxi-item>\n <!-- <dxi-item name=\"delete\" cssClass=\"action-button\"></dxi-item> -->\n <!-- <dxi-item location=\"after\">\n <dx-button icon=\"trash\" text=\"Delete Selected Records\"></dx-button>\n </dxi-item> -->\n </dxo-toolbar> \n </dx-data-grid> \n </div> \n </div>\n <div fxLayout=\"row\" class=\"dialog-button-row\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Packages()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </mat-step> \n <mat-step label=\"Carrier\" i18n-label=\"@@CaptionHeader-Carrier\" [optional]=\"false\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\"> \n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div fxLayout=\"row\" class=\"shipment-products-container\">\n <fieldset [ngClass]=\"{'shipment-fieldset-default shipment-fieldset-shipment-products':!servicePointRequired, 'shipment-fieldset-default shipment-fieldset-shipment-products-withservice':servicePointRequired}\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-CarrierProducts\">Carrier products</legend>\n <dx-validation-summary validationGroup=\"ProductCode\"></dx-validation-summary>\n <dx-list #shipmentProducList keyExpr=\"product_code\" [dataSource]=\"shipmentProducts\" selectionMode=\"single\" showScrollbar=\"always\" [showSelectionControls]=\"true\" [(selectedItemKeys)]=\"selectedShipmentProducts\" (onSelectionChanged)=\"onShipmentProductSelectionChanged($event)\">\n <div *dxTemplate=\"let item of 'item'\">\n <div class=\"shipment-product-item\"> \n <div class=\"shipment-product-item-name\">{{ item.name }}</div>\n <div class=\"shipment-product-item-info\">\n <div class=\"shipment-product-item-price\">\n <!-- <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_amount | currency:item.price_currency:\"symbol\"}}</div> -->\n <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_currency}} {{item.price_amount}}</div>\n </div>\n <div class=\"shipment-product-item-transit\">\n <span class=\"item-caption\">Transit time</span><span class=\"item-caption-colon\">:</span><span class=\"item-value\">{{ item.transit_time }}</span> \n </div>\n </div>\n </div>\n </div>\n <dx-validator [adapter]=\"validationConfig_ProductCode\" validationGroup=\"ProductCode\">\n <dxi-validation-rule type=\"required\" message=\"Carrier product is required\" i18n-message=\"@@ValidationText-CarrierProduct-Required\"></dxi-validation-rule>\n </dx-validator>\n </dx-list> \n </fieldset>\n <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-servicepoint\" *ngIf=\"selectedShippingProduct?.service_point_required\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ParcelShop\">Parcel shop</legend>\n <dx-validation-summary validationGroup=\"ServicePoint\"></dx-validation-summary>\n <dx-select-box id=\"servicePointsSelectbox\" [dataSource]=\"servicePoints\" displayExpr=\"name\" [(value)]=\"selectedServicePoint\" (onSelectionChanged)=\"onServicePointSelectionChanged($event)\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"servicepoint-item\">\n <div class=\"servicepoint-name\">\n {{ data.name }} <span>{{data.id ? ('(' + data.id + ') ') : ':'}} {{(data.distance | meterToKilometer) | number : '1.0-1'}}</span><span> km</span>\n </div>\n </div>\n </div>\n <dx-validator [adapter]=\"validationConfig_ServicePoint\" validationGroup=\"ServicePoint\">\n <dxi-validation-rule type=\"required\" message=\"Parcel shop is required for this carrier product\" i18n-message=\"@@ValidationText-ParcelShop-Required\"></dxi-validation-rule>\n </dx-validator> \n </dx-select-box> \n <div class=\"dx-fieldset selected-service-point\">\n <div class=\"field\">\n <div class=\"field-label\">Name:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.name}} {{selectedServicePoint?.id ? ('(' + selectedServicePoint?.id + ')') : ''}}\n </div>\n </div>\n <div class=\"field\">\n <div class=\"field-label\">Address:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.address_line}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\">Zip code:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.zip_code}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\">City:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.city}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\">Country:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.country_code | countryCodeToName}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\">Distance:</div>\n <div class=\"field-value\">\n <span *ngIf=\"selectedServicePoint?.distance\">{{(selectedServicePoint?.distance | meterToKilometer) | number : '1.0-1'}}</span><span *ngIf=\"selectedServicePoint?.distance\"> km</span>\n </div>\n </div> \n </div> \n </fieldset>\n </div> \n <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-info\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ShippingInfo\">Shipping information</legend>\n <dx-form #form_ShippingInfo id=\"form_ShippingInfo\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formShippingInfo\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"ShippingDate\" [colSpan]=\"2\" editorType=\"dxDateBox\"> \n <dxo-label text=\"Shipping date\" i18n-text=\"@@FieldCaption-ShippingDate\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Shipping date is required\" i18n-text=\"@@ValidationText-ShippingDate-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Reference\">\n <dxo-label text=\"Reference\" i18n-text=\"@@FieldCaption-Reference\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Remarks\">\n <dxo-label text=\"Remarks\" i18n-text=\"@@FieldCaption-Remarks\"></dxo-label> \n </dxi-item> \n </dxi-item>\n </dx-form> \n </fieldset>\n <div class=\"printer-info\">\n <div class=\"print-labels\">\n <dx-check-box [(value)]=\"printLabels\" text=\"Print labels\" i18n-text=\"@@FieldCaption-PrintLabels\" [rtlEnabled]=\"true\"></dx-check-box>\n </div> \n <div class=\"printer\">\n <dx-select-box id=\"printerSelectbox\" [dataSource]=\"printer_store\" label=\"Printer\" i18n-label=\"@@FieldCaption-Printer\" labelMode=\"static\" displayExpr=\"PrinterName\" valueExpr=\"Id\" [(value)]=\"selectedPrinterId\" [disabled]=\"!printLabels\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"printer-item\">\n <div class=\"printer-name\">\n {{data?.PrinterName}} {{ data?.GatewayInstallationName ? ('(' + data.GatewayInstallationName + ')') : ('') }}\n </div>\n </div>\n </div> \n </dx-select-box> \n </div>\n </div>\n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onCreateShipmentClick()\" class=\"button2\" i18n=\"@@Button-CreateShipment\">Create shipment</button> \n </div> \n </div> \n </mat-step>\n <mat-step state=\"\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"dialog-loading-shade\" *ngIf=\"isLoadingData\">\n <mat-spinner diameter=\"50\" *ngIf=\"isLoadingData\"></mat-spinner> \n </div>\n <div class=\"dialog-loading-spinner-text\" *ngIf=\"isLoadingData\">{{loadingText}}</div>\n <div class=\"dialog-complete-text\" *ngIf=\"!isLoadingData && createCompleted && !createError\">{{createCompletedText}}</div>\n <div class=\"dialog-error-caption\" *ngIf=\"!isLoadingData && createError\" i18n=\"@@ShipmentCreateFailed-Text\">Shipment create failed</div>\n <div class=\"dialog-error-text\" *ngIf=\"!isLoadingData && createError\">{{createErrorText}}</div>\n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\"> \n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" [disabled]=\"isLoadingData || createCompleted\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button matStepperNext color=\"warn\" class=\"button2\" *ngIf=\"!isLoadingData && createError\" [disabled]=\"isLoadingData\" (click)=\"onCreateShipmentClick()\" i18n=\"@@Button-Retry\">Retry</button>\n <button mat-flat-button matStepperNext color=\"primary\" class=\"button2\" [disabled]=\"isLoadingData\" (click)=\"onClose()\" i18n=\"@@Button-Close\">Close</button> \n </div> \n </div> \n </mat-step> \n </mat-horizontal-stepper> \n </div> \n </div>\n\n <dx-load-panel\n #loadPanelMainContent\n container=\"#shipment_dialog_container\"\n [position]=\"{ of: '#shipment_dialog_container' }\"\n [(visible)]=\"showLoadIndicator\"\n [showIndicator]=\"true\"\n [showPane]=\"true\"\n [shading]=\"true\" \n [closeOnOutsideClick]=\"false\"></dx-load-panel>",
4109
+ template: "<div mat-dialog-container class=\"dialog-container\">\n <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n <mat-card-header i18n=\"@@FieldCaption-CreateShipment\">Create shipment</mat-card-header>\n <span class=\"dialog-caption-spacer\"></span>\n <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"dialog-toolbar-button\" (click)=\"onCancel()\">\n <svg-icon name=\"mobicloud_close\" svgClass=\"dialog-toolbar-button-icon\"></svg-icon>\n </button> \n </mat-toolbar> \n\n <div #shipment_dialog_container id=\"shipment_dialog_container\" class=\"dialog-wizard-steps-container\">\n <mat-horizontal-stepper [linear]=\"true\" #stepper class=\"dialog-wizard-steps\" (animationDone)=\"setFocus()\" labelPosition='bottom'>\n <mat-step label=\"Lines\" i18n-label=\"@@CaptionHeader-Lines\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\"> \n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"invalid-message-Lines\" *ngIf=\"!pickingLinesSelectionValid\" i18n=\"@@ValidationText-NoShipmentPickingLinesSelected\">No lines has been selected for shipping</div>\n <dx-data-grid keyExpr=\"Id\" #datagrid_pickinglines id=\"datagrid_pickinglines\" [(selectedRowKeys)]=\"selectedPickingLinesKeys\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"pickingLines\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\">\n <dxo-editing mode=\"batch\" refreshMode=\"full\" [selectTextOnEditStart]=\"true\" startEditAction=\"click\" [allowAdding]=\"false\" [allowUpdating]=\"false\" [allowDeleting]=\"false\" [confirmDelete]=\"true\"></dxo-editing>\n <dxo-column-chooser [enabled]=\"true\" mode=\"select\" title=\"Choose columns\" i18n-title=\"@@CaptionHeader-ColumnChooser\"></dxo-column-chooser> \n <dxo-filter-row [visible]=\"true\"></dxo-filter-row> \n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-group-panel [visible]=\"false\" emptyPanelText=\"\"></dxo-group-panel> \n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [allowSelectAll]=\"true\" showCheckBoxesMode=\"always\" [mode]=\"allowSelectPickingLines ? 'multiple' : 'none'\"></dxo-selection> \n <dxi-column dataField=\"MetaData.Index\" [width]=\"40\" [visible]=\"true\" hidingPriority=\"99\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineNumber\" caption=\"#\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"LineId\" [visible]=\"true\" hidingPriority=\"20\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineId\" caption=\"Line id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SalesLine.LineId\" hidingPriority=\"92\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SalesLineId\" caption=\"Sales line id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"ProductId\" hidingPriority=\"58\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductUId\" caption=\"Product uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product\" hidingPriority=\"68\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Product\" caption=\"Product\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product.ProductId\" [fixed]=\"true\" fixedPosition=\"left\" hidingPriority=\"98\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductId\" caption=\"Product id\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Product.Name\" hidingPriority=\"94\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductName\" caption=\"Product name\" dataType=\"string\"></dxi-column> \n <dxi-column dataField=\"Product.SKU\" hidingPriority=\"54\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SKU\" caption=\"SKU\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color\" hidingPriority=\"84\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"ColorId\" hidingPriority=\"48\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorUId\" caption=\"Color uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color.Code\" hidingPriority=\"82\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Color.Name\" hidingPriority=\"46\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorName\" caption=\"Color name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size\" hidingPriority=\"78\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SizeId\" hidingPriority=\"44\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeUId\" caption=\"Size uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size.Code\" hidingPriority=\"76\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Size.Name\" hidingPriority=\"42\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeName\" caption=\"Size name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config\" hidingPriority=\"74\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column> \n <dxi-column dataField=\"ConfigId\" hidingPriority=\"40\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigUId\" caption=\"Config uid\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config.Code\" hidingPriority=\"72\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Config.Name\" hidingPriority=\"38\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigName\" caption=\"Config name\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"Qty\" hidingPriority=\"74\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Qty\" caption=\"Quantity\" dataType=\"number\"></dxi-column>\n <dxi-column dataField=\"QtyPick\" hidingPriority=\"96\" [width]=\"100\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-QtyPick\" caption=\"Quantity pick\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n <dxi-column dataField=\"Note\" hidingPriority=\"28\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Note\" caption=\"Note\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"SortCode\" hidingPriority=\"26\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SortCode\" caption=\"Sort code\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"WMSZone\" hidingPriority=\"24\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-WMSZone\" caption=\"WMS zone\" dataType=\"string\"></dxi-column>\n <dxi-column dataField=\"MetaData.Created\" hidingPriority=\"10\" [visible]=\"false\" [allowHeaderFiltering]=\"true\" i18n-caption=\"@@GridColumn-Created\" caption=\"Created\" dataType=\"date\"></dxi-column>\n <dxo-summary>\n <dxi-total-item column=\"Qty\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n <dxi-total-item column=\"QtyPick\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n </dxo-summary> \n <dxi-column type=\"buttons\" [allowHiding]=\"false\" [fixed]=\"true\" fixedPosition=\"right\">\n </dxi-column>\n <dxi-column type=\"adaptive\" [allowHiding]=\"false\" cellTemplate=\"adaptiveCellTemplate\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n \n <!-- Templates -->\n \n <div *dxTemplate=\"let column of 'adaptiveCellTemplate'\">\n <button aria-label=\"Collapse/Expand\" mat-icon-button (click)=\"column.component.isAdaptiveDetailRowExpanded(column.row.key) ? column.component.collapseAdaptiveDetailRow() : column.component.expandAdaptiveDetailRow(column.row.key);\">\n <mat-icon *ngIf=\"!column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_expand_arrows\" class=\"expand_gridrow\"></mat-icon>\n <mat-icon *ngIf=\"column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_collapse_arrows\" class=\"collapse_gridrow\"></mat-icon>\n </button> \n </div>\n \n <dxo-paging [enabled]=\"false\"></dxo-paging>\n </dx-data-grid> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"button1\" i18n=\"@@Button-Cancel\">Cancel</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Lines()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button>\n </div> \n </div> \n </mat-step>\n <mat-step label=\"Sender\" i18n-label=\"@@CaptionHeader-Sender\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <dx-select-box id=\"custom-templates\" class=\"sender-selectbox\" [dataSource]=\"inventLocation_ds\" displayExpr=\"Name\" [value]=\"inventLocationId\" [showClearButton]=\"true\" (onValueChanged)=\"senderSelectbox_onValueChanged($event)\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"custom-item\">\n <!-- <img src=\"{{ data.ImageSrc }}\" /> -->\n <div>\n {{ data.Name }} (test)\n </div>\n </div>\n </div>\n </dx-select-box> \n <fieldset class=\"shipment-fieldset-default shipment-fieldset-address\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Sender\">Sender</legend>\n <dx-form #form_Sender id=\"form_Sender\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formSender\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Name\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\"> \n <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule> \n </dxi-item>\n <dxi-item dataField=\"Sender_Attention\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n <dxo-label text=\"Attention\" i18n-text=\"@@FieldCaption-Attention\"></dxo-label>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Address1\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Sender_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Sender_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item>\n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"1\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_CountryCode\">\n <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label> \n <div *dxTemplate=\"let data of 'content'\">\n <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"false\" fieldTemplate=\"fieldTemplate\"\n [dataSource]=\"sender_country_ds\" \n [(value)]=\"_senderCountryId\"\n valueExpr=\"Code2\" \n displayExpr=\"LocalName\" \n [(opened)]=\"_senderCountryOpened\"> \n <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n </dxo-drop-down-options> \n <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n [dataSource]=\"sender_country_ds\"\n [(selectedRowKeys)]=\"_senderCountryId\"\n (onSelectionChanged)=\"senderCountryChanged($event)\"\n (onRowClick)=\"_senderCountryOpened = false\">\n <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n <img alt=\"\" [src]=\"data.value | countryCodeToFlagUrl\"/>\n </div>\n </dx-data-grid>\n <div *dxTemplate=\"let data of 'fieldTemplate'\">\n <div class=\"country-edit-item\">\n <div class=\"country-edit-image\"><img alt=\"\" [src]=\"_selectedSenderCountry?.Code2 | countryCodeToFlagUrl\" *ngIf=\"_selectedSenderCountry?.Code2\"></div>\n <div class=\"country-edit-text\">\n <dx-text-box stylingMode=\"filled\" [value]=\"_selectedSenderCountry?.Code2 | countryCodeToName\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n </div>\n </dx-drop-down-box>\n </div> \n <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Sender_Email\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Sender_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n </dxi-item> \n </dxi-item> \n </dx-form> \n </fieldset> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <!-- <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"button1\" i18n=\"@@Button-Cancel\">Cancel</button> -->\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Sender()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </div> \n </mat-step>\n <mat-step label=\"Receiver\" i18n-label=\"@@CaptionHeader-Receiver\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <fieldset class=\"shipment-fieldset-default shipment-fieldset-address\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Receiver\">Receiver</legend>\n <dx-form #form_Receiver id=\"form_Receiver\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formReceiver\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Name\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\"> \n <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule> \n </dxi-item>\n <dxi-item dataField=\"Receiver_Attention\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n <dxo-label text=\"Attention\" i18n-text=\"@@FieldCaption-Attention\"></dxo-label>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Address1\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Receiver_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule> \n </dxi-item> \n <dxi-item dataField=\"Receiver_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item>\n <dxi-item itemType=\"group\" caption=\"\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_CountryCode\">\n <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label> \n <div *dxTemplate=\"let data of 'content'\">\n <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"false\" fieldTemplate=\"fieldTemplate\"\n [dataSource]=\"receiver_country_ds\" \n [(value)]=\"_receiverCountryId\"\n valueExpr=\"Code2\" \n displayExpr=\"LocalName\" \n [(opened)]=\"_receiverCountryOpened\"> \n <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n </dxo-drop-down-options> \n <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n [dataSource]=\"receiver_country_ds\"\n [(selectedRowKeys)]=\"_receiverCountryId\"\n (onSelectionChanged)=\"receiverCountryChanged($event)\"\n (onRowClick)=\"_receiverCountryOpened = false\">\n <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n <img alt=\"\" [src]=\"data.value | countryCodeToFlagUrl\"/>\n </div>\n </dx-data-grid>\n <div *dxTemplate=\"let data of 'fieldTemplate'\">\n <div class=\"country-edit-item\">\n <div class=\"country-edit-image\"><img alt=\"\" [src]=\"_selectedReceiverCountry?.Code2 | countryCodeToFlagUrl\" *ngIf=\"_selectedReceiverCountry?.Code2\"></div>\n <div class=\"country-edit-text\">\n <dx-text-box stylingMode=\"filled\" [value]=\"_selectedReceiverCountry?.Code2 | countryCodeToName\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n </div>\n </dx-drop-down-box>\n </div> \n <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Receiver_Email\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Receiver_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n </dxi-item> \n </dxi-item> \n </dx-form> \n </fieldset> \n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Receiver()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </div> \n </mat-step> \n <mat-step label=\"Packages\" i18n-label=\"@@CaptionHeader-Packages\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"invalid-message-Lines\" *ngIf=\"!boxesSelectionValid\" i18n=\"@@ValidationText-NoShipmentBoxesSelected\">No boxes has been selected for shipping</div>\n <dx-data-grid #selectedBoxesList id=\"selectedBoxesList\" keyExpr=\"Id\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"selectedBoxes\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\" (onInitNewRow)=\"onInitNewRow_Boxes($event)\">\n <dxo-paging [enabled]=\"false\"></dxo-paging>\n <dxo-editing mode=\"batch\" [allowUpdating]=\"true\" [allowAdding]=\"true\" [allowDeleting]=\"true\" [selectTextOnEditStart]=\"true\">\n </dxo-editing>\n\n <dxi-column dataField=\"Quantity\" caption=\"Quantity\" i18n-caption=\"@@GridColumn-Quantity\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"BoxType\" [setCellValue]=\"setCellValue_BoxType\" caption=\"Box type\" i18n-caption=\"@@GridColumn-BoxType\" dataType=\"string\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxo-lookup\n [dataSource]=\"packagingBoxType_ds\"\n displayExpr=\"text\"\n valueExpr=\"value\">\n </dxo-lookup> \n <dxo-header-filter\n [dataSource]=\"packagingBoxType_ds\">\n </dxo-header-filter> \n <dxi-validation-rule type=\"required\" message=\"Box type is required\" i18n-text=\"@@ValidationText-BoxType-Required\"></dxi-validation-rule> \n </dxi-column> \n <dxi-column dataField=\"Length_InCm\" i18n-caption=\"@@GridColumn-Length_CM\" caption=\"Length (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxi-validation-rule type=\"required\" message=\"Length is required\" i18n-text=\"@@ValidationText-Length-Required\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"Width_InCm\" i18n-caption=\"@@GridColumn-Width_CM\" caption=\"Width (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\">\n <dxi-validation-rule type=\"required\" message=\"Width is required\" i18n-text=\"@@ValidationText-Width-Required\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"Height_InCm\" i18n-caption=\"@@GridColumn-Height_CM\" caption=\"Height (cm)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxi-column dataField=\"Weight_InKg\" i18n-caption=\"@@GridColumn-Weight_KG\" caption=\"Weight (kg)\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n <dxo-toolbar>\n <dxi-item location=\"before\">\n <!-- <dx-drop-down-button text=\"Add box\" icon=\"box\" [items]=\"[{text:'A', id:'a'},{text:'B', id:'b'},{text:'C', id:'c'}]\" (onItemClick)=\"onAddBoxButtonClick($event)\"></dx-drop-down-button> -->\n <dx-drop-down-button text=\"Add box\" i18n-text=\"@@Button-AddBox\" icon=\"box\" [items]=\"packagingBoxes\" displayExpr=\"Name\" (onItemClick)=\"onAddBoxButtonClick($event)\"></dx-drop-down-button> \n </dxi-item> \n <dxi-item name=\"addRowButton\" cssClass=\"action-button\"></dxi-item>\n <dxi-item name=\"revertButton\" cssClass=\"action-button\"></dxi-item>\n <!-- <dxi-item name=\"delete\" cssClass=\"action-button\"></dxi-item> -->\n <!-- <dxi-item location=\"after\">\n <dx-button icon=\"trash\" text=\"Delete Selected Records\"></dx-button>\n </dxi-item> -->\n </dxo-toolbar> \n </dx-data-grid> \n </div> \n </div>\n <div fxLayout=\"row\" class=\"dialog-button-row\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClick_Packages()\" class=\"button2\" i18n=\"@@Button-Next\">Next</button> \n </div> \n </mat-step> \n <mat-step label=\"Carrier\" i18n-label=\"@@CaptionHeader-Carrier\" [optional]=\"false\" [editable]=\"!createCompleted\">\n <div fxLayout=\"column\" class=\"dialog-form-content\"> \n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div fxLayout=\"row\" class=\"shipment-products-container\">\n <fieldset [ngClass]=\"{'shipment-fieldset-default shipment-fieldset-shipment-products':!servicePointRequired, 'shipment-fieldset-default shipment-fieldset-shipment-products-withservice':servicePointRequired}\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-CarrierProducts\">Carrier products</legend>\n <dx-validation-summary validationGroup=\"ProductCode\"></dx-validation-summary>\n <dx-list #shipmentProducList keyExpr=\"product_code\" [dataSource]=\"shipmentProducts\" selectionMode=\"single\" showScrollbar=\"always\" [showSelectionControls]=\"true\" [(selectedItemKeys)]=\"selectedShipmentProducts\" (onSelectionChanged)=\"onShipmentProductSelectionChanged($event)\">\n <div *dxTemplate=\"let item of 'item'\">\n <div class=\"shipment-product-item\"> \n <div class=\"shipment-product-item-name\">{{ item.name }}</div>\n <div class=\"shipment-product-item-info\">\n <div class=\"shipment-product-item-price\">\n <!-- <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_amount | currency:item.price_currency:\"symbol\"}}</div> -->\n <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_currency}} {{item.price_amount}}</div>\n </div>\n <div class=\"shipment-product-item-transit\">\n <span class=\"item-caption\">Transit time</span><span class=\"item-caption-colon\">:</span><span class=\"item-value\">{{ item.transit_time }}</span> \n </div>\n </div>\n </div>\n </div>\n <dx-validator [adapter]=\"validationConfig_ProductCode\" validationGroup=\"ProductCode\">\n <dxi-validation-rule type=\"required\" message=\"Carrier product is required\" i18n-message=\"@@ValidationText-CarrierProduct-Required\"></dxi-validation-rule>\n </dx-validator>\n </dx-list> \n </fieldset>\n <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-servicepoint\" *ngIf=\"selectedShippingProduct?.service_point_required\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ParcelShop\">Parcel shop</legend>\n <dx-validation-summary validationGroup=\"ServicePoint\"></dx-validation-summary>\n <dx-select-box id=\"servicePointsSelectbox\" [dataSource]=\"servicePoints\" displayExpr=\"name\" [(value)]=\"selectedServicePoint\" (onSelectionChanged)=\"onServicePointSelectionChanged($event)\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"servicepoint-item\">\n <div class=\"servicepoint-name\">\n {{ data.name }} <span>{{data.id ? ('(' + data.id + ') ') : ':'}} {{(data.distance | meterToKilometer) | number : '1.0-1'}}</span><span> km</span>\n </div>\n </div>\n </div>\n <dx-validator [adapter]=\"validationConfig_ServicePoint\" validationGroup=\"ServicePoint\">\n <dxi-validation-rule type=\"required\" message=\"Parcel shop is required for this carrier product\" i18n-message=\"@@ValidationText-ParcelShop-Required\"></dxi-validation-rule>\n </dx-validator> \n </dx-select-box> \n <div class=\"dx-fieldset selected-service-point\">\n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-Name\">Name:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.name}} {{selectedServicePoint?.id ? ('(' + selectedServicePoint?.id + ')') : ''}}\n </div>\n </div>\n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-Address\">Address:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.address_line}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-ZipCode\">Zip code:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.zip_code}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-City\">City:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.city}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-Country\">Country:</div>\n <div class=\"field-value\">\n {{selectedServicePoint?.country_code | countryCodeToName}}\n </div>\n </div> \n <div class=\"field\">\n <div class=\"field-label\" i18n=\"@@FieldCaption-Distance\">Distance:</div>\n <div class=\"field-value\">\n <span *ngIf=\"selectedServicePoint?.distance\">{{(selectedServicePoint?.distance | meterToKilometer) | number : '1.0-1'}}</span><span *ngIf=\"selectedServicePoint?.distance\"> km</span>\n </div>\n </div> \n </div> \n </fieldset>\n </div> \n <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-info\">\n <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ShippingInfo\">Shipping information</legend>\n <dx-form #form_ShippingInfo id=\"form_ShippingInfo\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formShippingInfo\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"ShippingDate\" [colSpan]=\"2\" editorType=\"dxDateBox\"> \n <dxo-label text=\"Shipping date\" i18n-text=\"@@FieldCaption-ShippingDate\"></dxo-label>\n <dxi-validation-rule type=\"required\" message=\"Shipping date is required\" i18n-text=\"@@ValidationText-ShippingDate-Required\"></dxi-validation-rule> \n </dxi-item> \n </dxi-item> \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" [colSpan]=\"2\">\n <dxi-item dataField=\"Reference\">\n <dxo-label text=\"Reference\" i18n-text=\"@@FieldCaption-Reference\"></dxo-label> \n </dxi-item> \n <dxi-item dataField=\"Remarks\">\n <dxo-label text=\"Remarks\" i18n-text=\"@@FieldCaption-Remarks\"></dxo-label> \n </dxi-item> \n </dxi-item>\n </dx-form> \n </fieldset>\n <div class=\"printer-info\">\n <div class=\"print-labels\">\n <dx-check-box [(value)]=\"printLabels\" text=\"Print labels\" i18n-text=\"@@FieldCaption-PrintLabels\" [rtlEnabled]=\"true\"></dx-check-box>\n </div> \n <div class=\"printer\">\n <dx-select-box id=\"printerSelectbox\" [dataSource]=\"printer_store\" label=\"Printer\" i18n-label=\"@@FieldCaption-Printer\" labelMode=\"static\" displayExpr=\"PrinterName\" valueExpr=\"Id\" [(value)]=\"selectedPrinterId\" [disabled]=\"!printLabels\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"printer-item\">\n <div class=\"printer-name\">\n {{data?.PrinterName}} {{ data?.GatewayInstallationName ? ('(' + data.GatewayInstallationName + ')') : ('') }}\n </div>\n </div>\n </div> \n </dx-select-box> \n </div>\n </div>\n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\">\n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button color=\"primary\" (click)=\"onCreateShipmentClick()\" class=\"button2\" i18n=\"@@Button-CreateShipment\">Create shipment</button> \n </div> \n </div> \n </mat-step>\n <mat-step state=\"\">\n <div fxLayout=\"column\" class=\"dialog-form-content\">\n <div fxLayout=\"column\" class=\"dialog-tab-input-container\">\n <div class=\"dialog-loading-shade\" *ngIf=\"isLoadingData\">\n <mat-spinner diameter=\"50\" *ngIf=\"isLoadingData\"></mat-spinner> \n </div>\n <div class=\"dialog-loading-spinner-text\" *ngIf=\"isLoadingData\">{{loadingText}}</div>\n <div class=\"dialog-complete-text\" *ngIf=\"!isLoadingData && createCompleted && !createError\">{{createCompletedText}}</div>\n <div class=\"dialog-error-caption\" *ngIf=\"!isLoadingData && createError\" i18n=\"@@ShipmentCreateFailed-Text\">Shipment create failed</div>\n <div class=\"dialog-error-text\" *ngIf=\"!isLoadingData && createError\">{{createErrorText}}</div>\n </div> \n </div>\n <div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"stretch\" fxLayoutAlign=\"end end\">\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\"> \n <button mat-flat-button matStepperPrevious color=\"accent\" class=\"button1\" [disabled]=\"isLoadingData || createCompleted\" i18n=\"@@Button-Back\">Back</button>\n <button mat-flat-button matStepperNext color=\"warn\" class=\"button2\" *ngIf=\"!isLoadingData && createError\" [disabled]=\"isLoadingData\" (click)=\"onCreateShipmentClick()\" i18n=\"@@Button-Retry\">Retry</button>\n <button mat-flat-button matStepperNext color=\"primary\" class=\"button2\" [disabled]=\"isLoadingData\" (click)=\"onClose()\" i18n=\"@@Button-Close\">Close</button> \n </div> \n </div> \n </mat-step> \n </mat-horizontal-stepper> \n </div> \n </div>\n\n <dx-load-panel\n #loadPanelMainContent\n container=\"#shipment_dialog_container\"\n [position]=\"{ of: '#shipment_dialog_container' }\"\n [(visible)]=\"showLoadIndicator\"\n [showIndicator]=\"true\"\n [showPane]=\"true\"\n [shading]=\"true\" \n [closeOnOutsideClick]=\"false\"></dx-load-panel>",
4110
4110
  styles: [".dialog-form-content{min-height:472px!important}.dialog-form-content-address{margin-top:0!important}.shipment-fieldset-default{border:1px solid var(--default-datagrid-border-color);border-radius:7px;height:calc(100% - 280px);background-color:var(--default-groupbox-content-background);padding-top:20px}.shipment-legend-default{padding:.2em .5em;color:var(--default-textcolor-dark);font-weight:600;font-size:90%}.invalid-message-Lines{color:var(--default-textcolor-error);font-size:.85em}.shipment-fieldset-address{margin-bottom:20px}.sender-selectbox{margin-bottom:10px}.shipment-fieldset-shipment-products{border:1px solid var(--default-datagrid-border-color);border-radius:7px;width:100%;height:210px}.shipment-fieldset-shipment-products-withservice,.shipment-fieldset-shipment-servicepoint{width:50%;height:210px}.shipment-product-item-info{display:flex;font-style:italic}.shipment-product-item-price{display:flex}.shipment-product-item-price .item-value{margin-left:5px}.shipment-product-item-transit .item-caption{margin-left:20px}.shipment-product-item-transit .item-value{margin-left:5px}.shipment-fieldset-shipment-info{margin-top:20px;width:auto;height:120px}.selected-service-point .field{display:flex;font-weight:400;font-size:12px;margin-bottom:6px}.selected-service-point .field-label{color:var(--default-textcolor-field-label);width:56px}.selected-service-point .field-value{margin-left:10px}.printer-info{display:flex;margin-top:20px;width:100%}.printer-info .print-labels{margin-right:20px;width:180px;padding-left:20px;padding-top:3px}.printer-info .printer{width:100%}"]
4111
4111
  },] }
4112
4112
  ];
@@ -4178,6 +4178,592 @@
4178
4178
  }());
4179
4179
  var templateObject_1$c, templateObject_2$a, templateObject_3$a, templateObject_4$a, templateObject_5$a, templateObject_6$a, templateObject_7$a, templateObject_8$a, templateObject_9$8, templateObject_10$8, templateObject_11$7, templateObject_12$7, templateObject_13$5, templateObject_14$5, templateObject_15$2, templateObject_16$2, templateObject_17$2;
4180
4180
 
4181
+ var PrintDialogShipment = /** @class */ (function () {
4182
+ function PrintDialogShipment(dialogRef, data, cloudDataService, matDialog) {
4183
+ this.dialogRef = dialogRef;
4184
+ this.data = data;
4185
+ this.cloudDataService = cloudDataService;
4186
+ this.matDialog = matDialog;
4187
+ this.showLoadIndicator = false;
4188
+ if (data === null || data === void 0 ? void 0 : data.printerId) {
4189
+ this.selectedPrinterId = data.printerId;
4190
+ }
4191
+ }
4192
+ PrintDialogShipment.prototype.ngOnInit = function () {
4193
+ this.createPrinterStore();
4194
+ };
4195
+ PrintDialogShipment.prototype.createPrinterStore = function () {
4196
+ return __awaiter(this, void 0, void 0, function () {
4197
+ return __generator(this, function (_a) {
4198
+ this.printer_store = new ODataStore__default['default']({
4199
+ url: this.cloudDataService.getMobiManagementODataUrl("GatewayPrinter"),
4200
+ withCredentials: true,
4201
+ key: "Id",
4202
+ keyType: "Guid",
4203
+ version: 4,
4204
+ });
4205
+ return [2 /*return*/];
4206
+ });
4207
+ });
4208
+ };
4209
+ PrintDialogShipment.prototype.ngAfterViewInit = function () {
4210
+ };
4211
+ PrintDialogShipment.prototype.onClose = function () {
4212
+ this.dialogRef.close({ result: { id: this.selectedPrinterId, dialogResult: exports.MessageResult.Ok } });
4213
+ };
4214
+ PrintDialogShipment.prototype.onCancelClick = function () {
4215
+ this.onCancel();
4216
+ };
4217
+ PrintDialogShipment.prototype.onCancel = function () {
4218
+ this.dialogRef.close({ result: { id: "", dialogResult: exports.MessageResult.Cancel } });
4219
+ };
4220
+ return PrintDialogShipment;
4221
+ }());
4222
+ PrintDialogShipment.decorators = [
4223
+ { type: core.Component, args: [{
4224
+ selector: 'mobicloud-print-dialog',
4225
+ template: "<div mat-dialog-container class=\"dialog-container\">\n <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n <mat-card-header>\n <div class=\"toolbar-header-text-container\">\n <svg-icon name=\"mobicloud_printer\" svgClass=\"dialog-caption-icon\"></svg-icon><div i18n=\"@@FieldCaption-SelectPrinter\" class=\"toolbar-header-text\">Select printer</div>\n </div> \n </mat-card-header>\n <span class=\"dialog-caption-spacer\"></span>\n <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"dialog-toolbar-button\" (click)=\"onCancel()\">\n <svg-icon name=\"mobicloud_close\" svgClass=\"dialog-toolbar-button-icon\"></svg-icon>\n </button> \n </mat-toolbar> \n <div class=\"dialog-content\">\n <div class=\"printer\">\n <dx-select-box id=\"printerSelectbox\" [dataSource]=\"printer_store\" label=\"Printer\" i18n-label=\"@@FieldCaption-Printer\" labelMode=\"static\" displayExpr=\"PrinterName\" valueExpr=\"Id\" [(value)]=\"selectedPrinterId\">\n <div *dxTemplate=\"let data of 'item'\">\n <div class=\"printer-item\">\n <div class=\"printer-name\">\n {{data?.PrinterName}} {{ data?.GatewayInstallationName ? ('(' + data.GatewayInstallationName + ')') : ('') }}\n </div>\n </div>\n </div> \n </dx-select-box> \n </div>\n\n <div>\n <div fxLayout=\"row\" class=\"dialog-button-row\" fxFlex=\"100\" fxLayoutAlign=\"end center\"> \n <button mat-flat-button color=\"accent\" class=\"button1\" [disabled]=\"showLoadIndicator\" (click)=\"onCancelClick()\" i18n=\"@@Button-Cancel\">Cancel</button> \n <button mat-flat-button color=\"primary\" class=\"button2\" [disabled]=\"showLoadIndicator || !selectedPrinterId\" (click)=\"onClose()\" i18n=\"@@Button-OK\">OK</button> \n </div> \n </div> \n </div>\n <!-- <div #dialog-content id=\"dialog-content\" class=\"dialog-content\">\n here we go\n </div> -->\n</div>\n\n <dx-load-panel\n #loadPanelMainContent\n container=\"#dialog-content\"\n [position]=\"{ of: '#dialog-content' }\"\n [(visible)]=\"showLoadIndicator\"\n [showIndicator]=\"true\"\n [showPane]=\"true\"\n [shading]=\"true\" \n [closeOnOutsideClick]=\"false\"></dx-load-panel>",
4226
+ styles: [".toolbar-header-text-container{display:flex}.toolbar-header-text{margin-top:5px;margin-left:8px}.dialog-caption-icon{pointer-events:none;fill:var(--default-toolbar-iconcolor);width:22px;height:22px;margin-top:10px}.dialog-content{margin-top:40px;padding-left:40px;padding-right:40px}.printer{margin-bottom:40px}"]
4227
+ },] }
4228
+ ];
4229
+ PrintDialogShipment.ctorParameters = function () { return [
4230
+ { type: dialog.MatDialogRef },
4231
+ { type: undefined, decorators: [{ type: core.Inject, args: [dialog.MAT_DIALOG_DATA,] }] },
4232
+ { type: api.MobiCloudDataService },
4233
+ { type: dialog.MatDialog }
4234
+ ]; };
4235
+
4236
+ var DimensionGroupBoxComponent = /** @class */ (function () {
4237
+ function DimensionGroupBoxComponent(cloudDataService, matDialog) {
4238
+ this.cloudDataService = cloudDataService;
4239
+ this.matDialog = matDialog;
4240
+ this.editAllowed = false;
4241
+ this.inEditMode = false;
4242
+ this.isLoadingData = false;
4243
+ this.loadingText = $localize(templateObject_1$d || (templateObject_1$d = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4244
+ this.hasErrors = false;
4245
+ this.errorText = "";
4246
+ this.itemtemplete_value = this.itemtemplete_value.bind(this);
4247
+ this.fieldtemplete_value = this.fieldtemplete_value.bind(this);
4248
+ }
4249
+ Object.defineProperty(DimensionGroupBoxComponent.prototype, "entityGroup", {
4250
+ get: function () {
4251
+ return this._entityGroup;
4252
+ },
4253
+ set: function (e) {
4254
+ this.formEntity = {};
4255
+ this.formEntity_state = {};
4256
+ this.formEntityInit(e);
4257
+ this._entityGroup = e;
4258
+ },
4259
+ enumerable: false,
4260
+ configurable: true
4261
+ });
4262
+ DimensionGroupBoxComponent.prototype.extractEntityName = function (dataSourceName) {
4263
+ return dataSourceName.substring(dataSourceName.lastIndexOf('.') + 1);
4264
+ };
4265
+ DimensionGroupBoxComponent.prototype.itemtemplete_value = function (fieldInfo, item) {
4266
+ return this.fieldtemplete_value(fieldInfo, item);
4267
+ };
4268
+ DimensionGroupBoxComponent.prototype.fieldtemplete_value = function (fieldInfo, item) {
4269
+ var _a;
4270
+ var value = "";
4271
+ if (item && ((_a = fieldInfo === null || fieldInfo === void 0 ? void 0 : fieldInfo.fieldType) === null || _a === void 0 ? void 0 : _a.Name)) {
4272
+ var columns = this.formEntity_state[fieldInfo.fieldType.Name + '_ds_columns'];
4273
+ if (columns && columns.length > 0) {
4274
+ var values = Object.entries(item).filter(function (_d) {
4275
+ var _e = __read(_d, 2), key = _e[0], val = _e[1];
4276
+ return columns.includes(key);
4277
+ });
4278
+ var length = values.length;
4279
+ for (var i = 0; i < length; i++) {
4280
+ if (i == 0) {
4281
+ value = values[i][1].toString();
4282
+ }
4283
+ if (i == 1)
4284
+ value += ' (';
4285
+ if (i > 0) {
4286
+ if (i > 1) {
4287
+ value += ', ';
4288
+ }
4289
+ value += values[i][1].toString();
4290
+ }
4291
+ if (i == (length - 1) && (length - 1) > 0)
4292
+ value += ')';
4293
+ }
4294
+ }
4295
+ else {
4296
+ value = item === null || item === void 0 ? void 0 : item.Name;
4297
+ }
4298
+ }
4299
+ return value;
4300
+ };
4301
+ Object.defineProperty(DimensionGroupBoxComponent.prototype, "caption", {
4302
+ get: function () {
4303
+ var _a, _b;
4304
+ return (_b = (_a = this.entityGroup) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : $localize(templateObject_2$b || (templateObject_2$b = __makeTemplateObject([":@@CaptionHeader-DimensionFields:Dimension fields"], [":@@CaptionHeader-DimensionFields:Dimension fields"])));
4305
+ ;
4306
+ },
4307
+ enumerable: false,
4308
+ configurable: true
4309
+ });
4310
+ DimensionGroupBoxComponent.prototype.ngOnInit = function () {
4311
+ var _this = this;
4312
+ this.cloudDataService.coreService.mobiUserProfileObservable.subscribe(function (p) { return _this.editAllowed = p === null || p === void 0 ? void 0 : p.isOrganizationUser; });
4313
+ this.initializeDataStore();
4314
+ };
4315
+ DimensionGroupBoxComponent.prototype.initializeDataStore = function () {
4316
+ return __awaiter(this, void 0, void 0, function () {
4317
+ var _this = this;
4318
+ return __generator(this, function (_d) {
4319
+ this.dimensionType_store = new ODataStore__default['default']({
4320
+ url: this.cloudDataService.getMobiManagementODataUrl("DimensionType"),
4321
+ beforeSend: function (e) {
4322
+ var _a, _b;
4323
+ if (((_a = e.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) == "POST") {
4324
+ e.url = _this.cloudDataService.getMobiManagementODataUrl("DimensionType(" + ((_b = _this.dimensionType) === null || _b === void 0 ? void 0 : _b.Id) + ")/UpdateFieldsValues()");
4325
+ }
4326
+ },
4327
+ withCredentials: true,
4328
+ key: "Id",
4329
+ keyType: "Guid",
4330
+ version: 4,
4331
+ });
4332
+ this.dimensionField_store = new ODataStore__default['default']({
4333
+ url: this.cloudDataService.getMobiManagementODataUrl("DimensionField"),
4334
+ beforeSend: function (e) {
4335
+ var _a, _b, _c;
4336
+ if (((_a = e.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) == "GET") {
4337
+ if (_this.entityGroup.name)
4338
+ e.params.$filter = "ObjectExtensionId eq " + ((_b = _this.domainObject) === null || _b === void 0 ? void 0 : _b.ExtensionId) + " and FieldType/GroupName eq '" + _this.entityGroup.name + "'";
4339
+ else
4340
+ e.params.$filter = "ObjectExtensionId eq " + ((_c = _this.domainObject) === null || _c === void 0 ? void 0 : _c.ExtensionId) + " and (FieldType/GroupName eq null or FieldType/GroupName eq '')";
4341
+ e.params.$expand = "FieldType($expand=DataSourceColumns)";
4342
+ }
4343
+ },
4344
+ withCredentials: true,
4345
+ key: "Id",
4346
+ keyType: "Guid",
4347
+ version: 4
4348
+ });
4349
+ return [2 /*return*/];
4350
+ });
4351
+ });
4352
+ };
4353
+ DimensionGroupBoxComponent.prototype.formEntityInit = function (entitygroup) {
4354
+ var _a, _b;
4355
+ if (((_a = entitygroup.fields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
4356
+ for (var i = 0; i < entitygroup.fields.length; i++) {
4357
+ if (entitygroup.fields[i].fieldType.TypeName == "System.DateTime") {
4358
+ if (entitygroup.fields[i].field) {
4359
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = entitygroup.fields[i].field.Value_DateTime;
4360
+ }
4361
+ else {
4362
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = undefined;
4363
+ }
4364
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = "dxDateBox";
4365
+ }
4366
+ else if (entitygroup.fields[i].fieldType.TypeName == "System.Double") {
4367
+ if (entitygroup.fields[i].field) {
4368
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = entitygroup.fields[i].field.Value_Number;
4369
+ }
4370
+ else {
4371
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = undefined;
4372
+ }
4373
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = "dxNumberBox";
4374
+ }
4375
+ else if (entitygroup.fields[i].fieldType.TypeName == "System.Boolean") {
4376
+ if (entitygroup.fields[i].field) {
4377
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = entitygroup.fields[i].field.Value_Boolean;
4378
+ }
4379
+ else {
4380
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = undefined;
4381
+ }
4382
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = "dxCheckBox";
4383
+ }
4384
+ else if (entitygroup.fields[i].fieldType.TypeName == "System.Guid") {
4385
+ if (entitygroup.fields[i].field) {
4386
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = entitygroup.fields[i].field.Value_DataSourceObjectId;
4387
+ }
4388
+ else {
4389
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = undefined;
4390
+ }
4391
+ var datasourceEntityName = this.extractEntityName(entitygroup.fields[i].fieldType.DataSourceName);
4392
+ if (this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds']) {
4393
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds'].dispose();
4394
+ }
4395
+ var sortColumn = "Name";
4396
+ if (((_b = entitygroup.fields[i].fieldType.DataSourceColumns) === null || _b === void 0 ? void 0 : _b.length) > 0) {
4397
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'] = [];
4398
+ for (var q = 0; q < entitygroup.fields[i].fieldType.DataSourceColumns.length; q++) {
4399
+ if (q == 0)
4400
+ sortColumn = entitygroup.fields[i].fieldType.DataSourceColumns[q].FieldName;
4401
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'].push(entitygroup.fields[i].fieldType.DataSourceColumns[q].FieldName);
4402
+ }
4403
+ }
4404
+ else {
4405
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'] = ['Name'];
4406
+ }
4407
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds'] = this.createDatasourceItem_DataSource(datasourceEntityName, sortColumn);
4408
+ }
4409
+ else {
4410
+ if (entitygroup.fields[i].field) {
4411
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = entitygroup.fields[i].field.Value_String;
4412
+ }
4413
+ else {
4414
+ this.formEntity[entitygroup.fields[i].fieldType.Name] = undefined;
4415
+ }
4416
+ this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = "dxTextBox";
4417
+ }
4418
+ }
4419
+ }
4420
+ };
4421
+ DimensionGroupBoxComponent.prototype.getEntityGroup = function () {
4422
+ var _this = this;
4423
+ var _a;
4424
+ this.isLoadingData = true;
4425
+ this.loadingText = $localize(templateObject_3$b || (templateObject_3$b = __makeTemplateObject([":@@Loading-Text-DimensionField:Loading fields..."], [":@@Loading-Text-DimensionField:Loading fields..."])));
4426
+ if ((_a = this.domainObject) === null || _a === void 0 ? void 0 : _a.ExtensionId) {
4427
+ this.dimensionField_store.load().then(function (dataItem) {
4428
+ var _a, _b;
4429
+ var groupEntry;
4430
+ if ((dataItem === null || dataItem === void 0 ? void 0 : dataItem.length) > 0) {
4431
+ groupEntry = { "name": (_b = (_a = dataItem[0].FieldType) === null || _a === void 0 ? void 0 : _a.GroupName) !== null && _b !== void 0 ? _b : '', "fields": [] };
4432
+ for (var q = 0; q < dataItem.length; q++) {
4433
+ var field = dataItem[q];
4434
+ groupEntry.fields.push({ "fieldType": Object.assign(new api.DimensionFieldType(), field.FieldType), "field": Object.assign(new api.DimensionField(), field) });
4435
+ }
4436
+ }
4437
+ else {
4438
+ groupEntry = { "name": _this.entityGroup.name, "fields": [] };
4439
+ for (var q = 0; q < _this.entityGroup.fields.length; q++) {
4440
+ var field = _this.entityGroup.fields[q];
4441
+ groupEntry.fields.push({ "fieldType": Object.assign(new api.DimensionFieldType(), field.fieldType), "field": Object.assign(new api.DimensionField(), { FieldTypeId: field.fieldType.Id, FieldType: field.fieldType }) });
4442
+ }
4443
+ }
4444
+ _this.formEntityInit(groupEntry);
4445
+ _this.isLoadingData = false;
4446
+ _this.hasErrors = false;
4447
+ _this.errorText = "";
4448
+ _this.loadingText = $localize(templateObject_4$b || (templateObject_4$b = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4449
+ }, function (error) {
4450
+ console.log(error);
4451
+ _this.isLoadingData = false;
4452
+ _this.hasErrors = true;
4453
+ _this.errorText = error;
4454
+ _this.loadingText = $localize(templateObject_5$b || (templateObject_5$b = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4455
+ });
4456
+ }
4457
+ else {
4458
+ var groupEntry = { "name": this.entityGroup.fields[0].fieldType.GroupName, "fields": [] };
4459
+ for (var i = 0; i < this.entityGroup.fields.length; i++) {
4460
+ var field = this.entityGroup.fields[i];
4461
+ groupEntry.fields.push({ "fieldType": Object.assign(new api.DimensionFieldType(), field.fieldType), "field": Object.assign(new api.DimensionField(), { FieldTypeId: field.fieldType.Id, FieldType: field.fieldType }) });
4462
+ }
4463
+ this.formEntityInit(groupEntry);
4464
+ this.isLoadingData = false;
4465
+ this.hasErrors = false;
4466
+ this.errorText = "";
4467
+ this.loadingText = $localize(templateObject_6$b || (templateObject_6$b = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4468
+ }
4469
+ };
4470
+ DimensionGroupBoxComponent.prototype.saveEntityGroup = function () {
4471
+ var _this = this;
4472
+ var _a, _b, _c;
4473
+ this.isLoadingData = true;
4474
+ this.loadingText = $localize(templateObject_7$b || (templateObject_7$b = __makeTemplateObject([":@@Updating-Text-Fields:Updating fields..."], [":@@Updating-Text-Fields:Updating fields..."])));
4475
+ var fields = [];
4476
+ var body = { "domainObjectId": (_a = this.domainObject) === null || _a === void 0 ? void 0 : _a.Id, "fields": fields };
4477
+ var formEntries = Object.entries(this.formEntity);
4478
+ for (var i = 0; i < formEntries.length; i++) {
4479
+ var fieldName = formEntries[i][0];
4480
+ var fieldValue = formEntries[i][1];
4481
+ var fieldEntry = (_b = this.entityGroup.fields) === null || _b === void 0 ? void 0 : _b.filter(function (f) { return f.fieldType.Name == fieldName; })[0];
4482
+ var body_line = {};
4483
+ if ((_c = fieldEntry.field) === null || _c === void 0 ? void 0 : _c.Id) {
4484
+ body_line["Id"] = fieldEntry.field.Id;
4485
+ }
4486
+ body_line["FieldTypeId"] = fieldEntry.fieldType.Id;
4487
+ if (fieldEntry.fieldType.TypeName == "System.DateTime") {
4488
+ body_line["Value_DateTime"] = fieldValue;
4489
+ body.fields.push(body_line);
4490
+ }
4491
+ else if (fieldEntry.fieldType.TypeName == "System.Double") {
4492
+ body_line["Value_Number"] = fieldValue;
4493
+ body.fields.push(body_line);
4494
+ }
4495
+ else if (fieldEntry.fieldType.TypeName == "System.Boolean") {
4496
+ body_line["Value_Boolean"] = fieldValue;
4497
+ body.fields.push(body_line);
4498
+ }
4499
+ else if (fieldEntry.fieldType.TypeName == "System.Guid") {
4500
+ body_line["Value_DataSourceObjectId"] = fieldValue;
4501
+ body.fields.push(body_line);
4502
+ }
4503
+ else if (fieldEntry.fieldType.TypeName == "System.String") {
4504
+ body_line["Value_String"] = fieldValue;
4505
+ body.fields.push(body_line);
4506
+ }
4507
+ }
4508
+ this.dimensionType_store.insert(body)
4509
+ .then(function (dataObj) {
4510
+ var _a;
4511
+ if (_this.domainObject && !_this.domainObject.ExtensionId)
4512
+ _this.domainObject.ExtensionId = (_a = dataObj[0]) === null || _a === void 0 ? void 0 : _a.ObjectExtensionId;
4513
+ _this.getEntityGroup();
4514
+ _this.isLoadingData = false;
4515
+ _this.inEditMode = false;
4516
+ _this.loadingText = $localize(templateObject_8$b || (templateObject_8$b = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4517
+ }, function (error) {
4518
+ console.log(error);
4519
+ _this.isLoadingData = false;
4520
+ _this.loadingText = $localize(templateObject_9$9 || (templateObject_9$9 = __makeTemplateObject([":@@Loading-Text:Loading..."], [":@@Loading-Text:Loading..."])));
4521
+ MessageBox.showError({ title: $localize(templateObject_10$9 || (templateObject_10$9 = __makeTemplateObject([":@@Failed-Text-FieldsUpdate:Fields update failed"], [":@@Failed-Text-FieldsUpdate:Fields update failed"]))), message: error }, _this.matDialog)
4522
+ .subscribe(function (result) {
4523
+ });
4524
+ });
4525
+ };
4526
+ DimensionGroupBoxComponent.prototype.onEditClick = function () {
4527
+ this.inEditMode = true;
4528
+ };
4529
+ DimensionGroupBoxComponent.prototype.onSaveClick = function () {
4530
+ var validateResult = this.form.instance.validate();
4531
+ if (validateResult === null || validateResult === void 0 ? void 0 : validateResult.isValid) {
4532
+ this.saveEntityGroup();
4533
+ }
4534
+ };
4535
+ DimensionGroupBoxComponent.prototype.onRetryClick = function () {
4536
+ this.getEntityGroup();
4537
+ this.inEditMode = false;
4538
+ };
4539
+ DimensionGroupBoxComponent.prototype.onCancelEditClick = function () {
4540
+ this.getEntityGroup();
4541
+ this.inEditMode = false;
4542
+ };
4543
+ DimensionGroupBoxComponent.prototype.createDatasourceItem_DataSource = function (entityName, sortColumn) {
4544
+ var store = new ODataStore__default['default']({ url: this.cloudDataService.getMobiManagementODataUrl(entityName),
4545
+ withCredentials: true,
4546
+ key: "Id",
4547
+ keyType: "Guid",
4548
+ version: 4,
4549
+ });
4550
+ var ds;
4551
+ if (sortColumn) {
4552
+ ds = new DataSource__default['default']({
4553
+ store: store,
4554
+ requireTotalCount: true,
4555
+ sort: [{ selector: sortColumn, desc: false }],
4556
+ map: function (dataItem) {
4557
+ return dataItem;
4558
+ }
4559
+ });
4560
+ }
4561
+ else {
4562
+ ds = new DataSource__default['default']({
4563
+ store: store,
4564
+ requireTotalCount: true,
4565
+ sort: [{ selector: "MetaData.Created", desc: false }],
4566
+ map: function (dataItem) {
4567
+ return dataItem;
4568
+ }
4569
+ });
4570
+ }
4571
+ return ds;
4572
+ };
4573
+ DimensionGroupBoxComponent.prototype.datasourceItemChanged = function (fieldName, args) {
4574
+ var _a, _b;
4575
+ this.formEntity_state[fieldName + '_selectedid'] = ((_a = args.selectedRowsData) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (_b = args.selectedRowsData[0]) === null || _b === void 0 ? void 0 : _b.Id : undefined;
4576
+ this.formEntity[fieldName] = this.formEntity_state[fieldName + '_selectedid'];
4577
+ };
4578
+ return DimensionGroupBoxComponent;
4579
+ }());
4580
+ DimensionGroupBoxComponent.decorators = [
4581
+ { type: core.Component, args: [{
4582
+ selector: 'mobicloud-dimension-group-box',
4583
+ template: "<mobicloud-group-box [title]=\"caption\" [width]=\"width\" [contentheight]=[contentheight] class=\"dimensionTypeForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\" *ngIf=\"domainObject && entityGroup && dimensionType?.EntityType\">\n\n <ng-container *ngIf=\"entityGroup.fields?.length > 0\">\n\n <dx-form #form id=\"form\"\n [formData]=\"formEntity\"\n [readOnly]=\"!inEditMode\"\n [showColonAfterLabel]=\"true\"\n labelLocation=\"top\"\n [showValidationSummary]=\"false\" \n [showRequiredMark] = \"false\"\n validationGroup=\"formDimensionFields_General\">\n \n <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" *ngIf=\"formEntity\">\n <ng-container *ngFor=\"let fieldInfo of entityGroup.fields\">\n <dxi-item [dataField]=\"fieldInfo.fieldType.Name\" [colSpan]=\"2\" *ngIf=\"fieldInfo.fieldType.TypeName != 'System.Guid'\" [editorType]=\"formEntity_state[fieldInfo.fieldType.Name + '_editortype']\">\n <dxo-label [text]=\"fieldInfo.fieldType.Caption\"></dxo-label>\n </dxi-item> \n\n <dxi-item [dataField]=\"fieldInfo.fieldType.Name\" [colSpan]=\"2\" editorType=\"dxLookup\" \n [editorOptions]=\"{ itemTemplate: fieldInfo.fieldType.Name +'_itemTemplate', fieldTemplate: fieldInfo.fieldType.Name + '_fieldTemplate', dataSource: formEntity_state[fieldInfo.fieldType.Name + '_ds'], valueExpr: 'Id', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n <dxo-label [text]=\"fieldInfo.fieldType.Caption\"></dxo-label>\n </dxi-item>\n </ng-container>\n </dxi-item>\n \n <ng-container *ngFor=\"let fieldInfo of entityGroup.fields\"> \n <div *dxTemplate=\"let item of (fieldInfo.fieldType.Name + '_itemTemplate')\">\n {{itemtemplete_value(fieldInfo, item)}} \n </div> \n <div *dxTemplate=\"let item of (fieldInfo.fieldType.Name + '_fieldTemplate')\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n {{fieldtemplete_value(fieldInfo, item)}} \n </div> \n </ng-container> \n </dx-form> \n\n\n </ng-container>\n\n</mobicloud-group-box>",
4584
+ styles: [""]
4585
+ },] }
4586
+ ];
4587
+ DimensionGroupBoxComponent.ctorParameters = function () { return [
4588
+ { type: api.MobiCloudDataService },
4589
+ { type: dialog.MatDialog }
4590
+ ]; };
4591
+ DimensionGroupBoxComponent.propDecorators = {
4592
+ domainObject: [{ type: core.Input }],
4593
+ entityGroup: [{ type: core.Input, args: ['entityGroup',] }],
4594
+ dimensionType: [{ type: core.Input }],
4595
+ editAllowed: [{ type: core.Input }],
4596
+ inEditMode: [{ type: core.Input }],
4597
+ width: [{ type: core.Input }],
4598
+ contentheight: [{ type: core.Input }],
4599
+ isLoadingData: [{ type: core.Input }],
4600
+ loadingText: [{ type: core.Input }],
4601
+ hasErrors: [{ type: core.Input }],
4602
+ errorText: [{ type: core.Input }],
4603
+ form: [{ type: core.ViewChild, args: ["form",] }]
4604
+ };
4605
+ var templateObject_1$d, templateObject_2$b, templateObject_3$b, templateObject_4$b, templateObject_5$b, templateObject_6$b, templateObject_7$b, templateObject_8$b, templateObject_9$9, templateObject_10$9;
4606
+
4607
+ var DimensionGroupsComponent = /** @class */ (function () {
4608
+ function DimensionGroupsComponent(cloudDataService, matDialog) {
4609
+ this.cloudDataService = cloudDataService;
4610
+ this.matDialog = matDialog;
4611
+ this.isLoadingData = false;
4612
+ this.hasErrors = false;
4613
+ this.errorText = "";
4614
+ this.groups = [];
4615
+ }
4616
+ DimensionGroupsComponent.prototype.ngOnInit = function () {
4617
+ this.initializeDataStore();
4618
+ this.getDimensionType();
4619
+ };
4620
+ DimensionGroupsComponent.prototype.initializeDataStore = function () {
4621
+ return __awaiter(this, void 0, void 0, function () {
4622
+ var _this = this;
4623
+ return __generator(this, function (_e) {
4624
+ this.dimensionType_store = new ODataStore__default['default']({
4625
+ url: this.cloudDataService.getMobiManagementODataUrl("DimensionType"),
4626
+ beforeSend: function (e) {
4627
+ var _a, _b;
4628
+ _this.applyDimensionTypeFilter();
4629
+ if (((_a = e.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) == "GET") {
4630
+ if (!((_b = e.params) === null || _b === void 0 ? void 0 : _b.$orderby)) {
4631
+ e.url = _this.cloudDataService.getMobiManagementODataUrl("DimensionType?$orderby=MetaData/Created");
4632
+ }
4633
+ e.params.$filter = _this.odatastore_dimensionType_filter;
4634
+ var expandValues = ["FieldTypes($orderby=GroupName,MetaData/Index;$expand=DataSourceColumns)"];
4635
+ if ((expandValues === null || expandValues === void 0 ? void 0 : expandValues.length) > 0) {
4636
+ e.params.$expand = expandValues.toString();
4637
+ }
4638
+ }
4639
+ },
4640
+ withCredentials: true,
4641
+ key: "Id",
4642
+ keyType: "Guid",
4643
+ version: 4
4644
+ });
4645
+ this.dimensionField_store = new ODataStore__default['default']({
4646
+ url: this.cloudDataService.getMobiManagementODataUrl("DimensionField"),
4647
+ beforeSend: function (e) {
4648
+ var _a;
4649
+ _this.applyDimensionFieldFilter();
4650
+ if (((_a = e.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) == "GET") {
4651
+ e.params.$filter = _this.odatastore_dimensionField_filter;
4652
+ }
4653
+ },
4654
+ withCredentials: true,
4655
+ key: "Id",
4656
+ keyType: "Guid",
4657
+ version: 4
4658
+ });
4659
+ return [2 /*return*/];
4660
+ });
4661
+ });
4662
+ };
4663
+ DimensionGroupsComponent.prototype.applyDimensionTypeFilter = function () {
4664
+ this.odatastore_dimensionType_filter = "EntityType eq '" + this.entityType + "'";
4665
+ };
4666
+ DimensionGroupsComponent.prototype.applyDimensionFieldFilter = function () {
4667
+ var _a;
4668
+ this.odatastore_dimensionField_filter = "ObjectExtensionId eq " + ((_a = this.domainObject) === null || _a === void 0 ? void 0 : _a.ExtensionId);
4669
+ };
4670
+ DimensionGroupsComponent.prototype.getDimensionType = function () {
4671
+ return __awaiter(this, void 0, void 0, function () {
4672
+ var _this = this;
4673
+ return __generator(this, function (_e) {
4674
+ if (this.entityType && this.dimensionType_store && this.dimensionField_store) {
4675
+ this.isLoadingData = true;
4676
+ this.dimensionType_store.load().then(function (dataItem_dimtype) {
4677
+ var _a, _b, _c, _d;
4678
+ _this.dimensionType = dataItem_dimtype[0];
4679
+ if (((_a = _this.dimensionType) === null || _a === void 0 ? void 0 : _a.FieldTypes) && ((_c = (_b = _this.dimensionType) === null || _b === void 0 ? void 0 : _b.FieldTypes) === null || _c === void 0 ? void 0 : _c.length) > 0 && _this.dimensionField_store) {
4680
+ if ((_d = _this.domainObject) === null || _d === void 0 ? void 0 : _d.ExtensionId) {
4681
+ _this.dimensionField_store.load().then(function (dataItem_dimfields) {
4682
+ _this.processGroups(dataItem_dimfields);
4683
+ _this.isLoadingData = false;
4684
+ _this.hasErrors = false;
4685
+ _this.errorText = "";
4686
+ }, function (error) {
4687
+ console.log(error);
4688
+ _this.isLoadingData = false;
4689
+ _this.hasErrors = true;
4690
+ _this.errorText = error;
4691
+ });
4692
+ }
4693
+ else {
4694
+ _this.processGroups(undefined);
4695
+ _this.isLoadingData = false;
4696
+ _this.hasErrors = false;
4697
+ _this.errorText = "";
4698
+ }
4699
+ }
4700
+ }, function (error) {
4701
+ console.log(error);
4702
+ _this.isLoadingData = false;
4703
+ _this.hasErrors = true;
4704
+ _this.errorText = error;
4705
+ });
4706
+ }
4707
+ return [2 /*return*/];
4708
+ });
4709
+ });
4710
+ };
4711
+ DimensionGroupsComponent.prototype.processGroups = function (dataItem_dimfields) {
4712
+ var _a, _b;
4713
+ var result = this.groupBy((_a = this.dimensionType) === null || _a === void 0 ? void 0 : _a.FieldTypes, function (f) { return f.GroupName; });
4714
+ var entries = Object.entries(result);
4715
+ for (var i = 0; i < entries.length; i++) {
4716
+ var groupName = entries[i][0];
4717
+ var fieldTypes = entries[i][1];
4718
+ var groupEntry = { name: groupName, fields: [] };
4719
+ var _loop_1 = function (q) {
4720
+ field = dataItem_dimfields === null || dataItem_dimfields === void 0 ? void 0 : dataItem_dimfields.filter(function (f) { return f.FieldTypeId == fieldTypes[q].Id.toString(); })[0];
4721
+ if (field) {
4722
+ var f_entry = { "fieldType": Object.assign(new api.DimensionFieldType(), fieldTypes[q]), "field": Object.assign(new api.DimensionField(), field) };
4723
+ groupEntry.fields.push(f_entry);
4724
+ }
4725
+ else {
4726
+ var f_entry = { "fieldType": Object.assign(new api.DimensionFieldType(), fieldTypes[q]), "field": Object.assign(new api.DimensionField(), { FieldTypeId: fieldTypes[q].Id, FieldType: fieldTypes[q] }) };
4727
+ groupEntry.fields.push(f_entry);
4728
+ }
4729
+ };
4730
+ var field;
4731
+ for (var q = 0; q < fieldTypes.length; q++) {
4732
+ _loop_1(q);
4733
+ }
4734
+ if (!groupEntry.name || groupEntry.name == 'undefined') {
4735
+ groupEntry.name = undefined;
4736
+ }
4737
+ (_b = this.groups) === null || _b === void 0 ? void 0 : _b.push(groupEntry);
4738
+ }
4739
+ };
4740
+ DimensionGroupsComponent.prototype.groupBy = function (xs, f) {
4741
+ return xs === null || xs === void 0 ? void 0 : xs.reduce(function (r, v, i, a, k) {
4742
+ if (k === void 0) { k = f(v); }
4743
+ return ((r[k] || (r[k] = [])).push(v), r);
4744
+ }, {});
4745
+ };
4746
+ return DimensionGroupsComponent;
4747
+ }());
4748
+ DimensionGroupsComponent.decorators = [
4749
+ { type: core.Component, args: [{
4750
+ selector: 'mobicloud-dimension-groups',
4751
+ template: "<ng-container *ngIf=\"dimensionType && groups?.length > 0\">\n <ng-container *ngFor=\"let group of groups\">\n <div [class]=\"groupboxClassName\" fxLayout=\"0\" fxLayoutGap=\"32px\">\n <mobicloud-dimension-group-box [entityGroup]=\"group\" [dimensionType]=\"dimensionType\" [width]=\"width\" [contentheight]=\"contentheight\" [domainObject]=\"domainObject\"></mobicloud-dimension-group-box> \n </div>\n </ng-container>\n</ng-container>\n\n",
4752
+ styles: [""]
4753
+ },] }
4754
+ ];
4755
+ DimensionGroupsComponent.ctorParameters = function () { return [
4756
+ { type: api.MobiCloudDataService },
4757
+ { type: dialog.MatDialog }
4758
+ ]; };
4759
+ DimensionGroupsComponent.propDecorators = {
4760
+ domainObject: [{ type: core.Input }],
4761
+ entityType: [{ type: core.Input }],
4762
+ width: [{ type: core.Input }],
4763
+ contentheight: [{ type: core.Input }],
4764
+ groupboxClassName: [{ type: core.Input }]
4765
+ };
4766
+
4181
4767
  var MobiCloudComponentsModule = /** @class */ (function () {
4182
4768
  function MobiCloudComponentsModule() {
4183
4769
  }
@@ -4188,7 +4774,7 @@
4188
4774
  declarations: [SigninCallbackComponent, SigninSilentCallbackComponent, SignoutCallbackComponent, MainNavComponent, ContentToolbarComponent, GroupBoxComponent, SubscriptionBoxComponent, LoadingContainerComponent, MessageBoxDialogComponent, MaterialElevationDirective,
4189
4775
  ProfilePageComponent, ProfilePageSystemUserComponent, ProfilePageEmployeeComponent, ProfilePageCustomerUserComponent, ProfilePageVendorUserComponent, CameraDialogEditComponent, ImageEditComponent,
4190
4776
  EmployeeAddressComponent, EmployeeProfileComponent, EmployeeProfileImageComponent, EmployeeUserInfoComponent, SystemUserProfileComponent, CustomerUserAddressComponent, CustomerUserDetailsComponent, CustomerUserGeneralComponent, CustomerUserImageComponent,
4191
- PickinglistAddNewShipment],
4777
+ PickinglistAddNewShipment, PrintDialogShipment, DimensionGroupBoxComponent, DimensionGroupsComponent],
4192
4778
  imports: [
4193
4779
  common.CommonModule, router.RouterModule, icons.MobiCloudIconsModule, flexLayout.FlexLayoutModule,
4194
4780
  sidenav.MatSidenavModule, button.MatButtonModule, icon.MatIconModule, expansion.MatExpansionModule, list.MatListModule, menu.MatMenuModule, tooltip.MatTooltipModule, toolbar.MatToolbarModule, card.MatCardModule, progressSpinner.MatProgressSpinnerModule, slideToggle.MatSlideToggleModule, stepper.MatStepperModule,
@@ -4204,7 +4790,7 @@
4204
4790
  MaterialElevationDirective, SigninCallbackComponent, SigninSilentCallbackComponent, SignoutCallbackComponent, MainNavComponent, ContentToolbarComponent, GroupBoxComponent, SubscriptionBoxComponent, LoadingContainerComponent, MessageBoxDialogComponent,
4205
4791
  ProfilePageComponent, ProfilePageSystemUserComponent, ProfilePageEmployeeComponent, ProfilePageCustomerUserComponent, ProfilePageVendorUserComponent, CameraDialogEditComponent, ImageEditComponent,
4206
4792
  EmployeeAddressComponent, EmployeeProfileComponent, EmployeeProfileImageComponent, EmployeeUserInfoComponent, SystemUserProfileComponent, CustomerUserAddressComponent, CustomerUserDetailsComponent, CustomerUserGeneralComponent, CustomerUserImageComponent,
4207
- PickinglistAddNewShipment
4793
+ PickinglistAddNewShipment, PrintDialogShipment, DimensionGroupBoxComponent, DimensionGroupsComponent
4208
4794
  ]
4209
4795
  },] }
4210
4796
  ];
@@ -4217,6 +4803,8 @@
4217
4803
  exports.CustomerUserDetailsComponent = CustomerUserDetailsComponent;
4218
4804
  exports.CustomerUserGeneralComponent = CustomerUserGeneralComponent;
4219
4805
  exports.CustomerUserImageComponent = CustomerUserImageComponent;
4806
+ exports.DimensionGroupBoxComponent = DimensionGroupBoxComponent;
4807
+ exports.DimensionGroupsComponent = DimensionGroupsComponent;
4220
4808
  exports.EmployeeAddressComponent = EmployeeAddressComponent;
4221
4809
  exports.EmployeeProfileComponent = EmployeeProfileComponent;
4222
4810
  exports.EmployeeProfileImageComponent = EmployeeProfileImageComponent;
@@ -4231,6 +4819,7 @@
4231
4819
  exports.MobiCloudComponentsModule = MobiCloudComponentsModule;
4232
4820
  exports.PackagingBoxEntry = PackagingBoxEntry;
4233
4821
  exports.PickinglistAddNewShipment = PickinglistAddNewShipment;
4822
+ exports.PrintDialogShipment = PrintDialogShipment;
4234
4823
  exports.ProfilePageComponent = ProfilePageComponent;
4235
4824
  exports.ProfilePageCustomerUserComponent = ProfilePageCustomerUserComponent;
4236
4825
  exports.ProfilePageEmployeeComponent = ProfilePageEmployeeComponent;