Browse Source

Merge pull request #20421 from abpframework/auto-merge/rel-8-3/2875

Merge branch dev with rel-8.3
pull/20423/head
maliming 2 years ago
committed by GitHub
parent
commit
efcc490653
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      npm/ng-packs/package.json
  2. 3
      npm/ng-packs/packages/components/extensible/README.md
  3. 3
      npm/ng-packs/packages/components/extensible/src/lib/models/actions.ts
  4. 9
      npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts
  5. 10
      npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts
  6. 10
      npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts
  7. 3
      npm/ng-packs/packages/components/extensible/src/lib/models/props.ts
  8. 24
      npm/ng-packs/packages/components/extensible/src/lib/models/toolbar-actions.ts
  9. 6
      npm/ng-packs/packages/components/extensible/src/lib/utils/form-props.util.ts
  10. 2
      npm/ng-packs/packages/components/extensible/src/lib/utils/model.utils.ts
  11. 45
      npm/ng-packs/packages/components/extensible/src/lib/utils/props.util.ts
  12. 6
      npm/ng-packs/packages/components/extensible/src/lib/utils/typeahead.util.ts
  13. 3
      npm/ng-packs/packages/components/extensible/src/public-api.ts
  14. 2
      npm/ng-packs/packages/core/package.json
  15. 2
      npm/ng-packs/packages/core/src/lib/models/environment.ts

4
npm/ng-packs/package.json

@ -124,10 +124,10 @@
"should-quote": "^1.0.0", "should-quote": "^1.0.0",
"ts-jest": "29.1.0", "ts-jest": "29.1.0",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"ts-toolbelt": "6.15.4", "ts-toolbelt": "^9.0.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
"tslint": "~6.1.0", "tslint": "~6.1.0",
"typescript": "~5.3.0", "typescript": "~5.4.0",
"zone.js": "~0.14.0" "zone.js": "~0.14.0"
}, },
"lint-staged": { "lint-staged": {

3
npm/ng-packs/packages/components/extensible/README.md

@ -1,3 +0,0 @@
# @abp/ng.components/extensible
Secondary entry point of `@abp/ng.components`. It can be used by importing from `@abp/ng.components/extensible`.

3
npm/ng-packs/packages/components/extensible/src/lib/models/actions.ts

@ -1,6 +1,5 @@
import { LinkedList } from '@abp/utils'; import { LinkedList } from '@abp/utils';
import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core'; import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core';
import { O } from 'ts-toolbelt';
export abstract class ActionList<R = any, A = Action<R>> extends LinkedList<A> {} export abstract class ActionList<R = any, A = Action<R>> extends LinkedList<A> {}
@ -22,7 +21,7 @@ export abstract class ActionData<R = any> {
} }
} }
export type ReadonlyActionData<R = any> = O.Readonly<Omit<ActionData<R>, 'data'>>; export type ReadonlyActionData<R = any> = Readonly<Omit<ActionData<R>, 'data'>>;
export abstract class Action<R = any> { export abstract class Action<R = any> {
constructor( constructor(

9
npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts

@ -1,5 +1,4 @@
import { Type } from '@angular/core'; import { Type } from '@angular/core';
import { O } from 'ts-toolbelt';
import { import {
Action, Action,
ActionContributorCallback, ActionContributorCallback,
@ -9,6 +8,7 @@ import {
ActionsFactory, ActionsFactory,
} from './actions'; } from './actions';
import { FormPropTooltip } from './form-props'; import { FormPropTooltip } from './form-props';
import { FilteredWithOptions, PartialWithOptions } from '../utils/model.utils';
export class EntityActionList<R = any> extends ActionList<R, EntityAction<R>> {} export class EntityActionList<R = any> extends ActionList<R, EntityAction<R>> {}
@ -47,10 +47,9 @@ export class EntityAction<R = any> extends Action<R> {
} }
} }
export type EntityActionOptions<R = any> = O.Optional< type OptionalKeys = 'permission' | 'visible' | 'icon';
O.Writable<EntityAction<R>>, export type EntityActionOptions<R = any> = PartialWithOptions<EntityAction<R>, OptionalKeys> &
'permission' | 'visible' | 'icon' FilteredWithOptions<EntityAction<R>, OptionalKeys>;
>;
export type EntityActionDefaults<R = any> = Record<string, EntityAction<R>[]>; export type EntityActionDefaults<R = any> = Record<string, EntityAction<R>[]>;
export type EntityActionContributorCallback<R = any> = ActionContributorCallback< export type EntityActionContributorCallback<R = any> = ActionContributorCallback<

10
npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts

@ -1,7 +1,6 @@
import { ABP, escapeHtmlChars } from '@abp/ng.core'; import { ABP, escapeHtmlChars } from '@abp/ng.core';
import { InjectFlags, InjectOptions, InjectionToken, Type } from '@angular/core'; import { InjectFlags, InjectOptions, InjectionToken, Type } from '@angular/core';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { O } from 'ts-toolbelt';
import { ActionCallback } from './actions'; import { ActionCallback } from './actions';
import { import {
Prop, Prop,
@ -13,6 +12,7 @@ import {
PropsFactory, PropsFactory,
} from './props'; } from './props';
import { FormPropTooltip } from './form-props'; import { FormPropTooltip } from './form-props';
import { FilteredWithOptions, PartialWithOptions } from '../utils/model.utils';
export class EntityPropList<R = any> extends PropList<R, EntityProp<R>> {} export class EntityPropList<R = any> extends PropList<R, EntityProp<R>> {}
@ -71,8 +71,7 @@ export class EntityProp<R = any> extends Prop<R> {
} }
} }
export type EntityPropOptions<R = any> = O.Optional< type OptionalKeys =
O.Writable<EntityProp<R>>,
| 'permission' | 'permission'
| 'visible' | 'visible'
| 'columnVisible' | 'columnVisible'
@ -83,8 +82,9 @@ export type EntityPropOptions<R = any> = O.Optional<
| 'valueResolver' | 'valueResolver'
| 'action' | 'action'
| 'component' | 'component'
| 'enumList' | 'enumList';
>; export type EntityPropOptions<R = any> = PartialWithOptions<EntityProp<R>, OptionalKeys> &
FilteredWithOptions<EntityProp<R>, OptionalKeys>;
export type EntityPropDefaults<R = any> = Record<string, EntityProp<R>[]>; export type EntityPropDefaults<R = any> = Record<string, EntityProp<R>[]>;
export type EntityPropContributorCallback<R = any> = PropContributorCallback<EntityPropList<R>>; export type EntityPropContributorCallback<R = any> = PropContributorCallback<EntityPropList<R>>;

