New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@frui.ts/views

Package Overview
Dependencies
Maintainers
5
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@frui.ts/views - npm Package Compare versions

Comparing version 1.0.0-alpha.9 to 1.0.0-alpha.10

dist/routeLink.d.ts

1

dist/assignDefaultProps.d.ts

@@ -1,2 +0,1 @@

import type React from "react";
export default function assignDefaultProps<TControl extends React.ElementType>(control: TControl, props: Partial<React.ComponentPropsWithoutRef<TControl>>): void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function assignDefaultProps(control, props) {
const controlWithDefaultProps = control;
var controlWithDefaultProps = control;
if (controlWithDefaultProps.defaultProps) {

@@ -6,0 +6,0 @@ Object.assign(controlWithDefaultProps.defaultProps, props);

@@ -1,8 +0,7 @@

import type { BindingProperty, BindingTarget } from "@frui.ts/helpers";
import React from "react";
import type { ExcludeBindingProps, IBindingProps } from "./bindingProps";
export declare abstract class BindingComponent<TTarget extends BindingTarget, TProps extends IBindingProps<TTarget>> extends React.Component<TProps> {
import * as React from "react";
import { ExcludeBindingProps, IBindingProps } from "./bindingProps";
export declare abstract class BindingComponent<TTarget, TProps extends IBindingProps<TTarget>> extends React.Component<TProps> {
protected get inheritedProps(): Partial<ExcludeBindingProps<TProps>>;
protected get value(): (TTarget extends Map<any, infer V> ? V : TTarget[BindingProperty<TTarget>]) | undefined;
protected get value(): any;
protected setValue(value: any): void;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {

@@ -11,35 +24,51 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BindingComponent = void 0;
const mobx_1 = require("mobx");
const react_1 = __importDefault(require("react"));
const bindingProps_1 = require("./bindingProps");
const useBinding_1 = require("./useBinding");
class BindingComponent extends react_1.default.Component {
get inheritedProps() {
return (0, bindingProps_1.omitBindingProps)(this.props);
var mobx_1 = require("mobx");
var React = __importStar(require("react"));
var bindingProps_1 = require("./bindingProps");
var useBinding_1 = require("./useBinding");
var BindingComponent = (function (_super) {
__extends(BindingComponent, _super);
function BindingComponent() {
return _super !== null && _super.apply(this, arguments) || this;
}
get value() {
if (!this.props.target) {
console.warn("'target' has not been set");
return undefined;
}
return (0, useBinding_1.getValue)(this.props.target, this.props.property);
}
setValue(value) {
const { target, property, onValueChanged } = this.props;
(0, useBinding_1.setValue)(target, property, value);
Object.defineProperty(BindingComponent.prototype, "inheritedProps", {
get: function () {
return bindingProps_1.omitBindingProps(this.props);
},
enumerable: true,
configurable: true
});
Object.defineProperty(BindingComponent.prototype, "value", {
get: function () {
if (!this.props.target) {
console.warn("'target' has not been set");
return undefined;
}
return useBinding_1.getValue(this.props.target, this.props.property);
},
enumerable: true,
configurable: true
});
BindingComponent.prototype.setValue = function (value) {
var _a = this.props, target = _a.target, property = _a.property, onValueChanged = _a.onValueChanged;
useBinding_1.setValue(target, property, value);
onValueChanged === null || onValueChanged === void 0 ? void 0 : onValueChanged(value, property, target);
}
}
__decorate([
mobx_1.action.bound,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], BindingComponent.prototype, "setValue", null);
};
__decorate([
mobx_1.action.bound,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], BindingComponent.prototype, "setValue", null);
return BindingComponent;
}(React.Component));
exports.BindingComponent = BindingComponent;
//# sourceMappingURL=bindingComponent.js.map

@@ -1,3 +0,3 @@

import type { BindingTarget, BindingProperty, PropertyType } from "@frui.ts/helpers";
export interface IBindingProps<TTarget extends BindingTarget, TProperty extends BindingProperty<TTarget> = BindingProperty<TTarget>, TValue = PropertyType<TTarget, TProperty>> {
import { BindingProperty, PropertyType } from "@frui.ts/helpers";
export interface IBindingProps<TTarget, TProperty extends BindingProperty<TTarget> = BindingProperty<TTarget>, TValue = PropertyType<TTarget, TProperty>> {
target?: TTarget;

@@ -4,0 +4,0 @@ property?: TProperty;

@@ -14,5 +14,4 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.omitBindingProps = void 0;
function omitBindingProps(props) {
const { target, property, onValueChanged } = props, rest = __rest(props, ["target", "property", "onValueChanged"]);
var target = props.target, property = props.property, onValueChanged = props.onValueChanged, rest = __rest(props, ["target", "property", "onValueChanged"]);
return rest;

@@ -19,0 +18,0 @@ }

@@ -1,4 +0,16 @@

import type React from "react";
declare function dataIdHandler(handler: (id: number) => any): (e: React.MouseEvent<HTMLElement>) => void;
/// <reference types="lodash/common/common" />
/// <reference types="lodash/common/array" />
/// <reference types="lodash/common/collection" />
/// <reference types="lodash/common/date" />
/// <reference types="lodash/common/function" />
/// <reference types="lodash/common/lang" />
/// <reference types="lodash/common/math" />
/// <reference types="lodash/common/number" />
/// <reference types="lodash/common/object" />
/// <reference types="lodash/common/seq" />
/// <reference types="lodash/common/string" />
/// <reference types="lodash/common/util" />
import * as React from "react";
declare function dataIdHandler(handler: (id: number) => any): (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
declare const _default: typeof dataIdHandler & import("lodash").MemoizedFunction;
export default _default;

@@ -6,6 +6,7 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const memoize_1 = __importDefault(require("lodash/memoize"));
var memoize_1 = __importDefault(require("lodash/memoize"));
function dataIdHandler(handler) {
return (e) => {
const id = e.currentTarget.dataset.id;
return function (e) {
var _a;
var id = (_a = e.currentTarget.dataset) === null || _a === void 0 ? void 0 : _a.id;
if (id !== undefined) {

@@ -16,3 +17,3 @@ handler(+id);

}
exports.default = (0, memoize_1.default)(dataIdHandler);
exports.default = memoize_1.default(dataIdHandler);
//# sourceMappingURL=dataIdHandler.js.map

@@ -1,2 +0,2 @@

import React from "react";
import * as React from "react";
export declare type FallbackRender = (errorData: {

@@ -20,4 +20,4 @@ error: Error;

componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
render(): {};
render(): any;
}
export {};
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const INITIAL_STATE = Object.freeze({
var React = __importStar(require("react"));
var INITIAL_STATE = Object.freeze({
errorInfo: null,
error: null,
});
class ErrorBoundary extends react_1.default.PureComponent {
constructor() {
super(...arguments);
this.state = INITIAL_STATE;
this.resetErrorBoundary = () => {
const { onReset } = this.props;
var ErrorBoundary = (function (_super) {
__extends(ErrorBoundary, _super);
function ErrorBoundary() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = INITIAL_STATE;
_this.resetErrorBoundary = function () {
var onReset = _this.props.onReset;
if (onReset) {
const { error, errorInfo } = this.state;
var _a = _this.state, error = _a.error, errorInfo = _a.errorInfo;
onReset(error, errorInfo);
}
this.setState(INITIAL_STATE);
_this.setState(INITIAL_STATE);
};
return _this;
}
componentDidCatch(error, errorInfo) {
ErrorBoundary.prototype.componentDidCatch = function (error, errorInfo) {
var _a, _b;
(_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, error, errorInfo);
this.setState({ error, errorInfo });
}
render() {
this.setState({ error: error, errorInfo: errorInfo });
};
ErrorBoundary.prototype.render = function () {
if (this.state.error) {
const { error, errorInfo } = this.state;
const { fallback } = this.props;
const element = typeof fallback === "function"
? fallback({ error, errorInfo, resetError: this.resetErrorBoundary })
: fallback;
if (element) {
var _a = this.state, error = _a.error, errorInfo = _a.errorInfo;
var fallback = this.props.fallback;
var element = typeof fallback === "function" ? fallback({ error: error, errorInfo: errorInfo, resetError: this.resetErrorBoundary }) : fallback;
if (element !== undefined) {
return element;
}
return react_1.default.createElement("p", null, "Something went wrong :-(");
return React.createElement("p", null, "Something went wrong :-(");
}
return react_1.default.createElement(react_1.default.Fragment, null, this.props.children);
}
}
return React.createElement(React.Fragment, null, this.props.children);
};
return ErrorBoundary;
}(React.PureComponent));
exports.default = ErrorBoundary;
//# sourceMappingURL=errorBoundary.js.map

@@ -1,13 +0,12 @@

import type { BindingTarget } from "@frui.ts/helpers";
import React from "react";
import type { IBindingProps } from "./bindingProps";
export interface IComponentInChildrenProps<TTarget extends BindingTarget, TChildProps> {
import * as React from "react";
import { IBindingProps } from "./bindingProps";
export interface IComponentInChildrenProps<TTarget, TChildProps> {
children(bidingProps: IBindingProps<TTarget>, childProps: TChildProps): React.ComponentType;
}
export interface IComponentInAttributeProps<TTarget extends BindingTarget> {
export interface IComponentInAttributeProps<TTarget> {
component?: React.ComponentType<IBindingProps<TTarget>>;
componentprops?: any;
}
export declare type IFormFieldProps<TTarget extends BindingTarget, TChildProps> = IBindingProps<TTarget> & (IComponentInChildrenProps<TTarget, TChildProps> | IComponentInAttributeProps<TTarget>);
export declare function extractBindingProps<TTarget extends BindingTarget>(props: IBindingProps<TTarget>): IBindingProps<TTarget>;
export declare function getInnerComponent<TTarget extends BindingTarget, TChildProps>(props: IFormFieldProps<TTarget, TChildProps>, childProps: TChildProps): JSX.Element | React.ComponentType<{}> | undefined;
export declare type IFormFieldProps<TTarget, TChildProps> = IBindingProps<TTarget> & (IComponentInChildrenProps<TTarget, TChildProps> | IComponentInAttributeProps<TTarget>);
export declare function extractBindingProps<TTarget>(props: IBindingProps<TTarget>): IBindingProps<TTarget>;
export declare function getInnerComponent<TTarget, TChildProps>(props: IFormFieldProps<TTarget, TChildProps>, childProps: TChildProps): JSX.Element | React.ComponentClass<{}, any> | React.FunctionComponent<{}> | undefined;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInnerComponent = exports.extractBindingProps = void 0;
const react_1 = __importDefault(require("react"));
var React = __importStar(require("react"));
function extractBindingProps(props) {

@@ -17,12 +31,12 @@ return {

function hasComponentInChildren(object) {
return !!(object === null || object === void 0 ? void 0 : object.children) && typeof object.children === "function";
return !!object.children && typeof object.children === "function";
}
function hasComponentInAttribute(object) {
return !!(object === null || object === void 0 ? void 0 : object.component);
return !!object.component;
}
function getInnerComponent(props, childProps) {
const bindingProps = extractBindingProps(props);
var bindingProps = extractBindingProps(props);
if (hasComponentInAttribute(props)) {
const Component = props.component;
return react_1.default.createElement(Component, Object.assign({}, props.componentprops, childProps, bindingProps));
var Component = props.component;
return React.createElement(Component, __assign({}, props.componentprops, childProps, bindingProps));
}

@@ -29,0 +43,0 @@ else if (hasComponentInChildren(props)) {

@@ -8,2 +8,3 @@ export { default as assignDefaultProps } from "./assignDefaultProps";

export { default as preventDefault } from "./preventDefault";
export * from "./routeLink";
export * from "./types";

@@ -10,0 +11,0 @@ export * from "./useBinding";

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
exports.View = exports.useScreenLifecycle = exports.useDisposable = exports.preventDefault = exports.createMemoizedHandler = exports.createDataIdHandler = exports.assignDefaultProps = void 0;
var assignDefaultProps_1 = require("./assignDefaultProps");
Object.defineProperty(exports, "assignDefaultProps", { enumerable: true, get: function () { return __importDefault(assignDefaultProps_1).default; } });
__exportStar(require("./bindingComponent"), exports);
__exportStar(require("./bindingProps"), exports);
exports.assignDefaultProps = assignDefaultProps_1.default;
__export(require("./bindingComponent"));
__export(require("./bindingProps"));
var dataIdHandler_1 = require("./dataIdHandler");
Object.defineProperty(exports, "createDataIdHandler", { enumerable: true, get: function () { return __importDefault(dataIdHandler_1).default; } });
__exportStar(require("./fieldHelpers"), exports);
exports.createDataIdHandler = dataIdHandler_1.default;
__export(require("./fieldHelpers"));
var memoizedDataHandler_1 = require("./memoizedDataHandler");
Object.defineProperty(exports, "createMemoizedHandler", { enumerable: true, get: function () { return __importDefault(memoizedDataHandler_1).default; } });
exports.createMemoizedHandler = memoizedDataHandler_1.default;
var preventDefault_1 = require("./preventDefault");
Object.defineProperty(exports, "preventDefault", { enumerable: true, get: function () { return __importDefault(preventDefault_1).default; } });
__exportStar(require("./types"), exports);
__exportStar(require("./useBinding"), exports);
exports.preventDefault = preventDefault_1.default;
__export(require("./routeLink"));
__export(require("./useBinding"));
var useDisposable_1 = require("./useDisposable");
Object.defineProperty(exports, "useDisposable", { enumerable: true, get: function () { return __importDefault(useDisposable_1).default; } });
exports.useDisposable = useDisposable_1.default;
var useScreenLifecycle_1 = require("./useScreenLifecycle");
Object.defineProperty(exports, "useScreenLifecycle", { enumerable: true, get: function () { return __importDefault(useScreenLifecycle_1).default; } });
exports.useScreenLifecycle = useScreenLifecycle_1.default;
var view_1 = require("./view");
Object.defineProperty(exports, "View", { enumerable: true, get: function () { return __importDefault(view_1).default; } });
__exportStar(require("./viewLocator"), exports);
exports.View = view_1.default;
__export(require("./viewLocator"));
//# sourceMappingURL=index.js.map

@@ -1,2 +0,14 @@

import type { SyntheticEvent } from "react";
export default function createMemoizedHandler(datasetKey: string): ((handler: (data: string) => any) => (e: SyntheticEvent<HTMLElement>) => void) & import("lodash").MemoizedFunction;
/// <reference types="lodash/common/common" />
/// <reference types="lodash/common/array" />
/// <reference types="lodash/common/collection" />
/// <reference types="lodash/common/date" />
/// <reference types="lodash/common/function" />
/// <reference types="lodash/common/lang" />
/// <reference types="lodash/common/math" />
/// <reference types="lodash/common/number" />
/// <reference types="lodash/common/object" />
/// <reference types="lodash/common/seq" />
/// <reference types="lodash/common/string" />
/// <reference types="lodash/common/util" />
import * as React from "react";
export default function createMemoizedHandler(datasetKey: string): ((handler: (data: string) => any) => (e: React.MouseEvent<HTMLElement, MouseEvent>) => void) & import("lodash").MemoizedFunction;

@@ -6,7 +6,7 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const memoize_1 = __importDefault(require("lodash/memoize"));
var memoize_1 = __importDefault(require("lodash/memoize"));
function createMemoizedHandler(datasetKey) {
return (0, memoize_1.default)((handler) => {
return (e) => {
const key = e.currentTarget.dataset[datasetKey];
return memoize_1.default(function (handler) {
return function (e) {
var key = e.currentTarget.dataset[datasetKey];
if (key !== undefined) {

@@ -13,0 +13,0 @@ handler(key);

@@ -1,2 +0,2 @@

import type { SyntheticEvent } from "react";
export default function preventDefault(action: () => any): (event: SyntheticEvent) => void;
import { SyntheticEvent } from "react";
export default function preventDefault(action: () => any): (event: SyntheticEvent<Element, Event>) => void;

@@ -1,2 +0,1 @@

import type React from "react";
export interface ISelectItem {

@@ -10,2 +9,1 @@ value: string | number;

export declare type ViewComponent<TViewModel> = React.FunctionComponent<ViewProps<TViewModel>>;
export declare type constructor<T> = Function | (new (...args: any[]) => T);

@@ -1,9 +0,9 @@

import type { BindingProperty, BindingTarget, PropertyName, PropertyType } from "@frui.ts/helpers";
import type { IBindingProps } from "./bindingProps";
import { BindingProperty, PropertyName, PropertyType } from "@frui.ts/helpers";
import { IBindingProps } from "./bindingProps";
export declare function getValue<TTarget, TProperty extends PropertyName<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, ensureObservable?: boolean): TTarget[TProperty];
export declare function getValue<TKey, TValue, TTarget extends Map<TKey, TValue>>(target: TTarget | undefined, key: TKey | undefined): TValue | undefined;
export declare function getValue<TTarget extends BindingTarget, TProperty extends BindingProperty<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, ensureObservable?: boolean): PropertyType<TTarget, TProperty> | undefined;
export declare function getValue<TKey, TValue, TTarget extends Map<TKey, TValue>>(target: TTarget | undefined, key: TKey | undefined): TValue;
export declare function getValue<TTarget, TProperty extends BindingProperty<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, ensureObservable?: boolean): PropertyType<TTarget, TProperty>;
export declare function setValue<TTarget, TProperty extends PropertyName<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, value: TTarget[TProperty]): void;
export declare function setValue<TKey, TValue, TTarget extends Map<TKey, TValue>>(target: TTarget | undefined, key: TKey | undefined, value: TValue): void;
export declare function setValue<TTarget extends BindingTarget, TProperty extends BindingProperty<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, value: PropertyType<TTarget, TProperty>): void;
export declare function useBinding<TTarget extends BindingTarget, TProperty extends BindingProperty<TTarget> = BindingProperty<TTarget>, TValue = PropertyType<TTarget, TProperty>>(props: IBindingProps<TTarget, TProperty, TValue>): readonly [TValue, (value: TValue) => void];
export declare function setValue<TTarget, TProperty extends BindingProperty<TTarget>>(target: TTarget | undefined, property: TProperty | undefined, value: PropertyType<TTarget, TProperty>): void;
export declare function useBinding<TTarget, TProperty extends BindingProperty<TTarget> = BindingProperty<TTarget>, TValue = PropertyType<TTarget, TProperty>>(props: IBindingProps<TTarget, TProperty, TValue>): readonly [TValue, (value: TValue) => void];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useBinding = exports.setValue = exports.getValue = void 0;
const helpers_1 = require("@frui.ts/helpers");
const mobx_1 = require("mobx");
function getValue(target, property, ensureObservable = true) {
var helpers_1 = require("@frui.ts/helpers");
var mobx_1 = require("mobx");
function getValue(target, property, ensureObservable) {
if (ensureObservable === void 0) { ensureObservable = true; }
if (!target) {

@@ -13,21 +13,15 @@ throw new Error("'target' prop has not been set");

}
if ((0, mobx_1.isObservableMap)(target)) {
if (mobx_1.isObservableMap(target)) {
return target.get(property);
}
const propertyName = property;
if (!(0, mobx_1.isObservable)(target) || !(0, mobx_1.isObservableProp)(target, propertyName)) {
if ((0, helpers_1.isMap)(target)) {
return target.get(property);
var propertyName = property;
if (!mobx_1.isObservable(target) || !mobx_1.isObservableProp(target, propertyName)) {
if (ensureObservable) {
mobx_1.action(helpers_1.ensureObservableProperty)(target, propertyName, target[propertyName]);
}
else {
const value = target[property];
if (ensureObservable) {
(0, mobx_1.action)(helpers_1.ensureObservableProperty)(target, propertyName, value);
}
else {
return value;
}
return target[propertyName];
}
}
return (0, mobx_1.get)(target, propertyName);
return mobx_1.get(target, propertyName);
}

@@ -37,3 +31,3 @@ exports.getValue = getValue;

if (target && property) {
(0, mobx_1.action)(helpers_1.ensureObservableProperty)(target, property, value);
mobx_1.action(helpers_1.ensureObservableProperty)(target, property, value);
}

@@ -43,10 +37,4 @@ }

function useBinding(props) {
const value = getValue(props.target, props.property);
const setter = (value) => {
var _a;
setValue(props.target, props.property, value);
if (props.target && props.property) {
(_a = props.onValueChanged) === null || _a === void 0 ? void 0 : _a.call(props, value, props.property, props.target);
}
};
var value = getValue(props.target, props.property);
var setter = function (value) { return setValue(props.target, props.property, value); };
return [value, setter];

@@ -53,0 +41,0 @@ }

@@ -1,2 +0,2 @@

import type { IDisposable } from "@frui.ts/helpers";
import { IDisposable } from "@frui.ts/helpers";
export default function useDisposable(...dependencies: IDisposable[]): void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
function useDisposable(...dependencies) {
(0, react_1.useEffect)(() => () => {
dependencies.forEach(x => x.dispose());
}, []);
var react_1 = require("react");
function useDisposable() {
var dependencies = [];
for (var _i = 0; _i < arguments.length; _i++) {
dependencies[_i] = arguments[_i];
}
react_1.useEffect(function () { return function () {
dependencies.forEach(function (x) { return x.dispose(); });
}; }, []);
}
exports.default = useDisposable;
//# sourceMappingURL=useDisposable.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const screens_1 = require("@frui.ts/screens");
const react_1 = require("react");
function useScreenLifecycle(vm, closeOnCleanup = true) {
(0, react_1.useEffect)(() => {
const navigator = (0, screens_1.getNavigator)(vm);
if (!navigator) {
return;
var screens_1 = require("@frui.ts/screens");
var react_1 = require("react");
function useScreenLifecycle(vm, closeOnCleanup) {
if (closeOnCleanup === void 0) { closeOnCleanup = true; }
react_1.useEffect(function () {
if (screens_1.isActivatable(vm)) {
vm.activate();
}
if (!navigator.isActive) {
void navigator.navigate([]);
}
if (navigator.deactivate) {
return () => {
var _a;
void ((_a = navigator.deactivate) === null || _a === void 0 ? void 0 : _a.call(navigator, closeOnCleanup));
if (screens_1.isDeactivatable(vm)) {
return function () {
vm.deactivate(closeOnCleanup);
};

@@ -19,0 +15,0 @@ }

@@ -1,12 +0,11 @@

import React from "react";
import type { ErrorBoundaryProps } from "./errorBoundary";
import * as React from "react";
import { ErrorBoundaryProps } from "./errorBoundary";
interface ViewProps {
vm?: unknown;
vm: any;
context?: string;
useLifecycle?: boolean;
}
declare const ViewWithErrorBoundary: React.FunctionComponent<ViewProps & ErrorBoundaryProps>;
declare const View: React.FunctionComponent<ViewProps> & {
ErrorBoundary: typeof ViewWithErrorBoundary;
ErrorBoundary: React.FunctionComponent<ViewProps & ErrorBoundaryProps>;
};
export default View;
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __rest = (this && this.__rest) || function (s, e) {

@@ -13,2 +24,9 @@ var t = {};

};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -18,31 +36,30 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const errorBoundary_1 = __importDefault(require("./errorBoundary"));
const useScreenLifecycle_1 = __importDefault(require("./useScreenLifecycle"));
const viewLocator_1 = require("./viewLocator");
const PureView = props => {
const { vm, children, context, useLifecycle } = props;
var React = __importStar(require("react"));
var errorBoundary_1 = __importDefault(require("./errorBoundary"));
var useScreenLifecycle_1 = __importDefault(require("./useScreenLifecycle"));
var viewLocator_1 = require("./viewLocator");
var PureView = function (props) {
var vm = props.vm, children = props.children, context = props.context, useLifecycle = props.useLifecycle;
if (!vm) {
return react_1.default.createElement(react_1.default.Fragment, null, children);
return React.createElement(React.Fragment, null, children);
}
const vmConstructor = vm.constructor;
const FoundView = children === undefined ? (0, viewLocator_1.getView)(vmConstructor, context) : (0, viewLocator_1.tryGetView)(vmConstructor, context);
var FoundView = children === undefined ? viewLocator_1.getView(vm.constructor, context) : viewLocator_1.tryGetView(vm.constructor, context);
if (!FoundView) {
return react_1.default.createElement(react_1.default.Fragment, null, children);
return React.createElement(React.Fragment, null, children);
}
if (useLifecycle) {
(0, useScreenLifecycle_1.default)(vm);
if (!!useLifecycle) {
useScreenLifecycle_1.default(vm);
}
return react_1.default.createElement(FoundView, { vm: vm });
return React.createElement(FoundView, { vm: vm });
};
PureView.displayName = "View";
const ViewWithErrorBoundary = props => {
const { onError, onReset, fallback } = props, rest = __rest(props, ["onError", "onReset", "fallback"]);
return (react_1.default.createElement(errorBoundary_1.default, { onError: onError, onReset: onReset, fallback: fallback },
react_1.default.createElement(PureView, Object.assign({}, rest))));
var ViewWithErrorBoundary = function (props) {
var onError = props.onError, onReset = props.onReset, fallback = props.fallback, rest = __rest(props, ["onError", "onReset", "fallback"]);
return (React.createElement(errorBoundary_1.default, { onError: onError, onReset: onReset, fallback: fallback },
React.createElement(PureView, __assign({}, rest))));
};
ViewWithErrorBoundary.displayName = "View.ErrorBoundary";
const View = PureView;
var View = PureView;
View.ErrorBoundary = ViewWithErrorBoundary;
exports.default = View;
//# sourceMappingURL=view.js.map

@@ -1,9 +0,17 @@

import type { ComponentType } from "react";
import type { constructor } from "./types";
import { ComponentType } from "react";
declare type constructor<T> = new (...args: any[]) => T;
declare type viewComponent<TViewModel> = ComponentType<{
vm: TViewModel;
}>;
export declare function registerView<TViewModel>(view: viewComponent<TViewModel>, viewModelConstructor: constructor<TViewModel>, context?: string): viewComponent<TViewModel>;
export declare function getView<TViewModel = unknown>(viewModelConstructor: constructor<TViewModel>, context?: string): viewComponent<TViewModel>;
export declare function tryGetView<TViewModel = unknown>(viewModelConstructor: constructor<TViewModel>, context?: string): viewComponent<TViewModel> | null;
export declare function registerView<TViewModel>(view: viewComponent<TViewModel>, viewModelConstructor: constructor<TViewModel>, context?: string): ComponentType<{
vm: TViewModel;
}>;
export declare function getView(viewModelConstructor: constructor<unknown>, context?: string): ComponentType<{
vm: any;
}>;
export declare function tryGetView(viewModelConstructor: constructor<unknown>, context?: string): import("react").ComponentClass<{
vm: any;
}, any> | import("react").FunctionComponent<{
vm: any;
}> | null;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tryGetView = exports.getView = exports.registerView = void 0;
const DEFAULT_CONTEXT = "default";
const viewsRegistry = new Map();
function registerView(view, viewModelConstructor, context = DEFAULT_CONTEXT) {
const currentViewModelViews = viewsRegistry.get(viewModelConstructor);
var DEFAULT_CONTEXT = "default";
var viewsRegistry = new Map();
function registerView(view, viewModelConstructor, context) {
var _a;
if (context === void 0) { context = DEFAULT_CONTEXT; }
var currentViewModelViews = viewsRegistry.get(viewModelConstructor);
if (currentViewModelViews) {

@@ -12,3 +13,3 @@ currentViewModelViews[context] = view;

else {
viewsRegistry.set(viewModelConstructor, { [context]: view });
viewsRegistry.set(viewModelConstructor, (_a = {}, _a[context] = view, _a));
}

@@ -18,10 +19,11 @@ return view;

exports.registerView = registerView;
function getView(viewModelConstructor, context = DEFAULT_CONTEXT) {
const currentViewModelViews = viewsRegistry.get(viewModelConstructor);
function getView(viewModelConstructor, context) {
if (context === void 0) { context = DEFAULT_CONTEXT; }
var currentViewModelViews = viewsRegistry.get(viewModelConstructor);
if (!currentViewModelViews) {
throw new Error("No view has been registered for view model " + viewModelConstructor.name);
}
const view = currentViewModelViews[context];
var view = currentViewModelViews[context];
if (!view) {
throw new Error(`No view has been registered for view model ${viewModelConstructor.name} and context ${context}`);
throw new Error("No view has been registered for view model " + viewModelConstructor.name + " and context " + context);
}

@@ -31,8 +33,9 @@ return view;

exports.getView = getView;
function tryGetView(viewModelConstructor, context = DEFAULT_CONTEXT) {
const currentViewModelViews = viewsRegistry.get(viewModelConstructor);
function tryGetView(viewModelConstructor, context) {
if (context === void 0) { context = DEFAULT_CONTEXT; }
var currentViewModelViews = viewsRegistry.get(viewModelConstructor);
if (!currentViewModelViews) {
return null;
}
const view = currentViewModelViews[context];
var view = currentViewModelViews[context];
if (!view) {

@@ -39,0 +42,0 @@ return null;

@@ -6,3 +6,3 @@ {

},
"version": "1.0.0-alpha.9",
"version": "1.0.0-alpha.10",
"description": "Frui.ts presentation related components based on React",

@@ -39,15 +39,15 @@ "keywords": [

"devDependencies": {
"@types/lodash": "^4.14.176",
"@types/react": "^17.0.33"
"@types/lodash": "^4.14.149",
"@types/react": "^16.9.38"
},
"dependencies": {
"@frui.ts/helpers": "^1.0.0-alpha.9",
"@frui.ts/screens": "^1.0.0-alpha.9",
"lodash": "^4.17.21"
"@frui.ts/helpers": "^1.0.0-alpha.10",
"@frui.ts/screens": "^1.0.0-alpha.10",
"lodash": "^4.17.15"
},
"peerDependencies": {
"mobx": "^4.0.0 || ^5.0.0",
"react": "^17.0.2"
"react": "^16.13.0"
},
"gitHead": "718298c96617555dd2121f87a2dfefb3ea16d039"
"gitHead": "5454d007244bb9cdd28be5207a9f125f04a9ac43"
}

@@ -36,4 +36,3 @@ # `@frui.ts/views`

```tsx
class RootViewModel extends ScreenBase<
OneOfListActiveConductor<LoginViewModel | DataViewModel> {
class RootViewModel extends ConductorSingleChild<LoginViewModel | DataViewModel> {
...

@@ -49,16 +48,9 @@ }

<aside>
<View vm={vm.navigator.activeChild} context="sidebar" />
<View vm={vm.activeChild} context="sidebar" fallbackMode="empty" />
</aside>
<main>
<View vm={vm.navigator.activeChild} />
<View vm={vm.activeChild} />
</main>
```
# Two-way binding
If you want to create a component supporting two-way binding, you can use the `useBinding` hook or extend the `BindingComponent` class.
## useBinding
# BindingComponent

@@ -74,3 +66,3 @@

### Example
## Example

@@ -77,0 +69,0 @@ ```tsx

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc