@agnos-ui/core-bootstrap
Version:
Styles and component interface extensions necessary to use AgnosUI with Bootstrap.
48 lines (47 loc) • 1.85 kB
JavaScript
;
const stores = require("@agnos-ui/core/utils/stores");
const directive = require("@agnos-ui/core/utils/directive");
const writables = require("@agnos-ui/core/utils/writables");
const collapse$1 = require("./collapse-sUYbZqEx.cjs");
const tansu = require("@amadeus-it-group/tansu");
const widget = require("@agnos-ui/core/utils/widget");
const collapse = require("@agnos-ui/core/components/collapse");
const defaultConfigExtraProps = {
className: "",
horizontal: false
};
const configValidator = {
horizontal: writables.typeBoolean,
className: writables.typeString
};
function getCollapseDefaultConfig() {
return { ...collapse.getCollapseDefaultConfig(), ...defaultConfigExtraProps };
}
const createCollapse = widget.createWidgetFactory("collapse", (config) => {
const [{ horizontal$, className$ }, patch] = stores.writablesForProps(defaultConfigExtraProps, config, configValidator);
const transitionFn$ = tansu.asWritable(tansu.computed(() => horizontal$() ? collapse$1.collapseHorizontalTransition : collapse$1.collapseVerticalTransition));
const widget2 = collapse.createCollapse({ ...config ?? {}, props: { ...(config == null ? void 0 : config.props) ?? {}, transition: transitionFn$ } });
return {
...widget2,
patch: (storesValues) => tansu.batch(() => {
widget2.patch(storesValues);
patch(storesValues);
}),
directives: {
...widget2.directives,
collapseDirective: directive.mergeDirectives(
widget2.directives.collapseDirective,
directive.createAttributesDirective(() => ({
attributes: {
class: className$
},
classNames: {
"au-collapse": stores.true$
}
}))
)
}
};
});
exports.createCollapse = createCollapse;
exports.getCollapseDefaultConfig = getCollapseDefaultConfig;