@hitsoft/kadooglu-keops 0.0.2 → 0.0.4
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.
- package/config/enums/route-names.d.ts +16 -1
- package/esm2020/config/enums/route-names.mjs +1 -1
- package/esm2020/config/providers/route.provider.mjs +141 -4
- package/esm2020/lib/features/bl-tracking/components/bl-tracking-form.component.mjs +82 -0
- package/esm2020/lib/features/bl-tracking/components/bl-tracking.component.mjs +65 -0
- package/esm2020/lib/features/bl-tracking/hit-bl-tracking-routing.module.mjs +29 -0
- package/esm2020/lib/features/bl-tracking/hit-bl-tracking.module.mjs +58 -0
- package/esm2020/lib/features/carriers/components/carrier-form.component.mjs +78 -0
- package/esm2020/lib/features/carriers/components/carriers.component.mjs +66 -0
- package/esm2020/lib/features/carriers/hit-carriers-routing.module.mjs +29 -0
- package/esm2020/lib/features/carriers/hit-carriers.module.mjs +58 -0
- package/esm2020/lib/features/container-loading-counts/components/container-loading-counts.component.mjs +2 -2
- package/esm2020/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.mjs +6 -5
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-inputs.component.mjs +16 -12
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-results.component.mjs +3 -3
- package/esm2020/lib/features/cost-calculation/components/cost-calculation.component.mjs +90 -39
- package/esm2020/lib/features/cost-calculation/engine/currency.utils.mjs +10 -10
- package/esm2020/lib/features/cost-calculation/engine/formulas.mjs +10 -10
- package/esm2020/lib/features/cost-calculation/engine/item-resolver.mjs +16 -16
- package/esm2020/lib/features/cost-calculation/engine/stage-builder.mjs +11 -10
- package/esm2020/lib/features/cost-calculation/hit-cost-calculation.module.mjs +7 -3
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.mjs +3 -7
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.mjs +4 -14
- package/esm2020/lib/features/cost-parameters/components/cost-parameter-form.component.mjs +22 -39
- package/esm2020/lib/features/cost-parameters/components/cost-parameters.component.mjs +19 -15
- package/esm2020/lib/features/destination-ports/components/destination-port-form.component.mjs +86 -0
- package/esm2020/lib/features/destination-ports/components/destination-ports.component.mjs +74 -0
- package/esm2020/lib/features/destination-ports/hit-destination-ports-routing.module.mjs +29 -0
- package/esm2020/lib/features/destination-ports/hit-destination-ports.module.mjs +58 -0
- package/esm2020/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.mjs +80 -0
- package/esm2020/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.mjs +65 -0
- package/esm2020/lib/features/fob-inland-definitions/hit-fob-inland-definitions-routing.module.mjs +29 -0
- package/esm2020/lib/features/fob-inland-definitions/hit-fob-inland-definitions.module.mjs +58 -0
- package/esm2020/lib/features/freight-offers/components/freight-offer-copy.component.mjs +67 -0
- package/esm2020/lib/features/freight-offers/components/freight-offer-form.component.mjs +181 -0
- package/esm2020/lib/features/freight-offers/components/freight-offers.component.mjs +159 -0
- package/esm2020/lib/features/freight-offers/hit-freight-offers-routing.module.mjs +29 -0
- package/esm2020/lib/features/freight-offers/hit-freight-offers.module.mjs +62 -0
- package/esm2020/lib/features/incoterms/components/incoterm-form.component.mjs +81 -0
- package/esm2020/lib/features/incoterms/components/incoterms.component.mjs +65 -0
- package/esm2020/lib/features/incoterms/hit-incoterms-routing.module.mjs +29 -0
- package/esm2020/lib/features/incoterms/hit-incoterms.module.mjs +58 -0
- package/esm2020/lib/features/index.mjs +29 -1
- package/esm2020/lib/features/item-classifications/components/item-classifications.component.mjs +199 -0
- package/esm2020/lib/features/item-classifications/hit-item-classifications-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-classifications/hit-item-classifications.module.mjs +60 -0
- package/esm2020/lib/features/item-package-groups/components/item-package-group-form.component.mjs +78 -0
- package/esm2020/lib/features/item-package-groups/components/item-package-groups.component.mjs +69 -0
- package/esm2020/lib/features/item-package-groups/hit-item-package-groups-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-package-groups/hit-item-package-groups.module.mjs +58 -0
- package/esm2020/lib/features/item-package-types/components/item-package-type-form.component.mjs +78 -0
- package/esm2020/lib/features/item-package-types/components/item-package-types.component.mjs +69 -0
- package/esm2020/lib/features/item-package-types/hit-item-package-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-package-types/hit-item-package-types.module.mjs +58 -0
- package/esm2020/lib/features/item-product-types/components/item-product-type-form.component.mjs +78 -0
- package/esm2020/lib/features/item-product-types/components/item-product-types.component.mjs +69 -0
- package/esm2020/lib/features/item-product-types/hit-item-product-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-product-types/hit-item-product-types.module.mjs +58 -0
- package/esm2020/lib/features/lines/components/line-form.component.mjs +78 -0
- package/esm2020/lib/features/lines/components/lines.component.mjs +66 -0
- package/esm2020/lib/features/lines/hit-lines-routing.module.mjs +29 -0
- package/esm2020/lib/features/lines/hit-lines.module.mjs +58 -0
- package/esm2020/lib/features/packaging-prices/components/packaging-price-form.component.mjs +4 -9
- package/esm2020/lib/features/packaging-prices/packaging-price-calculator.mjs +1 -1
- package/esm2020/lib/features/pos/components/pos-form.component.mjs +77 -0
- package/esm2020/lib/features/pos/components/pos.component.mjs +65 -0
- package/esm2020/lib/features/pos/hit-pos-routing.module.mjs +29 -0
- package/esm2020/lib/features/pos/hit-pos.module.mjs +58 -0
- package/esm2020/lib/features/price-parameter-types/components/price-parameter-types.component.mjs +3 -3
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-cost-items.component.mjs +32 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.mjs +52 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.mjs +84 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-items.component.mjs +43 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-price-lists.component.mjs +42 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form.component.mjs +320 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.mjs +26 -0
- package/esm2020/lib/features/price-parameters/components/price-parameters.component.mjs +85 -0
- package/esm2020/lib/features/price-parameters/hit-price-parameters-routing.module.mjs +46 -0
- package/esm2020/lib/features/price-parameters/hit-price-parameters.module.mjs +96 -0
- package/esm2020/lib/features/price-parameters/price-parameter-cost-match.service.mjs +21 -0
- package/esm2020/lib/features/price-parameters/price-parameter-form-data.service.mjs +49 -0
- package/esm2020/lib/features/price-parameters/price-parameter-l10n-helper.mjs +7 -0
- package/esm2020/lib/features/price-parameters/price-parameter-lookups.service.mjs +27 -0
- package/esm2020/lib/features/price-parameters/price-parameter-price-update.service.mjs +119 -0
- package/esm2020/lib/features/settings/components/cost-settings.component.mjs +8 -4
- package/esm2020/lib/kadooglu-keops-routing.module.mjs +27 -1
- package/esm2020/lib/shared/amount-currency-input/amount-currency-input.component.mjs +68 -0
- package/esm2020/lib/shared/cost-item-classification.utils.mjs +15 -0
- package/esm2020/lib/shared/cost-item-rows.builder.mjs +40 -0
- package/esm2020/lib/shared/pipes/resolve-code-name.pipe.mjs +16 -0
- package/esm2020/lib/shared/shared-ui.module.mjs +20 -0
- package/esm2020/lib/utils/business-region.utils.mjs +12 -0
- package/esm2020/lib/utils/currency.utils.mjs +5 -1
- package/esm2020/lib/utils/exchange-rate.utils.mjs +12 -0
- package/esm2020/proxy/bl-tracking/dtos/index.mjs +2 -0
- package/esm2020/proxy/bl-tracking/dtos/models.mjs +2 -0
- package/esm2020/proxy/business-partners/dtos/index.mjs +2 -0
- package/esm2020/proxy/business-partners/dtos/models.mjs +2 -0
- package/esm2020/proxy/business-region.enum.mjs +9 -0
- package/esm2020/proxy/carriers/dtos/index.mjs +2 -0
- package/esm2020/proxy/carriers/dtos/models.mjs +2 -0
- package/esm2020/proxy/container-loading-counts/dtos/models.mjs +1 -1
- package/esm2020/proxy/controllers/bl-tracking.service.mjs +36 -0
- package/esm2020/proxy/controllers/business-partner.service.mjs +22 -0
- package/esm2020/proxy/controllers/carrier.service.mjs +36 -0
- package/esm2020/proxy/controllers/container-loading-count.service.mjs +5 -5
- package/esm2020/proxy/controllers/cost-parameter.service.mjs +1 -5
- package/esm2020/proxy/controllers/destination-port.service.mjs +44 -0
- package/esm2020/proxy/controllers/fob-inland-definition.service.mjs +36 -0
- package/esm2020/proxy/controllers/freight-offer.service.mjs +57 -0
- package/esm2020/proxy/controllers/incoterm.service.mjs +36 -0
- package/esm2020/proxy/controllers/index.mjs +16 -1
- package/esm2020/proxy/controllers/item-classification.service.mjs +42 -0
- package/esm2020/proxy/controllers/item-package-group.service.mjs +40 -0
- package/esm2020/proxy/controllers/item-package-type.service.mjs +40 -0
- package/esm2020/proxy/controllers/item-product-type.service.mjs +40 -0
- package/esm2020/proxy/controllers/item.service.mjs +7 -3
- package/esm2020/proxy/controllers/line.service.mjs +36 -0
- package/esm2020/proxy/controllers/pos.service.mjs +36 -0
- package/esm2020/proxy/controllers/price-list.service.mjs +28 -0
- package/esm2020/proxy/controllers/price-parameter.service.mjs +45 -0
- package/esm2020/proxy/cost-parameter-categories/dtos/models.mjs +1 -1
- package/esm2020/proxy/cost-parameters/dtos/models.mjs +1 -1
- package/esm2020/proxy/destination-ports/dtos/index.mjs +2 -0
- package/esm2020/proxy/destination-ports/dtos/models.mjs +2 -0
- package/esm2020/proxy/fob-inland-definitions/dtos/index.mjs +2 -0
- package/esm2020/proxy/fob-inland-definitions/dtos/models.mjs +2 -0
- package/esm2020/proxy/freight-offers/dtos/index.mjs +2 -0
- package/esm2020/proxy/freight-offers/dtos/models.mjs +2 -0
- package/esm2020/proxy/incoterms/dtos/index.mjs +2 -0
- package/esm2020/proxy/incoterms/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-classifications/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-classifications/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-package-groups/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-package-groups/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-package-types/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-package-types/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-product-types/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-product-types/dtos/models.mjs +2 -0
- package/esm2020/proxy/lines/dtos/index.mjs +2 -0
- package/esm2020/proxy/lines/dtos/models.mjs +2 -0
- package/esm2020/proxy/pos/dtos/index.mjs +2 -0
- package/esm2020/proxy/pos/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-lists/dtos/index.mjs +2 -0
- package/esm2020/proxy/price-lists/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-parameters/dtos/index.mjs +2 -0
- package/esm2020/proxy/price-parameters/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-parameters/price-parameter-status.enum.mjs +9 -0
- package/esm2020/proxy/public-api.mjs +18 -2
- package/esm2020/proxy/settings/models.mjs +1 -1
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs +140 -3
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs +556 -21
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops.mjs +4510 -763
- package/fesm2015/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs +140 -3
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs +556 -21
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops.mjs +4462 -732
- package/fesm2020/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/lib/features/bl-tracking/components/bl-tracking-form.component.d.ts +24 -0
- package/lib/features/bl-tracking/components/bl-tracking.component.d.ts +22 -0
- package/lib/features/bl-tracking/hit-bl-tracking-routing.module.d.ts +7 -0
- package/lib/features/bl-tracking/hit-bl-tracking.module.d.ts +18 -0
- package/lib/features/carriers/components/carrier-form.component.d.ts +24 -0
- package/lib/features/carriers/components/carriers.component.d.ts +22 -0
- package/lib/features/carriers/hit-carriers-routing.module.d.ts +7 -0
- package/lib/features/carriers/hit-carriers.module.d.ts +18 -0
- package/lib/features/container-loading-counts/components/container-loading-counts.component.d.ts +2 -2
- package/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.d.ts +1 -1
- package/lib/features/cost-calculation/components/cost-calculation-inputs.component.d.ts +10 -7
- package/lib/features/cost-calculation/components/cost-calculation.component.d.ts +16 -8
- package/lib/features/cost-calculation/engine/currency.utils.d.ts +2 -2
- package/lib/features/cost-calculation/engine/formulas.d.ts +2 -2
- package/lib/features/cost-calculation/hit-cost-calculation.module.d.ts +2 -1
- package/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.d.ts +0 -1
- package/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.d.ts +1 -5
- package/lib/features/cost-parameters/components/cost-parameter-form.component.d.ts +10 -7
- package/lib/features/cost-parameters/components/cost-parameters.component.d.ts +6 -6
- package/lib/features/destination-ports/components/destination-port-form.component.d.ts +25 -0
- package/lib/features/destination-ports/components/destination-ports.component.d.ts +24 -0
- package/lib/features/destination-ports/hit-destination-ports-routing.module.d.ts +7 -0
- package/lib/features/destination-ports/hit-destination-ports.module.d.ts +18 -0
- package/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.d.ts +24 -0
- package/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.d.ts +22 -0
- package/lib/features/fob-inland-definitions/hit-fob-inland-definitions-routing.module.d.ts +7 -0
- package/lib/features/fob-inland-definitions/hit-fob-inland-definitions.module.d.ts +18 -0
- package/lib/features/freight-offers/components/freight-offer-copy.component.d.ts +22 -0
- package/lib/features/freight-offers/components/freight-offer-form.component.d.ts +49 -0
- package/lib/features/freight-offers/components/freight-offers.component.d.ts +47 -0
- package/lib/features/freight-offers/hit-freight-offers-routing.module.d.ts +7 -0
- package/lib/features/freight-offers/hit-freight-offers.module.d.ts +19 -0
- package/lib/features/incoterms/components/incoterm-form.component.d.ts +24 -0
- package/lib/features/incoterms/components/incoterms.component.d.ts +22 -0
- package/lib/features/incoterms/hit-incoterms-routing.module.d.ts +7 -0
- package/lib/features/incoterms/hit-incoterms.module.d.ts +18 -0
- package/lib/features/index.d.ts +21 -0
- package/lib/features/item-classifications/components/item-classifications.component.d.ts +66 -0
- package/lib/features/item-classifications/hit-item-classifications-routing.module.d.ts +7 -0
- package/lib/features/item-classifications/hit-item-classifications.module.d.ts +17 -0
- package/lib/features/item-package-groups/components/item-package-group-form.component.d.ts +24 -0
- package/lib/features/item-package-groups/components/item-package-groups.component.d.ts +22 -0
- package/lib/features/item-package-groups/hit-item-package-groups-routing.module.d.ts +7 -0
- package/lib/features/item-package-groups/hit-item-package-groups.module.d.ts +18 -0
- package/lib/features/item-package-types/components/item-package-type-form.component.d.ts +24 -0
- package/lib/features/item-package-types/components/item-package-types.component.d.ts +22 -0
- package/lib/features/item-package-types/hit-item-package-types-routing.module.d.ts +7 -0
- package/lib/features/item-package-types/hit-item-package-types.module.d.ts +18 -0
- package/lib/features/item-product-types/components/item-product-type-form.component.d.ts +24 -0
- package/lib/features/item-product-types/components/item-product-types.component.d.ts +22 -0
- package/lib/features/item-product-types/hit-item-product-types-routing.module.d.ts +7 -0
- package/lib/features/item-product-types/hit-item-product-types.module.d.ts +18 -0
- package/lib/features/lines/components/line-form.component.d.ts +24 -0
- package/lib/features/lines/components/lines.component.d.ts +22 -0
- package/lib/features/lines/hit-lines-routing.module.d.ts +7 -0
- package/lib/features/lines/hit-lines.module.d.ts +18 -0
- package/lib/features/pos/components/pos-form.component.d.ts +24 -0
- package/lib/features/pos/components/pos.component.d.ts +22 -0
- package/lib/features/pos/hit-pos-routing.module.d.ts +7 -0
- package/lib/features/pos/hit-pos.module.d.ts +18 -0
- package/lib/features/price-parameters/components/price-parameter-form-cost-items.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.d.ts +24 -0
- package/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.d.ts +22 -0
- package/lib/features/price-parameters/components/price-parameter-form-items.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form-price-lists.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form.component.d.ts +77 -0
- package/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.d.ts +11 -0
- package/lib/features/price-parameters/components/price-parameters.component.d.ts +30 -0
- package/lib/features/price-parameters/hit-price-parameters-routing.module.d.ts +7 -0
- package/lib/features/price-parameters/hit-price-parameters.module.d.ts +25 -0
- package/lib/features/price-parameters/price-parameter-cost-match.service.d.ts +10 -0
- package/lib/features/price-parameters/price-parameter-form-data.service.d.ts +25 -0
- package/lib/features/price-parameters/price-parameter-l10n-helper.d.ts +2 -0
- package/lib/features/price-parameters/price-parameter-lookups.service.d.ts +15 -0
- package/lib/features/price-parameters/price-parameter-price-update.service.d.ts +30 -0
- package/lib/shared/amount-currency-input/amount-currency-input.component.d.ts +23 -0
- package/lib/shared/cost-item-classification.utils.d.ts +11 -0
- package/lib/shared/cost-item-rows.builder.d.ts +11 -0
- package/lib/shared/pipes/resolve-code-name.pipe.d.ts +11 -0
- package/lib/shared/shared-ui.module.d.ts +10 -0
- package/lib/utils/business-region.utils.d.ts +7 -0
- package/lib/utils/currency.utils.d.ts +2 -0
- package/lib/utils/exchange-rate.utils.d.ts +2 -0
- package/package.json +1 -1
- package/proxy/bl-tracking/dtos/index.d.ts +1 -0
- package/proxy/bl-tracking/dtos/models.d.ts +25 -0
- package/proxy/business-partners/dtos/index.d.ts +1 -0
- package/proxy/business-partners/dtos/models.d.ts +4 -0
- package/proxy/business-region.enum.d.ts +6 -0
- package/proxy/carriers/dtos/index.d.ts +1 -0
- package/proxy/carriers/dtos/models.d.ts +10 -0
- package/proxy/container-loading-counts/dtos/models.d.ts +1 -1
- package/proxy/controllers/bl-tracking.service.d.ts +14 -0
- package/proxy/controllers/business-partner.service.d.ts +11 -0
- package/proxy/controllers/carrier.service.d.ts +14 -0
- package/proxy/controllers/container-loading-count.service.d.ts +2 -2
- package/proxy/controllers/cost-parameter.service.d.ts +1 -2
- package/proxy/controllers/destination-port.service.d.ts +17 -0
- package/proxy/controllers/fob-inland-definition.service.d.ts +14 -0
- package/proxy/controllers/freight-offer.service.d.ts +19 -0
- package/proxy/controllers/incoterm.service.d.ts +14 -0
- package/proxy/controllers/index.d.ts +15 -0
- package/proxy/controllers/item-classification.service.d.ts +17 -0
- package/proxy/controllers/item-package-group.service.d.ts +15 -0
- package/proxy/controllers/item-package-type.service.d.ts +15 -0
- package/proxy/controllers/item-product-type.service.d.ts +15 -0
- package/proxy/controllers/item.service.d.ts +3 -1
- package/proxy/controllers/line.service.d.ts +14 -0
- package/proxy/controllers/pos.service.d.ts +14 -0
- package/proxy/controllers/price-list.service.d.ts +13 -0
- package/proxy/controllers/price-parameter.service.d.ts +16 -0
- package/proxy/cost-parameter-categories/dtos/models.d.ts +0 -4
- package/proxy/cost-parameters/dtos/models.d.ts +4 -11
- package/proxy/destination-ports/dtos/index.d.ts +1 -0
- package/proxy/destination-ports/dtos/models.d.ts +19 -0
- package/proxy/fob-inland-definitions/dtos/index.d.ts +1 -0
- package/proxy/fob-inland-definitions/dtos/models.d.ts +19 -0
- package/proxy/freight-offers/dtos/index.d.ts +1 -0
- package/proxy/freight-offers/dtos/models.d.ts +66 -0
- package/proxy/incoterms/dtos/index.d.ts +1 -0
- package/proxy/incoterms/dtos/models.d.ts +22 -0
- package/proxy/item-classifications/dtos/index.d.ts +1 -0
- package/proxy/item-classifications/dtos/models.d.ts +34 -0
- package/proxy/item-package-groups/dtos/index.d.ts +1 -0
- package/proxy/item-package-groups/dtos/models.d.ts +13 -0
- package/proxy/item-package-types/dtos/index.d.ts +1 -0
- package/proxy/item-package-types/dtos/models.d.ts +13 -0
- package/proxy/item-product-types/dtos/index.d.ts +1 -0
- package/proxy/item-product-types/dtos/models.d.ts +13 -0
- package/proxy/lines/dtos/index.d.ts +1 -0
- package/proxy/lines/dtos/models.d.ts +10 -0
- package/proxy/pos/dtos/index.d.ts +1 -0
- package/proxy/pos/dtos/models.d.ts +10 -0
- package/proxy/price-lists/dtos/index.d.ts +1 -0
- package/proxy/price-lists/dtos/models.d.ts +10 -0
- package/proxy/price-parameters/dtos/index.d.ts +1 -0
- package/proxy/price-parameters/dtos/models.d.ts +104 -0
- package/proxy/price-parameters/price-parameter-status.enum.d.ts +6 -0
- package/proxy/public-api.d.ts +17 -1
- package/proxy/settings/models.d.ts +1 -0
- package/esm2020/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.mjs +0 -9
- package/esm2020/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.mjs +0 -11
- package/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.d.ts +0 -2
- package/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.d.ts +0 -8
package/esm2020/lib/features/item-classifications/components/item-classifications.component.mjs
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { forkJoin, timer } from 'rxjs';
|
|
3
|
+
import { finalize, switchMap, takeWhile } from 'rxjs/operators';
|
|
4
|
+
import { BUSINESS_REGION_OPTIONS } from '../../../utils/business-region.utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@hitsoft/kadooglu-keops/proxy";
|
|
7
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
8
|
+
import * as i3 from "@abp/ng.core";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@angular/forms";
|
|
11
|
+
import * as i6 from "@abp/ng.components/page";
|
|
12
|
+
import * as i7 from "devextreme-angular";
|
|
13
|
+
import * as i8 from "devextreme-angular/ui/nested";
|
|
14
|
+
export class ItemClassificationsComponent {
|
|
15
|
+
constructor(service, itemPackageTypeService, itemPackageGroupService, itemProductTypeService, toaster, localization) {
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.itemPackageTypeService = itemPackageTypeService;
|
|
18
|
+
this.itemPackageGroupService = itemPackageGroupService;
|
|
19
|
+
this.itemProductTypeService = itemProductTypeService;
|
|
20
|
+
this.toaster = toaster;
|
|
21
|
+
this.localization = localization;
|
|
22
|
+
this.kinds = [
|
|
23
|
+
{ labelKey: 'Keops::ItemClassifications:Kind:PackagingMaterials', prefix: '04' },
|
|
24
|
+
{ labelKey: 'Keops::ItemClassifications:Kind:TradeGoods', prefix: '05' },
|
|
25
|
+
];
|
|
26
|
+
this.selectedPrefix = '';
|
|
27
|
+
this.loading = false;
|
|
28
|
+
this.saving = false;
|
|
29
|
+
this.saveProgress = { processed: 0, total: 0 };
|
|
30
|
+
this.rows = [];
|
|
31
|
+
this.packageTypes = [];
|
|
32
|
+
this.packageGroups = [];
|
|
33
|
+
this.productTypes = [];
|
|
34
|
+
this.regions = [];
|
|
35
|
+
this.costGroups = [];
|
|
36
|
+
this.packagingMaterials = [];
|
|
37
|
+
this.changes = [];
|
|
38
|
+
this.selectedKeys = [];
|
|
39
|
+
// Toplu doldur panel değerleri
|
|
40
|
+
this.bulkPaketTuru = null;
|
|
41
|
+
this.bulkPaketGrubu = null;
|
|
42
|
+
this.bulkUrunTipi = null;
|
|
43
|
+
this.bulkRegion = null;
|
|
44
|
+
this.bulkCostGroup = null;
|
|
45
|
+
this.bulkPckMat = null;
|
|
46
|
+
this.regions = BUSINESS_REGION_OPTIONS.map(option => ({
|
|
47
|
+
value: option.value,
|
|
48
|
+
name: this.localization.instant(option.label),
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
ngOnDestroy() {
|
|
52
|
+
this.saveSub?.unsubscribe();
|
|
53
|
+
}
|
|
54
|
+
get hasKind() {
|
|
55
|
+
return !!this.selectedPrefix;
|
|
56
|
+
}
|
|
57
|
+
onKindChange() {
|
|
58
|
+
this.rows = [];
|
|
59
|
+
if (this.selectedPrefix) {
|
|
60
|
+
this.load();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.resetState();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
load(selectAfter = []) {
|
|
67
|
+
this.loading = true;
|
|
68
|
+
forkJoin({
|
|
69
|
+
rows: this.service.getList(this.selectedPrefix),
|
|
70
|
+
packageTypes: this.itemPackageTypeService.getList(),
|
|
71
|
+
packageGroups: this.itemPackageGroupService.getList(),
|
|
72
|
+
productTypes: this.itemProductTypeService.getList(),
|
|
73
|
+
costCategories: this.service.getCostCategories(),
|
|
74
|
+
packagingMaterials: this.service.getPackagingMaterials(),
|
|
75
|
+
})
|
|
76
|
+
.pipe(finalize(() => (this.loading = false)))
|
|
77
|
+
.subscribe(({ rows, packageTypes, packageGroups, productTypes, costCategories, packagingMaterials }) => {
|
|
78
|
+
this.rows = rows;
|
|
79
|
+
this.packageTypes = packageTypes.filter(x => x.isActive);
|
|
80
|
+
this.packageGroups = packageGroups.filter(x => x.isActive);
|
|
81
|
+
this.productTypes = productTypes.filter(x => x.isActive);
|
|
82
|
+
this.costGroups = costCategories;
|
|
83
|
+
this.packagingMaterials = packagingMaterials;
|
|
84
|
+
this.resetState();
|
|
85
|
+
this.selectedKeys = selectAfter;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
resetState() {
|
|
89
|
+
this.changes = [];
|
|
90
|
+
this.selectedKeys = [];
|
|
91
|
+
this.bulkPaketTuru = null;
|
|
92
|
+
this.bulkPaketGrubu = null;
|
|
93
|
+
this.bulkUrunTipi = null;
|
|
94
|
+
this.bulkRegion = null;
|
|
95
|
+
this.bulkCostGroup = null;
|
|
96
|
+
this.bulkPckMat = null;
|
|
97
|
+
}
|
|
98
|
+
/** Grid'in yerleşik batch "kaydet/geri al" (disk/revert) düğmelerini gizler. */
|
|
99
|
+
onToolbarPreparing(e) {
|
|
100
|
+
const items = e?.toolbarOptions?.items;
|
|
101
|
+
if (Array.isArray(items)) {
|
|
102
|
+
e.toolbarOptions.items = items.filter((i) => i.name !== 'saveButton' && i.name !== 'revertButton');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
applyBulk() {
|
|
106
|
+
if (!this.selectedKeys.length) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (this.bulkPaketTuru) {
|
|
110
|
+
this.applyValueToSelected('paketTuruCode', this.bulkPaketTuru);
|
|
111
|
+
}
|
|
112
|
+
if (this.bulkPaketGrubu) {
|
|
113
|
+
this.applyValueToSelected('paketGrubuCode', this.bulkPaketGrubu);
|
|
114
|
+
}
|
|
115
|
+
if (this.bulkUrunTipi) {
|
|
116
|
+
this.applyValueToSelected('urunTipiCode', this.bulkUrunTipi);
|
|
117
|
+
}
|
|
118
|
+
if (this.bulkRegion) {
|
|
119
|
+
this.applyValueToSelected('region', this.bulkRegion);
|
|
120
|
+
}
|
|
121
|
+
if (this.bulkCostGroup) {
|
|
122
|
+
this.applyValueToSelected('costGroupCode', this.bulkCostGroup);
|
|
123
|
+
}
|
|
124
|
+
if (this.bulkPckMat) {
|
|
125
|
+
this.applyValueToSelected('pckMatCode', this.bulkPckMat);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** Seçili satırların ilgili kolonuna değeri batch-change olarak yazar (sayfadan bağımsız, key bazlı). */
|
|
129
|
+
applyValueToSelected(field, value) {
|
|
130
|
+
const next = this.changes.map(c => ({ ...c, data: { ...c.data } }));
|
|
131
|
+
for (const key of this.selectedKeys) {
|
|
132
|
+
let change = next.find(c => c.type === 'update' && c.key === key);
|
|
133
|
+
if (!change) {
|
|
134
|
+
change = { type: 'update', key, data: {} };
|
|
135
|
+
next.push(change);
|
|
136
|
+
}
|
|
137
|
+
change.data[field] = value;
|
|
138
|
+
}
|
|
139
|
+
this.changes = next;
|
|
140
|
+
}
|
|
141
|
+
save() {
|
|
142
|
+
const updates = this.changes.filter(c => c.type === 'update');
|
|
143
|
+
if (updates.length === 0 || this.saving) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const byKey = new Map(this.rows.map(r => [r.itemCode, r]));
|
|
147
|
+
const input = updates.map(change => {
|
|
148
|
+
const merged = { ...(byKey.get(change.key) ?? {}), ...change.data };
|
|
149
|
+
return {
|
|
150
|
+
itemCode: change.key,
|
|
151
|
+
paketTuruCode: merged.paketTuruCode ?? '',
|
|
152
|
+
paketGrubuCode: merged.paketGrubuCode ?? '',
|
|
153
|
+
urunTipiCode: merged.urunTipiCode ?? '',
|
|
154
|
+
region: merged.region,
|
|
155
|
+
costGroupCode: merged.costGroupCode ?? '',
|
|
156
|
+
pckMatCode: merged.pckMatCode ?? '',
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
this.saving = true;
|
|
160
|
+
this.saveProgress = { processed: 0, total: input.length };
|
|
161
|
+
this.service.startSave(input).subscribe({
|
|
162
|
+
next: jobId => this.pollStatus(jobId),
|
|
163
|
+
error: () => (this.saving = false),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
pollStatus(jobId) {
|
|
167
|
+
this.saveSub?.unsubscribe();
|
|
168
|
+
this.saveSub = timer(0, 1500)
|
|
169
|
+
.pipe(switchMap(() => this.service.getSaveStatus(jobId)), takeWhile(status => !status.completed, true))
|
|
170
|
+
.subscribe({
|
|
171
|
+
next: status => {
|
|
172
|
+
this.saveProgress = { processed: status.processed, total: status.total };
|
|
173
|
+
if (status.completed) {
|
|
174
|
+
this.onSaveCompleted(status);
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
error: () => (this.saving = false),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
onSaveCompleted(status) {
|
|
181
|
+
this.saving = false;
|
|
182
|
+
const failed = status.failed ?? [];
|
|
183
|
+
if (failed.length === 0) {
|
|
184
|
+
this.toaster.success(this.localization.instant('Keops::ItemClassifications:SaveDoneAll', `${status.succeeded}`));
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
this.toaster.warn(this.localization.instant('Keops::ItemClassifications:SavePartial', `${status.succeeded}`, `${failed.length}`));
|
|
188
|
+
}
|
|
189
|
+
const failedKeys = failed.map(f => f.itemCode).filter(Boolean);
|
|
190
|
+
this.load(failedKeys);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
ItemClassificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemClassificationsComponent, deps: [{ token: i1.ItemClassificationService }, { token: i1.ItemPackageTypeService }, { token: i1.ItemPackageGroupService }, { token: i1.ItemProductTypeService }, { token: i2.ToasterService }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
194
|
+
ItemClassificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ItemClassificationsComponent, selector: "lib-item-classifications", ngImport: i0, template: "<abp-page [title]=\"'Keops::ItemClassifications:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end align-items-center mx-0\" id=\"ItemClassificationsToolbar\">\r\n <div *ngIf=\"saving\" class=\"col-auto pt-0 pt-md-2 text-muted\">\r\n <span class=\"spinner-border spinner-border-sm me-1\"></span>\r\n {{ 'Keops::ItemClassifications:Saving' | abpLocalization }}\r\n {{ saveProgress.processed }}/{{ saveProgress.total }}\r\n </div>\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemClassifications.Update'\"\r\n id=\"save\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!changes.length || saving\"\r\n (click)=\"save()\"\r\n >\r\n <i class=\"fa fa-check me-1\"></i>\r\n <span>{{ 'Keops::ItemClassifications:Save' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemClassificationsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-12 col-md-4\">\r\n <label for=\"kind\" class=\"form-label\">\r\n {{ 'Keops::ItemClassifications:Kind' | abpLocalization }}\r\n </label>\r\n <select\r\n id=\"kind\"\r\n class=\"form-select\"\r\n [(ngModel)]=\"selectedPrefix\"\r\n (ngModelChange)=\"onKindChange()\"\r\n >\r\n <option value=\"\">--</option>\r\n <option *ngFor=\"let kind of kinds\" [value]=\"kind.prefix\">\r\n {{ kind.labelKey | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!hasKind\" class=\"text-muted\">\r\n {{ 'Keops::ItemClassifications:SelectKind' | abpLocalization }}\r\n </div>\r\n\r\n <!-- Toplu doldur paneli -->\r\n <div *ngIf=\"hasKind\" class=\"border rounded p-2 mb-3 bg-light\">\r\n <div class=\"row g-2 align-items-end\">\r\n <div class=\"col-12 col-md-auto\">\r\n <span class=\"badge bg-secondary\">\r\n {{ 'Keops::ItemClassifications:Selected' | abpLocalization }}: {{ selectedKeys.length }}\r\n </span>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketTuru\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketGrubu\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkUrunTipi\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:Region' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkRegion\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkCostGroup\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPckMat\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-12 col-md-auto d-flex gap-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary\"\r\n [disabled]=\"!selectedKeys.length\"\r\n (click)=\"applyBulk()\"\r\n >\r\n <i class=\"fa fa-arrow-down me-1\"></i>\r\n {{ 'Keops::ItemClassifications:ApplyToSelected' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-data-grid\r\n *ngIf=\"hasKind\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"rows\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [(selectedRowKeys)]=\"selectedKeys\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n >\r\n <dxo-selection mode=\"multiple\" showCheckBoxesMode=\"always\" [allowSelectAll]=\"true\"></dxo-selection>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-editing\r\n mode=\"batch\"\r\n [allowUpdating]=\"true\"\r\n [allowAdding]=\"false\"\r\n [allowDeleting]=\"false\"\r\n [useIcons]=\"true\"\r\n [(changes)]=\"changes\"\r\n ></dxo-editing>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n [allowEditing]=\"false\"\r\n width=\"140\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n dataType=\"number\"\r\n [allowEditing]=\"false\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupName' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"paketTuruCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"paketGrubuCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"urunTipiCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n caption=\"{{ 'Keops::ItemClassifications:Region' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"costGroupCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"pckMatCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i6.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i8.DxoEditingComponent, selector: "dxo-editing", inputs: ["allowAdding", "allowDeleting", "allowUpdating", "changes", "confirmDelete", "editColumnName", "editRowKey", "form", "mode", "newRowPosition", "popup", "refreshMode", "selectTextOnEditStart", "startEditAction", "texts", "useIcons", "allowAddShape", "allowChangeConnection", "allowChangeConnectorPoints", "allowChangeConnectorText", "allowChangeShapeText", "allowDeleteConnector", "allowDeleteShape", "allowMoveShape", "allowResizeShape", "allowDependencyAdding", "allowDependencyDeleting", "allowResourceAdding", "allowResourceDeleting", "allowResourceUpdating", "allowTaskAdding", "allowTaskDeleting", "allowTaskResourceUpdating", "allowTaskUpdating", "enabled", "allowDragging", "allowResizing", "allowTimeZoneEditing"], outputs: ["changesChange", "editColumnNameChange", "editRowKeyChange"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "component", type: i8.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemClassificationsComponent, decorators: [{
|
|
196
|
+
type: Component,
|
|
197
|
+
args: [{ selector: 'lib-item-classifications', template: "<abp-page [title]=\"'Keops::ItemClassifications:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end align-items-center mx-0\" id=\"ItemClassificationsToolbar\">\r\n <div *ngIf=\"saving\" class=\"col-auto pt-0 pt-md-2 text-muted\">\r\n <span class=\"spinner-border spinner-border-sm me-1\"></span>\r\n {{ 'Keops::ItemClassifications:Saving' | abpLocalization }}\r\n {{ saveProgress.processed }}/{{ saveProgress.total }}\r\n </div>\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemClassifications.Update'\"\r\n id=\"save\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!changes.length || saving\"\r\n (click)=\"save()\"\r\n >\r\n <i class=\"fa fa-check me-1\"></i>\r\n <span>{{ 'Keops::ItemClassifications:Save' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemClassificationsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-12 col-md-4\">\r\n <label for=\"kind\" class=\"form-label\">\r\n {{ 'Keops::ItemClassifications:Kind' | abpLocalization }}\r\n </label>\r\n <select\r\n id=\"kind\"\r\n class=\"form-select\"\r\n [(ngModel)]=\"selectedPrefix\"\r\n (ngModelChange)=\"onKindChange()\"\r\n >\r\n <option value=\"\">--</option>\r\n <option *ngFor=\"let kind of kinds\" [value]=\"kind.prefix\">\r\n {{ kind.labelKey | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!hasKind\" class=\"text-muted\">\r\n {{ 'Keops::ItemClassifications:SelectKind' | abpLocalization }}\r\n </div>\r\n\r\n <!-- Toplu doldur paneli -->\r\n <div *ngIf=\"hasKind\" class=\"border rounded p-2 mb-3 bg-light\">\r\n <div class=\"row g-2 align-items-end\">\r\n <div class=\"col-12 col-md-auto\">\r\n <span class=\"badge bg-secondary\">\r\n {{ 'Keops::ItemClassifications:Selected' | abpLocalization }}: {{ selectedKeys.length }}\r\n </span>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketTuru\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketGrubu\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkUrunTipi\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:Region' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkRegion\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkCostGroup\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPckMat\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-12 col-md-auto d-flex gap-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary\"\r\n [disabled]=\"!selectedKeys.length\"\r\n (click)=\"applyBulk()\"\r\n >\r\n <i class=\"fa fa-arrow-down me-1\"></i>\r\n {{ 'Keops::ItemClassifications:ApplyToSelected' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-data-grid\r\n *ngIf=\"hasKind\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"rows\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [(selectedRowKeys)]=\"selectedKeys\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n >\r\n <dxo-selection mode=\"multiple\" showCheckBoxesMode=\"always\" [allowSelectAll]=\"true\"></dxo-selection>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-editing\r\n mode=\"batch\"\r\n [allowUpdating]=\"true\"\r\n [allowAdding]=\"false\"\r\n [allowDeleting]=\"false\"\r\n [useIcons]=\"true\"\r\n [(changes)]=\"changes\"\r\n ></dxo-editing>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n [allowEditing]=\"false\"\r\n width=\"140\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n dataType=\"number\"\r\n [allowEditing]=\"false\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupName' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"paketTuruCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"paketGrubuCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"urunTipiCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n caption=\"{{ 'Keops::ItemClassifications:Region' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"costGroupCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"pckMatCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
|
|
198
|
+
}], ctorParameters: function () { return [{ type: i1.ItemClassificationService }, { type: i1.ItemPackageTypeService }, { type: i1.ItemPackageGroupService }, { type: i1.ItemProductTypeService }, { type: i2.ToasterService }, { type: i3.LocalizationService }]; } });
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1jbGFzc2lmaWNhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9pdGVtLWNsYXNzaWZpY2F0aW9ucy9jb21wb25lbnRzL2l0ZW0tY2xhc3NpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvaXRlbS1jbGFzc2lmaWNhdGlvbnMvY29tcG9uZW50cy9pdGVtLWNsYXNzaWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxRQUFRLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFpQi9FLE1BQU0sT0FBTyw0QkFBNEI7SUFnQ3ZDLFlBQ21CLE9BQWtDLEVBQ2xDLHNCQUE4QyxFQUM5Qyx1QkFBZ0QsRUFDaEQsc0JBQThDLEVBQzlDLE9BQXVCLEVBQ3ZCLFlBQWlDO1FBTGpDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQXJDM0MsVUFBSyxHQUFlO1lBQzNCLEVBQUUsUUFBUSxFQUFF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QUFNLEVBQUUsQ0FDbkIsQ0FDRixDQUFDO1NBQ0g7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7O3lIQXBOVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixnRUNyQ3pDLGdqWEFrU0E7MkZEN1BhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBJdGVtQ2xhc3NpZmljYXRpb25TZXJ2aWNlLFxyXG4gIEl0ZW1DbGFzc2lmaWNhdGlvbkR0byxcclxuICBJdGVtQ2xhc3NpZmljYXRpb25TYXZlRHRvLFxyXG4gIEl0ZW1DbGFzc2lmaWNhdGlvblNhdmVTdGF0dXNEdG8sXHJcbiAgSXRlbVBhY2thZ2VUeXBlU2VydmljZSxcclxuICBJdGVtUGFja2FnZUdyb3VwU2VydmljZSxcclxuICBJdGVtUHJvZHVjdFR5cGVTZXJ2aWNlLFxyXG4gIEl0ZW1QYWNrYWdlVHlwZUR0byxcclxuICBJdGVtUGFja2FnZUdyb3VwRHRvLFxyXG4gIEl0ZW1Qcm9kdWN0VHlwZUR0byxcclxuICBDb3N0UGFyYW1ldGVyQ2F0ZWdvcnlEdG8sXHJcbiAgQnVzaW5lc3NSZWdpb24sXHJcbiAgUGFja2FnaW5nTWF0ZXJpYWxEdG8sXHJcbn0gZnJvbSAnQGhpdHNvZnQva2Fkb29nbHUta2VvcHMvcHJveHknO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19SRUdJT05fT1BUSU9OUyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2J1c2luZXNzLXJlZ2lvbi51dGlscyc7XHJcblxyXG5pbnRlcmZhY2UgSXRlbUtpbmQge1xyXG4gIGxhYmVsS2V5OiBzdHJpbmc7XHJcbiAgcHJlZml4OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBCYXRjaENoYW5nZSB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGRhdGE6IFBhcnRpYWw8SXRlbUNsYXNzaWZpY2F0aW9uRHRvPjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaXRlbS1jbGFzc2lmaWNhdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pdGVtLWNsYXNzaWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJdGVtQ2xhc3NpZmljYXRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICByZWFkb25seSBraW5kczogSXRlbUtpbmRbXSA9IFtcclxuICAgIHsgbGFiZWxLZXk6ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpLaW5kOlBhY2thZ2luZ01hdGVyaWFscycsIHByZWZpeDogJzA0JyB9LFxyXG4gICAgeyBsYWJlbEtleTogJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOktpbmQ6VHJhZGVHb29kcycsIHByZWZpeDogJzA1JyB9LFxyXG4gIF07XHJcblxyXG4gIHNlbGVjdGVkUHJlZml4ID0gJyc7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG4gIHNhdmVQcm9ncmVzcyA9IHsgcHJvY2Vzc2VkOiAwLCB0b3RhbDogMCB9O1xyXG5cclxuICByb3dzOiBJdGVtQ2xhc3NpZmljYXRpb25EdG9bXSA9IFtdO1xyXG4gIHBhY2thZ2VUeXBlczogSXRlbVBhY2thZ2VUeXBlRHRvW10gPSBbXTtcclxuICBwYWNrYWdlR3JvdXBzOiBJdGVtUGFja2FnZUdyb3VwRHRvW10gPSBbXTtcclxuICBwcm9kdWN0VHlwZXM6IEl0ZW1Qcm9kdWN0VHlwZUR0b1tdID0gW107XHJcbiAgcmVnaW9uczogeyB2YWx1ZTogQnVzaW5lc3NSZWdpb247IG5hbWU6IHN0cmluZyB9W10gPSBbXTtcclxuICBjb3N0R3JvdXBzOiBDb3N0UGFyYW1ldGVyQ2F0ZWdvcnlEdG9bXSA9IFtdO1xyXG4gIHBhY2thZ2luZ01hdGVyaWFsczogUGFja2FnaW5nTWF0ZXJpYWxEdG9bXSA9IFtdO1xyXG4gIGNoYW5nZXM6IEJhdGNoQ2hhbmdlW10gPSBbXTtcclxuXHJcbiAgc2VsZWN0ZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAvLyBUb3BsdSBkb2xkdXIgcGFuZWwgZGXEn2VybGVyaVxyXG4gIGJ1bGtQYWtldFR1cnU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGJ1bGtQYWtldEdydWJ1OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBidWxrVXJ1blRpcGk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGJ1bGtSZWdpb246IEJ1c2luZXNzUmVnaW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgYnVsa0Nvc3RHcm91cDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgYnVsa1Bja01hdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgc2F2ZVN1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEl0ZW1DbGFzc2lmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1QYWNrYWdlVHlwZVNlcnZpY2U6IEl0ZW1QYWNrYWdlVHlwZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1QYWNrYWdlR3JvdXBTZXJ2aWNlOiBJdGVtUGFja2FnZUdyb3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbVByb2R1Y3RUeXBlU2VydmljZTogSXRlbVByb2R1Y3RUeXBlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbjogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMucmVnaW9ucyA9IEJVU0lORVNTX1JFR0lPTl9PUFRJT05TLm1hcChvcHRpb24gPT4gKHtcclxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcclxuICAgICAgbmFtZTogdGhpcy5sb2NhbGl6YXRpb24uaW5zdGFudChvcHRpb24ubGFiZWwpLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNhdmVTdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzS2luZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRQcmVmaXg7XHJcbiAgfVxyXG5cclxuICBvbktpbmRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJlZml4KSB7XHJcbiAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXNldFN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkKHNlbGVjdEFmdGVyOiBzdHJpbmdbXSA9IFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICByb3dzOiB0aGlzLnNlcnZpY2UuZ2V0TGlzdCh0aGlzLnNlbGVjdGVkUHJlZml4KSxcclxuICAgICAgcGFja2FnZVR5cGVzOiB0aGlzLml0ZW1QYWNrYWdlVHlwZVNlcnZpY2UuZ2V0TGlzdCgpLFxyXG4gICAgICBwYWNrYWdlR3JvdXBzOiB0aGlzLml0ZW1QYWNrYWdlR3JvdXBTZXJ2aWNlLmdldExpc3QoKSxcclxuICAgICAgcHJvZHVjdFR5cGVzOiB0aGlzLml0ZW1Qcm9kdWN0VHlwZVNlcnZpY2UuZ2V0TGlzdCgpLFxyXG4gICAgICBjb3N0Q2F0ZWdvcmllczogdGhpcy5zZXJ2aWNlLmdldENvc3RDYXRlZ29yaWVzKCksXHJcbiAgICAgIHBhY2thZ2luZ01hdGVyaWFsczogdGhpcy5zZXJ2aWNlLmdldFBhY2thZ2luZ01hdGVyaWFscygpLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHsgcm93cywgcGFja2FnZVR5cGVzLCBwYWNrYWdlR3JvdXBzLCBwcm9kdWN0VHlwZXMsIGNvc3RDYXRlZ29yaWVzLCBwYWNrYWdpbmdNYXRlcmlhbHMgfSkgPT4ge1xyXG4gICAgICAgIHRoaXMucm93cyA9IHJvd3M7XHJcbiAgICAgICAgdGhpcy5wYWNrYWdlVHlwZXMgPSBwYWNrYWdlVHlwZXMuZmlsdGVyKHggPT4geC5pc0FjdGl2ZSk7XHJcbiAgICAgICAgdGhpcy5wYWNrYWdlR3JvdXBzID0gcGFja2FnZUdyb3Vwcy5maWx0ZXIoeCA9PiB4LmlzQWN0aXZlKTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RUeXBlcyA9IHByb2R1Y3RUeXBlcy5maWx0ZXIoeCA9PiB4LmlzQWN0aXZlKTtcclxuICAgICAgICB0aGlzLmNvc3RHcm91cHMgPSBjb3N0Q2F0ZWdvcmllcztcclxuICAgICAgICB0aGlzLnBhY2thZ2luZ01hdGVyaWFscyA9IHBhY2thZ2luZ01hdGVyaWFscztcclxuICAgICAgICB0aGlzLnJlc2V0U3RhdGUoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkS2V5cyA9IHNlbGVjdEFmdGVyO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEtleXMgPSBbXTtcclxuICAgIHRoaXMuYnVsa1Bha2V0VHVydSA9IG51bGw7XHJcbiAgICB0aGlzLmJ1bGtQYWtldEdydWJ1ID0gbnVsbDtcclxuICAgIHRoaXMuYnVsa1VydW5UaXBpID0gbnVsbDtcclxuICAgIHRoaXMuYnVsa1JlZ2lvbiA9IG51bGw7XHJcbiAgICB0aGlzLmJ1bGtDb3N0R3JvdXAgPSBudWxsO1xyXG4gICAgdGhpcy5idWxrUGNrTWF0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKiBHcmlkJ2luIHllcmxlxZ9payBiYXRjaCBcImtheWRldC9nZXJpIGFsXCIgKGRpc2svcmV2ZXJ0KSBkw7zEn21lbGVyaW5pIGdpemxlci4gKi9cclxuICBvblRvb2xiYXJQcmVwYXJpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtcyA9IGU/LnRvb2xiYXJPcHRpb25zPy5pdGVtcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICBlLnRvb2xiYXJPcHRpb25zLml0ZW1zID0gaXRlbXMuZmlsdGVyKFxyXG4gICAgICAgIChpOiBhbnkpID0+IGkubmFtZSAhPT0gJ3NhdmVCdXR0b24nICYmIGkubmFtZSAhPT0gJ3JldmVydEJ1dHRvbicsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhcHBseUJ1bGsoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRLZXlzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5idWxrUGFrZXRUdXJ1KSB7XHJcbiAgICAgIHRoaXMuYXBwbHlWYWx1ZVRvU2VsZWN0ZWQoJ3Bha2V0VHVydUNvZGUnLCB0aGlzLmJ1bGtQYWtldFR1cnUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYnVsa1Bha2V0R3J1YnUpIHtcclxuICAgICAgdGhpcy5hcHBseVZhbHVlVG9TZWxlY3RlZCgncGFrZXRHcnVidUNvZGUnLCB0aGlzLmJ1bGtQYWtldEdydWJ1KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJ1bGtVcnVuVGlwaSkge1xyXG4gICAgICB0aGlzLmFwcGx5VmFsdWVUb1NlbGVjdGVkKCd1cnVuVGlwaUNvZGUnLCB0aGlzLmJ1bGtVcnVuVGlwaSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5idWxrUmVnaW9uKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlWYWx1ZVRvU2VsZWN0ZWQoJ3JlZ2lvbicsIHRoaXMuYnVsa1JlZ2lvbik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5idWxrQ29zdEdyb3VwKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlWYWx1ZVRvU2VsZWN0ZWQoJ2Nvc3RHcm91cENvZGUnLCB0aGlzLmJ1bGtDb3N0R3JvdXApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYnVsa1Bja01hdCkge1xyXG4gICAgICB0aGlzLmFwcGx5VmFsdWVUb1NlbGVjdGVkKCdwY2tNYXRDb2RlJywgdGhpcy5idWxrUGNrTWF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZcOnaWxpIHNhdMSxcmxhcsSxbiBpbGdpbGkga29sb251bmEgZGXEn2VyaSBiYXRjaC1jaGFuZ2Ugb2xhcmFrIHlhemFyIChzYXlmYWRhbiBiYcSfxLFtc8Sxeiwga2V5IGJhemzEsSkuICovXHJcbiAgcHJpdmF0ZSBhcHBseVZhbHVlVG9TZWxlY3RlZChmaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXh0OiBCYXRjaENoYW5nZVtdID0gdGhpcy5jaGFuZ2VzLm1hcChjID0+ICh7IC4uLmMsIGRhdGE6IHsgLi4uYy5kYXRhIH0gfSkpO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5zZWxlY3RlZEtleXMpIHtcclxuICAgICAgbGV0IGNoYW5nZSA9IG5leHQuZmluZChjID0+IGMudHlwZSA9PT0gJ3VwZGF0ZScgJiYgYy5rZXkgPT09IGtleSk7XHJcbiAgICAgIGlmICghY2hhbmdlKSB7XHJcbiAgICAgICAgY2hhbmdlID0geyB0eXBlOiAndXBkYXRlJywga2V5LCBkYXRhOiB7fSB9O1xyXG4gICAgICAgIG5leHQucHVzaChjaGFuZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIChjaGFuZ2UuZGF0YSBhcyBhbnkpW2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VzID0gbmV4dDtcclxuICB9XHJcblxyXG4gIHNhdmUoKTogdm9pZCB7XHJcbiAgICBjb25zdCB1cGRhdGVzID0gdGhpcy5jaGFuZ2VzLmZpbHRlcihjID0+IGMudHlwZSA9PT0gJ3VwZGF0ZScpO1xyXG4gICAgaWYgKHVwZGF0ZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuc2F2aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBieUtleSA9IG5ldyBNYXAodGhpcy5yb3dzLm1hcChyID0+IFtyLml0ZW1Db2RlLCByXSkpO1xyXG4gICAgY29uc3QgaW5wdXQ6IEl0ZW1DbGFzc2lmaWNhdGlvblNhdmVEdG9bXSA9IHVwZGF0ZXMubWFwKGNoYW5nZSA9PiB7XHJcbiAgICAgIGNvbnN0IG1lcmdlZCA9IHsgLi4uKGJ5S2V5LmdldChjaGFuZ2Uua2V5KSA/PyB7fSksIC4uLmNoYW5nZS5kYXRhIH07XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaXRlbUNvZGU6IGNoYW5nZS5rZXksXHJcbiAgICAgICAgcGFrZXRUdXJ1Q29kZTogbWVyZ2VkLnBha2V0VHVydUNvZGUgPz8gJycsXHJcbiAgICAgICAgcGFrZXRHcnVidUNvZGU6IG1lcmdlZC5wYWtldEdydWJ1Q29kZSA/PyAnJyxcclxuICAgICAgICB1cnVuVGlwaUNvZGU6IG1lcmdlZC51cnVuVGlwaUNvZGUgPz8gJycsXHJcbiAgICAgICAgcmVnaW9uOiBtZXJnZWQucmVnaW9uLFxyXG4gICAgICAgIGNvc3RHcm91cENvZGU6IG1lcmdlZC5jb3N0R3JvdXBDb2RlID8/ICcnLFxyXG4gICAgICAgIHBja01hdENvZGU6IG1lcmdlZC5wY2tNYXRDb2RlID8/ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlUHJvZ3Jlc3MgPSB7IHByb2Nlc3NlZDogMCwgdG90YWw6IGlucHV0Lmxlbmd0aCB9O1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5zdGFydFNhdmUoaW5wdXQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGpvYklkID0+IHRoaXMucG9sbFN0YXR1cyhqb2JJZCksXHJcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5zYXZpbmcgPSBmYWxzZSksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcG9sbFN0YXR1cyhqb2JJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNhdmVTdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNhdmVTdWIgPSB0aW1lcigwLCAxNTAwKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmdldFNhdmVTdGF0dXMoam9iSWQpKSxcclxuICAgICAgICB0YWtlV2hpbGUoc3RhdHVzID0+ICFzdGF0dXMuY29tcGxldGVkLCB0cnVlKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBzdGF0dXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZlUHJvZ3Jlc3MgPSB7IHByb2Nlc3NlZDogc3RhdHVzLnByb2Nlc3NlZCwgdG90YWw6IHN0YXR1cy50b3RhbCB9O1xyXG4gICAgICAgICAgaWYgKHN0YXR1cy5jb21wbGV0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vblNhdmVDb21wbGV0ZWQoc3RhdHVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5zYXZpbmcgPSBmYWxzZSksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNhdmVDb21wbGV0ZWQoc3RhdHVzOiBJdGVtQ2xhc3NpZmljYXRpb25TYXZlU3RhdHVzRHRvKTogdm9pZCB7XHJcbiAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgY29uc3QgZmFpbGVkID0gc3RhdHVzLmZhaWxlZCA/PyBbXTtcclxuXHJcbiAgICBpZiAoZmFpbGVkLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2VzcyhcclxuICAgICAgICB0aGlzLmxvY2FsaXphdGlvbi5pbnN0YW50KCdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpTYXZlRG9uZUFsbCcsIGAke3N0YXR1cy5zdWNjZWVkZWR9YCksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0ZXIud2FybihcclxuICAgICAgICB0aGlzLmxvY2FsaXphdGlvbi5pbnN0YW50KFxyXG4gICAgICAgICAgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlNhdmVQYXJ0aWFsJyxcclxuICAgICAgICAgIGAke3N0YXR1cy5zdWNjZWVkZWR9YCxcclxuICAgICAgICAgIGAke2ZhaWxlZC5sZW5ndGh9YCxcclxuICAgICAgICApLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhaWxlZEtleXMgPSBmYWlsZWQubWFwKGYgPT4gZi5pdGVtQ29kZSEpLmZpbHRlcihCb29sZWFuKTtcclxuICAgIHRoaXMubG9hZChmYWlsZWRLZXlzKTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6VGl0bGUnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIG14LTBcIiBpZD1cIkl0ZW1DbGFzc2lmaWNhdGlvbnNUb29sYmFyXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzYXZpbmdcIiBjbGFzcz1cImNvbC1hdXRvIHB0LTAgcHQtbWQtMiB0ZXh0LW11dGVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSBtZS0xXCI+PC9zcGFuPlxyXG4gICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpTYXZpbmcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAge3sgc2F2ZVByb2dyZXNzLnByb2Nlc3NlZCB9fS97eyBzYXZlUHJvZ3Jlc3MudG90YWwgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0xIHB0LTAgcHQtbWQtMiBwZS0wXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKmFicFBlcm1pc3Npb249XCInS2VvcHNJdGVtTWFzdGVyRGF0YS5JdGVtQ2xhc3NpZmljYXRpb25zLlVwZGF0ZSdcIlxyXG4gICAgICAgICAgaWQ9XCJzYXZlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjaGFuZ2VzLmxlbmd0aCB8fCBzYXZpbmdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjayBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4+e3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgaWQ9XCJJdGVtQ2xhc3NpZmljYXRpb25zV3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwia2luZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpLaW5kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgaWQ9XCJraW5kXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0XCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUHJlZml4XCJcclxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbktpbmRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+LS08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBraW5kIG9mIGtpbmRzXCIgW3ZhbHVlXT1cImtpbmQucHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICB7eyBraW5kLmxhYmVsS2V5IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaGFzS2luZFwiIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxyXG4gICAgICAgICAge3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlNlbGVjdEtpbmQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gVG9wbHUgZG9sZHVyIHBhbmVsaSAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzS2luZFwiIGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcC0yIG1iLTMgYmctbGlnaHRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yIGFsaWduLWl0ZW1zLWVuZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy1zZWNvbmRhcnlcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpTZWxlY3RlZCcgfCBhYnBMb2NhbGl6YXRpb24gfX06IHt7IHNlbGVjdGVkS2V5cy5sZW5ndGggfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpQYWNrYWdlVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94XHJcbiAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJwYWNrYWdlVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYnVsa1Bha2V0VHVydVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIi0tXCJcclxuICAgICAgICAgICAgICA+PC9keC1zZWxlY3QtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6UGFja2FnZUdyb3VwJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3hcclxuICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInBhY2thZ2VHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYnVsa1Bha2V0R3J1YnVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCItLVwiXHJcbiAgICAgICAgICAgICAgPjwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlByb2R1Y3RUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3hcclxuICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInByb2R1Y3RUeXBlc1wiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJidWxrVXJ1blRpcGlcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCItLVwiXHJcbiAgICAgICAgICAgICAgPjwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlJlZ2lvbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94XHJcbiAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJyZWdpb25zXCJcclxuICAgICAgICAgICAgICAgIHZhbHVlRXhwcj1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJidWxrUmVnaW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiLS1cIlxyXG4gICAgICAgICAgICAgID48L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpDb3N0R3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveFxyXG4gICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiY29zdEdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJidWxrQ29zdEdyb3VwXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiLS1cIlxyXG4gICAgICAgICAgICAgID48L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpQYWNrYWdpbmdNYXRlcmlhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94XHJcbiAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJwYWNrYWdpbmdNYXRlcmlhbHNcIlxyXG4gICAgICAgICAgICAgICAgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYnVsa1Bja01hdFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIi0tXCJcclxuICAgICAgICAgICAgICA+PC9keC1zZWxlY3QtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtYXV0byBkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZEtleXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUJ1bGsoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1kb3duIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6QXBwbHlUb1NlbGVjdGVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZHgtZGF0YS1ncmlkXHJcbiAgICAgICAgICAqbmdJZj1cImhhc0tpbmRcIlxyXG4gICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJyb3dzXCJcclxuICAgICAgICAgIGtleUV4cHI9XCJpdGVtQ29kZVwiXHJcbiAgICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgICAgWyhzZWxlY3RlZFJvd0tleXMpXT1cInNlbGVjdGVkS2V5c1wiXHJcbiAgICAgICAgICAob25Ub29sYmFyUHJlcGFyaW5nKT1cIm9uVG9vbGJhclByZXBhcmluZygkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwibXVsdGlwbGVcIiBzaG93Q2hlY2tCb3hlc01vZGU9XCJhbHdheXNcIiBbYWxsb3dTZWxlY3RBbGxdPVwidHJ1ZVwiPjwvZHhvLXNlbGVjdGlvbj5cclxuICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICAgIDxkeG8tc2VhcmNoLXBhbmVsXHJcbiAgICAgICAgICAgIFt3aWR0aF09XCIyMDBcIlxyXG4gICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICA+PC9keG8tc2VhcmNoLXBhbmVsPlxyXG4gICAgICAgICAgPGR4by1wYWdlclxyXG4gICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbYWxsb3dlZFBhZ2VTaXplc109XCJbMTAsIDIwLCA1MF1cIlxyXG4gICAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICA+PC9keG8tcGFnZXI+XHJcbiAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMjBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgICA8ZHhvLWVkaXRpbmdcclxuICAgICAgICAgICAgbW9kZT1cImJhdGNoXCJcclxuICAgICAgICAgICAgW2FsbG93VXBkYXRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFthbGxvd0FkZGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFthbGxvd0RlbGV0aW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW3VzZUljb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbKGNoYW5nZXMpXT1cImNoYW5nZXNcIlxyXG4gICAgICAgICAgPjwvZHhvLWVkaXRpbmc+XHJcblxyXG4gICAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgICAgZGF0YUZpZWxkPVwiaXRlbUNvZGVcIlxyXG4gICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgd2lkdGg9XCIxNDBcIlxyXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICA+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgICAgZGF0YUZpZWxkPVwiaXRlbU5hbWVcIlxyXG4gICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpJdGVtTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICAgIGRhdGFGaWVsZD1cImdyb3VwQ29kZVwiXHJcbiAgICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIHdpZHRoPVwiMTEwXCJcclxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpHcm91cENvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgID48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJncm91cE5hbWVcIlxyXG4gICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6SXRlbUNsYXNzaWZpY2F0aW9uczpHcm91cE5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgID48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgICAgZGF0YUZpZWxkPVwicGFrZXRUdXJ1Q29kZVwiXHJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6UGFja2FnZVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGR4by1sb29rdXBcclxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJwYWNrYWdlVHlwZXNcIlxyXG4gICAgICAgICAgICAgIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgW2FsbG93Q2xlYXJpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2R4by1sb29rdXA+XHJcbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJwYWtldEdydWJ1Q29kZVwiXHJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6UGFja2FnZUdyb3VwJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkeG8tbG9va3VwXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicGFja2FnZUdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCJcclxuICAgICAgICAgICAgICBbYWxsb3dDbGVhcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvZHhvLWxvb2t1cD5cclxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICAgIGRhdGFGaWVsZD1cInVydW5UaXBpQ29kZVwiXHJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6UHJvZHVjdFR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGR4by1sb29rdXBcclxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJwcm9kdWN0VHlwZXNcIlxyXG4gICAgICAgICAgICAgIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgW2FsbG93Q2xlYXJpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2R4by1sb29rdXA+XHJcbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJyZWdpb25cIlxyXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlJlZ2lvbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZHhvLWxvb2t1cFxyXG4gICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInJlZ2lvbnNcIlxyXG4gICAgICAgICAgICAgIHZhbHVlRXhwcj1cInZhbHVlXCJcclxuICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgIFthbGxvd0NsZWFyaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICA+PC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgICAgZGF0YUZpZWxkPVwiY29zdEdyb3VwQ29kZVwiXHJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6Okl0ZW1DbGFzc2lmaWNhdGlvbnM6Q29zdEdyb3VwJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkeG8tbG9va3VwXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiY29zdEdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCJcclxuICAgICAgICAgICAgICBbYWxsb3dDbGVhcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvZHhvLWxvb2t1cD5cclxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICAgIGRhdGFGaWVsZD1cInBja01hdENvZGVcIlxyXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpJdGVtQ2xhc3NpZmljYXRpb25zOlBhY2thZ2luZ01hdGVyaWFsJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkeG8tbG9va3VwXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicGFja2FnaW5nTWF0ZXJpYWxzXCJcclxuICAgICAgICAgICAgICB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgIFthbGxvd0NsZWFyaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICA+PC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { AuthGuard, PermissionGuard } from '@abp/ng.core';
|
|
4
|
+
import { ItemClassificationsComponent } from './components/item-classifications.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
const routes = [
|
|
8
|
+
{
|
|
9
|
+
path: '',
|
|
10
|
+
component: ItemClassificationsComponent,
|
|
11
|
+
canActivate: [AuthGuard, PermissionGuard],
|
|
12
|
+
data: {
|
|
13
|
+
requiredPolicy: 'KeopsItemMasterData.ItemClassifications',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
export class HitItemClassificationsRoutingModule {
|
|
18
|
+
}
|
|
19
|
+
HitItemClassificationsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
HitItemClassificationsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
21
|
+
HitItemClassificationsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
imports: [RouterModule.forChild(routes)],
|
|
26
|
+
exports: [RouterModule],
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWl0ZW0tY2xhc3NpZmljYXRpb25zLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9pdGVtLWNsYXNzaWZpY2F0aW9ucy9oaXQtaXRlbS1jbGFzc2lmaWNhdGlvbnMtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQUUzRixNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDO1FBQ3pDLElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRSx5Q0FBeUM7U0FDMUQ7S0FDRjtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sbUNBQW1DOztnSUFBbkMsbUNBQW1DO2lJQUFuQyxtQ0FBbUMsd0NBRnBDLFlBQVk7aUlBRVgsbUNBQW1DLFlBSHBDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsbUNBQW1DO2tCQUovQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSXRlbUNsYXNzaWZpY2F0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pdGVtLWNsYXNzaWZpY2F0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICBjb21wb25lbnQ6IEl0ZW1DbGFzc2lmaWNhdGlvbnNDb21wb25lbnQsXHJcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcclxuICAgIGRhdGE6IHtcclxuICAgICAgcmVxdWlyZWRQb2xpY3k6ICdLZW9wc0l0ZW1NYXN0ZXJEYXRhLkl0ZW1DbGFzc2lmaWNhdGlvbnMnLFxyXG4gICAgfSxcclxuICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SXRlbUNsYXNzaWZpY2F0aW9uc1JvdXRpbmdNb2R1bGUge31cclxuIl19
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { CoreModule } from '@abp/ng.core';
|
|
5
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
6
|
+
import { PageModule } from '@abp/ng.components/page';
|
|
7
|
+
import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
|
|
8
|
+
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
9
|
+
import { ItemClassificationsComponent } from './components/item-classifications.component';
|
|
10
|
+
import { HitItemClassificationsRoutingModule } from './hit-item-classifications-routing.module';
|
|
11
|
+
import { DxDataGridModule, DxSelectBoxModule } from 'devextreme-angular';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class HitItemClassificationsModule {
|
|
14
|
+
}
|
|
15
|
+
HitItemClassificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
HitItemClassificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, declarations: [ItemClassificationsComponent], imports: [CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
CoreModule,
|
|
20
|
+
ThemeSharedModule,
|
|
21
|
+
PageModule,
|
|
22
|
+
CommercialUiModule,
|
|
23
|
+
NgbDropdownModule,
|
|
24
|
+
HitItemClassificationsRoutingModule,
|
|
25
|
+
DxDataGridModule,
|
|
26
|
+
DxSelectBoxModule] });
|
|
27
|
+
HitItemClassificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, imports: [CommonModule,
|
|
28
|
+
FormsModule,
|
|
29
|
+
ReactiveFormsModule,
|
|
30
|
+
CoreModule,
|
|
31
|
+
ThemeSharedModule,
|
|
32
|
+
PageModule,
|
|
33
|
+
CommercialUiModule,
|
|
34
|
+
NgbDropdownModule,
|
|
35
|
+
HitItemClassificationsRoutingModule,
|
|
36
|
+
DxDataGridModule,
|
|
37
|
+
DxSelectBoxModule] });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, decorators: [{
|
|
39
|
+
type: NgModule,
|
|
40
|
+
args: [{
|
|
41
|
+
declarations: [ItemClassificationsComponent],
|
|
42
|
+
imports: [
|
|
43
|
+
CommonModule,
|
|
44
|
+
FormsModule,
|
|
45
|
+
ReactiveFormsModule,
|
|
46
|
+
CoreModule,
|
|
47
|
+
ThemeSharedModule,
|
|
48
|
+
PageModule,
|
|
49
|
+
CommercialUiModule,
|
|
50
|
+
NgbDropdownModule,
|
|
51
|
+
HitItemClassificationsRoutingModule,
|
|
52
|
+
DxDataGridModule,
|
|
53
|
+
DxSelectBoxModule,
|
|
54
|
+
],
|
|
55
|
+
}]
|
|
56
|
+
}] });
|
|
57
|
+
export function loadHitItemClassificationsModuleAsChild() {
|
|
58
|
+
return Promise.resolve(HitItemClassificationsModule);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWl0ZW0tY2xhc3NpZmljYXRpb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvaXRlbS1jbGFzc2lmaWNhdGlvbnMvaGl0LWl0ZW0tY2xhc3NpZmljYXRpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBa0J6RSxNQUFNLE9BQU8sNEJBQTRCOzt5SEFBNUIsNEJBQTRCOzBIQUE1Qiw0QkFBNEIsaUJBZnhCLDRCQUE0QixhQUV6QyxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLG1DQUFtQztRQUNuQyxnQkFBZ0I7UUFDaEIsaUJBQWlCOzBIQUdSLDRCQUE0QixZQWJyQyxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLG1DQUFtQztRQUNuQyxnQkFBZ0I7UUFDaEIsaUJBQWlCOzJGQUdSLDRCQUE0QjtrQkFoQnhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQzVDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsbUNBQW1DO3dCQUNuQyxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjtxQkFDbEI7aUJBQ0Y7O0FBR0QsTUFBTSxVQUFVLHVDQUF1QztJQUNyRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgQ29tbWVyY2lhbFVpTW9kdWxlIH0gZnJvbSAnQHZvbG8vYWJwLmNvbW1lcmNpYWwubmcudWknO1xyXG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSXRlbUNsYXNzaWZpY2F0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pdGVtLWNsYXNzaWZpY2F0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaXRJdGVtQ2xhc3NpZmljYXRpb25zUm91dGluZ01vZHVsZSB9IGZyb20gJy4vaGl0LWl0ZW0tY2xhc3NpZmljYXRpb25zLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgRHhEYXRhR3JpZE1vZHVsZSwgRHhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtJdGVtQ2xhc3NpZmljYXRpb25zQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBQYWdlTW9kdWxlLFxyXG4gICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbiAgICBIaXRJdGVtQ2xhc3NpZmljYXRpb25zUm91dGluZ01vZHVsZSxcclxuICAgIER4RGF0YUdyaWRNb2R1bGUsXHJcbiAgICBEeFNlbGVjdEJveE1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SXRlbUNsYXNzaWZpY2F0aW9uc01vZHVsZSB7fVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRIaXRJdGVtQ2xhc3NpZmljYXRpb25zTW9kdWxlQXNDaGlsZCgpIHtcclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEhpdEl0ZW1DbGFzc2lmaWNhdGlvbnNNb2R1bGUpO1xyXG59XHJcbiJdfQ==
|
package/esm2020/lib/features/item-package-groups/components/item-package-group-form.component.mjs
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { finalize } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@hitsoft/kadooglu-keops/proxy";
|
|
7
|
+
import * as i3 from "@abp/ng.core";
|
|
8
|
+
import * as i4 from "@abp/ng.theme.shared";
|
|
9
|
+
export class ItemPackageGroupFormComponent {
|
|
10
|
+
constructor(fb, service) {
|
|
11
|
+
this.fb = fb;
|
|
12
|
+
this.service = service;
|
|
13
|
+
this.visible = false;
|
|
14
|
+
this.mode = 'create';
|
|
15
|
+
this.current = null;
|
|
16
|
+
this.visibleChange = new EventEmitter();
|
|
17
|
+
this.saved = new EventEmitter();
|
|
18
|
+
this.saving = false;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.buildForm();
|
|
22
|
+
}
|
|
23
|
+
ngOnChanges(changes) {
|
|
24
|
+
if (changes['current'] || changes['mode']) {
|
|
25
|
+
this.buildForm();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
buildForm() {
|
|
29
|
+
this.form = this.fb.group({
|
|
30
|
+
name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],
|
|
31
|
+
isActive: [this.current?.isActive ?? true],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
get title() {
|
|
35
|
+
return this.mode === 'create'
|
|
36
|
+
? 'Keops::ItemPackageGroups:CreateTitle'
|
|
37
|
+
: 'Keops::ItemPackageGroups:EditTitle';
|
|
38
|
+
}
|
|
39
|
+
onVisibleChange(value) {
|
|
40
|
+
this.visible = value;
|
|
41
|
+
this.visibleChange.emit(value);
|
|
42
|
+
}
|
|
43
|
+
save() {
|
|
44
|
+
if (this.form.invalid) {
|
|
45
|
+
this.form.markAllAsTouched();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const value = this.form.value;
|
|
49
|
+
this.saving = true;
|
|
50
|
+
const request$ = this.mode === 'create'
|
|
51
|
+
? this.service.create(value)
|
|
52
|
+
: this.service.update(this.current.code, value);
|
|
53
|
+
request$.pipe(finalize(() => (this.saving = false))).subscribe({
|
|
54
|
+
next: () => {
|
|
55
|
+
this.saved.emit();
|
|
56
|
+
this.visible = false;
|
|
57
|
+
this.visibleChange.emit(false);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ItemPackageGroupFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemPackageGroupFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ItemPackageGroupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
ItemPackageGroupFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ItemPackageGroupFormComponent, selector: "lib-item-package-group-form", inputs: { visible: "visible", mode: "mode", current: "current" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ItemPackageGroups:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ItemPackageGroups:IsActive' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemPackageGroupFormComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'lib-item-package-group-form', template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ItemPackageGroups:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ItemPackageGroups:IsActive' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ItemPackageGroupService }]; }, propDecorators: { visible: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], mode: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], current: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], visibleChange: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], saved: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}] } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1wYWNrYWdlLWdyb3VwLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9pdGVtLXBhY2thZ2UtZ3JvdXBzL2NvbXBvbmVudHMvaXRlbS1wYWNrYWdlLWdyb3VwLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9pdGVtLXBhY2thZ2UtZ3JvdXBzL2NvbXBvbmVudHMvaXRlbS1wYWNrYWdlLWdyb3VwLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyw2QkFBNkI7SUFXeEMsWUFDbUIsRUFBZSxFQUNmLE9BQWdDO1FBRGhDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQVoxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBQ25DLFlBQU8sR0FBK0IsSUFBSSxDQUFDO1FBRTFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM1QyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUczQyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBS1osQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDM0IsQ0FBQyxDQUFDLHNDQUFzQztZQUN4QyxDQUFDLENBQUMsb0NBQW9DLENBQUM7SUFDM0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0IsT0FBTztTQUNSO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsSUFBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzswSEFsRVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsdU5DakIxQyxvbURBc0RBOzJGRHJDYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNkJBQTZCO3dJQUk5QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSXRlbVBhY2thZ2VHcm91cFNlcnZpY2UsIEl0ZW1QYWNrYWdlR3JvdXBEdG8gfSBmcm9tICdAaGl0c29mdC9rYWRvb2dsdS1rZW9wcy9wcm94eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1pdGVtLXBhY2thZ2UtZ3JvdXAtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW0tcGFja2FnZS1ncm91cC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1QYWNrYWdlR3JvdXBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHZpc2libGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnQ6IEl0ZW1QYWNrYWdlR3JvdXBEdG8gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBJdGVtUGFja2FnZUdyb3VwU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjdXJyZW50J10gfHwgY2hhbmdlc1snbW9kZSddKSB7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbdGhpcy5jdXJyZW50Py5uYW1lID8/ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICBpc0FjdGl2ZTogW3RoaXMuY3VycmVudD8uaXNBY3RpdmUgPz8gdHJ1ZV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2NyZWF0ZSdcclxuICAgICAgPyAnS2VvcHM6Okl0ZW1QYWNrYWdlR3JvdXBzOkNyZWF0ZVRpdGxlJ1xyXG4gICAgICA6ICdLZW9wczo6SXRlbVBhY2thZ2VHcm91cHM6RWRpdFRpdGxlJztcclxuICB9XHJcblxyXG4gIG9uVmlzaWJsZUNoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuXHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCQgPVxyXG4gICAgICB0aGlzLm1vZGUgPT09ICdjcmVhdGUnXHJcbiAgICAgICAgPyB0aGlzLnNlcnZpY2UuY3JlYXRlKHZhbHVlKVxyXG4gICAgICAgIDogdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLmN1cnJlbnQhLmNvZGUhLCB2YWx1ZSk7XHJcblxyXG4gICAgcmVxdWVzdCQucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZpbmcgPSBmYWxzZSkpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtbW9kYWxcclxuICBbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCJcclxuICBbYnVzeV09XCJzYXZpbmdcIlxyXG4gIFtvcHRpb25zXT1cInsgc2l6ZTogJ21kJyB9XCJcclxuPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPnt7IHRpdGxlIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgIHt7ICdLZW9wczo6SXRlbVBhY2thZ2VHcm91cHM6TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBpZD1cImlzQWN0aXZlXCJcclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNBY3RpdmVcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlzQWN0aXZlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICB7eyAnS2VvcHM6Okl0ZW1QYWNrYWdlR3JvdXBzOklzQWN0aXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGFicC1idXR0b25cclxuICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxyXG4gICAgICBidXR0b25DbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgIFtsb2FkaW5nXT1cInNhdmluZ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtPy5pbnZhbGlkXCJcclxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
|