@vendure/admin-ui 2.1.0-next.2 → 2.1.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/components/collection-detail/collection-detail.component.d.ts +3 -1
- package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +6 -4
- package/catalog/components/facet-detail/facet-detail.component.d.ts +3 -1
- package/catalog/components/product-detail/product-detail.component.d.ts +3 -1
- package/catalog/components/product-list/product-list.component.d.ts +1 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
- package/catalog/components/stock-location-list/stock-location-list.component.d.ts +1 -1
- package/catalog/providers/product-detail/product-detail.service.d.ts +1 -1
- package/core/common/base-detail.component.d.ts +11 -1
- package/core/common/component-registry-types.d.ts +2 -1
- package/core/common/utilities/custom-field-default-value.d.ts +6 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +2 -0
- package/core/extension/add-action-bar-item.d.ts +28 -0
- package/core/extension/add-nav-menu-item.d.ts +60 -0
- package/core/extension/components/angular-route.component.d.ts +6 -0
- package/core/extension/components/route.component.d.ts +13 -0
- package/core/extension/providers/page-metadata.service.d.ts +9 -0
- package/core/{providers/bulk-action-registry → extension}/register-bulk-action.d.ts +1 -1
- package/core/extension/register-custom-detail-component.d.ts +10 -0
- package/core/{providers/dashboard-widget → extension}/register-dashboard-widget.d.ts +5 -1
- package/core/extension/register-data-table-component.d.ts +44 -0
- package/core/extension/register-form-input-component.d.ts +50 -0
- package/core/extension/register-history-entry-component.d.ts +11 -0
- package/core/extension/register-route-component.d.ts +59 -0
- package/core/extension/types.d.ts +11 -0
- package/core/providers/component-registry/component-registry.service.d.ts +6 -3
- package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +2 -1
- package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -9
- package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +1 -10
- package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +17 -1
- package/core/providers/modal/modal.service.d.ts +1 -3
- package/core/providers/nav-builder/nav-builder.service.d.ts +0 -85
- package/core/public_api.d.ts +16 -3
- package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +3 -3
- package/core/shared/components/data-table-2/data-table-column.component.d.ts +2 -2
- package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
- package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +0 -1
- package/core/shared/components/data-table-2/data-table2.component.d.ts +9 -2
- package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +2 -3
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +13 -4
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +15 -0
- package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +3 -3
- package/core/shared/shared.module.d.ts +25 -25
- package/customer/components/customer-detail/customer-detail.component.d.ts +3 -1
- package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +3 -1
- package/customer/components/customer-history/customer-history-entry-host.component.d.ts +2 -3
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +1 -3
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +3 -3
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +3 -3
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +8 -5
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +3 -3
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +3 -3
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +3 -3
- package/esm2022/core/common/base-detail.component.mjs +9 -7
- package/esm2022/core/common/component-registry-types.mjs +1 -1
- package/esm2022/core/common/generated-types.mjs +1 -1
- package/esm2022/core/common/utilities/create-updated-translatable.mjs +5 -23
- package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +16 -10
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
- package/esm2022/core/components/main-nav/main-nav.component.mjs +3 -3
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +1 -1
- package/esm2022/core/core.module.mjs +2 -2
- package/esm2022/core/extension/add-action-bar-item.mjs +38 -0
- package/esm2022/core/extension/add-nav-menu-item.mjs +79 -0
- package/esm2022/core/extension/components/angular-route.component.mjs +22 -0
- package/esm2022/core/extension/components/route.component.mjs +59 -0
- package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
- package/esm2022/core/extension/register-bulk-action.mjs +63 -0
- package/esm2022/core/extension/register-custom-detail-component.mjs +20 -0
- package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
- package/esm2022/core/extension/register-data-table-component.mjs +50 -0
- package/esm2022/core/extension/register-form-input-component.mjs +60 -0
- package/esm2022/core/extension/register-history-entry-component.mjs +21 -0
- package/esm2022/core/extension/register-route-component.mjs +44 -0
- package/esm2022/core/extension/types.mjs +2 -0
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +3 -3
- package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +1 -1
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +2 -19
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +2 -20
- package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +1 -1
- package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +1 -8
- package/esm2022/core/providers/data-table/data-table-filter.mjs +1 -1
- package/esm2022/core/providers/modal/modal.service.mjs +5 -7
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +2 -113
- package/esm2022/core/public_api.mjs +17 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +3 -3
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +3 -3
- package/esm2022/core/shared/components/card/card.component.mjs +3 -3
- package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +13 -9
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +5 -6
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +2 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +23 -10
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +2 -2
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +6 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +2 -2
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +6 -8
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +3 -3
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +2 -2
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +97 -5
- package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +20 -16
- package/esm2022/core/shared/shared.module.mjs +14 -13
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +5 -5
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -2
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +5 -7
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +10 -7
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -7
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +3 -3
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +2 -2
- package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +7 -9
- package/esm2022/order/components/order-list/order-list.component.mjs +3 -3
- package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
- package/esm2022/react/components/react-custom-column.component.mjs +25 -0
- package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
- package/esm2022/react/components/react-form-input.component.mjs +24 -0
- package/esm2022/react/components/react-route.component.mjs +26 -0
- package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
- package/esm2022/react/public_api.mjs +19 -0
- package/esm2022/react/react-components/Card.mjs +28 -0
- package/esm2022/react/react-components/Link.mjs +30 -0
- package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
- package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
- package/esm2022/react/react-hooks/use-injector.mjs +33 -0
- package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
- package/esm2022/react/react-hooks/use-query.mjs +124 -0
- package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
- package/esm2022/react/register-react-data-table-component.mjs +62 -0
- package/esm2022/react/register-react-form-input-component.mjs +27 -0
- package/esm2022/react/register-react-route-component.mjs +25 -0
- package/esm2022/react/types.mjs +2 -0
- package/esm2022/react/vendure-admin-ui-react.mjs +5 -0
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +3 -3
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +10 -10
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +3 -3
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
- package/esm2022/settings/components/country-list/country-list.component.mjs +3 -3
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +3 -3
- package/esm2022/settings/components/profile/profile.component.mjs +3 -3
- package/esm2022/settings/components/role-list/role-list.component.mjs +3 -3
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
- package/esm2022/settings/settings.routes.mjs +1 -1
- package/esm2022/system/components/job-list/job-list.component.mjs +3 -3
- package/fesm2022/vendure-admin-ui-catalog.mjs +34 -31
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +659 -346
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +19 -18
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +5 -8
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +4 -4
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +14 -16
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +641 -0
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -0
- package/fesm2022/vendure-admin-ui-settings.mjs +41 -41
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +2 -2
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +3 -1
- package/order/components/order-detail/order-detail.component.d.ts +3 -1
- package/order/components/order-history/order-history-entry-host.component.d.ts +2 -3
- package/package.json +21 -13
- package/react/components/react-custom-column.component.d.ts +17 -0
- package/react/components/react-custom-detail.component.d.ts +24 -0
- package/react/components/react-form-input.component.d.ts +20 -0
- package/react/components/react-route.component.d.ts +10 -0
- package/react/directives/react-component-host.directive.d.ts +23 -0
- package/react/index.d.ts +5 -0
- package/react/public_api.d.ts +17 -0
- package/react/react-components/Card.d.ts +24 -0
- package/react/react-components/Link.d.ts +22 -0
- package/react/react-hooks/use-detail-component-data.d.ts +32 -0
- package/react/react-hooks/use-form-control.d.ts +29 -0
- package/react/react-hooks/use-injector.d.ts +24 -0
- package/react/react-hooks/use-page-metadata.d.ts +30 -0
- package/react/react-hooks/use-query.d.ts +92 -0
- package/react/register-react-custom-detail-component.d.ts +38 -0
- package/react/register-react-data-table-component.d.ts +81 -0
- package/react/register-react-form-input-component.d.ts +9 -0
- package/react/register-react-route-component.d.ts +26 -0
- package/react/types.d.ts +17 -0
- package/settings/components/admin-detail/admin-detail.component.d.ts +3 -1
- package/settings/components/channel-detail/channel-detail.component.d.ts +5 -3
- package/settings/components/country-detail/country-detail.component.d.ts +3 -1
- package/settings/components/global-settings/global-settings.component.d.ts +3 -1
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +3 -1
- package/settings/components/profile/profile.component.d.ts +3 -1
- package/settings/components/seller-detail/seller-detail.component.d.ts +3 -1
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +3 -1
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +3 -1
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +3 -1
- package/settings/components/zone-detail/zone-detail.component.d.ts +3 -1
- package/static/i18n-messages/cs.json +789 -789
- package/static/i18n-messages/de.json +789 -789
- package/static/i18n-messages/en.json +789 -789
- package/static/i18n-messages/es.json +789 -789
- package/static/i18n-messages/fr.json +789 -789
- package/static/i18n-messages/he.json +789 -789
- package/static/i18n-messages/it.json +789 -789
- package/static/i18n-messages/pl.json +789 -789
- package/static/i18n-messages/pt_BR.json +789 -789
- package/static/i18n-messages/pt_PT.json +789 -789
- package/static/i18n-messages/ru.json +789 -789
- package/static/i18n-messages/uk.json +789 -789
- package/static/i18n-messages/zh_Hans.json +789 -789
- package/static/i18n-messages/zh_Hant.json +789 -789
- package/static/styles/_mixins.scss +4 -4
- package/static/styles/global/_forms.scss +2 -2
- package/static/styles/rtl.scss +1 -1
- package/static/styles/theme/dark.scss +1 -16
- package/static/styles/theme/default.scss +1 -0
- package/static/theme.min.css +1 -1
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -64
- package/esm2022/core/providers/bulk-action-registry/register-bulk-action.mjs +0 -63
- package/esm2022/core/providers/dashboard-widget/register-dashboard-widget.mjs +0 -32
- package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +0 -102
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// This file was generated by the build-public-api.ts script
|
|
2
|
+
export * from './components/react-custom-column.component';
|
|
3
|
+
export * from './components/react-custom-detail.component';
|
|
4
|
+
export * from './components/react-form-input.component';
|
|
5
|
+
export * from './components/react-route.component';
|
|
6
|
+
export * from './directives/react-component-host.directive';
|
|
7
|
+
export * from './react-components/Card';
|
|
8
|
+
export * from './react-components/Link';
|
|
9
|
+
export * from './react-hooks/use-detail-component-data';
|
|
10
|
+
export * from './react-hooks/use-form-control';
|
|
11
|
+
export * from './react-hooks/use-injector';
|
|
12
|
+
export * from './react-hooks/use-page-metadata';
|
|
13
|
+
export * from './react-hooks/use-query';
|
|
14
|
+
export * from './register-react-custom-detail-component';
|
|
15
|
+
export * from './register-react-data-table-component';
|
|
16
|
+
export * from './register-react-form-input-component';
|
|
17
|
+
export * from './register-react-route-component';
|
|
18
|
+
export * from './types';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSB0aGUgYnVpbGQtcHVibGljLWFwaS50cyBzY3JpcHRcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1jdXN0b20tY29sdW1uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcmVhY3QtY3VzdG9tLWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0LWZvcm0taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1yb3V0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWN0LWNvbXBvbmVudHMvQ2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWN0LWNvbXBvbmVudHMvTGluayc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWN0LWhvb2tzL3VzZS1kZXRhaWwtY29tcG9uZW50LWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdC1ob29rcy91c2UtZm9ybS1jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3QtaG9va3MvdXNlLWluamVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3QtaG9va3MvdXNlLXBhZ2UtbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdC1ob29rcy91c2UtcXVlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci1yZWFjdC1jdXN0b20tZGV0YWlsLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyLXJlYWN0LWRhdGEtdGFibGUtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXItcmVhY3QtZm9ybS1pbnB1dC1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci1yZWFjdC1yb3V0ZS1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* A card component which can be used to group related content.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { Card } from '@vendure/admin-ui/react';
|
|
9
|
+
*
|
|
10
|
+
* export function MyComponent() {
|
|
11
|
+
* return (
|
|
12
|
+
* <Card title='My Title'>
|
|
13
|
+
* <p>Some content</p>
|
|
14
|
+
* </Card>
|
|
15
|
+
* );
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @docsCategory react-components
|
|
20
|
+
*/
|
|
21
|
+
export function Card(props) {
|
|
22
|
+
return (React.createElement("div", { className: 'vdr-card' },
|
|
23
|
+
React.createElement("div", { className: `card-container ${props.paddingX !== false ? 'padding-x' : ''}` },
|
|
24
|
+
props.title && (React.createElement("div", { className: 'title-row' },
|
|
25
|
+
React.createElement("div", { className: "title" }, props.title))),
|
|
26
|
+
React.createElement("div", { className: "contents" }, props.children))));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3JlYWN0LWNvbXBvbmVudHMvQ2FyZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUVqRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUFnRTtJQUNqRixPQUFPLENBQ0gsNkJBQUssU0FBUyxFQUFFLFVBQVU7UUFDdEIsNkJBQUssU0FBUyxFQUFFLGtCQUFrQixLQUFLLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUNaLDZCQUFLLFNBQVMsRUFBRSxXQUFXO2dCQUN2Qiw2QkFBSyxTQUFTLEVBQUMsT0FBTyxJQUFFLEtBQUssQ0FBQyxLQUFLLENBQU8sQ0FDeEMsQ0FDVDtZQUNELDZCQUFLLFNBQVMsRUFBQyxVQUFVLElBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBTyxDQUM5QyxDQUNKLENBQ1QsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tICdyZWFjdCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgY2FyZCBjb21wb25lbnQgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZ3JvdXAgcmVsYXRlZCBjb250ZW50LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyBDYXJkIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKlxyXG4gKiBleHBvcnQgZnVuY3Rpb24gTXlDb21wb25lbnQoKSB7XHJcbiAqICAgcmV0dXJuIChcclxuICogICAgIDxDYXJkIHRpdGxlPSdNeSBUaXRsZSc+XHJcbiAqICAgICAgIDxwPlNvbWUgY29udGVudDwvcD5cclxuICogICAgIDwvQ2FyZD5cclxuICogICApO1xyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHJlYWN0LWNvbXBvbmVudHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBDYXJkKHByb3BzOiBQcm9wc1dpdGhDaGlsZHJlbjx7IHRpdGxlPzogc3RyaW5nOyBwYWRkaW5nWD86IGJvb2xlYW4gfT4pIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd2ZHItY2FyZCd9PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGNhcmQtY29udGFpbmVyICR7cHJvcHMucGFkZGluZ1ggIT09IGZhbHNlID8gJ3BhZGRpbmcteCcgOiAnJ31gfT5cclxuICAgICAgICAgICAgICAgIHtwcm9wcy50aXRsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0aXRsZS1yb3cnfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPntwcm9wcy50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRzXCI+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Router } from '@angular/router';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useInjector } from '../react-hooks/use-injector';
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* A React component which renders an anchor tag and navigates to the specified route when clicked.
|
|
7
|
+
* This is useful when you want to use a React component in a Vendure UI plugin which navigates to
|
|
8
|
+
* a route in the admin-ui.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { Link } from '@vendure/admin-ui/react';
|
|
13
|
+
*
|
|
14
|
+
* export const MyReactComponent = () => {
|
|
15
|
+
* return <Link href="/extensions/my-extension">Go to my extension</Link>;
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @docsCategory react-components
|
|
20
|
+
*/
|
|
21
|
+
export function Link(props) {
|
|
22
|
+
const router = useInjector(Router);
|
|
23
|
+
const { href, ...rest } = props;
|
|
24
|
+
function onClick(e) {
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
void router.navigateByUrl(href);
|
|
27
|
+
}
|
|
28
|
+
return (React.createElement("a", { href: href, onClick: onClick, ...rest }, props.children));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3JlYWN0LWNvbXBvbmVudHMvTGluay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sS0FBNEIsTUFBTSxPQUFPLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUFnRTtJQUNqRixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVoQyxTQUFTLE9BQU8sQ0FBQyxDQUFrRDtRQUMvRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQ0gsMkJBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxLQUFNLElBQUksSUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FDZixDQUNQLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IFJlYWN0LCB7IFByb3BzV2l0aENoaWxkcmVuIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyB1c2VJbmplY3RvciB9IGZyb20gJy4uL3JlYWN0LWhvb2tzL3VzZS1pbmplY3Rvcic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgUmVhY3QgY29tcG9uZW50IHdoaWNoIHJlbmRlcnMgYW4gYW5jaG9yIHRhZyBhbmQgbmF2aWdhdGVzIHRvIHRoZSBzcGVjaWZpZWQgcm91dGUgd2hlbiBjbGlja2VkLlxyXG4gKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHVzZSBhIFJlYWN0IGNvbXBvbmVudCBpbiBhIFZlbmR1cmUgVUkgcGx1Z2luIHdoaWNoIG5hdmlnYXRlcyB0b1xyXG4gKiBhIHJvdXRlIGluIHRoZSBhZG1pbi11aS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgTGluayB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICpcclxuICogZXhwb3J0IGNvbnN0IE15UmVhY3RDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICByZXR1cm4gPExpbmsgaHJlZj1cIi9leHRlbnNpb25zL215LWV4dGVuc2lvblwiPkdvIHRvIG15IGV4dGVuc2lvbjwvTGluaz47XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIExpbmsocHJvcHM6IFByb3BzV2l0aENoaWxkcmVuPHsgaHJlZjogc3RyaW5nOyBbcHJvcHM6IHN0cmluZ106IGFueSB9Pikge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdXNlSW5qZWN0b3IoUm91dGVyKTtcclxuICAgIGNvbnN0IHsgaHJlZiwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcblxyXG4gICAgZnVuY3Rpb24gb25DbGljayhlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50LCBNb3VzZUV2ZW50Pikge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB2b2lkIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGEgaHJlZj17aHJlZn0gb25DbGljaz17b25DbGlja30gey4uLnJlc3R9PlxyXG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XHJcbiAgICAgICAgPC9hPlxyXG4gICAgKTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useContext, useEffect, useState } from 'react';
|
|
2
|
+
import { HostedComponentContext } from '../directives/react-component-host.directive';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Provides the data available to React-based CustomDetailComponents.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { Card, useDetailComponentData } from '\@vendure/admin-ui/react';
|
|
10
|
+
* import React from 'react';
|
|
11
|
+
*
|
|
12
|
+
* export function CustomDetailComponent(props: any) {
|
|
13
|
+
* const { entity, detailForm } = useDetailComponentData();
|
|
14
|
+
* const updateName = () => {
|
|
15
|
+
* detailForm.get('name')?.setValue('New name');
|
|
16
|
+
* detailForm.markAsDirty();
|
|
17
|
+
* };
|
|
18
|
+
* return (
|
|
19
|
+
* <Card title={'Custom Detail Component'}>
|
|
20
|
+
* <button className="button" onClick={updateName}>
|
|
21
|
+
* Update name
|
|
22
|
+
* </button>
|
|
23
|
+
* <pre>{JSON.stringify(entity, null, 2)}</pre>
|
|
24
|
+
* </Card>
|
|
25
|
+
* );
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @docsCategory react-hooks
|
|
30
|
+
*/
|
|
31
|
+
export function useDetailComponentData() {
|
|
32
|
+
const context = useContext(HostedComponentContext);
|
|
33
|
+
if (!context.detailForm || !context.entity$) {
|
|
34
|
+
throw new Error(`The useDetailComponentData hook can only be used within a CustomDetailComponent`);
|
|
35
|
+
}
|
|
36
|
+
const [entity, setEntity] = useState(null);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const subscription = context.entity$.subscribe(value => {
|
|
39
|
+
setEntity(value);
|
|
40
|
+
});
|
|
41
|
+
return () => subscription.unsubscribe();
|
|
42
|
+
}, []);
|
|
43
|
+
return {
|
|
44
|
+
entity,
|
|
45
|
+
detailForm: context.detailForm,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRldGFpbC1jb21wb25lbnQtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3JlYWN0LWhvb2tzL3VzZS1kZXRhaWwtY29tcG9uZW50LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3RGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FDdEIsc0JBQXNCLENBQ3lDLENBQUM7SUFFcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztLQUN0RztJQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPO1FBQ0gsTUFBTTtRQUNOLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtLQUNqQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFJlYWN0Q3VzdG9tRGV0YWlsQ29tcG9uZW50Q29udGV4dCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVhY3QtY3VzdG9tLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIb3N0ZWRDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWFjdC1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3N0ZWRSZWFjdENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFByb3ZpZGVzIHRoZSBkYXRhIGF2YWlsYWJsZSB0byBSZWFjdC1iYXNlZCBDdXN0b21EZXRhaWxDb21wb25lbnRzLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyBDYXJkLCB1c2VEZXRhaWxDb21wb25lbnREYXRhIH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbiAqXHJcbiAqIGV4cG9ydCBmdW5jdGlvbiBDdXN0b21EZXRhaWxDb21wb25lbnQocHJvcHM6IGFueSkge1xyXG4gKiAgICAgY29uc3QgeyBlbnRpdHksIGRldGFpbEZvcm0gfSA9IHVzZURldGFpbENvbXBvbmVudERhdGEoKTtcclxuICogICAgIGNvbnN0IHVwZGF0ZU5hbWUgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgZGV0YWlsRm9ybS5nZXQoJ25hbWUnKT8uc2V0VmFsdWUoJ05ldyBuYW1lJyk7XHJcbiAqICAgICAgICAgZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gKiAgICAgfTtcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICAgICAgPENhcmQgdGl0bGU9eydDdXN0b20gRGV0YWlsIENvbXBvbmVudCd9PlxyXG4gKiAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ1dHRvblwiIG9uQ2xpY2s9e3VwZGF0ZU5hbWV9PlxyXG4gKiAgICAgICAgICAgICAgICAgVXBkYXRlIG5hbWVcclxuICogICAgICAgICAgICAgPC9idXR0b24+XHJcbiAqICAgICAgICAgICAgIDxwcmU+e0pTT04uc3RyaW5naWZ5KGVudGl0eSwgbnVsbCwgMil9PC9wcmU+XHJcbiAqICAgICAgICAgPC9DYXJkPlxyXG4gKiAgICAgKTtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZURldGFpbENvbXBvbmVudERhdGEoKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChcclxuICAgICAgICBIb3N0ZWRDb21wb25lbnRDb250ZXh0LFxyXG4gICAgKSBhcyBIb3N0ZWRSZWFjdENvbXBvbmVudENvbnRleHQ8UmVhY3RDdXN0b21EZXRhaWxDb21wb25lbnRDb250ZXh0PjtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQuZGV0YWlsRm9ybSB8fCAhY29udGV4dC5lbnRpdHkkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdXNlRGV0YWlsQ29tcG9uZW50RGF0YSBob29rIGNhbiBvbmx5IGJlIHVzZWQgd2l0aGluIGEgQ3VzdG9tRGV0YWlsQ29tcG9uZW50YCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2VudGl0eSwgc2V0RW50aXR5XSA9IHVzZVN0YXRlKG51bGwpO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY29udGV4dC5lbnRpdHkkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIHNldEVudGl0eSh2YWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZW50aXR5LFxyXG4gICAgICAgIGRldGFpbEZvcm06IGNvbnRleHQuZGV0YWlsRm9ybSxcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useContext, useEffect, useState } from 'react';
|
|
2
|
+
import { HostedComponentContext } from '../directives/react-component-host.directive';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Provides access to the current FormControl value and a method to update the value.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { useFormControl, ReactFormInputProps } from '\@vendure/admin-ui/react';
|
|
10
|
+
* import React from 'react';
|
|
11
|
+
*
|
|
12
|
+
* export function ReactNumberInput({ readonly }: ReactFormInputProps) {
|
|
13
|
+
* const { value, setFormValue } = useFormControl();
|
|
14
|
+
*
|
|
15
|
+
* const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
16
|
+
* setFormValue(val);
|
|
17
|
+
* };
|
|
18
|
+
* return (
|
|
19
|
+
* <div>
|
|
20
|
+
* <input readOnly={readonly} type="number" onChange={handleChange} value={value} />
|
|
21
|
+
* </div>
|
|
22
|
+
* );
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @docsCategory react-hooks
|
|
27
|
+
*/
|
|
28
|
+
export function useFormControl() {
|
|
29
|
+
const context = useContext(HostedComponentContext);
|
|
30
|
+
if (!context) {
|
|
31
|
+
throw new Error('No HostedComponentContext found');
|
|
32
|
+
}
|
|
33
|
+
if (!isFormInputContext(context)) {
|
|
34
|
+
throw new Error('useFormControl() can only be used in a form input component');
|
|
35
|
+
}
|
|
36
|
+
const { formControl, config } = context;
|
|
37
|
+
const [value, setValue] = useState(formControl.value ?? 0);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const subscription = formControl.valueChanges.subscribe(v => {
|
|
40
|
+
setValue(v);
|
|
41
|
+
});
|
|
42
|
+
return () => {
|
|
43
|
+
subscription.unsubscribe();
|
|
44
|
+
};
|
|
45
|
+
}, []);
|
|
46
|
+
function setFormValue(newValue) {
|
|
47
|
+
formControl.setValue(coerceFormValue(newValue, config.type));
|
|
48
|
+
formControl.markAsDirty();
|
|
49
|
+
}
|
|
50
|
+
return { value, setFormValue };
|
|
51
|
+
}
|
|
52
|
+
function isFormInputContext(context) {
|
|
53
|
+
return context.config && context.formControl;
|
|
54
|
+
}
|
|
55
|
+
function coerceFormValue(value, type) {
|
|
56
|
+
switch (type) {
|
|
57
|
+
case 'int':
|
|
58
|
+
case 'float':
|
|
59
|
+
return Number(value);
|
|
60
|
+
case 'boolean':
|
|
61
|
+
return Boolean(value);
|
|
62
|
+
default:
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3JlYWN0LWhvb2tzL3VzZS1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3RGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUMxQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0tBQ3REO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNsRjtJQUNELE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFM0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNYLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hELFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxFQUFFO1lBQ1IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztJQUNOLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLFNBQVMsWUFBWSxDQUFDLFFBQWE7UUFDL0IsV0FBVyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUF1QixDQUFDLENBQUMsQ0FBQztRQUNoRixXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQ3ZCLE9BQW9DO0lBRXBDLE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFVLEVBQUUsSUFBcUI7SUFDdEQsUUFBUSxJQUFJLEVBQUU7UUFDVixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssT0FBTztZQUNSLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLEtBQUssU0FBUztZQUNWLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCO1lBQ0ksT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tRmllbGRUeXBlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBIb3N0ZWRDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWFjdC1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3N0ZWRSZWFjdENvbXBvbmVudENvbnRleHQsIFJlYWN0Rm9ybUlucHV0T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogUHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBjdXJyZW50IEZvcm1Db250cm9sIHZhbHVlIGFuZCBhIG1ldGhvZCB0byB1cGRhdGUgdGhlIHZhbHVlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VGb3JtQ29udHJvbCwgUmVhY3RGb3JtSW5wdXRQcm9wcyB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG4gKlxyXG4gKiBleHBvcnQgZnVuY3Rpb24gUmVhY3ROdW1iZXJJbnB1dCh7IHJlYWRvbmx5IH06IFJlYWN0Rm9ybUlucHV0UHJvcHMpIHtcclxuICogICAgIGNvbnN0IHsgdmFsdWUsIHNldEZvcm1WYWx1ZSB9ID0gdXNlRm9ybUNvbnRyb2woKTtcclxuICpcclxuICogICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xyXG4gKiAgICAgICAgIHNldEZvcm1WYWx1ZSh2YWwpO1xyXG4gKiAgICAgfTtcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICAgICAgPGRpdj5cclxuICogICAgICAgICAgICAgPGlucHV0IHJlYWRPbmx5PXtyZWFkb25seX0gdHlwZT1cIm51bWJlclwiIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9IHZhbHVlPXt2YWx1ZX0gLz5cclxuICogICAgICAgICA8L2Rpdj5cclxuICogICAgICk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtaG9va3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtQ29udHJvbCgpIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBIb3N0ZWRDb21wb25lbnRDb250ZXh0IGZvdW5kJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRm9ybUlucHV0Q29udGV4dChjb250ZXh0KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlRm9ybUNvbnRyb2woKSBjYW4gb25seSBiZSB1c2VkIGluIGEgZm9ybSBpbnB1dCBjb21wb25lbnQnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZm9ybUNvbnRyb2wsIGNvbmZpZyB9ID0gY29udGV4dDtcclxuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoZm9ybUNvbnRyb2wudmFsdWUgPz8gMCk7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBmb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZSh2KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9O1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldEZvcm1WYWx1ZShuZXdWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoY29lcmNlRm9ybVZhbHVlKG5ld1ZhbHVlLCBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGUpKTtcclxuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IHZhbHVlLCBzZXRGb3JtVmFsdWUgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGb3JtSW5wdXRDb250ZXh0KFxyXG4gICAgY29udGV4dDogSG9zdGVkUmVhY3RDb21wb25lbnRDb250ZXh0LFxyXG4pOiBjb250ZXh0IGlzIEhvc3RlZFJlYWN0Q29tcG9uZW50Q29udGV4dDxSZWFjdEZvcm1JbnB1dE9wdGlvbnM+IHtcclxuICAgIHJldHVybiBjb250ZXh0LmNvbmZpZyAmJiBjb250ZXh0LmZvcm1Db250cm9sO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb2VyY2VGb3JtVmFsdWUodmFsdWU6IGFueSwgdHlwZTogQ3VzdG9tRmllbGRUeXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgIGNhc2UgJ2Zsb2F0JzpcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { HostedComponentContext } from '../directives/react-component-host.directive';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Exposes the Angular injector which allows the injection of services into React components.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { useInjector } from '\@vendure/admin-ui/react';
|
|
10
|
+
* import { NotificationService } from '\@vendure/admin-ui/core';
|
|
11
|
+
*
|
|
12
|
+
* export const MyComponent = () => {
|
|
13
|
+
* const notificationService = useInjector(NotificationService);
|
|
14
|
+
*
|
|
15
|
+
* const handleClick = () => {
|
|
16
|
+
* notificationService.success('Hello world!');
|
|
17
|
+
* };
|
|
18
|
+
* // ...
|
|
19
|
+
* return <div>...</div>;
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @docsCategory react-hooks
|
|
24
|
+
*/
|
|
25
|
+
export function useInjector(token) {
|
|
26
|
+
const context = useContext(HostedComponentContext);
|
|
27
|
+
const instance = context?.injector.get(token);
|
|
28
|
+
if (!instance) {
|
|
29
|
+
throw new Error(`Could not inject ${token.name ?? token.toString()}`);
|
|
30
|
+
}
|
|
31
|
+
return instance;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWluamVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLWluamVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQVUsS0FBdUI7SUFDeEQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQXFCLEtBQWEsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNsRjtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlclRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IEhvc3RlZENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEV4cG9zZXMgdGhlIEFuZ3VsYXIgaW5qZWN0b3Igd2hpY2ggYWxsb3dzIHRoZSBpbmplY3Rpb24gb2Ygc2VydmljZXMgaW50byBSZWFjdCBjb21wb25lbnRzLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VJbmplY3RvciB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuICpcclxuICogZXhwb3J0IGNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4ge1xyXG4gKiAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VydmljZSA9IHVzZUluamVjdG9yKE5vdGlmaWNhdGlvblNlcnZpY2UpO1xyXG4gKlxyXG4gKiAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKCdIZWxsbyB3b3JsZCEnKTtcclxuICogICAgIH07XHJcbiAqICAgICAvLyAuLi5cclxuICogICAgIHJldHVybiA8ZGl2Pi4uLjwvZGl2PjtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUluamVjdG9yPFQgPSBhbnk+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+KTogVCB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChIb3N0ZWRDb21wb25lbnRDb250ZXh0KTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY29udGV4dD8uaW5qZWN0b3IuZ2V0KHRva2VuKTtcclxuICAgIGlmICghaW5zdGFuY2UpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBpbmplY3QgJHsodG9rZW4gYXMgYW55KS5uYW1lID8/IHRva2VuLnRvU3RyaW5nKCl9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW5zdGFuY2U7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { HostedComponentContext } from '../directives/react-component-host.directive';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Provides functions for setting the current page title and breadcrumb.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { usePageMetadata } from '\@vendure/admin-ui/react';
|
|
10
|
+
* import { useEffect } from 'react';
|
|
11
|
+
*
|
|
12
|
+
* export const MyComponent = () => {
|
|
13
|
+
* const { setTitle, setBreadcrumb } = usePageMetadata();
|
|
14
|
+
* useEffect(() => {
|
|
15
|
+
* setTitle('My Page');
|
|
16
|
+
* setBreadcrumb([
|
|
17
|
+
* { link: ['./parent'], label: 'Parent Page' },
|
|
18
|
+
* { link: ['./'], label: 'This Page' },
|
|
19
|
+
* ]);
|
|
20
|
+
* }, []);
|
|
21
|
+
* // ...
|
|
22
|
+
* return <div>...</div>;
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @docsCategory react-hooks
|
|
27
|
+
*/
|
|
28
|
+
export function usePageMetadata() {
|
|
29
|
+
const context = useContext(HostedComponentContext);
|
|
30
|
+
const setBreadcrumb = (newValue) => {
|
|
31
|
+
context.pageMetadataService?.setBreadcrumbs(newValue);
|
|
32
|
+
};
|
|
33
|
+
const setTitle = (newTitle) => {
|
|
34
|
+
context.pageMetadataService?.setTitle(newTitle);
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
setBreadcrumb,
|
|
38
|
+
setTitle,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXBhZ2UtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlYWN0L3NyYy9yZWFjdC1ob29rcy91c2UtcGFnZS1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3RGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUMzQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQ3RCLHNCQUFzQixDQUNrQyxDQUFDO0lBQzdELE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBeUIsRUFBRSxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDbEMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0gsYUFBYTtRQUNiLFFBQVE7S0FDWCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFkY3J1bWJWYWx1ZSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBIb3N0ZWRDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWFjdC1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3N0ZWRSZWFjdENvbXBvbmVudENvbnRleHQsIFJlYWN0Um91dGVDb21wb25lbnRPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBQcm92aWRlcyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgdGhlIGN1cnJlbnQgcGFnZSB0aXRsZSBhbmQgYnJlYWRjcnVtYi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlUGFnZU1ldGFkYXRhIH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcclxuICpcclxuICogZXhwb3J0IGNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4ge1xyXG4gKiAgICAgY29uc3QgeyBzZXRUaXRsZSwgc2V0QnJlYWRjcnVtYiB9ID0gdXNlUGFnZU1ldGFkYXRhKCk7XHJcbiAqICAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gKiAgICAgICAgIHNldFRpdGxlKCdNeSBQYWdlJyk7XHJcbiAqICAgICAgICAgc2V0QnJlYWRjcnVtYihbXHJcbiAqICAgICAgICAgICAgIHsgbGluazogWycuL3BhcmVudCddLCBsYWJlbDogJ1BhcmVudCBQYWdlJyB9LFxyXG4gKiAgICAgICAgICAgICB7IGxpbms6IFsnLi8nXSwgbGFiZWw6ICdUaGlzIFBhZ2UnIH0sXHJcbiAqICAgICAgICAgXSk7XHJcbiAqICAgICB9LCBbXSk7XHJcbiAqICAgICAvLyAuLi5cclxuICogICAgIHJldHVybiA8ZGl2Pi4uLjwvZGl2PjtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVBhZ2VNZXRhZGF0YSgpIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFxyXG4gICAgICAgIEhvc3RlZENvbXBvbmVudENvbnRleHQsXHJcbiAgICApIGFzIEhvc3RlZFJlYWN0Q29tcG9uZW50Q29udGV4dDxSZWFjdFJvdXRlQ29tcG9uZW50T3B0aW9ucz47XHJcbiAgICBjb25zdCBzZXRCcmVhZGNydW1iID0gKG5ld1ZhbHVlOiBCcmVhZGNydW1iVmFsdWUpID0+IHtcclxuICAgICAgICBjb250ZXh0LnBhZ2VNZXRhZGF0YVNlcnZpY2U/LnNldEJyZWFkY3J1bWJzKG5ld1ZhbHVlKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBzZXRUaXRsZSA9IChuZXdUaXRsZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29udGV4dC5wYWdlTWV0YWRhdGFTZXJ2aWNlPy5zZXRUaXRsZShuZXdUaXRsZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc2V0QnJlYWRjcnVtYixcclxuICAgICAgICBzZXRUaXRsZSxcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { DataService } from '@vendure/admin-ui/core';
|
|
2
|
+
import { useCallback, useContext, useEffect, useState } from 'react';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import { tap } from 'rxjs/operators';
|
|
5
|
+
import { HostedComponentContext } from '../directives/react-component-host.directive';
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* A React hook which provides access to the results of a GraphQL query.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { useQuery } from '\@vendure/admin-ui/react';
|
|
13
|
+
* import { gql } from 'graphql-tag';
|
|
14
|
+
*
|
|
15
|
+
* const GET_PRODUCT = gql`
|
|
16
|
+
* query GetProduct($id: ID!) {
|
|
17
|
+
* product(id: $id) {
|
|
18
|
+
* id
|
|
19
|
+
* name
|
|
20
|
+
* description
|
|
21
|
+
* }
|
|
22
|
+
* }`;
|
|
23
|
+
*
|
|
24
|
+
* export const MyComponent = () => {
|
|
25
|
+
* const { data, loading, error } = useQuery(GET_PRODUCT, { id: '1' });
|
|
26
|
+
*
|
|
27
|
+
* if (loading) return <div>Loading...</div>;
|
|
28
|
+
* if (error) return <div>Error! { error }</div>;
|
|
29
|
+
* return (
|
|
30
|
+
* <div>
|
|
31
|
+
* <h1>{data.product.name}</h1>
|
|
32
|
+
* <p>{data.product.description}</p>
|
|
33
|
+
* </div>
|
|
34
|
+
* );
|
|
35
|
+
* };
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @docsCategory react-hooks
|
|
39
|
+
*/
|
|
40
|
+
export function useQuery(query, variables) {
|
|
41
|
+
const { data, loading, error, runQuery } = useDataService((dataService, vars) => dataService.query(query, vars).stream$);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
const subscription = runQuery(variables).subscribe();
|
|
44
|
+
return () => subscription.unsubscribe();
|
|
45
|
+
}, [runQuery]);
|
|
46
|
+
const refetch = (variables) => firstValueFrom(runQuery(variables));
|
|
47
|
+
return { data, loading, error, refetch };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @description
|
|
51
|
+
* A React hook which allows you to execute a GraphQL mutation.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { useMutation } from '\@vendure/admin-ui/react';
|
|
56
|
+
* import { gql } from 'graphql-tag';
|
|
57
|
+
*
|
|
58
|
+
* const UPDATE_PRODUCT = gql`
|
|
59
|
+
* mutation UpdateProduct($input: UpdateProductInput!) {
|
|
60
|
+
* updateProduct(input: $input) {
|
|
61
|
+
* id
|
|
62
|
+
* name
|
|
63
|
+
* }
|
|
64
|
+
* }`;
|
|
65
|
+
*
|
|
66
|
+
* export const MyComponent = () => {
|
|
67
|
+
* const [updateProduct, { data, loading, error }] = useMutation(UPDATE_PRODUCT);
|
|
68
|
+
*
|
|
69
|
+
* const handleClick = () => {
|
|
70
|
+
* updateProduct({
|
|
71
|
+
* input: {
|
|
72
|
+
* id: '1',
|
|
73
|
+
* name: 'New name',
|
|
74
|
+
* },
|
|
75
|
+
* }).then(result => {
|
|
76
|
+
* // do something with the result
|
|
77
|
+
* });
|
|
78
|
+
* };
|
|
79
|
+
*
|
|
80
|
+
* if (loading) return <div>Loading...</div>;
|
|
81
|
+
* if (error) return <div>Error! { error }</div>;
|
|
82
|
+
*
|
|
83
|
+
* return (
|
|
84
|
+
* <div>
|
|
85
|
+
* <button onClick={handleClick}>Update product</button>
|
|
86
|
+
* {data && <div>Product updated!</div>}
|
|
87
|
+
* </div>
|
|
88
|
+
* );
|
|
89
|
+
* };
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @docsCategory react-hooks
|
|
93
|
+
*/
|
|
94
|
+
export function useMutation(mutation) {
|
|
95
|
+
const { data, loading, error, runQuery } = useDataService((dataService, variables) => dataService.mutate(mutation, variables));
|
|
96
|
+
const rest = { data, loading, error };
|
|
97
|
+
const execute = (variables) => firstValueFrom(runQuery(variables));
|
|
98
|
+
return [execute, rest];
|
|
99
|
+
}
|
|
100
|
+
function useDataService(operation) {
|
|
101
|
+
const context = useContext(HostedComponentContext);
|
|
102
|
+
const dataService = context?.injector.get(DataService);
|
|
103
|
+
if (!dataService) {
|
|
104
|
+
throw new Error('No DataService found in HostedComponentContext');
|
|
105
|
+
}
|
|
106
|
+
const [data, setData] = useState();
|
|
107
|
+
const [error, setError] = useState();
|
|
108
|
+
const [loading, setLoading] = useState(false);
|
|
109
|
+
const runQuery = useCallback((variables) => {
|
|
110
|
+
setLoading(true);
|
|
111
|
+
return operation(dataService, variables).pipe(tap({
|
|
112
|
+
next: res => {
|
|
113
|
+
setData(res);
|
|
114
|
+
setLoading(false);
|
|
115
|
+
},
|
|
116
|
+
error: err => {
|
|
117
|
+
setError(err.message);
|
|
118
|
+
setLoading(false);
|
|
119
|
+
},
|
|
120
|
+
}));
|
|
121
|
+
}, []);
|
|
122
|
+
return { data, loading, error, runQuery };
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUE2QyxFQUM3QyxTQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQVcsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsUUFBZ0Q7SUFFaEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUN2RixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDMUMsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFrQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDbkIsU0FBcUU7SUFFckUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztLQUNyRTtJQUVELE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFLLENBQUM7SUFDdEMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLEVBQVUsQ0FBQztJQUM3QyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxTQUFhLEVBQUUsRUFBRTtRQUMzQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDO1lBQ0EsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVCxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQztTQUNKLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BncmFwaHFsLXR5cGVkLWRvY3VtZW50LW5vZGUvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50Tm9kZSB9IGZyb20gJ2dyYXBocWwvaW5kZXgnO1xyXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIb3N0ZWRDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWFjdC1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSByZXN1bHRzIG9mIGEgR3JhcGhRTCBxdWVyeS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlUXVlcnkgfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICogaW1wb3J0IHsgZ3FsIH0gZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG4gKlxyXG4gKiBjb25zdCBHRVRfUFJPRFVDVCA9IGdxbGBcclxuICogICAgcXVlcnkgR2V0UHJvZHVjdCgkaWQ6IElEISkge1xyXG4gKiAgICAgIHByb2R1Y3QoaWQ6ICRpZCkge1xyXG4gKiAgICAgICAgaWRcclxuICogICAgICAgIG5hbWVcclxuICogICAgICAgIGRlc2NyaXB0aW9uXHJcbiAqICAgICAgfVxyXG4gKiAgICB9YDtcclxuICpcclxuICogZXhwb3J0IGNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4ge1xyXG4gKiAgICAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9ID0gdXNlUXVlcnkoR0VUX1BST0RVQ1QsIHsgaWQ6ICcxJyB9KTtcclxuICpcclxuICogICAgIGlmIChsb2FkaW5nKSByZXR1cm4gPGRpdj5Mb2FkaW5nLi4uPC9kaXY+O1xyXG4gKiAgICAgaWYgKGVycm9yKSByZXR1cm4gPGRpdj5FcnJvciEgeyBlcnJvciB9PC9kaXY+O1xyXG4gKiAgICAgcmV0dXJuIChcclxuICogICAgICAgICA8ZGl2PlxyXG4gKiAgICAgICAgICAgICA8aDE+e2RhdGEucHJvZHVjdC5uYW1lfTwvaDE+XHJcbiAqICAgICAgICAgICAgIDxwPntkYXRhLnByb2R1Y3QuZGVzY3JpcHRpb259PC9wPlxyXG4gKiAgICAgICAgIDwvZGl2PlxyXG4gKiAgICAgKTtcclxuICogfTtcclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtaG9va3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VRdWVyeTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgcXVlcnk6IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4gICAgdmFyaWFibGVzPzogVixcclxuKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9ID0gdXNlRGF0YVNlcnZpY2U8VCwgVj4oXHJcbiAgICAgICAgKGRhdGFTZXJ2aWNlLCB2YXJzKSA9PiBkYXRhU2VydmljZS5xdWVyeShxdWVyeSwgdmFycykuc3RyZWFtJCxcclxuICAgICk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHJ1blF1ZXJ5KHZhcmlhYmxlcykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfSwgW3J1blF1ZXJ5XSk7XHJcblxyXG4gICAgY29uc3QgcmVmZXRjaCA9ICh2YXJpYWJsZXM/OiBWKSA9PiBmaXJzdFZhbHVlRnJvbShydW5RdWVyeSh2YXJpYWJsZXMpKTtcclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCByZWZldGNoIH0gYXMgY29uc3Q7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBSZWFjdCBob29rIHdoaWNoIGFsbG93cyB5b3UgdG8gZXhlY3V0ZSBhIEdyYXBoUUwgbXV0YXRpb24uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHRzXHJcbiAqIGltcG9ydCB7IHVzZU11dGF0aW9uIH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCB7IGdxbCB9IGZyb20gJ2dyYXBocWwtdGFnJztcclxuICpcclxuICogY29uc3QgVVBEQVRFX1BST0RVQ1QgPSBncWxgXHJcbiAqICAgbXV0YXRpb24gVXBkYXRlUHJvZHVjdCgkaW5wdXQ6IFVwZGF0ZVByb2R1Y3RJbnB1dCEpIHtcclxuICogICAgIHVwZGF0ZVByb2R1Y3QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gKiAgICAgaWRcclxuICogICAgIG5hbWVcclxuICogICB9XHJcbiAqIH1gO1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCBbdXBkYXRlUHJvZHVjdCwgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9XSA9IHVzZU11dGF0aW9uKFVQREFURV9QUk9EVUNUKTtcclxuICpcclxuICogICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xyXG4gKiAgICAgICAgIHVwZGF0ZVByb2R1Y3Qoe1xyXG4gKiAgICAgICAgICAgICBpbnB1dDoge1xyXG4gKiAgICAgICAgICAgICAgICAgaWQ6ICcxJyxcclxuICogICAgICAgICAgICAgICAgIG5hbWU6ICdOZXcgbmFtZScsXHJcbiAqICAgICAgICAgICAgIH0sXHJcbiAqICAgICAgICAgfSkudGhlbihyZXN1bHQgPT4ge1xyXG4gKiAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0XHJcbiAqICAgICAgICAgfSk7XHJcbiAqICAgICB9O1xyXG4gKlxyXG4gKiAgICAgaWYgKGxvYWRpbmcpIHJldHVybiA8ZGl2PkxvYWRpbmcuLi48L2Rpdj47XHJcbiAqICAgICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PkVycm9yISB7IGVycm9yIH08L2Rpdj47XHJcbiAqXHJcbiAqICAgICByZXR1cm4gKFxyXG4gKiAgICAgPGRpdj5cclxuICogICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5VcGRhdGUgcHJvZHVjdDwvYnV0dG9uPlxyXG4gKiAgICAgICAgIHtkYXRhICYmIDxkaXY+UHJvZHVjdCB1cGRhdGVkITwvZGl2Pn1cclxuICogICAgIDwvZGl2PlxyXG4gKiAgICAgKTtcclxuICogfTtcclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtaG9va3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VNdXRhdGlvbjxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgbXV0YXRpb246IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPigoZGF0YVNlcnZpY2UsIHZhcmlhYmxlcykgPT5cclxuICAgICAgICBkYXRhU2VydmljZS5tdXRhdGUobXV0YXRpb24sIHZhcmlhYmxlcyksXHJcbiAgICApO1xyXG4gICAgY29uc3QgcmVzdCA9IHsgZGF0YSwgbG9hZGluZywgZXJyb3IgfTtcclxuICAgIGNvbnN0IGV4ZWN1dGUgPSAodmFyaWFibGVzPzogVikgPT4gZmlyc3RWYWx1ZUZyb20ocnVuUXVlcnkodmFyaWFibGVzKSk7XHJcbiAgICByZXR1cm4gW2V4ZWN1dGUsIHJlc3RdIGFzIFt0eXBlb2YgZXhlY3V0ZSwgdHlwZW9mIHJlc3RdO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1c2VEYXRhU2VydmljZTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgb3BlcmF0aW9uOiAoZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCB2YXJpYWJsZXM/OiBWKSA9PiBPYnNlcnZhYmxlPFQ+LFxyXG4pIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBjb250ZXh0Py5pbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xyXG4gICAgaWYgKCFkYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRGF0YVNlcnZpY2UgZm91bmQgaW4gSG9zdGVkQ29tcG9uZW50Q29udGV4dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFQ+KCk7XHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBydW5RdWVyeSA9IHVzZUNhbGxiYWNrKCh2YXJpYWJsZXM/OiBWKSA9PiB7XHJcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gb3BlcmF0aW9uKGRhdGFTZXJ2aWNlLCB2YXJpYWJsZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldERhdGEocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { CustomDetailComponentService } from '@vendure/admin-ui/core';
|
|
3
|
+
import { REACT_CUSTOM_DETAIL_COMPONENT_OPTIONS, ReactCustomDetailComponent, } from './components/react-custom-detail.component';
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* Registers a React component to be rendered in a detail page in the given location.
|
|
7
|
+
* Components used as custom detail components can make use of the {@link useDetailComponentData} hook.
|
|
8
|
+
*
|
|
9
|
+
* @docsCategory react-extensions
|
|
10
|
+
*/
|
|
11
|
+
export function registerReactCustomDetailComponent(config) {
|
|
12
|
+
return {
|
|
13
|
+
provide: APP_INITIALIZER,
|
|
14
|
+
multi: true,
|
|
15
|
+
useFactory: (customDetailComponentService) => () => {
|
|
16
|
+
customDetailComponentService.registerCustomDetailComponent({
|
|
17
|
+
component: ReactCustomDetailComponent,
|
|
18
|
+
locationId: config.locationId,
|
|
19
|
+
providers: [
|
|
20
|
+
{
|
|
21
|
+
provide: REACT_CUSTOM_DETAIL_COMPONENT_OPTIONS,
|
|
22
|
+
useValue: {
|
|
23
|
+
component: config.component,
|
|
24
|
+
props: config.props,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
deps: [CustomDetailComponentService],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItcmVhY3QtY3VzdG9tLWRldGFpbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlYWN0L3NyYy9yZWdpc3Rlci1yZWFjdC1jdXN0b20tZGV0YWlsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBbUMsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RyxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLDBCQUEwQixHQUM3QixNQUFNLDRDQUE0QyxDQUFDO0FBMEJwRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsTUFBd0M7SUFDdkYsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsNEJBQTBELEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUM3RSw0QkFBNEIsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDdkQsU0FBUyxFQUFFLDBCQUEwQjtnQkFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2dCQUM3QixTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLHFDQUFxQzt3QkFDOUMsUUFBUSxFQUFFOzRCQUNOLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzs0QkFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO3lCQUN0QjtxQkFDSjtpQkFDSjthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztLQUN2QyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDdXN0b21EZXRhaWxDb21wb25lbnRMb2NhdGlvbklkLCBDdXN0b21EZXRhaWxDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRUeXBlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQge1xyXG4gICAgUkVBQ1RfQ1VTVE9NX0RFVEFJTF9DT01QT05FTlRfT1BUSU9OUyxcclxuICAgIFJlYWN0Q3VzdG9tRGV0YWlsQ29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1jdXN0b20tZGV0YWlsLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIENvbmZpZ3VyZXMgYSBSZWFjdC1iYXNlZCBjb21wb25lbnQgdG8gYmUgcGxhY2VkIGluIGEgZGV0YWlsIHBhZ2UgaW4gdGhlIGdpdmVuIGxvY2F0aW9uLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHJlYWN0LWV4dGVuc2lvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVhY3RDdXN0b21EZXRhaWxDb21wb25lbnRDb25maWcge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBpZCBvZiB0aGUgZGV0YWlsIHBhZ2UgbG9jYXRpb24gaW4gd2hpY2ggdG8gcGxhY2UgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgbG9jYXRpb25JZDogQ3VzdG9tRGV0YWlsQ29tcG9uZW50TG9jYXRpb25JZDtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBUaGUgUmVhY3QgY29tcG9uZW50IHRvIHJlbmRlci5cclxuICAgICAqL1xyXG4gICAgY29tcG9uZW50OiBFbGVtZW50VHlwZTtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBPcHRpb25hbCBwcm9wcyB0byBwYXNzIHRvIHRoZSBSZWFjdCBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBSZWdpc3RlcnMgYSBSZWFjdCBjb21wb25lbnQgdG8gYmUgcmVuZGVyZWQgaW4gYSBkZXRhaWwgcGFnZSBpbiB0aGUgZ2l2ZW4gbG9jYXRpb24uXHJcbiAqIENvbXBvbmVudHMgdXNlZCBhcyBjdXN0b20gZGV0YWlsIGNvbXBvbmVudHMgY2FuIG1ha2UgdXNlIG9mIHRoZSB7QGxpbmsgdXNlRGV0YWlsQ29tcG9uZW50RGF0YX0gaG9vay5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1leHRlbnNpb25zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJSZWFjdEN1c3RvbURldGFpbENvbXBvbmVudChjb25maWc6IFJlYWN0Q3VzdG9tRGV0YWlsQ29tcG9uZW50Q29uZmlnKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoY3VzdG9tRGV0YWlsQ29tcG9uZW50U2VydmljZTogQ3VzdG9tRGV0YWlsQ29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjdXN0b21EZXRhaWxDb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tRGV0YWlsQ29tcG9uZW50KHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUmVhY3RDdXN0b21EZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbklkOiBjb25maWcubG9jYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUkVBQ1RfQ1VTVE9NX0RFVEFJTF9DT01QT05FTlRfT1BUSU9OUyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogY29uZmlnLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBjb25maWcucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVwczogW0N1c3RvbURldGFpbENvbXBvbmVudFNlcnZpY2VdLFxyXG4gICAgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { DataTableCustomComponentService, } from '@vendure/admin-ui/core';
|
|
3
|
+
import { REACT_CUSTOM_COLUMN_COMPONENT_OPTIONS, ReactCustomColumnComponent, } from './components/react-custom-column.component';
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* Registers a React component to be rendered in a data table in the given location.
|
|
7
|
+
* The component will receive the `rowItem` prop which is the data object for the row,
|
|
8
|
+
* e.g. the `Product` object if used in the `product-list` table.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts title="components/SlugWithLink.tsx"
|
|
12
|
+
* import { ReactDataTableComponentProps } from '\@vendure/admin-ui/react';
|
|
13
|
+
* import React from 'react';
|
|
14
|
+
*
|
|
15
|
+
* export function SlugWithLink({ rowItem }: ReactDataTableComponentProps) {
|
|
16
|
+
* return (
|
|
17
|
+
* <a href={`https://example.com/products/${rowItem.slug}`} target="_blank">
|
|
18
|
+
* {rowItem.slug}
|
|
19
|
+
* </a>
|
|
20
|
+
* );
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ```ts title="providers.ts"
|
|
25
|
+
* import { registerReactDataTableComponent } from '\@vendure/admin-ui/react';
|
|
26
|
+
* import { SlugWithLink } from './components/SlugWithLink';
|
|
27
|
+
*
|
|
28
|
+
* export default [
|
|
29
|
+
* registerReactDataTableComponent({
|
|
30
|
+
* component: SlugWithLink,
|
|
31
|
+
* tableId: 'product-list',
|
|
32
|
+
* columnId: 'slug',
|
|
33
|
+
* props: {
|
|
34
|
+
* foo: 'bar',
|
|
35
|
+
* },
|
|
36
|
+
* }),
|
|
37
|
+
* ];
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function registerReactDataTableComponent(config) {
|
|
41
|
+
return {
|
|
42
|
+
provide: APP_INITIALIZER,
|
|
43
|
+
multi: true,
|
|
44
|
+
useFactory: (dataTableCustomComponentService) => () => {
|
|
45
|
+
dataTableCustomComponentService.registerCustomComponent({
|
|
46
|
+
...config,
|
|
47
|
+
component: ReactCustomColumnComponent,
|
|
48
|
+
providers: [
|
|
49
|
+
{
|
|
50
|
+
provide: REACT_CUSTOM_COLUMN_COMPONENT_OPTIONS,
|
|
51
|
+
useValue: {
|
|
52
|
+
component: config.component,
|
|
53
|
+
props: config.props,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
deps: [DataTableCustomComponentService],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItcmVhY3QtZGF0YS10YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlYWN0L3NyYy9yZWdpc3Rlci1yZWFjdC1kYXRhLXRhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCwrQkFBK0IsR0FFbEMsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLDBCQUEwQixHQUM3QixNQUFNLDRDQUE0QyxDQUFDO0FBeUNwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsTUFBcUM7SUFDakYsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsK0JBQWdFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUNuRiwrQkFBK0IsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDcEQsR0FBRyxNQUFNO2dCQUNULFNBQVMsRUFBRSwwQkFBMEI7Z0JBQ3JDLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUscUNBQXFDO3dCQUM5QyxRQUFRLEVBQUU7NEJBQ04sU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTOzRCQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7eUJBQ3RCO3FCQUNKO2lCQUNKO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDO0tBQzFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVDb2x1bW5JZCxcclxuICAgIERhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBEYXRhVGFibGVMb2NhdGlvbklkLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50VHlwZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHtcclxuICAgIFJFQUNUX0NVU1RPTV9DT0xVTU5fQ09NUE9ORU5UX09QVElPTlMsXHJcbiAgICBSZWFjdEN1c3RvbUNvbHVtbkNvbXBvbmVudCxcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcmVhY3QtY3VzdG9tLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBDb25maWd1cmVzIGEge0BsaW5rIEN1c3RvbURldGFpbENvbXBvbmVudH0gdG8gYmUgcGxhY2VkIGluIHRoZSBnaXZlbiBsb2NhdGlvbi5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1leHRlbnNpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0RGF0YVRhYmxlQ29tcG9uZW50Q29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBUaGUgbG9jYXRpb24gaW4gdGhlIFVJIHdoZXJlIHRoZSBjdXN0b20gY29tcG9uZW50IHNob3VsZCBiZSBwbGFjZWQuXHJcbiAgICAgKi9cclxuICAgIHRhYmxlSWQ6IERhdGFUYWJsZUxvY2F0aW9uSWQ7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogVGhlIGNvbHVtbiBpbiB0aGUgdGFibGUgd2hlcmUgdGhlIGN1c3RvbSBjb21wb25lbnQgc2hvdWxkIGJlIHBsYWNlZC5cclxuICAgICAqL1xyXG4gICAgY29sdW1uSWQ6IERhdGFUYWJsZUNvbHVtbklkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBjb21wb25lbnQgdG8gcmVuZGVyIGluIHRoZSB0YWJsZSBjZWxsLiBUaGlzIGNvbXBvbmVudCB3aWxsIHJlY2VpdmUgdGhlIGByb3dJdGVtYCBwcm9wXHJcbiAgICAgKiB3aGljaCBpcyB0aGUgZGF0YSBvYmplY3QgZm9yIHRoZSByb3csIGUuZy4gdGhlIGBQcm9kdWN0YCBvYmplY3QgaWYgdXNlZCBpbiB0aGUgYHByb2R1Y3QtbGlzdGAgdGFibGUuXHJcbiAgICAgKi9cclxuICAgIGNvbXBvbmVudDogRWxlbWVudFR5cGU7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogT3B0aW9uYWwgcHJvcHMgdG8gcGFzcyB0byB0aGUgUmVhY3QgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVGhlIHByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIFJlYWN0IGNvbXBvbmVudCByZWdpc3RlcmVkIHZpYSB7QGxpbmsgcmVnaXN0ZXJSZWFjdERhdGFUYWJsZUNvbXBvbmVudH0uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0RGF0YVRhYmxlQ29tcG9uZW50UHJvcHMge1xyXG4gICAgcm93SXRlbTogYW55O1xyXG4gICAgW3Byb3A6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBSZWdpc3RlcnMgYSBSZWFjdCBjb21wb25lbnQgdG8gYmUgcmVuZGVyZWQgaW4gYSBkYXRhIHRhYmxlIGluIHRoZSBnaXZlbiBsb2NhdGlvbi5cclxuICogVGhlIGNvbXBvbmVudCB3aWxsIHJlY2VpdmUgdGhlIGByb3dJdGVtYCBwcm9wIHdoaWNoIGlzIHRoZSBkYXRhIG9iamVjdCBmb3IgdGhlIHJvdyxcclxuICogZS5nLiB0aGUgYFByb2R1Y3RgIG9iamVjdCBpZiB1c2VkIGluIHRoZSBgcHJvZHVjdC1saXN0YCB0YWJsZS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHMgdGl0bGU9XCJjb21wb25lbnRzL1NsdWdXaXRoTGluay50c3hcIlxyXG4gKiBpbXBvcnQgeyBSZWFjdERhdGFUYWJsZUNvbXBvbmVudFByb3BzIH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbiAqXHJcbiAqIGV4cG9ydCBmdW5jdGlvbiBTbHVnV2l0aExpbmsoeyByb3dJdGVtIH06IFJlYWN0RGF0YVRhYmxlQ29tcG9uZW50UHJvcHMpIHtcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICAgICAgPGEgaHJlZj17YGh0dHBzOi8vZXhhbXBsZS5jb20vcHJvZHVjdHMvJHtyb3dJdGVtLnNsdWd9YH0gdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAqICAgICAgICAgICAgIHtyb3dJdGVtLnNsdWd9XHJcbiAqICAgICAgICAgPC9hPlxyXG4gKiAgICAgKTtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogYGBgdHMgdGl0bGU9XCJwcm92aWRlcnMudHNcIlxyXG4gKiBpbXBvcnQgeyByZWdpc3RlclJlYWN0RGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCB7IFNsdWdXaXRoTGluayB9IGZyb20gJy4vY29tcG9uZW50cy9TbHVnV2l0aExpbmsnO1xyXG4gKlxyXG4gKiBleHBvcnQgZGVmYXVsdCBbXHJcbiAqICAgICByZWdpc3RlclJlYWN0RGF0YVRhYmxlQ29tcG9uZW50KHtcclxuICogICAgICAgICBjb21wb25lbnQ6IFNsdWdXaXRoTGluayxcclxuICogICAgICAgICB0YWJsZUlkOiAncHJvZHVjdC1saXN0JyxcclxuICogICAgICAgICBjb2x1bW5JZDogJ3NsdWcnLFxyXG4gKiAgICAgICAgIHByb3BzOiB7XHJcbiAqICAgICAgICAgZm9vOiAnYmFyJyxcclxuICogICAgICAgICB9LFxyXG4gKiAgICAgfSksXHJcbiAqIF07XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUmVhY3REYXRhVGFibGVDb21wb25lbnQoY29uZmlnOiBSZWFjdERhdGFUYWJsZUNvbXBvbmVudENvbmZpZykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgdXNlRmFjdG9yeTogKGRhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2U6IERhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2UpID0+ICgpID0+IHtcclxuICAgICAgICAgICAgZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCh7XHJcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFJlYWN0Q3VzdG9tQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBSRUFDVF9DVVNUT01fQ09MVU1OX0NPTVBPTkVOVF9PUFRJT05TLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBjb25maWcuY29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGNvbmZpZy5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { ComponentRegistryService } from '@vendure/admin-ui/core';
|
|
3
|
+
import { REACT_INPUT_COMPONENT_OPTIONS, ReactFormInputComponent, } from './components/react-form-input.component';
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* Registers a React component to be used as a {@link FormInputComponent}.
|
|
7
|
+
*
|
|
8
|
+
* @docsCategory react-extensions
|
|
9
|
+
*/
|
|
10
|
+
export function registerReactFormInputComponent(id, component) {
|
|
11
|
+
return {
|
|
12
|
+
provide: APP_INITIALIZER,
|
|
13
|
+
multi: true,
|
|
14
|
+
useFactory: (registry) => () => {
|
|
15
|
+
registry.registerInputComponent(id, ReactFormInputComponent, [
|
|
16
|
+
{
|
|
17
|
+
provide: REACT_INPUT_COMPONENT_OPTIONS,
|
|
18
|
+
useValue: {
|
|
19
|
+
component,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
]);
|
|
23
|
+
},
|
|
24
|
+
deps: [ComponentRegistryService],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItcmVhY3QtZm9ybS1pbnB1dC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlYWN0L3NyYy9yZWdpc3Rlci1yZWFjdC1mb3JtLWlucHV0LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLHVCQUF1QixHQUMxQixNQUFNLHlDQUF5QyxDQUFDO0FBRWpEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUFDLEVBQVUsRUFBRSxTQUFzQjtJQUM5RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxRQUFrQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDckQsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSx1QkFBdUIsRUFBRTtnQkFDekQ7b0JBQ0ksT0FBTyxFQUFFLDZCQUE2QjtvQkFDdEMsUUFBUSxFQUFFO3dCQUNOLFNBQVM7cUJBQ1o7aUJBQ0o7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsd0JBQXdCLENBQUM7S0FDbkMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEZhY3RvcnlQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRWxlbWVudFR5cGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7XHJcbiAgICBSRUFDVF9JTlBVVF9DT01QT05FTlRfT1BUSU9OUyxcclxuICAgIFJlYWN0Rm9ybUlucHV0Q29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFJlZ2lzdGVycyBhIFJlYWN0IGNvbXBvbmVudCB0byBiZSB1c2VkIGFzIGEge0BsaW5rIEZvcm1JbnB1dENvbXBvbmVudH0uXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtZXh0ZW5zaW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUmVhY3RGb3JtSW5wdXRDb21wb25lbnQoaWQ6IHN0cmluZywgY29tcG9uZW50OiBFbGVtZW50VHlwZSk6IEZhY3RvcnlQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlcklucHV0Q29tcG9uZW50KGlkLCBSZWFjdEZvcm1JbnB1dENvbXBvbmVudCwgW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJFQUNUX0lOUFVUX0NPTVBPTkVOVF9PUFRJT05TLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlXSxcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { registerRouteComponent } from '@vendure/admin-ui/core';
|
|
2
|
+
import { REACT_ROUTE_COMPONENT_OPTIONS, ReactRouteComponent } from './components/react-route.component';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Registers a React component to be used as a route component.
|
|
6
|
+
*
|
|
7
|
+
* @docsCategory react-extensions
|
|
8
|
+
*/
|
|
9
|
+
export function registerReactRouteComponent(options) {
|
|
10
|
+
const routeDef = registerRouteComponent(options);
|
|
11
|
+
return {
|
|
12
|
+
...routeDef,
|
|
13
|
+
providers: [
|
|
14
|
+
{
|
|
15
|
+
provide: REACT_ROUTE_COMPONENT_OPTIONS,
|
|
16
|
+
useValue: {
|
|
17
|
+
props: options.props,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
...(routeDef.providers ?? []),
|
|
21
|
+
],
|
|
22
|
+
component: ReactRouteComponent,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItcmVhY3Qtcm91dGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVnaXN0ZXItcmVhY3Qtcm91dGUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUMsTUFBTSx3QkFBd0IsQ0FBQztBQUcvRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVl4Rzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FLekMsT0FBZ0U7SUFDOUQsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsT0FBTztRQUNILEdBQUcsUUFBUTtRQUNYLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLFFBQVEsRUFBRTtvQkFDTixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7aUJBQ2M7YUFDekM7WUFDRCxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7U0FDaEM7UUFDRCxTQUFTLEVBQUUsbUJBQW1CO0tBQ2pDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBSZXN1bHRPZiwgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICdAZ3JhcGhxbC10eXBlZC1kb2N1bWVudC1ub2RlL2NvcmUnO1xyXG5pbXBvcnQgeyByZWdpc3RlclJvdXRlQ29tcG9uZW50LCBSZWdpc3RlclJvdXRlQ29tcG9uZW50T3B0aW9ucyB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGUgfSBmcm9tICdncmFwaHFsL2luZGV4JztcclxuaW1wb3J0IHsgRWxlbWVudFR5cGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFJFQUNUX1JPVVRFX0NPTVBPTkVOVF9PUFRJT05TLCBSZWFjdFJvdXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0LXJvdXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlYWN0Um91dGVDb21wb25lbnRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG50eXBlIFJlZ2lzdGVyUmVhY3RSb3V0ZUNvbXBvbmVudE9wdGlvbnM8XHJcbiAgICBFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmc7IHVwZGF0ZWRBdD86IHN0cmluZyB9LFxyXG4gICAgVCBleHRlbmRzIERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPGFueSwgeyBpZDogc3RyaW5nIH0+LFxyXG4gICAgRmllbGQgZXh0ZW5kcyBrZXlvZiBSZXN1bHRPZjxUPixcclxuICAgIFIgZXh0ZW5kcyBGaWVsZCxcclxuPiA9IFJlZ2lzdGVyUm91dGVDb21wb25lbnRPcHRpb25zPEVsZW1lbnRUeXBlLCBFbnRpdHksIFQsIEZpZWxkLCBSPiAmIHtcclxuICAgIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogUmVnaXN0ZXJzIGEgUmVhY3QgY29tcG9uZW50IHRvIGJlIHVzZWQgYXMgYSByb3V0ZSBjb21wb25lbnQuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcmVhY3QtZXh0ZW5zaW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUmVhY3RSb3V0ZUNvbXBvbmVudDxcclxuICAgIEVudGl0eSBleHRlbmRzIHsgaWQ6IHN0cmluZzsgdXBkYXRlZEF0Pzogc3RyaW5nIH0sXHJcbiAgICBUIGV4dGVuZHMgRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8YW55LCB7IGlkOiBzdHJpbmcgfT4sXHJcbiAgICBGaWVsZCBleHRlbmRzIGtleW9mIFJlc3VsdE9mPFQ+LFxyXG4gICAgUiBleHRlbmRzIEZpZWxkLFxyXG4+KG9wdGlvbnM6IFJlZ2lzdGVyUmVhY3RSb3V0ZUNvbXBvbmVudE9wdGlvbnM8RW50aXR5LCBULCBGaWVsZCwgUj4pOiBSb3V0ZSB7XHJcbiAgICBjb25zdCByb3V0ZURlZiA9IHJlZ2lzdGVyUm91dGVDb21wb25lbnQob3B0aW9ucyk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnJvdXRlRGVmLFxyXG4gICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBSRUFDVF9ST1VURV9DT01QT05FTlRfT1BUSU9OUyxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IG9wdGlvbnMucHJvcHMsXHJcbiAgICAgICAgICAgICAgICB9IHNhdGlzZmllcyBSZWFjdFJvdXRlQ29tcG9uZW50T3B0aW9ucyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4uKHJvdXRlRGVmLnByb3ZpZGVycyA/PyBbXSksXHJcbiAgICAgICAgXSxcclxuICAgICAgICBjb21wb25lbnQ6IFJlYWN0Um91dGVDb21wb25lbnQsXHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlYWN0L3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkLCBQYWdlTWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0Rm9ybUlucHV0T3B0aW9ucyB7XHJcbiAgICBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGNvbmZpZzogQ3VzdG9tRmllbGQgJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0Rm9ybUlucHV0UHJvcHMgZXh0ZW5kcyBSZWFjdEZvcm1JbnB1dE9wdGlvbnMge31cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVhY3RSb3V0ZUNvbXBvbmVudE9wdGlvbnMge1xyXG4gICAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIb3N0ZWRSZWFjdENvbXBvbmVudENvbnRleHQ8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcclxuICAgIGluamVjdG9yOiBJbmplY3RvcjtcclxuICAgIHBhZ2VNZXRhZGF0YVNlcnZpY2U/OiBQYWdlTWV0YWRhdGFTZXJ2aWNlO1xyXG59ICYgVDtcclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZHVyZS1hZG1pbi11aS1yZWFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVhY3Qvc3JjL3ZlbmR1cmUtYWRtaW4tdWktcmVhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|