@hitsoft/kadooglu-keops 0.0.1
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/README.md +24 -0
- package/config/enums/index.d.ts +1 -0
- package/config/enums/route-names.d.ts +23 -0
- package/config/index.d.ts +5 -0
- package/config/kadooglu-keops-config.module.d.ts +8 -0
- package/config/providers/index.d.ts +1 -0
- package/config/providers/route.provider.d.ts +8 -0
- package/config/public-api.d.ts +3 -0
- package/esm2020/config/enums/index.mjs +2 -0
- package/esm2020/config/enums/route-names.mjs +2 -0
- package/esm2020/config/hitsoft-kadooglu-keops-config.mjs +5 -0
- package/esm2020/config/kadooglu-keops-config.module.mjs +18 -0
- package/esm2020/config/providers/index.mjs +2 -0
- package/esm2020/config/providers/route.provider.mjs +212 -0
- package/esm2020/config/public-api.mjs +4 -0
- package/esm2020/hitsoft-kadooglu-keops.mjs +5 -0
- package/esm2020/lib/features/container-definitions/components/container-definition-form.component.mjs +81 -0
- package/esm2020/lib/features/container-definitions/components/container-definitions.component.mjs +69 -0
- package/esm2020/lib/features/container-definitions/hit-container-definitions-routing.module.mjs +29 -0
- package/esm2020/lib/features/container-definitions/hit-container-definitions.module.mjs +58 -0
- package/esm2020/lib/features/container-loading-counts/components/container-loading-counts.component.mjs +104 -0
- package/esm2020/lib/features/container-loading-counts/hit-container-loading-counts-routing.module.mjs +29 -0
- package/esm2020/lib/features/container-loading-counts/hit-container-loading-counts.module.mjs +49 -0
- package/esm2020/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.mjs +106 -0
- package/esm2020/lib/features/container-loading-scenarios/container-loading-scenario-l10n-helper.mjs +10 -0
- package/esm2020/lib/features/container-loading-scenarios/hit-container-loading-scenarios-routing.module.mjs +29 -0
- package/esm2020/lib/features/container-loading-scenarios/hit-container-loading-scenarios.module.mjs +49 -0
- package/esm2020/lib/features/container-mix-types/components/container-mix-type-form.component.mjs +78 -0
- package/esm2020/lib/features/container-mix-types/components/container-mix-types.component.mjs +69 -0
- package/esm2020/lib/features/container-mix-types/hit-container-mix-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/container-mix-types/hit-container-mix-types.module.mjs +58 -0
- package/esm2020/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.mjs +95 -0
- package/esm2020/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.mjs +91 -0
- package/esm2020/lib/features/container-pallet-capacities/hit-container-pallet-capacities-routing.module.mjs +29 -0
- package/esm2020/lib/features/container-pallet-capacities/hit-container-pallet-capacities.module.mjs +58 -0
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-inputs.component.mjs +103 -0
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-result-sum.component.mjs +36 -0
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-results.component.mjs +32 -0
- package/esm2020/lib/features/cost-calculation/components/cost-calculation.component.mjs +167 -0
- package/esm2020/lib/features/cost-calculation/cost-calculation.models.mjs +2 -0
- package/esm2020/lib/features/cost-calculation/engine/currency.utils.mjs +21 -0
- package/esm2020/lib/features/cost-calculation/engine/formulas.mjs +55 -0
- package/esm2020/lib/features/cost-calculation/engine/index.mjs +4 -0
- package/esm2020/lib/features/cost-calculation/engine/item-resolver.mjs +38 -0
- package/esm2020/lib/features/cost-calculation/engine/models.mjs +20 -0
- package/esm2020/lib/features/cost-calculation/engine/stage-builder.mjs +56 -0
- package/esm2020/lib/features/cost-calculation/hit-cost-calculation-routing.module.mjs +29 -0
- package/esm2020/lib/features/cost-calculation/hit-cost-calculation.module.mjs +64 -0
- package/esm2020/lib/features/cost-groups/components/cost-group-form.component.mjs +121 -0
- package/esm2020/lib/features/cost-groups/components/cost-groups.component.mjs +92 -0
- package/esm2020/lib/features/cost-groups/cost-group-role-l10n-helper.mjs +20 -0
- package/esm2020/lib/features/cost-groups/hit-cost-groups-routing.module.mjs +29 -0
- package/esm2020/lib/features/cost-groups/hit-cost-groups.module.mjs +58 -0
- package/esm2020/lib/features/cost-items/components/cost-item-form.component.mjs +88 -0
- package/esm2020/lib/features/cost-items/components/cost-items.component.mjs +73 -0
- package/esm2020/lib/features/cost-items/cost-item-l10n-helper.mjs +7 -0
- package/esm2020/lib/features/cost-items/hit-cost-items-routing.module.mjs +29 -0
- package/esm2020/lib/features/cost-items/hit-cost-items.module.mjs +58 -0
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.mjs +73 -0
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.mjs +93 -0
- package/esm2020/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.mjs +9 -0
- package/esm2020/lib/features/cost-parameter-categories/hit-cost-parameter-categories-routing.module.mjs +29 -0
- package/esm2020/lib/features/cost-parameter-categories/hit-cost-parameter-categories.module.mjs +58 -0
- package/esm2020/lib/features/cost-parameters/components/cost-parameter-form.component.mjs +131 -0
- package/esm2020/lib/features/cost-parameters/components/cost-parameters.component.mjs +93 -0
- package/esm2020/lib/features/cost-parameters/cost-parameter-l10n-helper.mjs +7 -0
- package/esm2020/lib/features/cost-parameters/hit-cost-parameters-routing.module.mjs +29 -0
- package/esm2020/lib/features/cost-parameters/hit-cost-parameters.module.mjs +61 -0
- package/esm2020/lib/features/exchange-rates/components/central-bank-rates.component.mjs +17 -0
- package/esm2020/lib/features/exchange-rates/components/exchange-rates.component.mjs +30 -0
- package/esm2020/lib/features/exchange-rates/components/fixed-rates-form.component.mjs +84 -0
- package/esm2020/lib/features/exchange-rates/hit-exchange-rates-routing.module.mjs +29 -0
- package/esm2020/lib/features/exchange-rates/hit-exchange-rates.module.mjs +65 -0
- package/esm2020/lib/features/index.mjs +15 -0
- package/esm2020/lib/features/packaging-materials/components/packaging-material-form.component.mjs +87 -0
- package/esm2020/lib/features/packaging-materials/components/packaging-materials.component.mjs +69 -0
- package/esm2020/lib/features/packaging-materials/hit-packaging-materials-routing.module.mjs +29 -0
- package/esm2020/lib/features/packaging-materials/hit-packaging-materials.module.mjs +58 -0
- package/esm2020/lib/features/packaging-prices/components/packaging-price-form.component.mjs +154 -0
- package/esm2020/lib/features/packaging-prices/components/packaging-price-lines.component.mjs +89 -0
- package/esm2020/lib/features/packaging-prices/components/packaging-prices.component.mjs +86 -0
- package/esm2020/lib/features/packaging-prices/hit-packaging-prices-routing.module.mjs +29 -0
- package/esm2020/lib/features/packaging-prices/hit-packaging-prices.module.mjs +71 -0
- package/esm2020/lib/features/packaging-prices/packaging-price-calculator.mjs +36 -0
- package/esm2020/lib/features/packaging-prices/packaging-price-excel.service.mjs +32 -0
- package/esm2020/lib/features/packaging-prices/packaging-price-form.factory.mjs +31 -0
- package/esm2020/lib/features/packaging-prices/packaging-price-lines.builder.mjs +49 -0
- package/esm2020/lib/features/packaging-types/components/packaging-type-form.component.mjs +78 -0
- package/esm2020/lib/features/packaging-types/components/packaging-types.component.mjs +69 -0
- package/esm2020/lib/features/packaging-types/hit-packaging-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/packaging-types/hit-packaging-types.module.mjs +58 -0
- package/esm2020/lib/features/pallet-definitions/components/pallet-definition-form.component.mjs +80 -0
- package/esm2020/lib/features/pallet-definitions/components/pallet-definitions.component.mjs +69 -0
- package/esm2020/lib/features/pallet-definitions/hit-pallet-definitions-routing.module.mjs +29 -0
- package/esm2020/lib/features/pallet-definitions/hit-pallet-definitions.module.mjs +58 -0
- package/esm2020/lib/features/price-parameter-types/components/price-parameter-type-form.component.mjs +79 -0
- package/esm2020/lib/features/price-parameter-types/components/price-parameter-types.component.mjs +69 -0
- package/esm2020/lib/features/price-parameter-types/hit-price-parameter-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/price-parameter-types/hit-price-parameter-types.module.mjs +58 -0
- package/esm2020/lib/features/sap-sales-persons/components/sap-sales-person-form.component.mjs +69 -0
- package/esm2020/lib/features/sap-sales-persons/components/sap-sales-persons.component.mjs +53 -0
- package/esm2020/lib/features/sap-sales-persons/hit-sap-sales-persons-routing.module.mjs +29 -0
- package/esm2020/lib/features/sap-sales-persons/hit-sap-sales-persons.module.mjs +61 -0
- package/esm2020/lib/features/settings/components/cost-settings.component.mjs +48 -0
- package/esm2020/lib/kadooglu-keops-routing.module.mjs +53 -0
- package/esm2020/lib/kadooglu-keops.module.mjs +53 -0
- package/esm2020/lib/proxy/container-definitions/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/container-definitions/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/container-definitions/index.mjs +3 -0
- package/esm2020/lib/proxy/container-loading-counts/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/container-loading-counts/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/container-loading-counts/index.mjs +4 -0
- package/esm2020/lib/proxy/container-loading-counts/loading-target-kind.enum.mjs +8 -0
- package/esm2020/lib/proxy/container-loading-scenarios/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/container-loading-scenarios/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/container-loading-scenarios/index.mjs +4 -0
- package/esm2020/lib/proxy/container-loading-scenarios/pallet-status.enum.mjs +8 -0
- package/esm2020/lib/proxy/container-mix-types/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/container-mix-types/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/container-mix-types/index.mjs +3 -0
- package/esm2020/lib/proxy/container-pallet-capacities/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/container-pallet-capacities/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/container-pallet-capacities/index.mjs +3 -0
- package/esm2020/lib/proxy/controllers/container-definition.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/container-loading-count.service.mjs +31 -0
- package/esm2020/lib/proxy/controllers/container-loading-scenario.service.mjs +27 -0
- package/esm2020/lib/proxy/controllers/container-mix-type.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/container-pallet-capacity.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/cost-group.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/cost-item.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/cost-parameter-category.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/cost-parameter.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/cost-settings.service.mjs +27 -0
- package/esm2020/lib/proxy/controllers/exchange-rate.service.mjs +27 -0
- package/esm2020/lib/proxy/controllers/index.mjs +19 -0
- package/esm2020/lib/proxy/controllers/item.service.mjs +23 -0
- package/esm2020/lib/proxy/controllers/packaging-material.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/packaging-price.service.mjs +55 -0
- package/esm2020/lib/proxy/controllers/packaging-type.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/pallet-definition.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/price-parameter-type.service.mjs +40 -0
- package/esm2020/lib/proxy/controllers/sap-sales-person.service.mjs +27 -0
- package/esm2020/lib/proxy/cost-groups/cost-group-role.enum.mjs +10 -0
- package/esm2020/lib/proxy/cost-groups/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/cost-groups/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/cost-groups/index.mjs +4 -0
- package/esm2020/lib/proxy/cost-items/cost-item-calculation-type.enum.mjs +9 -0
- package/esm2020/lib/proxy/cost-items/cost-item-system-code.enum.mjs +20 -0
- package/esm2020/lib/proxy/cost-items/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/cost-items/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/cost-items/index.mjs +5 -0
- package/esm2020/lib/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.mjs +11 -0
- package/esm2020/lib/proxy/cost-parameter-categories/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/cost-parameter-categories/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/cost-parameter-categories/index.mjs +4 -0
- package/esm2020/lib/proxy/cost-parameters/cost-parameter-status.enum.mjs +9 -0
- package/esm2020/lib/proxy/cost-parameters/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/cost-parameters/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/cost-parameters/index.mjs +4 -0
- package/esm2020/lib/proxy/currencies/currency.enum.mjs +9 -0
- package/esm2020/lib/proxy/currencies/index.mjs +2 -0
- package/esm2020/lib/proxy/exchange-rates/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/exchange-rates/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/exchange-rates/exchange-rate-source.enum.mjs +8 -0
- package/esm2020/lib/proxy/exchange-rates/index.mjs +4 -0
- package/esm2020/lib/proxy/index.mjs +22 -0
- package/esm2020/lib/proxy/items/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/items/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/items/index.mjs +3 -0
- package/esm2020/lib/proxy/packaging-materials/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/packaging-materials/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/packaging-materials/index.mjs +3 -0
- package/esm2020/lib/proxy/packaging-prices/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/packaging-prices/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/packaging-prices/index.mjs +3 -0
- package/esm2020/lib/proxy/packaging-types/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/packaging-types/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/packaging-types/index.mjs +3 -0
- package/esm2020/lib/proxy/pallet-definitions/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/pallet-definitions/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/pallet-definitions/index.mjs +3 -0
- package/esm2020/lib/proxy/price-parameter-types/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/price-parameter-types/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/price-parameter-types/index.mjs +3 -0
- package/esm2020/lib/proxy/sales-persons/dtos/index.mjs +2 -0
- package/esm2020/lib/proxy/sales-persons/dtos/models.mjs +2 -0
- package/esm2020/lib/proxy/sales-persons/index.mjs +3 -0
- package/esm2020/lib/proxy/settings/index.mjs +2 -0
- package/esm2020/lib/proxy/settings/models.mjs +2 -0
- package/esm2020/lib/utils/currency.utils.mjs +8 -0
- package/esm2020/lib/utils/date.utils.mjs +12 -0
- package/esm2020/lib/utils/number.utils.mjs +9 -0
- package/esm2020/public-api.mjs +7 -0
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs +235 -0
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs.map +1 -0
- package/fesm2015/hitsoft-kadooglu-keops.mjs +5243 -0
- package/fesm2015/hitsoft-kadooglu-keops.mjs.map +1 -0
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs +235 -0
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs.map +1 -0
- package/fesm2020/hitsoft-kadooglu-keops.mjs +5196 -0
- package/fesm2020/hitsoft-kadooglu-keops.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/features/container-definitions/components/container-definition-form.component.d.ts +25 -0
- package/lib/features/container-definitions/components/container-definitions.component.d.ts +23 -0
- package/lib/features/container-definitions/hit-container-definitions-routing.module.d.ts +7 -0
- package/lib/features/container-definitions/hit-container-definitions.module.d.ts +18 -0
- package/lib/features/container-loading-counts/components/container-loading-counts.component.d.ts +29 -0
- package/lib/features/container-loading-counts/hit-container-loading-counts-routing.module.d.ts +7 -0
- package/lib/features/container-loading-counts/hit-container-loading-counts.module.d.ts +15 -0
- package/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.d.ts +40 -0
- package/lib/features/container-loading-scenarios/container-loading-scenario-l10n-helper.d.ts +3 -0
- package/lib/features/container-loading-scenarios/hit-container-loading-scenarios-routing.module.d.ts +7 -0
- package/lib/features/container-loading-scenarios/hit-container-loading-scenarios.module.d.ts +15 -0
- package/lib/features/container-mix-types/components/container-mix-type-form.component.d.ts +25 -0
- package/lib/features/container-mix-types/components/container-mix-types.component.d.ts +23 -0
- package/lib/features/container-mix-types/hit-container-mix-types-routing.module.d.ts +7 -0
- package/lib/features/container-mix-types/hit-container-mix-types.module.d.ts +18 -0
- package/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.d.ts +33 -0
- package/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.d.ts +29 -0
- package/lib/features/container-pallet-capacities/hit-container-pallet-capacities-routing.module.d.ts +7 -0
- package/lib/features/container-pallet-capacities/hit-container-pallet-capacities.module.d.ts +18 -0
- package/lib/features/cost-calculation/components/cost-calculation-inputs.component.d.ts +43 -0
- package/lib/features/cost-calculation/components/cost-calculation-result-sum.component.d.ts +16 -0
- package/lib/features/cost-calculation/components/cost-calculation-results.component.d.ts +12 -0
- package/lib/features/cost-calculation/components/cost-calculation.component.d.ts +51 -0
- package/lib/features/cost-calculation/cost-calculation.models.d.ts +18 -0
- package/lib/features/cost-calculation/engine/currency.utils.d.ts +4 -0
- package/lib/features/cost-calculation/engine/formulas.d.ts +7 -0
- package/lib/features/cost-calculation/engine/index.d.ts +3 -0
- package/lib/features/cost-calculation/engine/item-resolver.d.ts +4 -0
- package/lib/features/cost-calculation/engine/models.d.ts +64 -0
- package/lib/features/cost-calculation/engine/stage-builder.d.ts +4 -0
- package/lib/features/cost-calculation/hit-cost-calculation-routing.module.d.ts +7 -0
- package/lib/features/cost-calculation/hit-cost-calculation.module.d.ts +19 -0
- package/lib/features/cost-groups/components/cost-group-form.component.d.ts +33 -0
- package/lib/features/cost-groups/components/cost-groups.component.d.ts +31 -0
- package/lib/features/cost-groups/cost-group-role-l10n-helper.d.ts +7 -0
- package/lib/features/cost-groups/hit-cost-groups-routing.module.d.ts +7 -0
- package/lib/features/cost-groups/hit-cost-groups.module.d.ts +18 -0
- package/lib/features/cost-items/components/cost-item-form.component.d.ts +30 -0
- package/lib/features/cost-items/components/cost-items.component.d.ts +24 -0
- package/lib/features/cost-items/cost-item-l10n-helper.d.ts +2 -0
- package/lib/features/cost-items/hit-cost-items-routing.module.d.ts +7 -0
- package/lib/features/cost-items/hit-cost-items.module.d.ts +18 -0
- package/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.d.ts +24 -0
- package/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.d.ts +29 -0
- package/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.d.ts +2 -0
- package/lib/features/cost-parameter-categories/hit-cost-parameter-categories-routing.module.d.ts +7 -0
- package/lib/features/cost-parameter-categories/hit-cost-parameter-categories.module.d.ts +18 -0
- package/lib/features/cost-parameters/components/cost-parameter-form.component.d.ts +39 -0
- package/lib/features/cost-parameters/components/cost-parameters.component.d.ts +30 -0
- package/lib/features/cost-parameters/cost-parameter-l10n-helper.d.ts +2 -0
- package/lib/features/cost-parameters/hit-cost-parameters-routing.module.d.ts +7 -0
- package/lib/features/cost-parameters/hit-cost-parameters.module.d.ts +18 -0
- package/lib/features/exchange-rates/components/central-bank-rates.component.d.ts +7 -0
- package/lib/features/exchange-rates/components/exchange-rates.component.d.ts +13 -0
- package/lib/features/exchange-rates/components/fixed-rates-form.component.d.ts +26 -0
- package/lib/features/exchange-rates/hit-exchange-rates-routing.module.d.ts +7 -0
- package/lib/features/exchange-rates/hit-exchange-rates.module.d.ts +19 -0
- package/lib/features/index.d.ts +10 -0
- package/lib/features/packaging-materials/components/packaging-material-form.component.d.ts +29 -0
- package/lib/features/packaging-materials/components/packaging-materials.component.d.ts +23 -0
- package/lib/features/packaging-materials/hit-packaging-materials-routing.module.d.ts +7 -0
- package/lib/features/packaging-materials/hit-packaging-materials.module.d.ts +18 -0
- package/lib/features/packaging-prices/components/packaging-price-form.component.d.ts +44 -0
- package/lib/features/packaging-prices/components/packaging-price-lines.component.d.ts +26 -0
- package/lib/features/packaging-prices/components/packaging-prices.component.d.ts +27 -0
- package/lib/features/packaging-prices/hit-packaging-prices-routing.module.d.ts +7 -0
- package/lib/features/packaging-prices/hit-packaging-prices.module.d.ts +19 -0
- package/lib/features/packaging-prices/packaging-price-calculator.d.ts +8 -0
- package/lib/features/packaging-prices/packaging-price-excel.service.d.ts +15 -0
- package/lib/features/packaging-prices/packaging-price-form.factory.d.ts +5 -0
- package/lib/features/packaging-prices/packaging-price-lines.builder.d.ts +21 -0
- package/lib/features/packaging-types/components/packaging-type-form.component.d.ts +25 -0
- package/lib/features/packaging-types/components/packaging-types.component.d.ts +23 -0
- package/lib/features/packaging-types/hit-packaging-types-routing.module.d.ts +7 -0
- package/lib/features/packaging-types/hit-packaging-types.module.d.ts +18 -0
- package/lib/features/pallet-definitions/components/pallet-definition-form.component.d.ts +25 -0
- package/lib/features/pallet-definitions/components/pallet-definitions.component.d.ts +23 -0
- package/lib/features/pallet-definitions/hit-pallet-definitions-routing.module.d.ts +7 -0
- package/lib/features/pallet-definitions/hit-pallet-definitions.module.d.ts +18 -0
- package/lib/features/price-parameter-types/components/price-parameter-type-form.component.d.ts +25 -0
- package/lib/features/price-parameter-types/components/price-parameter-types.component.d.ts +23 -0
- package/lib/features/price-parameter-types/hit-price-parameter-types-routing.module.d.ts +7 -0
- package/lib/features/price-parameter-types/hit-price-parameter-types.module.d.ts +18 -0
- package/lib/features/sap-sales-persons/components/sap-sales-person-form.component.d.ts +26 -0
- package/lib/features/sap-sales-persons/components/sap-sales-persons.component.d.ts +24 -0
- package/lib/features/sap-sales-persons/hit-sap-sales-persons-routing.module.d.ts +7 -0
- package/lib/features/sap-sales-persons/hit-sap-sales-persons.module.d.ts +18 -0
- package/lib/features/settings/components/cost-settings.component.d.ts +17 -0
- package/lib/kadooglu-keops-routing.module.d.ts +7 -0
- package/lib/kadooglu-keops.module.d.ts +18 -0
- package/lib/proxy/container-definitions/dtos/index.d.ts +1 -0
- package/lib/proxy/container-definitions/dtos/models.d.ts +22 -0
- package/lib/proxy/container-definitions/index.d.ts +2 -0
- package/lib/proxy/container-loading-counts/dtos/index.d.ts +1 -0
- package/lib/proxy/container-loading-counts/dtos/models.d.ts +23 -0
- package/lib/proxy/container-loading-counts/index.d.ts +3 -0
- package/lib/proxy/container-loading-counts/loading-target-kind.enum.d.ts +5 -0
- package/lib/proxy/container-loading-scenarios/dtos/index.d.ts +1 -0
- package/lib/proxy/container-loading-scenarios/dtos/models.d.ts +22 -0
- package/lib/proxy/container-loading-scenarios/index.d.ts +3 -0
- package/lib/proxy/container-loading-scenarios/pallet-status.enum.d.ts +5 -0
- package/lib/proxy/container-mix-types/dtos/index.d.ts +1 -0
- package/lib/proxy/container-mix-types/dtos/models.d.ts +13 -0
- package/lib/proxy/container-mix-types/index.d.ts +2 -0
- package/lib/proxy/container-pallet-capacities/dtos/index.d.ts +1 -0
- package/lib/proxy/container-pallet-capacities/dtos/models.d.ts +22 -0
- package/lib/proxy/container-pallet-capacities/index.d.ts +2 -0
- package/lib/proxy/controllers/container-definition.service.d.ts +15 -0
- package/lib/proxy/controllers/container-loading-count.service.d.ts +13 -0
- package/lib/proxy/controllers/container-loading-scenario.service.d.ts +12 -0
- package/lib/proxy/controllers/container-mix-type.service.d.ts +15 -0
- package/lib/proxy/controllers/container-pallet-capacity.service.d.ts +15 -0
- package/lib/proxy/controllers/cost-group.service.d.ts +15 -0
- package/lib/proxy/controllers/cost-item.service.d.ts +15 -0
- package/lib/proxy/controllers/cost-parameter-category.service.d.ts +15 -0
- package/lib/proxy/controllers/cost-parameter.service.d.ts +15 -0
- package/lib/proxy/controllers/cost-settings.service.d.ts +12 -0
- package/lib/proxy/controllers/exchange-rate.service.d.ts +12 -0
- package/lib/proxy/controllers/index.d.ts +18 -0
- package/lib/proxy/controllers/item.service.d.ts +11 -0
- package/lib/proxy/controllers/packaging-material.service.d.ts +15 -0
- package/lib/proxy/controllers/packaging-price.service.d.ts +18 -0
- package/lib/proxy/controllers/packaging-type.service.d.ts +15 -0
- package/lib/proxy/controllers/pallet-definition.service.d.ts +15 -0
- package/lib/proxy/controllers/price-parameter-type.service.d.ts +15 -0
- package/lib/proxy/controllers/sap-sales-person.service.d.ts +12 -0
- package/lib/proxy/cost-groups/cost-group-role.enum.d.ts +7 -0
- package/lib/proxy/cost-groups/dtos/index.d.ts +1 -0
- package/lib/proxy/cost-groups/dtos/models.d.ts +21 -0
- package/lib/proxy/cost-groups/index.d.ts +3 -0
- package/lib/proxy/cost-items/cost-item-calculation-type.enum.d.ts +6 -0
- package/lib/proxy/cost-items/cost-item-system-code.enum.d.ts +17 -0
- package/lib/proxy/cost-items/dtos/index.d.ts +1 -0
- package/lib/proxy/cost-items/dtos/models.d.ts +20 -0
- package/lib/proxy/cost-items/index.d.ts +4 -0
- package/lib/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.d.ts +8 -0
- package/lib/proxy/cost-parameter-categories/dtos/index.d.ts +1 -0
- package/lib/proxy/cost-parameter-categories/dtos/models.d.ts +14 -0
- package/lib/proxy/cost-parameter-categories/index.d.ts +3 -0
- package/lib/proxy/cost-parameters/cost-parameter-status.enum.d.ts +6 -0
- package/lib/proxy/cost-parameters/dtos/index.d.ts +1 -0
- package/lib/proxy/cost-parameters/dtos/models.d.ts +44 -0
- package/lib/proxy/cost-parameters/index.d.ts +3 -0
- package/lib/proxy/currencies/currency.enum.d.ts +6 -0
- package/lib/proxy/currencies/index.d.ts +1 -0
- package/lib/proxy/exchange-rates/dtos/index.d.ts +1 -0
- package/lib/proxy/exchange-rates/dtos/models.d.ts +17 -0
- package/lib/proxy/exchange-rates/exchange-rate-source.enum.d.ts +5 -0
- package/lib/proxy/exchange-rates/index.d.ts +3 -0
- package/lib/proxy/index.d.ts +21 -0
- package/lib/proxy/items/dtos/index.d.ts +1 -0
- package/lib/proxy/items/dtos/models.d.ts +4 -0
- package/lib/proxy/items/index.d.ts +2 -0
- package/lib/proxy/packaging-materials/dtos/index.d.ts +1 -0
- package/lib/proxy/packaging-materials/dtos/models.d.ts +14 -0
- package/lib/proxy/packaging-materials/index.d.ts +2 -0
- package/lib/proxy/packaging-prices/dtos/index.d.ts +1 -0
- package/lib/proxy/packaging-prices/dtos/models.d.ts +54 -0
- package/lib/proxy/packaging-prices/index.d.ts +2 -0
- package/lib/proxy/packaging-types/dtos/index.d.ts +1 -0
- package/lib/proxy/packaging-types/dtos/models.d.ts +13 -0
- package/lib/proxy/packaging-types/index.d.ts +2 -0
- package/lib/proxy/pallet-definitions/dtos/index.d.ts +1 -0
- package/lib/proxy/pallet-definitions/dtos/models.d.ts +19 -0
- package/lib/proxy/pallet-definitions/index.d.ts +2 -0
- package/lib/proxy/price-parameter-types/dtos/index.d.ts +1 -0
- package/lib/proxy/price-parameter-types/dtos/models.d.ts +19 -0
- package/lib/proxy/price-parameter-types/index.d.ts +2 -0
- package/lib/proxy/sales-persons/dtos/index.d.ts +1 -0
- package/lib/proxy/sales-persons/dtos/models.d.ts +10 -0
- package/lib/proxy/sales-persons/index.d.ts +2 -0
- package/lib/proxy/settings/index.d.ts +1 -0
- package/lib/proxy/settings/models.d.ts +3 -0
- package/lib/utils/currency.utils.d.ts +6 -0
- package/lib/utils/date.utils.d.ts +9 -0
- package/lib/utils/number.utils.d.ts +1 -0
- package/package.json +41 -0
- package/public-api.d.ts +3 -0
- package/src/lib/proxy/README.md +17 -0
package/esm2020/lib/features/packaging-materials/components/packaging-material-form.component.mjs
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
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 "@proxy/controllers";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@abp/ng.core";
|
|
9
|
+
import * as i5 from "@abp/ng.theme.shared";
|
|
10
|
+
export class PackagingMaterialFormComponent {
|
|
11
|
+
constructor(fb, service, packagingTypeService) {
|
|
12
|
+
this.fb = fb;
|
|
13
|
+
this.service = service;
|
|
14
|
+
this.packagingTypeService = packagingTypeService;
|
|
15
|
+
this.visible = false;
|
|
16
|
+
this.mode = 'create';
|
|
17
|
+
this.current = null;
|
|
18
|
+
this.visibleChange = new EventEmitter();
|
|
19
|
+
this.saved = new EventEmitter();
|
|
20
|
+
this.saving = false;
|
|
21
|
+
this.packagingTypes = [];
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.buildForm();
|
|
25
|
+
this.loadPackagingTypes();
|
|
26
|
+
}
|
|
27
|
+
ngOnChanges(changes) {
|
|
28
|
+
if (changes['current'] || changes['mode']) {
|
|
29
|
+
this.buildForm();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
buildForm() {
|
|
33
|
+
this.form = this.fb.group({
|
|
34
|
+
name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],
|
|
35
|
+
typeCode: [this.current?.typeCode ?? '', Validators.required],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get title() {
|
|
39
|
+
return this.mode === 'create'
|
|
40
|
+
? 'Keops::PackagingMaterials:CreateTitle'
|
|
41
|
+
: 'Keops::PackagingMaterials:EditTitle';
|
|
42
|
+
}
|
|
43
|
+
onVisibleChange(value) {
|
|
44
|
+
this.visible = value;
|
|
45
|
+
this.visibleChange.emit(value);
|
|
46
|
+
}
|
|
47
|
+
loadPackagingTypes() {
|
|
48
|
+
this.packagingTypeService.getList().subscribe(data => {
|
|
49
|
+
this.packagingTypes = data;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
save() {
|
|
53
|
+
if (this.form.invalid) {
|
|
54
|
+
this.form.markAllAsTouched();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const value = this.form.value;
|
|
58
|
+
this.saving = true;
|
|
59
|
+
const request$ = this.mode === 'create'
|
|
60
|
+
? this.service.create(value)
|
|
61
|
+
: this.service.update(this.current.code, value);
|
|
62
|
+
request$.pipe(finalize(() => (this.saving = false))).subscribe({
|
|
63
|
+
next: () => {
|
|
64
|
+
this.saved.emit();
|
|
65
|
+
this.visible = false;
|
|
66
|
+
this.visibleChange.emit(false);
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
PackagingMaterialFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingMaterialFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PackagingMaterialService }, { token: i2.PackagingTypeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
PackagingMaterialFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PackagingMaterialFormComponent, selector: "lib-packaging-material-form", inputs: { visible: "visible", mode: "mode", current: "current" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"type\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <select id=\"type\" class=\"form-select\" formControlName=\"typeCode\">\n <option value=\"\">{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\n <option *ngFor=\"let packagingType of packagingTypes\" [value]=\"packagingType.code\">\n {{ packagingType.name }}\n </option>\n </select>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i5.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i5.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i5.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingMaterialFormComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'lib-packaging-material-form', template: "<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"type\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <select id=\"type\" class=\"form-select\" formControlName=\"typeCode\">\n <option value=\"\">{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\n <option *ngFor=\"let packagingType of packagingTypes\" [value]=\"packagingType.code\">\n {{ packagingType.name }}\n </option>\n </select>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n" }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PackagingMaterialService }, { type: i2.PackagingTypeService }]; }, propDecorators: { visible: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], mode: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], current: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], visibleChange: [{
|
|
83
|
+
type: Output
|
|
84
|
+
}], saved: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnaW5nLW1hdGVyaWFsLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9wYWNrYWdpbmctbWF0ZXJpYWxzL2NvbXBvbmVudHMvcGFja2FnaW5nLW1hdGVyaWFsLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9wYWNrYWdpbmctbWF0ZXJpYWxzL2NvbXBvbmVudHMvcGFja2FnaW5nLW1hdGVyaWFsLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVMxQyxNQUFNLE9BQU8sOEJBQThCO0lBWXpDLFlBQ21CLEVBQWUsRUFDZixPQUFpQyxFQUNqQyxvQkFBMEM7UUFGMUMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFkcEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxZQUFPLEdBQWdDLElBQUksQ0FBQztRQUUzQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHM0MsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztJQU1yQyxD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bXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGFja2FnaW5nTWF0ZXJpYWxTZXJ2aWNlLCBQYWNrYWdpbmdUeXBlU2VydmljZSB9IGZyb20gJ0Bwcm94eS9jb250cm9sbGVycyc7XG5pbXBvcnQgeyBQYWNrYWdpbmdNYXRlcmlhbER0byB9IGZyb20gJ0Bwcm94eS9wYWNrYWdpbmctbWF0ZXJpYWxzL2R0b3MnO1xuaW1wb3J0IHsgUGFja2FnaW5nVHlwZUR0byB9IGZyb20gJ0Bwcm94eS9wYWNrYWdpbmctdHlwZXMvZHRvcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wYWNrYWdpbmctbWF0ZXJpYWwtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWNrYWdpbmctbWF0ZXJpYWwtZm9ybS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2luZ01hdGVyaWFsRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBASW5wdXQoKSBjdXJyZW50OiBQYWNrYWdpbmdNYXRlcmlhbER0byB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZm9ybSE6IEZvcm1Hcm91cDtcbiAgc2F2aW5nID0gZmFsc2U7XG4gIHBhY2thZ2luZ1R5cGVzOiBQYWNrYWdpbmdUeXBlRHRvW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IFBhY2thZ2luZ01hdGVyaWFsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhY2thZ2luZ1R5cGVTZXJ2aWNlOiBQYWNrYWdpbmdUeXBlU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgdGhpcy5sb2FkUGFja2FnaW5nVHlwZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY3VycmVudCddIHx8IGNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLmN1cnJlbnQ/Lm5hbWUgPz8gJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApXV0sXG4gICAgICB0eXBlQ29kZTogW3RoaXMuY3VycmVudD8udHlwZUNvZGUgPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2NyZWF0ZSdcbiAgICAgID8gJ0tlb3BzOjpQYWNrYWdpbmdNYXRlcmlhbHM6Q3JlYXRlVGl0bGUnXG4gICAgICA6ICdLZW9wczo6UGFja2FnaW5nTWF0ZXJpYWxzOkVkaXRUaXRsZSc7XG4gIH1cblxuICBvblZpc2libGVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWNrYWdpbmdUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLnBhY2thZ2luZ1R5cGVTZXJ2aWNlLmdldExpc3QoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnBhY2thZ2luZ1R5cGVzID0gZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtLnZhbHVlO1xuXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuXG4gICAgY29uc3QgcmVxdWVzdCQgPVxuICAgICAgdGhpcy5tb2RlID09PSAnY3JlYXRlJ1xuICAgICAgICA/IHRoaXMuc2VydmljZS5jcmVhdGUodmFsdWUpXG4gICAgICAgIDogdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLmN1cnJlbnQhLmNvZGUhLCB2YWx1ZSk7XG5cbiAgICByZXF1ZXN0JC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLnNhdmluZyA9IGZhbHNlKSkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdCgpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGFicC1tb2RhbFxuICBbKHZpc2libGUpXT1cInZpc2libGVcIlxuICAodmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gIFtidXN5XT1cInNhdmluZ1wiXG4gIFtvcHRpb25zXT1cInsgc2l6ZTogJ21kJyB9XCJcbj5cbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgPGgzPnt7IHRpdGxlIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cbiAgICAgICAgICB7eyAnS2VvcHM6OlBhY2thZ2luZ01hdGVyaWFsczpOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgaWQ9XCJuYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJ0eXBlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ0tlb3BzOjpQYWNrYWdpbmdNYXRlcmlhbHM6VHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBpZD1cInR5cGVcIiBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZUNvZGVcIj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3sgJ0tlb3BzOjpTZWxlY3RBbk9wdGlvbicgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWNrYWdpbmdUeXBlIG9mIHBhY2thZ2luZ1R5cGVzXCIgW3ZhbHVlXT1cInBhY2thZ2luZ1R5cGUuY29kZVwiPlxuICAgICAgICAgICAge3sgcGFja2FnaW5nVHlwZS5uYW1lIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgIDxidXR0b24gYWJwQ2xvc2UgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIj5cbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxhYnAtYnV0dG9uXG4gICAgICBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiXG4gICAgICBidXR0b25DbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBbbG9hZGluZ109XCJzYXZpbmdcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm0/LmludmFsaWRcIlxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgPlxuICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgIDwvYWJwLWJ1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuIl19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Confirmation } from '@abp/ng.theme.shared';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@proxy/controllers";
|
|
5
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@abp/ng.core";
|
|
8
|
+
import * as i5 from "@abp/ng.components/page";
|
|
9
|
+
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
+
import * as i7 from "devextreme-angular";
|
|
11
|
+
import * as i8 from "devextreme-angular/ui/nested";
|
|
12
|
+
import * as i9 from "devextreme-angular/core";
|
|
13
|
+
import * as i10 from "./packaging-material-form.component";
|
|
14
|
+
export class PackagingMaterialsComponent {
|
|
15
|
+
constructor(service, toaster, confirmation) {
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.toaster = toaster;
|
|
18
|
+
this.confirmation = confirmation;
|
|
19
|
+
this.items = [];
|
|
20
|
+
this.selected = null;
|
|
21
|
+
this.formVisible = false;
|
|
22
|
+
this.formMode = 'create';
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.loadList();
|
|
26
|
+
}
|
|
27
|
+
loadList() {
|
|
28
|
+
this.service.getList().subscribe(data => {
|
|
29
|
+
this.items = data;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
openCreate() {
|
|
33
|
+
this.selected = null;
|
|
34
|
+
this.formMode = 'create';
|
|
35
|
+
this.formVisible = true;
|
|
36
|
+
}
|
|
37
|
+
openEdit(row) {
|
|
38
|
+
this.selected = row;
|
|
39
|
+
this.formMode = 'edit';
|
|
40
|
+
this.formVisible = true;
|
|
41
|
+
}
|
|
42
|
+
onSaved() {
|
|
43
|
+
this.formVisible = false;
|
|
44
|
+
this.selected = null;
|
|
45
|
+
this.toaster.success('AbpUi::SuccessfullySaved');
|
|
46
|
+
this.loadList();
|
|
47
|
+
}
|
|
48
|
+
remove(row) {
|
|
49
|
+
this.confirmation
|
|
50
|
+
.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')
|
|
51
|
+
.subscribe(status => {
|
|
52
|
+
if (status === Confirmation.Status.confirm) {
|
|
53
|
+
this.service.delete(row.code).subscribe({
|
|
54
|
+
next: () => {
|
|
55
|
+
this.toaster.success('AbpUi::SuccessfullyDeleted');
|
|
56
|
+
this.loadList();
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
PackagingMaterialsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingMaterialsComponent, deps: [{ token: i1.PackagingMaterialService }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
+
PackagingMaterialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PackagingMaterialsComponent, selector: "lib-packaging-materials", ngImport: i0, template: "<abp-page [title]=\"'Keops::PackagingMaterials:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"PackagingMaterialsToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::PackagingMaterials:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"PackagingMaterialsWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"typeName\"\n caption=\"{{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-packaging-material-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-packaging-material-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { 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.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: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.PackagingMaterialFormComponent, selector: "lib-packaging-material-form", inputs: ["visible", "mode", "current"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingMaterialsComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'lib-packaging-materials', template: "<abp-page [title]=\"'Keops::PackagingMaterials:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"PackagingMaterialsToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::PackagingMaterials:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"PackagingMaterialsWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"typeName\"\n caption=\"{{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-packaging-material-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-packaging-material-form>\n" }]
|
|
68
|
+
}], ctorParameters: function () { return [{ type: i1.PackagingMaterialService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnaW5nLW1hdGVyaWFscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS1rZW9wcy9zcmMvbGliL2ZlYXR1cmVzL3BhY2thZ2luZy1tYXRlcmlhbHMvY29tcG9uZW50cy9wYWNrYWdpbmctbWF0ZXJpYWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvcGFja2FnaW5nLW1hdGVyaWFscy9jb21wb25lbnRzL3BhY2thZ2luZy1tYXRlcmlhbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNtQixPQUFpQyxFQUNqQyxPQUF1QixFQUN2QixZQUFpQztRQUZqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUNqQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFUcEQsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFbkMsYUFBUSxHQUFnQyxJQUFJLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFzQixRQUFRLENBQUM7SUFNcEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUF5QjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBeUI7UUFDOUIsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsbUJBQW1CLENBQUM7YUFDNUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN2QyxJQUFJLEVBQUUsR0FBRyxFQUFFO3dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7d0JBQ25ELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsQ0FBQztpQkFDRixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7d0hBdkRVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLCtEQ1R4QyxtMEhBeUdBOzJGRGhHYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBQYWNrYWdpbmdNYXRlcmlhbFNlcnZpY2UgfSBmcm9tICdAcHJveHkvY29udHJvbGxlcnMnO1xuaW1wb3J0IHsgUGFja2FnaW5nTWF0ZXJpYWxEdG8gfSBmcm9tICdAcHJveHkvcGFja2FnaW5nLW1hdGVyaWFscy9kdG9zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXBhY2thZ2luZy1tYXRlcmlhbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFja2FnaW5nLW1hdGVyaWFscy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2luZ01hdGVyaWFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGl0ZW1zOiBQYWNrYWdpbmdNYXRlcmlhbER0b1tdID0gW107XG5cbiAgc2VsZWN0ZWQ6IFBhY2thZ2luZ01hdGVyaWFsRHRvIHwgbnVsbCA9IG51bGw7XG4gIGZvcm1WaXNpYmxlID0gZmFsc2U7XG4gIGZvcm1Nb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogUGFja2FnaW5nTWF0ZXJpYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRMaXN0KCk7XG4gIH1cblxuICBsb2FkTGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuaXRlbXMgPSBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICB0aGlzLmZvcm1Nb2RlID0gJ2NyZWF0ZSc7XG4gICAgdGhpcy5mb3JtVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvcGVuRWRpdChyb3c6IFBhY2thZ2luZ01hdGVyaWFsRHRvKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHJvdztcbiAgICB0aGlzLmZvcm1Nb2RlID0gJ2VkaXQnO1xuICAgIHRoaXMuZm9ybVZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgb25TYXZlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1WaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlTYXZlZCcpO1xuICAgIHRoaXMubG9hZExpc3QoKTtcbiAgfVxuXG4gIHJlbW92ZShyb3c6IFBhY2thZ2luZ01hdGVyaWFsRHRvKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25cbiAgICAgIC53YXJuKCdBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlJywgJ0FicFVpOjpBcmVZb3VTdXJlJylcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShyb3cuY29kZSEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKCdBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZCcpO1xuICAgICAgICAgICAgICB0aGlzLmxvYWRMaXN0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInS2VvcHM6OlBhY2thZ2luZ01hdGVyaWFsczpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb25cIj5cbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTBcIiBpZD1cIlBhY2thZ2luZ01hdGVyaWFsc1Rvb2xiYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0xIHB0LTAgcHQtbWQtMiBwZS0wXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidLZW9wc0Nvc3QuUGFja2FnaW5nTWF0ZXJpYWxzLkNyZWF0ZSdcIlxuICAgICAgICAgIGlkPVwiY3JlYXRlXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5DcmVhdGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyAnS2VvcHM6OlBhY2thZ2luZ01hdGVyaWFsczpOZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxuXG4gIDxkaXYgaWQ9XCJQYWNrYWdpbmdNYXRlcmlhbHNXcmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgPGR4LWRhdGEtZ3JpZFxuICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxuICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2RhdGFTb3VyY2VdPVwiaXRlbXNcIlxuICAgICAgICAgIGtleUV4cHI9XCJjb2RlXCJcbiAgICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxuICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cbiAgICAgICAgICA8ZHhvLXNlYXJjaC1wYW5lbFxuICAgICAgICAgICAgW3dpZHRoXT1cIjIwMFwiXG4gICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIlxuICAgICAgICAgID48L2R4by1zZWFyY2gtcGFuZWw+XG4gICAgICAgICAgPGR4by1wYWdlclxuICAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWxsb3dlZFBhZ2VTaXplc109XCJbMTAsIDIwLCA1MF1cIlxuICAgICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICA+PC9keG8tcGFnZXI+XG4gICAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxuICAgICAgICAgIDxkeGktY29sdW1uXG4gICAgICAgICAgICBbZml4ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93SGVhZGVyRmlsdGVyaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93SGlkaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd1NvcnRpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3B0VHBsXCJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICAgIHdpZHRoPVwiMTIwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAnb3B0VHBsJ1wiPlxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1lLTFcIj48L2k+XG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ0tlb3BzQ29zdC5QYWNrYWdpbmdNYXRlcmlhbHMuVXBkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXQocm93LmRhdGEpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ0tlb3BzQ29zdC5QYWNrYWdpbmdNYXRlcmlhbHMuRGVsZXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKHJvdy5kYXRhKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9keGktY29sdW1uPlxuICAgICAgICAgIDxkeGktY29sdW1uXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6OlBhY2thZ2luZ01hdGVyaWFsczpOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgZGF0YUZpZWxkPVwidHlwZU5hbWVcIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6UGFja2FnaW5nTWF0ZXJpYWxzOlR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICA+PC9keGktY29sdW1uPlxuICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWJwLXBhZ2U+XG5cbjxsaWItcGFja2FnaW5nLW1hdGVyaWFsLWZvcm1cbiAgKm5nSWY9XCJmb3JtVmlzaWJsZVwiXG4gIFsodmlzaWJsZSldPVwiZm9ybVZpc2libGVcIlxuICBbbW9kZV09XCJmb3JtTW9kZVwiXG4gIFtjdXJyZW50XT1cInNlbGVjdGVkXCJcbiAgKHNhdmVkKT1cIm9uU2F2ZWQoKVwiXG4+PC9saWItcGFja2FnaW5nLW1hdGVyaWFsLWZvcm0+XG4iXX0=
|
|
@@ -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 { PackagingMaterialsComponent } from './components/packaging-materials.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
const routes = [
|
|
8
|
+
{
|
|
9
|
+
path: '',
|
|
10
|
+
component: PackagingMaterialsComponent,
|
|
11
|
+
canActivate: [AuthGuard, PermissionGuard],
|
|
12
|
+
data: {
|
|
13
|
+
requiredPolicy: 'KeopsCost.PackagingMaterials',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
export class HitPackagingMaterialsRoutingModule {
|
|
18
|
+
}
|
|
19
|
+
HitPackagingMaterialsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
HitPackagingMaterialsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
21
|
+
HitPackagingMaterialsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
imports: [RouterModule.forChild(routes)],
|
|
26
|
+
exports: [RouterModule],
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhY2thZ2luZy1tYXRlcmlhbHMtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS1rZW9wcy9zcmMvbGliL2ZlYXR1cmVzL3BhY2thZ2luZy1tYXRlcmlhbHMvaGl0LXBhY2thZ2luZy1tYXRlcmlhbHMtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQUV6RixNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDJCQUEyQjtRQUN0QyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDO1FBQ3pDLElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRSw4QkFBOEI7U0FDL0M7S0FDRjtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sa0NBQWtDOzsrSEFBbEMsa0NBQWtDO2dJQUFsQyxrQ0FBa0Msd0NBRm5DLFlBQVk7Z0lBRVgsa0NBQWtDLFlBSG5DLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsa0NBQWtDO2tCQUo5QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgUGFja2FnaW5nTWF0ZXJpYWxzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhY2thZ2luZy1tYXRlcmlhbHMuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IFBhY2thZ2luZ01hdGVyaWFsc0NvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcbiAgICBkYXRhOiB7XG4gICAgICByZXF1aXJlZFBvbGljeTogJ0tlb3BzQ29zdC5QYWNrYWdpbmdNYXRlcmlhbHMnLFxuICAgIH0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgSGl0UGFja2FnaW5nTWF0ZXJpYWxzUm91dGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
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 { PackagingMaterialsComponent } from './components/packaging-materials.component';
|
|
10
|
+
import { PackagingMaterialFormComponent } from './components/packaging-material-form.component';
|
|
11
|
+
import { HitPackagingMaterialsRoutingModule } from './hit-packaging-materials-routing.module';
|
|
12
|
+
import { DxDataGridModule } from 'devextreme-angular';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class HitPackagingMaterialsModule {
|
|
15
|
+
}
|
|
16
|
+
HitPackagingMaterialsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
HitPackagingMaterialsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsModule, declarations: [PackagingMaterialsComponent, PackagingMaterialFormComponent], imports: [CommonModule,
|
|
18
|
+
FormsModule,
|
|
19
|
+
ReactiveFormsModule,
|
|
20
|
+
CoreModule,
|
|
21
|
+
ThemeSharedModule,
|
|
22
|
+
PageModule,
|
|
23
|
+
CommercialUiModule,
|
|
24
|
+
NgbDropdownModule,
|
|
25
|
+
HitPackagingMaterialsRoutingModule,
|
|
26
|
+
DxDataGridModule] });
|
|
27
|
+
HitPackagingMaterialsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsModule, imports: [CommonModule,
|
|
28
|
+
FormsModule,
|
|
29
|
+
ReactiveFormsModule,
|
|
30
|
+
CoreModule,
|
|
31
|
+
ThemeSharedModule,
|
|
32
|
+
PageModule,
|
|
33
|
+
CommercialUiModule,
|
|
34
|
+
NgbDropdownModule,
|
|
35
|
+
HitPackagingMaterialsRoutingModule,
|
|
36
|
+
DxDataGridModule] });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsModule, decorators: [{
|
|
38
|
+
type: NgModule,
|
|
39
|
+
args: [{
|
|
40
|
+
declarations: [PackagingMaterialsComponent, PackagingMaterialFormComponent],
|
|
41
|
+
imports: [
|
|
42
|
+
CommonModule,
|
|
43
|
+
FormsModule,
|
|
44
|
+
ReactiveFormsModule,
|
|
45
|
+
CoreModule,
|
|
46
|
+
ThemeSharedModule,
|
|
47
|
+
PageModule,
|
|
48
|
+
CommercialUiModule,
|
|
49
|
+
NgbDropdownModule,
|
|
50
|
+
HitPackagingMaterialsRoutingModule,
|
|
51
|
+
DxDataGridModule,
|
|
52
|
+
],
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
export function loadHitPackagingMaterialsModuleAsChild() {
|
|
56
|
+
return Promise.resolve(HitPackagingMaterialsModule);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhY2thZ2luZy1tYXRlcmlhbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9wYWNrYWdpbmctbWF0ZXJpYWxzL2hpdC1wYWNrYWdpbmctbWF0ZXJpYWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDaEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBaUJ0RCxNQUFNLE9BQU8sMkJBQTJCOzt3SEFBM0IsMkJBQTJCO3lIQUEzQiwyQkFBMkIsaUJBZHZCLDJCQUEyQixFQUFFLDhCQUE4QixhQUV4RSxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLGtDQUFrQztRQUNsQyxnQkFBZ0I7eUhBR1AsMkJBQTJCLFlBWnBDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsa0NBQWtDO1FBQ2xDLGdCQUFnQjsyRkFHUCwyQkFBMkI7a0JBZnZDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsOEJBQThCLENBQUM7b0JBQzNFLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsa0NBQWtDO3dCQUNsQyxnQkFBZ0I7cUJBQ2pCO2lCQUNGOztBQUdELE1BQU0sVUFBVSxzQ0FBc0M7SUFDcEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgUGFja2FnaW5nTWF0ZXJpYWxzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhY2thZ2luZy1tYXRlcmlhbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2luZ01hdGVyaWFsRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWNrYWdpbmctbWF0ZXJpYWwtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGl0UGFja2FnaW5nTWF0ZXJpYWxzUm91dGluZ01vZHVsZSB9IGZyb20gJy4vaGl0LXBhY2thZ2luZy1tYXRlcmlhbHMtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRHhEYXRhR3JpZE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BhY2thZ2luZ01hdGVyaWFsc0NvbXBvbmVudCwgUGFja2FnaW5nTWF0ZXJpYWxGb3JtQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgUGFnZU1vZHVsZSxcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgSGl0UGFja2FnaW5nTWF0ZXJpYWxzUm91dGluZ01vZHVsZSxcbiAgICBEeERhdGFHcmlkTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBIaXRQYWNrYWdpbmdNYXRlcmlhbHNNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRIaXRQYWNrYWdpbmdNYXRlcmlhbHNNb2R1bGVBc0NoaWxkKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEhpdFBhY2thZ2luZ01hdGVyaWFsc01vZHVsZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { finalize } from 'rxjs/operators';
|
|
3
|
+
import { ExchangeRateSource } from '@proxy/exchange-rates/exchange-rate-source.enum';
|
|
4
|
+
import { createPackagingPriceForm, toPackagingPriceInput, } from '../packaging-price-form.factory';
|
|
5
|
+
import { downloadBlob } from '@abp/ng.core';
|
|
6
|
+
import { CURRENCY_OPTIONS } from '../../../utils/currency.utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@proxy/controllers";
|
|
10
|
+
import * as i3 from "../packaging-price-excel.service";
|
|
11
|
+
import * as i4 from "../packaging-price-lines.builder";
|
|
12
|
+
import * as i5 from "@abp/ng.core";
|
|
13
|
+
import * as i6 from "@abp/ng.theme.shared";
|
|
14
|
+
import * as i7 from "@angular/common";
|
|
15
|
+
import * as i8 from "devextreme-angular";
|
|
16
|
+
import * as i9 from "./packaging-price-lines.component";
|
|
17
|
+
export class PackagingPriceFormComponent {
|
|
18
|
+
constructor(fb, service, exchangeRateService, excelService, linesBuilder, localization, toaster) {
|
|
19
|
+
this.fb = fb;
|
|
20
|
+
this.service = service;
|
|
21
|
+
this.exchangeRateService = exchangeRateService;
|
|
22
|
+
this.excelService = excelService;
|
|
23
|
+
this.linesBuilder = linesBuilder;
|
|
24
|
+
this.localization = localization;
|
|
25
|
+
this.toaster = toaster;
|
|
26
|
+
this.visible = false;
|
|
27
|
+
this.mode = 'create';
|
|
28
|
+
this.current = null;
|
|
29
|
+
this.typeOptions = [];
|
|
30
|
+
this.visibleChange = new EventEmitter();
|
|
31
|
+
this.saved = new EventEmitter();
|
|
32
|
+
this.saving = false;
|
|
33
|
+
this.exporting = false;
|
|
34
|
+
this.importing = false;
|
|
35
|
+
this.lineRows = [];
|
|
36
|
+
this.currencyOptions = CURRENCY_OPTIONS;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.buildForm();
|
|
40
|
+
if (this.mode === 'edit') {
|
|
41
|
+
this.loadLines(this.current?.materialTypeCode ?? null);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
get title() {
|
|
45
|
+
return this.mode === 'create'
|
|
46
|
+
? 'Keops::PackagingPrices:CreateTitle'
|
|
47
|
+
: 'Keops::PackagingPrices:EditTitle';
|
|
48
|
+
}
|
|
49
|
+
buildForm() {
|
|
50
|
+
this.form = createPackagingPriceForm(this.fb, this.current, this.mode);
|
|
51
|
+
const recompute = () => this.linesBuilder.recompute(this.lineRows, this.rates());
|
|
52
|
+
this.form.get('usdRate').valueChanges.subscribe(recompute);
|
|
53
|
+
this.form.get('eurRate').valueChanges.subscribe(recompute);
|
|
54
|
+
this.form.get('materialTypeCode').valueChanges.subscribe(code => this.loadLines(code));
|
|
55
|
+
if (this.mode === 'create') {
|
|
56
|
+
this.prefillRates();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
rates() {
|
|
60
|
+
return {
|
|
61
|
+
usdRate: this.form.get('usdRate').value,
|
|
62
|
+
eurRate: this.form.get('eurRate').value,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
prefillRates() {
|
|
66
|
+
this.exchangeRateService.get().subscribe(dto => {
|
|
67
|
+
const isCentralBank = dto.source === ExchangeRateSource.CentralBank;
|
|
68
|
+
const usdRate = isCentralBank ? dto.cbExchangeRate?.usdBuyingRate : dto.fixedUsdRate;
|
|
69
|
+
const eurRate = isCentralBank ? dto.cbExchangeRate?.eurBuyingRate : dto.fixedEurRate;
|
|
70
|
+
this.form.patchValue({
|
|
71
|
+
usdRate: usdRate ?? 0,
|
|
72
|
+
eurRate: eurRate ?? 0,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// Loads the type's materials, merged with saved prices on edit (backend does the merge).
|
|
77
|
+
loadLines(materialTypeCode) {
|
|
78
|
+
if (!materialTypeCode) {
|
|
79
|
+
this.lineRows = [];
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.service.getMergedLines(this.current?.docEntry, materialTypeCode).subscribe(lines => {
|
|
83
|
+
this.lineRows = lines.map(line => this.linesBuilder.build(line, () => this.rates()));
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
onVisibleChange(value) {
|
|
87
|
+
this.visible = value;
|
|
88
|
+
this.visibleChange.emit(value);
|
|
89
|
+
}
|
|
90
|
+
save() {
|
|
91
|
+
if (this.form.invalid) {
|
|
92
|
+
this.form.markAllAsTouched();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.saving = true;
|
|
96
|
+
const input = toPackagingPriceInput(this.form, this.lineRows);
|
|
97
|
+
const request$ = this.mode === 'create'
|
|
98
|
+
? this.service.create(input)
|
|
99
|
+
: this.service.update(this.current.docEntry, input);
|
|
100
|
+
request$.pipe(finalize(() => (this.saving = false))).subscribe({
|
|
101
|
+
next: () => {
|
|
102
|
+
this.saved.emit();
|
|
103
|
+
this.visible = false;
|
|
104
|
+
this.visibleChange.emit(false);
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
exportToExcel() {
|
|
109
|
+
this.exporting = true;
|
|
110
|
+
this.excelService
|
|
111
|
+
.exportLines(this.current?.docEntry, this.form.get('materialTypeCode').value ?? undefined)
|
|
112
|
+
.pipe(finalize(() => (this.exporting = false)))
|
|
113
|
+
.subscribe(blob => downloadBlob(blob, `${this.localization.instant('Keops::PackagingPrices:Title')}.xlsx`));
|
|
114
|
+
}
|
|
115
|
+
// Import only fills the grid: patch parsed rows onto matching lines; the user still saves.
|
|
116
|
+
importFromExcel(file) {
|
|
117
|
+
this.importing = true;
|
|
118
|
+
this.excelService
|
|
119
|
+
.importLines(file)
|
|
120
|
+
.pipe(finalize(() => (this.importing = false)))
|
|
121
|
+
.subscribe(lines => {
|
|
122
|
+
const byCode = new Map(lines.map(line => [line.materialCode, line]));
|
|
123
|
+
// Patch the loaded rows by material code; codes not present in the grid are ignored.
|
|
124
|
+
let matched = 0;
|
|
125
|
+
this.lineRows.forEach(row => {
|
|
126
|
+
const imported = byCode.get(row.materialCode);
|
|
127
|
+
if (imported) {
|
|
128
|
+
row.group.patchValue({ price: imported.price, currency: imported.currency });
|
|
129
|
+
matched++;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
this.toaster.success(this.localization.instant('Keops::PackagingPrices:ImportSucceeded', `${matched}`));
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
PackagingPriceFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingPriceFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PackagingPriceService }, { token: i2.ExchangeRateService }, { token: i3.PackagingPriceExcelService }, { token: i4.PackagingPriceLinesBuilder }, { token: i5.LocalizationService }, { token: i6.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
+
PackagingPriceFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PackagingPriceFormComponent, selector: "lib-packaging-price-form", inputs: { visible: "visible", mode: "mode", current: "current", typeOptions: "typeOptions" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, ngImport: i0, template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <div class=\"flex-fill position-relative\">\r\n <h3 class=\"mb-0\">{{ title | abpLocalization }}</h3>\r\n <small\r\n class=\"text-muted text-nowrap position-absolute top-50 start-50 translate-middle\"\r\n *ngIf=\"mode === 'edit'\"\r\n >\r\n {{ 'Keops::PackagingPrices:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PackagingPrices:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate! | shortDate) ?? '-' }}\r\n </small>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"materialTypeCode\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"materialTypeCode\" class=\"form-select\" formControlName=\"materialTypeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:FromDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"fromDate\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"toDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:ToDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"toDate\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"usdRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:UsdRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"usdRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"usdRate\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"eurRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:EurRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"eurRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"eurRate\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Lines' | abpLocalization }}\r\n </label>\r\n <lib-packaging-price-lines\r\n [rows]=\"lineRows\"\r\n [currencyOptions]=\"currencyOptions\"\r\n [exporting]=\"exporting\"\r\n [importing]=\"importing\"\r\n [selectedTypeCode]=\"form.get('materialTypeCode')?.value\"\r\n (exportClick)=\"exportToExcel()\"\r\n (importFile)=\"importFromExcel($event)\"\r\n ></lib-packaging-price-lines>\r\n </div>\r\n </div>\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: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { 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: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i8.DxDateBoxComponent, selector: "dx-date-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "adaptivityEnabled", "applyButtonText", "applyValueMode", "buttons", "calendarOptions", "cancelButtonText", "dateOutOfRangeMessage", "dateSerializationFormat", "deferRendering", "disabled", "disabledDates", "displayFormat", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "interval", "invalidDateMessage", "isValid", "label", "labelMode", "max", "maxLength", "min", "name", "opened", "openOnFieldClick", "pickerType", "placeholder", "readOnly", "rtlEnabled", "showAnalogClock", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "todayButtonText", "type", "useMaskBehavior", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "adaptivityEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "calendarOptionsChange", "cancelButtonTextChange", "dateOutOfRangeMessageChange", "dateSerializationFormatChange", "deferRenderingChange", "disabledChange", "disabledDatesChange", "displayFormatChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "intervalChange", "invalidDateMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "maxLengthChange", "minChange", "nameChange", "openedChange", "openOnFieldClickChange", "pickerTypeChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showAnalogClockChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "todayButtonTextChange", "typeChange", "useMaskBehaviorChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i9.PackagingPriceLinesComponent, selector: "lib-packaging-price-lines", inputs: ["rows", "currencyOptions", "exporting", "importing", "selectedTypeCode"], outputs: ["exportClick", "importFile"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i5.ShortDatePipe, name: "shortDate" }] });
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackagingPriceFormComponent, decorators: [{
|
|
139
|
+
type: Component,
|
|
140
|
+
args: [{ selector: 'lib-packaging-price-form', template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <div class=\"flex-fill position-relative\">\r\n <h3 class=\"mb-0\">{{ title | abpLocalization }}</h3>\r\n <small\r\n class=\"text-muted text-nowrap position-absolute top-50 start-50 translate-middle\"\r\n *ngIf=\"mode === 'edit'\"\r\n >\r\n {{ 'Keops::PackagingPrices:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PackagingPrices:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate! | shortDate) ?? '-' }}\r\n </small>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"materialTypeCode\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"materialTypeCode\" class=\"form-select\" formControlName=\"materialTypeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:FromDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"fromDate\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"toDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:ToDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"toDate\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"usdRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:UsdRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"usdRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"usdRate\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"eurRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:EurRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"eurRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"eurRate\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Lines' | abpLocalization }}\r\n </label>\r\n <lib-packaging-price-lines\r\n [rows]=\"lineRows\"\r\n [currencyOptions]=\"currencyOptions\"\r\n [exporting]=\"exporting\"\r\n [importing]=\"importing\"\r\n [selectedTypeCode]=\"form.get('materialTypeCode')?.value\"\r\n (exportClick)=\"exportToExcel()\"\r\n (importFile)=\"importFromExcel($event)\"\r\n ></lib-packaging-price-lines>\r\n </div>\r\n </div>\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" }]
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PackagingPriceService }, { type: i2.ExchangeRateService }, { type: i3.PackagingPriceExcelService }, { type: i4.PackagingPriceLinesBuilder }, { type: i5.LocalizationService }, { type: i6.ToasterService }]; }, propDecorators: { visible: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], mode: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], current: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], typeOptions: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], visibleChange: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], saved: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}] } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnaW5nLXByaWNlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9wYWNrYWdpbmctcHJpY2VzL2NvbXBvbmVudHMvcGFja2FnaW5nLXByaWNlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUta2VvcHMvc3JjL2xpYi9mZWF0dXJlcy9wYWNrYWdpbmctcHJpY2VzL2NvbXBvbmVudHMvcGFja2FnaW5nLXByaWNlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFPckYsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixxQkFBcUIsR0FDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFNakUsTUFBTSxPQUFPLDJCQUEyQjtJQWlCdEMsWUFDbUIsRUFBZSxFQUNmLE9BQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxZQUF3QyxFQUN4QyxZQUF3QyxFQUN4QyxZQUFpQyxFQUNqQyxPQUF1QjtRQU52QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBNEI7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OzJGRDFIYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMEJBQTBCO3lUQUkzQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXhjaGFuZ2VSYXRlU2VydmljZSwgUGFja2FnaW5nUHJpY2VTZXJ2aWNlIH0gZnJvbSAnQHByb3h5L2NvbnRyb2xsZXJzJztcclxuaW1wb3J0IHsgUGFja2FnaW5nUHJpY2VEdG8gfSBmcm9tICdAcHJveHkvcGFja2FnaW5nLXByaWNlcy9kdG9zJztcclxuaW1wb3J0IHsgUGFja2FnaW5nVHlwZUR0byB9IGZyb20gJ0Bwcm94eS9wYWNrYWdpbmctdHlwZXMvZHRvcyc7XHJcbmltcG9ydCB7IEV4Y2hhbmdlUmF0ZVNvdXJjZSB9IGZyb20gJ0Bwcm94eS9leGNoYW5nZS1yYXRlcy9leGNoYW5nZS1yYXRlLXNvdXJjZS5lbnVtJztcclxuaW1wb3J0IHsgUGFja2FnaW5nUHJpY2VFeGNlbFNlcnZpY2UgfSBmcm9tICcuLi9wYWNrYWdpbmctcHJpY2UtZXhjZWwuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgTGluZVJvdyxcclxuICBQYWNrYWdpbmdQcmljZUxpbmVzQnVpbGRlcixcclxuICBSYXRlU25hcHNob3QsXHJcbn0gZnJvbSAnLi4vcGFja2FnaW5nLXByaWNlLWxpbmVzLmJ1aWxkZXInO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVBhY2thZ2luZ1ByaWNlRm9ybSxcclxuICB0b1BhY2thZ2luZ1ByaWNlSW5wdXQsXHJcbn0gZnJvbSAnLi4vcGFja2FnaW5nLXByaWNlLWZvcm0uZmFjdG9yeSc7XHJcbmltcG9ydCB7IGRvd25sb2FkQmxvYiwgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDVVJSRU5DWV9PUFRJT05TIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY3VycmVuY3kudXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcGFja2FnaW5nLXByaWNlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWNrYWdpbmctcHJpY2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWNrYWdpbmdQcmljZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHZpc2libGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnQ6IFBhY2thZ2luZ1ByaWNlRHRvIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgdHlwZU9wdGlvbnM6IFBhY2thZ2luZ1R5cGVEdG9bXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgZXhwb3J0aW5nID0gZmFsc2U7XHJcbiAgaW1wb3J0aW5nID0gZmFsc2U7XHJcbiAgbGluZVJvd3M6IExpbmVSb3dbXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBjdXJyZW5jeU9wdGlvbnMgPSBDVVJSRU5DWV9PUFRJT05TO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBQYWNrYWdpbmdQcmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2hhbmdlUmF0ZVNlcnZpY2U6IEV4Y2hhbmdlUmF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2VsU2VydmljZTogUGFja2FnaW5nUHJpY2VFeGNlbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmVzQnVpbGRlcjogUGFja2FnaW5nUHJpY2VMaW5lc0J1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbjogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5sb2FkTGluZXModGhpcy5jdXJyZW50Py5tYXRlcmlhbFR5cGVDb2RlID8/IG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnY3JlYXRlJ1xyXG4gICAgICA/ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOkNyZWF0ZVRpdGxlJ1xyXG4gICAgICA6ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOkVkaXRUaXRsZSc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybSA9IGNyZWF0ZVBhY2thZ2luZ1ByaWNlRm9ybSh0aGlzLmZiLCB0aGlzLmN1cnJlbnQsIHRoaXMubW9kZSk7XHJcblxyXG4gICAgY29uc3QgcmVjb21wdXRlID0gKCkgPT4gdGhpcy5saW5lc0J1aWxkZXIucmVjb21wdXRlKHRoaXMubGluZVJvd3MsIHRoaXMucmF0ZXMoKSk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd1c2RSYXRlJykhLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUocmVjb21wdXRlKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2V1clJhdGUnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZWNvbXB1dGUpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnbWF0ZXJpYWxUeXBlQ29kZScpIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNvZGUgPT4gdGhpcy5sb2FkTGluZXMoY29kZSkpO1xyXG5cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdjcmVhdGUnKSB7XHJcbiAgICAgIHRoaXMucHJlZmlsbFJhdGVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJhdGVzKCk6IFJhdGVTbmFwc2hvdCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2RSYXRlOiB0aGlzLmZvcm0uZ2V0KCd1c2RSYXRlJykhLnZhbHVlLFxyXG4gICAgICBldXJSYXRlOiB0aGlzLmZvcm0uZ2V0KCdldXJSYXRlJykhLnZhbHVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlZmlsbFJhdGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leGNoYW5nZVJhdGVTZXJ2aWNlLmdldCgpLnN1YnNjcmliZShkdG8gPT4ge1xyXG4gICAgICBjb25zdCBpc0NlbnRyYWxCYW5rID0gZHRvLnNvdXJjZSA9PT0gRXhjaGFuZ2VSYXRlU291cmNlLkNlbnRyYWxCYW5rO1xyXG4gICAgICBjb25zdCB1c2RSYXRlID0gaXNDZW50cmFsQmFuayA/IGR0by5jYkV4Y2hhbmdlUmF0ZT8udXNkQnV5aW5nUmF0ZSA6IGR0by5maXhlZFVzZFJhdGU7XHJcbiAgICAgIGNvbnN0IGV1clJhdGUgPSBpc0NlbnRyYWxCYW5rID8gZHRvLmNiRXhjaGFuZ2VSYXRlPy5ldXJCdXlpbmdSYXRlIDogZHRvLmZpeGVkRXVyUmF0ZTtcclxuXHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICB1c2RSYXRlOiB1c2RSYXRlID8/IDAsXHJcbiAgICAgICAgZXVyUmF0ZTogZXVyUmF0ZSA/PyAwLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gTG9hZHMgdGhlIHR5cGUncyBtYXRlcmlhbHMsIG1lcmdlZCB3aXRoIHNhdmVkIHByaWNlcyBvbiBlZGl0IChiYWNrZW5kIGRvZXMgdGhlIG1lcmdlKS5cclxuICBwcml2YXRlIGxvYWRMaW5lcyhtYXRlcmlhbFR5cGVDb2RlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAoIW1hdGVyaWFsVHlwZUNvZGUpIHtcclxuICAgICAgdGhpcy5saW5lUm93cyA9IFtdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldE1lcmdlZExpbmVzKHRoaXMuY3VycmVudD8uZG9jRW50cnkhLCBtYXRlcmlhbFR5cGVDb2RlKS5zdWJzY3JpYmUobGluZXMgPT4ge1xyXG4gICAgICB0aGlzLmxpbmVSb3dzID0gbGluZXMubWFwKGxpbmUgPT4gdGhpcy5saW5lc0J1aWxkZXIuYnVpbGQobGluZSwgKCkgPT4gdGhpcy5yYXRlcygpKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVmlzaWJsZUNoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSB0b1BhY2thZ2luZ1ByaWNlSW5wdXQodGhpcy5mb3JtLCB0aGlzLmxpbmVSb3dzKTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0JCA9XHJcbiAgICAgIHRoaXMubW9kZSA9PT0gJ2NyZWF0ZSdcclxuICAgICAgICA/IHRoaXMuc2VydmljZS5jcmVhdGUoaW5wdXQpXHJcbiAgICAgICAgOiB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuY3VycmVudCEuZG9jRW50cnkhLCBpbnB1dCk7XHJcblxyXG4gICAgcmVxdWVzdCQucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZpbmcgPSBmYWxzZSkpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBvcnRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5leGNlbFNlcnZpY2VcclxuICAgICAgLmV4cG9ydExpbmVzKHRoaXMuY3VycmVudD8uZG9jRW50cnksIHRoaXMuZm9ybS5nZXQoJ21hdGVyaWFsVHlwZUNvZGUnKSEudmFsdWUgPz8gdW5kZWZpbmVkKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5leHBvcnRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKGJsb2IgPT5cclxuICAgICAgICBkb3dubG9hZEJsb2IoYmxvYiwgYCR7dGhpcy5sb2NhbGl6YXRpb24uaW5zdGFudCgnS2VvcHM6OlBhY2thZ2luZ1ByaWNlczpUaXRsZScpfS54bHN4YCksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBJbXBvcnQgb25seSBmaWxscyB0aGUgZ3JpZDogcGF0Y2ggcGFyc2VkIHJvd3Mgb250byBtYXRjaGluZyBsaW5lczsgdGhlIHVzZXIgc3RpbGwgc2F2ZXMuXHJcbiAgaW1wb3J0RnJvbUV4Y2VsKGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1wb3J0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZXhjZWxTZXJ2aWNlXHJcbiAgICAgIC5pbXBvcnRMaW5lcyhmaWxlKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pbXBvcnRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKGxpbmVzID0+IHtcclxuICAgICAgICBjb25zdCBieUNvZGUgPSBuZXcgTWFwKGxpbmVzLm1hcChsaW5lID0+IFtsaW5lLm1hdGVyaWFsQ29kZSwgbGluZV0pKTtcclxuXHJcbiAgICAgICAgLy8gUGF0Y2ggdGhlIGxvYWRlZCByb3dzIGJ5IG1hdGVyaWFsIGNvZGU7IGNvZGVzIG5vdCBwcmVzZW50IGluIHRoZSBncmlkIGFyZSBpZ25vcmVkLlxyXG4gICAgICAgIGxldCBtYXRjaGVkID0gMDtcclxuICAgICAgICB0aGlzLmxpbmVSb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICAgIGNvbnN0IGltcG9ydGVkID0gYnlDb2RlLmdldChyb3cubWF0ZXJpYWxDb2RlKTtcclxuICAgICAgICAgIGlmIChpbXBvcnRlZCkge1xyXG4gICAgICAgICAgICByb3cuZ3JvdXAucGF0Y2hWYWx1ZSh7IHByaWNlOiBpbXBvcnRlZC5wcmljZSwgY3VycmVuY3k6IGltcG9ydGVkLmN1cnJlbmN5IH0pO1xyXG4gICAgICAgICAgICBtYXRjaGVkKys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5sb2NhbGl6YXRpb24uaW5zdGFudCgnS2VvcHM6OlBhY2thZ2luZ1ByaWNlczpJbXBvcnRTdWNjZWVkZWQnLCBgJHttYXRjaGVkfWApLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLW1vZGFsXHJcbiAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2J1c3ldPVwic2F2aW5nXCJcclxuICBbb3B0aW9uc109XCJ7IHNpemU6ICd4bCcgfVwiXHJcbj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWZpbGwgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgPGgzIGNsYXNzPVwibWItMFwiPnt7IHRpdGxlIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICAgICAgPHNtYWxsXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LW11dGVkIHRleHQtbm93cmFwIHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlXCJcclxuICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdlZGl0J1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnS2VvcHM6OlBhY2thZ2luZ1ByaWNlczpEb2NOdW0nIHwgYWJwTG9jYWxpemF0aW9uIH19OiB7eyBjdXJyZW50Py5kb2NOdW0gPz8gJy0nIH19IMK3XHJcbiAgICAgICAge3sgJ0tlb3BzOjpQYWNrYWdpbmdQcmljZXM6RG9jRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX06XHJcbiAgICAgICAge3sgKGN1cnJlbnQ/LmRvY0RhdGUhIHwgc2hvcnREYXRlKSA/PyAnLScgfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICB7eyAnS2VvcHM6OlBhY2thZ2luZ1ByaWNlczpOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJuYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwibWF0ZXJpYWxUeXBlQ29kZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOlR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgaWQ9XCJtYXRlcmlhbFR5cGVDb2RlXCIgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cIm1hdGVyaWFsVHlwZUNvZGVcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBkaXNhYmxlZCBoaWRkZW4+e3sgJ0tlb3BzOjpTZWxlY3RBbk9wdGlvbicgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIHR5cGVPcHRpb25zXCIgW25nVmFsdWVdPVwidHlwZS5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyB0eXBlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZnJvbURhdGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICB7eyAnS2VvcHM6OlBhY2thZ2luZ1ByaWNlczpGcm9tRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPGR4LWRhdGUtYm94XHJcbiAgICAgICAgICAgICAgaWQ9XCJmcm9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgIGRhdGVTZXJpYWxpemF0aW9uRm9ybWF0PVwieXl5eS1NTS1kZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZnJvbURhdGVcIlxyXG4gICAgICAgICAgICA+PC9keC1kYXRlLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRvRGF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOlRvRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPGR4LWRhdGUtYm94XHJcbiAgICAgICAgICAgICAgaWQ9XCJ0b0RhdGVcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgICAgICBkYXRlU2VyaWFsaXphdGlvbkZvcm1hdD1cInl5eXktTU0tZGRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRvRGF0ZVwiXHJcbiAgICAgICAgICAgID48L2R4LWRhdGUtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNkUmF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOlVzZFJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwidXNkUmF0ZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgc3RlcD1cImFueVwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZFJhdGVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXVyUmF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOkV1clJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiZXVyUmF0ZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgc3RlcD1cImFueVwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImV1clJhdGVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmcm9tRGF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdLZW9wczo6UGFja2FnaW5nUHJpY2VzOkxpbmVzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8bGliLXBhY2thZ2luZy1wcmljZS1saW5lc1xyXG4gICAgICAgICAgICAgIFtyb3dzXT1cImxpbmVSb3dzXCJcclxuICAgICAgICAgICAgICBbY3VycmVuY3lPcHRpb25zXT1cImN1cnJlbmN5T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW2V4cG9ydGluZ109XCJleHBvcnRpbmdcIlxyXG4gICAgICAgICAgICAgIFtpbXBvcnRpbmddPVwiaW1wb3J0aW5nXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRUeXBlQ29kZV09XCJmb3JtLmdldCgnbWF0ZXJpYWxUeXBlQ29kZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGV4cG9ydENsaWNrKT1cImV4cG9ydFRvRXhjZWwoKVwiXHJcbiAgICAgICAgICAgICAgKGltcG9ydEZpbGUpPVwiaW1wb3J0RnJvbUV4Y2VsKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9saWItcGFja2FnaW5nLXByaWNlLWxpbmVzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiBhYnBDbG9zZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGFicC1idXR0b25cclxuICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxyXG4gICAgICBidXR0b25DbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgIFtsb2FkaW5nXT1cInNhdmluZ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtPy5pbnZhbGlkXCJcclxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
|