10
npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts

@ -2,7 +2,6 @@ import { ABP } from '@abp/ng.core';
import { Injector, Type } from '@angular/core'; import { Injector, Type } from '@angular/core';
import { AsyncValidatorFn, ValidatorFn } from '@angular/forms'; import { AsyncValidatorFn, ValidatorFn } from '@angular/forms';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { O } from 'ts-toolbelt';
import { import {
Prop, Prop,
PropCallback, PropCallback,
@ -15,6 +14,7 @@ import {
Props, Props,
PropsFactory, PropsFactory,
} from './props'; } from './props';
import { FilteredWithOptions, PartialWithOptions } from '../utils/model.utils';
export class FormPropList<R = any> extends PropList<R, FormProp<R>> {} export class FormPropList<R = any> extends PropList<R, FormProp<R>> {}
@ -131,8 +131,7 @@ export class FormPropData<R = any> extends PropData<R> {
} }
} }
export type FormPropOptions<R = any> = O.Optional< type OptionalKeys =
O.Writable<FormProp<R>>,
| 'permission' | 'permission'
| 'visible' | 'visible'
| 'displayName' | 'displayName'
@ -147,8 +146,9 @@ export type FormPropOptions<R = any> = O.Optional<
| 'id' | 'id'
| 'displayTextResolver' | 'displayTextResolver'
| 'formText' | 'formText'
| 'tooltip' | 'tooltip';
>; export type FormPropOptions<R = any> = PartialWithOptions<FormProp<R>, OptionalKeys> &
FilteredWithOptions<FormProp<R>, OptionalKeys>;
export type CreateFormPropDefaults<R = any> = Record<string, FormProp<R>[]>; export type CreateFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;
export type CreateFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>; export type CreateFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>;

3
npm/ng-packs/packages/components/extensible/src/lib/models/props.ts

