Skip to content

Commit

Permalink
Merge pull request #497 from cocopon/update-api-reference
Browse files Browse the repository at this point in the history
Update API reference
  • Loading branch information
cocopon committed Feb 24, 2023
2 parents 54710b3 + 00b00d0 commit 0ef60af
Show file tree
Hide file tree
Showing 84 changed files with 311 additions and 193 deletions.
2 changes: 1 addition & 1 deletion packages/core/src/blade/binding/api/binding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {TpChangeEvent} from '../../common/api/tp-event';
import {BindingController} from '../controller/binding';

export interface BindingApiEvents<Ex> {
change: TpChangeEvent<Ex, BindingApi>;
change: TpChangeEvent<Ex, BindingApi<unknown, Ex>>;
}

/**
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/binding/controller/binding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ function excludeValue(state: BladeState): Omit<BladeState, 'value'> {
return result;
}

/**
* @hidden
*/
interface Config<
In,
Vc extends ValueController<In>,
Expand All @@ -31,6 +34,9 @@ interface Config<
tag?: string | undefined;
}

/**
* @hidden
*/
export class BindingController<
In = unknown,
Vc extends ValueController<In> = ValueController<In>,
Expand Down
3 changes: 3 additions & 0 deletions packages/core/src/blade/binding/controller/input-binding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import {
import {isValueBladeController} from '../../common/controller/value-blade';
import {BindingController} from './binding';

/**
* @hidden
*/
export class InputBindingController<
In = unknown,
Vc extends ValueController<In> = ValueController<In>,
Expand Down
3 changes: 3 additions & 0 deletions packages/core/src/blade/binding/controller/monitor-binding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ export type BufferedValueController<
Vw extends View = View,
> = ValueController<TpBuffer<T>, Vw>;

/**
* @hidden
*/
export type MonitorBindingController<
T = unknown,
Vc extends BufferedValueController<T> = BufferedValueController<T>,
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/button/controller/button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ export interface ButtonEvents {
};
}