@ -1,6 +1,5 @@
import { LinkedList } from '@abp/utils'; import { LinkedList } from '@abp/utils';
import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core'; import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core';
import { O } from 'ts-toolbelt';
import { ePropType } from '../enums/props.enum'; import { ePropType } from '../enums/props.enum';
import { FormPropTooltip } from './form-props'; import { FormPropTooltip } from './form-props';
@ -24,7 +23,7 @@ export abstract class PropData<R = any> {
} }
} }
export type ReadonlyPropData<R = any> = O.Readonly<Omit<PropData<R>, 'data'>>; export type ReadonlyPropData<R = any> = Readonly<Omit<PropData<R>, 'data'>>;
export abstract class Prop<R = any> { export abstract class Prop<R = any> {
constructor( constructor(

24
npm/ng-packs/packages/components/extensible/src/lib/models/toolbar-actions.ts

@ -1,5 +1,4 @@
import { Injector, Type } from '@angular/core'; import { Injector, Type } from '@angular/core';
import { O } from 'ts-toolbelt';
import { import {
Action, Action,
ActionContributorCallback, ActionContributorCallback,
@ -10,6 +9,7 @@ import {
ActionsFactory, ActionsFactory,
ReadonlyActionData, ReadonlyActionData,
} from './actions'; } from './actions';
import { FilteredWithOptions, PartialWithOptions } from '../utils/model.utils';
export class ToolbarActionList<R = any> extends ActionList<R, ToolbarActionDefault<R>> {} export class ToolbarActionList<R = any> extends ActionList<R, ToolbarActionDefault<R>> {}
@ -61,15 +61,19 @@ export class ToolbarComponent<R = any> extends Action<R> {
} }
} }
export type ToolbarActionOptions<R = any> = O.Optional< type OptionalActionKeys = 'permission' | 'visible' | 'icon' | 'btnClass';
O.Writable<ToolbarAction<R>>, export type ToolbarActionOptions<R = any> = PartialWithOptions<
'permission' | 'visible' | 'icon' | 'btnClass' ToolbarAction<R>,
>; OptionalActionKeys
> &
export type ToolbarComponentOptions<R = any> = O.Optional< FilteredWithOptions<ToolbarAction<R>, OptionalActionKeys>;
O.Writable<ToolbarComponent<R>>,
'permission' | 'visible' | 'action' type OptionalComponentKeys = 'permission' | 'visible' | 'action';
>; export type ToolbarComponentOptions<R = any> = PartialWithOptions<
ToolbarComponent<R>,
OptionalComponentKeys
> &
FilteredWithOptions<ToolbarComponent<R>, OptionalComponentKeys>;
export type ToolbarActionDefault<R = any> = ToolbarAction<R> | ToolbarComponent<R>; export type ToolbarActionDefault<R = any> = ToolbarAction<R> | ToolbarComponent<R>;

6
npm/ng-packs/packages/components/extensible/src/lib/utils/form-props.util.ts

@ -1,10 +1,10 @@
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms'; import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { DateTimeAdapter,DateAdapter,TimeAdapter } from '@abp/ng.theme.shared'; import { DateTimeAdapter, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';
import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties'; import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
import { ePropType } from '../enums/props.enum'; import { ePropType } from '../enums/props.enum';
import { FormPropList } from "../models/form-props"; import { FormPropList } from '../models/form-props';
import { PropData } from "../models/props"; import { PropData } from '../models/props';
import { ExtensionsService } from '../services/extensions.service'; import { ExtensionsService } from '../services/extensions.service';
import { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token'; import { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token';

2
npm/ng-packs/packages/components/extensible/src/lib/utils/model.utils.ts

@ -0,0 +1,2 @@
export type PartialWithOptions<T, OptionalKeys extends keyof T> = Partial<Pick<T, OptionalKeys>>;
export type FilteredWithOptions<T, OptionalKeys extends keyof T> = Omit<T, OptionalKeys>;

45
npm/ng-packs/packages/components/extensible/src/lib/utils/props.util.ts

@ -47,26 +47,29 @@ export function mergeWithDefaultProps<F extends PropsFactory<any>>(
); );
}); });
} }
type InferredPropDefaults<F> = F extends EntityPropsFactory<infer RE> type InferredPropDefaults<F> =
? EntityPropDefaults<RE> F extends EntityPropsFactory<infer RE>
: F extends CreateFormPropsFactory<infer RCF> ? EntityPropDefaults<RE>
? CreateFormPropDefaults<RCF> : F extends CreateFormPropsFactory<infer RCF>
: F extends EditFormPropsFactory<infer REF> ? CreateFormPropDefaults<RCF>
? EditFormPropDefaults<REF> : F extends EditFormPropsFactory<infer REF>
: never; ? EditFormPropDefaults<REF>
: never;
type InferredPropContributorCallbacks<F> = F extends EntityPropsFactory<infer RE> type InferredPropContributorCallbacks<F> =
? EntityPropContributorCallbacks<RE> F extends EntityPropsFactory<infer RE>
: F extends CreateFormPropsFactory<infer RCF> ? EntityPropContributorCallbacks<RE>
? CreateFormPropContributorCallbacks<RCF> : F extends CreateFormPropsFactory<infer RCF>
: F extends EditFormPropsFactory<infer REF> ? CreateFormPropContributorCallbacks<RCF>
? EditFormPropContributorCallbacks<REF> : F extends EditFormPropsFactory<infer REF>
: never; ? EditFormPropContributorCallbacks<REF>
: never;
type InferredProps<F> = F extends EntityPropsFactory<infer RE> type InferredProps<F> =
? EntityProps<RE> F extends EntityPropsFactory<infer RE>
: F extends CreateFormPropsFactory<infer RCF> ? EntityProps<RE>
? FormProps<RCF> : F extends CreateFormPropsFactory<infer RCF>
: F extends EditFormPropsFactory<infer REF> ? FormProps<RCF>
? FormProps<REF> : F extends EditFormPropsFactory<infer REF>
: never; ? FormProps<REF>
: never;