/**
* @hidden
*/
interface Config {
props: ButtonProps;
viewProps: ViewProps;
Expand All @@ -26,6 +29,9 @@ export class ButtonController implements Controller<ButtonView> {
public readonly view: ButtonView;
public readonly viewProps: ViewProps;

/**
* @hidden
*/
constructor(doc: Document, config: Config) {
this.onClick_ = this.onClick_.bind(this);

Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/blade/button/view/button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,21 @@ import {ClassName} from '../../../common/view/class-name';
import {bindValueToTextContent} from '../../../common/view/reactive';
import {View} from '../../../common/view/view';

/**
* @hidden
*/
export type ButtonPropsObject = {
title: string | undefined;
};

/**
* @hidden
*/
export type ButtonProps = ValueMap<ButtonPropsObject>;

/**
* @hidden
*/
interface Config {
props: ButtonProps;
viewProps: ViewProps;
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/blade/common/api/container-blade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ import {ContainerBladeController} from '../controller/container-blade';
import {BladeApi} from './blade';
import {RackApi} from './rack';

/**
* @hidden
*/
export class ContainerBladeApi<
C extends ContainerBladeController,
> extends BladeApi<C> {
Expand All @@ -14,6 +11,9 @@ export class ContainerBladeApi<
*/
protected readonly rackApi_: RackApi;

/**
* @hidden
*/
constructor(controller: C, pool: PluginPool) {
super(controller);

Expand Down
11 changes: 7 additions & 4 deletions packages/core/src/blade/common/api/rack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ import {
} from './params';
import {TpChangeEvent} from './tp-event';

export interface RackApiEvents {
/**
* @hidden
*/
interface RackApiEvents {
change: TpChangeEvent<unknown, BladeApi>;
}

Expand Down Expand Up @@ -61,15 +64,15 @@ function createBindingTarget<O extends Bindable, Key extends keyof O>(
return new BindingTarget(obj, key as string);
}

/**
* @hidden
*/
export class RackApi implements ContainerApi {
private readonly controller_: RackController;
private readonly emitter_: Emitter<RackApiEvents>;
private readonly apiSet_: NestedOrderedSet<BladeApi>;
private readonly pool_: PluginPool;

/**
* @hidden
*/
constructor(controller: RackController, pool: PluginPool) {
this.onRackAdd_ = this.onRackAdd_.bind(this);
this.onRackRemove_ = this.onRackRemove_.bind(this);
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/common/controller/blade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import {BladePosition, getAllBladePositions} from '../model/blade-positions';
import {Rack} from '../model/rack';
import {BladeState, exportBladeState, importBladeState} from './blade-state';

/**
* @hidden
*/
interface Config<V extends View> {
blade: Blade;
view: V;
Expand All @@ -22,6 +25,9 @@ const POS_TO_CLASS_NAME_MAP: {[pos in BladePosition]: string} = {
verylast: 'vlst',
};

/**
* @hidden
*/
export class BladeController<V extends View = View> implements Controller<V> {
public readonly blade: Blade;
public readonly view: V;
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/common/controller/container-blade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@ import {BladeController} from './blade';
import {BladeState, exportBladeState, importBladeState} from './blade-state';
import {RackController} from './rack';

/**
* @hidden
*/
interface Config<V extends View> {
blade: Blade;
rackController: RackController;
view: V;
}

/**
* @hidden
*/
export class ContainerBladeController<
V extends View = View,
> extends BladeController<V> {
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/common/controller/rack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import {ViewProps} from '../../../common/model/view-props';
import {Blade} from '../model/blade';
import {Rack, RackEvents} from '../model/rack';

/**
* @hidden
*/
interface Config {
blade: Blade;
element: HTMLElement;
Expand All @@ -11,6 +14,9 @@ interface Config {
root?: boolean;
}

/**
* @hidden
*/
export class RackController {
public readonly element: HTMLElement;
public readonly rack: Rack;
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/common/controller/value-blade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,19 @@ import {View} from '../../../common/view/view';
import {Blade} from '../model/blade';
import {BladeController} from './blade';

/**
* @hidden
*/
interface Config<T, Vw extends View, Va extends Value<T>> {
blade: Blade;
value: Va;
view: Vw;
viewProps: ViewProps;
}

/**
* @hidden
*/
export class ValueBladeController<
T,
Vw extends View = View,
Expand Down
3 changes: 3 additions & 0 deletions packages/core/src/blade/common/model/foldable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import {Value} from '../../../common/model/value';
import {ValueMap} from '../../../common/model/value-map';
import {isEmpty} from '../../../misc/type-util';

/**
* @hidden
*/
type FoldableObject = {
completed: boolean;
expanded: boolean;
Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/blade/common/model/nested-ordered-set.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import {Emitter} from '../../../common/model/emitter';
import {TpError} from '../../../common/tp-error';

/**
* @hidden
*/
export interface NestedOrderedSetEvents<T> {
add: {
index: number;
Expand All @@ -16,8 +19,14 @@ export interface NestedOrderedSetEvents<T> {
};
}

/**
* @hidden
*/
type Extractor<T> = (item: T) => NestedOrderedSet<T> | null;

/**
* @hidden
*/
export class NestedOrderedSet<T> {
public readonly emitter: Emitter<NestedOrderedSetEvents<T>> = new Emitter();
private readonly items_: T[] = [];
Expand Down
4 changes: 4 additions & 0 deletions packages/core/src/blade/common/model/rack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,17 @@ function findSubBladeControllerSet(
: null;
}

/**
* @hidden
*/
interface Config {
blade?: Blade;
viewProps: ViewProps;
}

/**
* A collection of blade controllers that manages positions and event propagation.
* @hidden
*/
export class Rack {
public readonly emitter: Emitter<RackEvents> = new Emitter();
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/folder/controller/folder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import {Blade} from '../../common/model/blade';
import {bindFoldable, Foldable} from '../../common/model/foldable';
import {FolderProps, FolderView} from '../view/folder';

/**
* @hidden
*/
interface Config {
expanded?: boolean;
blade: Blade;
Expand All @@ -26,6 +29,9 @@ export class FolderController extends ContainerBladeController<FolderView> {
public readonly foldable: Foldable;
public readonly props: FolderProps;

/**
* @hidden
*/
constructor(doc: Document, config: Config) {
const foldable = Foldable.create(config.expanded ?? true);
const view = new FolderView(doc, {
Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/blade/folder/view/folder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,21 @@ import {isEmpty} from '../../../misc/type-util';
import {Foldable} from '../../common/model/foldable';
import {bladeContainerClassName} from '../../common/view/blade-container';

/**
* @hidden
*/
export type FolderPropsObject = {
title: string | undefined;
};

/**
* @hidden
*/
export type FolderProps = ValueMap<FolderPropsObject>;

/**
* @hidden
*/
interface Config {
foldable: Foldable;
props: FolderProps;
Expand Down
6 changes: 6 additions & 0 deletions packages/core/src/blade/label/controller/label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,18 @@ import {
import {Blade} from '../../common/model/blade';
import {LabelProps, LabelView} from '../view/label';

/**
* @hidden
*/
interface Config<C extends Controller> {
blade: Blade;
props: LabelProps;
valueController: C;
}

/**
* @hidden
*/
export class LabelBladeController<
C extends Controller,
> extends BladeController<LabelView> {
Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/blade/label/controller/value-label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,27 @@ import {ValueBladeController} from '../../common/controller/value-blade';
import {Blade} from '../../common/model/blade';
import {LabelProps, LabelView} from '../view/label';

/**
* @hidden
*/
interface Config<T, C extends ValueController<T>, Va extends Value<T>> {
blade: Blade;
props: LabelProps;
value: Va;
valueController: C;
}
/**
* @hidden
*/
export type LabeledValueConfig<
T,
C extends ValueController<T>,
Va extends Value<T>,
> = Config<T, C, Va>;

/**
* @hidden
*/
export class LabeledValueController<
T,
C extends ValueController<T> = ValueController<T>,
Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/blade/label/view/label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,21 @@ import {ClassName} from '../../../common/view/class-name';
import {View} from '../../../common/view/view';
import {isEmpty} from '../../../misc/type-util';

/**
* @hidden
*/
export type LabelPropsObject = {
label: string | undefined;
};

/**
* @hidden
*/
export type LabelProps = ValueMap<LabelPropsObject>;

/**
* @hidden
*/
interface Config {
props: LabelProps;
viewProps: ViewProps;
Expand Down
Loading

0 comments on commit 0ef60af

Please sign in to comment.