6
npm/ng-packs/packages/components/extensible/src/lib/utils/typeahead.util.ts

@ -39,10 +39,10 @@ export function createTypeaheadOptions(
} }
export function getTypeaheadType(lookup: ExtensionPropertyUiLookupDto, name: string) { export function getTypeaheadType(lookup: ExtensionPropertyUiLookupDto, name: string) {
if (!!lookup.url) { if (!lookup.url) {
return ePropType.Typeahead;
} else {
return name.endsWith(TYPEAHEAD_TEXT_SUFFIX) ? ePropType.Hidden : undefined; return name.endsWith(TYPEAHEAD_TEXT_SUFFIX) ? ePropType.Hidden : undefined;
} else {
return ePropType.Typeahead;
} }
} }

3
npm/ng-packs/packages/components/extensible/src/public-api.ts

@ -62,8 +62,9 @@ export * from './lib/pipes/create-injector.pipe';
export * from './lib/services/extensions.service'; export * from './lib/services/extensions.service';
export * from './lib/tokens/extensions.token'; export * from './lib/tokens/extensions.token';
export * from './lib/tokens/extensible-form-view-provider.token'; export * from './lib/tokens/extensible-form-view-provider.token';
export * from './lib/utils/actions.util'; export * from './lib/utils/actions.util';
export * from './lib/utils/form-props.util'; export * from './lib/utils/form-props.util';
export * from './lib/utils/props.util'; export * from './lib/utils/props.util';
export * from './lib/utils/state.util'; export * from './lib/utils/state.util';
export * from './lib/utils/model.utils';
export * from './lib/extensible.module'; export * from './lib/extensible.module';

2
npm/ng-packs/packages/core/package.json

@ -10,7 +10,7 @@
"@abp/utils": "~8.3.0-rc.1", "@abp/utils": "~8.3.0-rc.1",
"just-clone": "^6.0.0", "just-clone": "^6.0.0",
"just-compare": "^2.0.0", "just-compare": "^2.0.0",
"ts-toolbelt": "6.15.4", "ts-toolbelt": "^9.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"publishConfig": { "publishConfig": {

2
npm/ng-packs/packages/core/src/lib/models/environment.ts

@ -20,7 +20,7 @@ export interface ApplicationInfo {
export interface HasAdditional { export interface HasAdditional {
[key: string]: string; [key: string]: string;
} }
export interface ApiConfig extends Partial<HasAdditional>{ export interface ApiConfig extends Partial<HasAdditional> {
url: string; url: string;
rootNamespace?: string; rootNamespace?: string;
} }

Loading…
Cancel
Save