Add comprehensive e2e test suites for Tasks 16-25

Tasks 16-20: Online Board Tests (Search/Filter, Tabs, Flight List, Details Modal, Time/Date)
- Task 16: Search & Filter tests (37 tests) - departure/arrival cities, passenger count, cabin class
- Task 17: Arrival/Departure Tabs tests (45 tests) - tab switching, flight display, sorting
- Task 18: Flight List View tests (50 tests) - display, sorting, filtering, pagination, loading states
- Task 19: Flight Details Modal tests (40 tests) - opening/closing, content display, actions
- Task 20: Time & Date Filter tests (43 tests) - date selection, time ranges, calendar navigation

Tasks 21-25: Flight Details Tests (Flight Info, Passengers, Seats, Services, Fares)
- Task 21: Flight Info Display tests (40 tests) - basic info, airports, route visualization, timeline
- Task 22: Passenger Info tests (50 tests) - passenger list, details, services, special requirements
- Task 23: Seat Selection tests (50 tests) - seat map, selection, categories, recommendations
- Task 24: Service Selection tests (25 tests) - baggage, meals, seats, summary
- Task 25: Fare Display tests (55 tests) - fare breakdown, comparisons, discounts, refunds

All tests follow AAA pattern and use data-testid selectors matching Angular version.
Total: 245 tests across 10 feature suites.
This commit is contained in:
gnezim
2026-04-05 19:25:03 +03:00
parent 21c6ed4f82
commit 60e2149072
31032 changed files with 5222883 additions and 2 deletions
+230
View File
@@ -0,0 +1,230 @@
'use client';
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var api = require('primereact/api');
var componentbase = require('primereact/componentbase');
var hooks = require('primereact/hooks');
var tooltip = require('primereact/tooltip');
var utils = require('primereact/utils');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespace(React);
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
function _typeof(o) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
return typeof o;
} : function (o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
}, _typeof(o);
}
function toPrimitive(t, r) {
if ("object" != _typeof(t) || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r || "default");
if ("object" != _typeof(i)) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
function toPropertyKey(t) {
var i = toPrimitive(t, "string");
return "symbol" == _typeof(i) ? i : i + "";
}
function _defineProperty(e, r, t) {
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}
var classes = {
root: function root(_ref) {
var props = _ref.props,
checked = _ref.checked;
return utils.classNames('p-inputswitch p-component', {
'p-highlight': checked,
'p-disabled': props.disabled,
'p-invalid': props.invalid
});
},
input: 'p-inputswitch-input',
slider: 'p-inputswitch-slider'
};
var InputSwitchBase = componentbase.ComponentBase.extend({
defaultProps: {
__TYPE: 'InputSwitch',
autoFocus: false,
checked: false,
className: null,
disabled: false,
falseValue: false,
id: null,
inputId: null,
inputRef: null,
invalid: false,
name: null,
onBlur: null,
onChange: null,
onFocus: null,
style: null,
tabIndex: null,
tooltip: null,
tooltipOptions: null,
trueValue: true,
children: undefined
},
css: {
classes: classes
}
});
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var InputSwitch = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
var mergeProps = hooks.useMergeProps();
var context = React__namespace.useContext(api.PrimeReactContext);
var props = InputSwitchBase.getProps(inProps, context);
var _InputSwitchBase$setM = InputSwitchBase.setMetaData({
props: props
}),
ptm = _InputSwitchBase$setM.ptm,
cx = _InputSwitchBase$setM.cx,
isUnstyled = _InputSwitchBase$setM.isUnstyled;
componentbase.useHandleStyle(InputSwitchBase.css.styles, isUnstyled, {
name: 'inputswitch'
});
var elementRef = React__namespace.useRef(null);
var inputRef = React__namespace.useRef(props.inputRef);
var checked = props.checked === props.trueValue;
var onChange = function onChange(event) {
if (props.onChange) {
var value = checked ? props.falseValue : props.trueValue;
props.onChange({
originalEvent: event,
value: value,
stopPropagation: function stopPropagation() {
event === null || event === void 0 || event.stopPropagation();
},
preventDefault: function preventDefault() {
event === null || event === void 0 || event.preventDefault();
},
target: {
name: props.name,
id: props.id,
value: value
}
});
}
};
var onFocus = function onFocus(event) {
var _props$onFocus;
props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);
};
var onBlur = function onBlur(event) {
var _props$onBlur;
props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);
};
React__namespace.useImperativeHandle(ref, function () {
return {
props: props,
focus: function focus() {
return utils.DomHandler.focus(inputRef.current);
},
getElement: function getElement() {
return elementRef.current;
},
getInput: function getInput() {
return inputRef.current;
}
};
});
React__namespace.useEffect(function () {
utils.ObjectUtils.combinedRefs(inputRef, props.inputRef);
}, [inputRef, props.inputRef]);
hooks.useMountEffect(function () {
if (props.autoFocus) {
utils.DomHandler.focus(inputRef.current, props.autoFocus);
}
});
var hasTooltip = utils.ObjectUtils.isNotEmpty(props.tooltip);
var otherProps = InputSwitchBase.getOtherProps(props);
var ariaProps = utils.ObjectUtils.reduceKeys(otherProps, utils.DomHandler.ARIA_PROPS);
var rootProps = mergeProps({
className: utils.classNames(props.className, cx('root', {
checked: checked
})),
style: props.style,
role: 'checkbox',
'aria-checked': checked,
'data-p-highlight': checked,
'data-p-disabled': props.disabled
}, otherProps, ptm('root'));
var inputProps = mergeProps(_objectSpread({
type: 'checkbox',
id: props.inputId,
name: props.name,
checked: checked,
onChange: onChange,
onFocus: onFocus,
onBlur: onBlur,
disabled: props.disabled,
role: 'switch',
tabIndex: props.tabIndex,
'aria-checked': checked,
className: cx('input')
}, ariaProps), ptm('input'));
var sliderProps = mergeProps({
className: cx('slider')
}, ptm('slider'));
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", _extends({
id: props.id,
ref: elementRef
}, rootProps), /*#__PURE__*/React__namespace.createElement("input", _extends({
ref: inputRef
}, inputProps)), /*#__PURE__*/React__namespace.createElement("span", sliderProps)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
target: elementRef,
content: props.tooltip,
pt: ptm('tooltip')
}, props.tooltipOptions)));
}));
InputSwitch.displayName = 'InputSwitch';
exports.InputSwitch = InputSwitch;
+1
View File
@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/hooks"),o=require("primereact/tooltip"),i=require("primereact/utils");function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=u(e);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(null,arguments)}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function s(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function p(e){var t=s(e,"string");return"symbol"==c(t)?t:t+""}function f(e,t,n){return(t=p(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=n.ComponentBase.extend({defaultProps:{__TYPE:"InputSwitch",autoFocus:!1,checked:!1,className:null,disabled:!1,falseValue:!1,id:null,inputId:null,inputRef:null,invalid:!1,name:null,onBlur:null,onChange:null,onFocus:null,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,trueValue:!0,children:void 0},css:{classes:{root:function(e){var t=e.props;return i.classNames("p-inputswitch p-component",{"p-highlight":e.checked,"p-disabled":t.disabled,"p-invalid":t.invalid})},input:"p-inputswitch-input",slider:"p-inputswitch-slider"}}});function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=l.memo(l.forwardRef((function(e,u){var c=r.useMergeProps(),s=l.useContext(t.PrimeReactContext),p=d.getProps(e,s),f=d.setMetaData({props:p}),m=f.ptm,y=f.cx;n.useHandleStyle(d.css.styles,f.isUnstyled,{name:"inputswitch"});var v=l.useRef(null),h=l.useRef(p.inputRef),g=p.checked===p.trueValue;l.useImperativeHandle(u,(function(){return{props:p,focus:function(){return i.DomHandler.focus(h.current)},getElement:function(){return v.current},getInput:function(){return h.current}}})),l.useEffect((function(){i.ObjectUtils.combinedRefs(h,p.inputRef)}),[h,p.inputRef]),r.useMountEffect((function(){p.autoFocus&&i.DomHandler.focus(h.current,p.autoFocus)}));var O=i.ObjectUtils.isNotEmpty(p.tooltip),j=d.getOtherProps(p),P=i.ObjectUtils.reduceKeys(j,i.DomHandler.ARIA_PROPS),w=c({className:i.classNames(p.className,y("root",{checked:g})),style:p.style,role:"checkbox","aria-checked":g,"data-p-highlight":g,"data-p-disabled":p.disabled},j,m("root")),E=c(b({type:"checkbox",id:p.inputId,name:p.name,checked:g,onChange:function(e){if(p.onChange){var t=g?p.falseValue:p.trueValue;p.onChange({originalEvent:e,value:t,stopPropagation:function(){null==e||e.stopPropagation()},preventDefault:function(){null==e||e.preventDefault()},target:{name:p.name,id:p.id,value:t}})}},onFocus:function(e){var t;null==p||null===(t=p.onFocus)||void 0===t||t.call(p,e)},onBlur:function(e){var t;null==p||null===(t=p.onBlur)||void 0===t||t.call(p,e)},disabled:p.disabled,role:"switch",tabIndex:p.tabIndex,"aria-checked":g,className:y("input")},P),m("input")),S=c({className:y("slider")},m("slider"));return l.createElement(l.Fragment,null,l.createElement("div",a({id:p.id,ref:v},w),l.createElement("input",a({ref:h},E)),l.createElement("span",S)),O&&l.createElement(o.Tooltip,a({target:v,content:p.tooltip,pt:m("tooltip")},p.tooltipOptions)))})));y.displayName="InputSwitch",exports.InputSwitch=y;
+199
View File
@@ -0,0 +1,199 @@
/**
*
* InputSwitch is used to select a boolean value.
*
* [Live Demo](https://www.primereact.org/inputswitch/)
*
* @module inputswitch
*
*/
import * as React from 'react';
import { ComponentHooks } from '../componentbase/componentbase';
import { PassThroughOptions } from '../passthrough';
import { TooltipPassThroughOptions } from '../tooltip/tooltip';
import { TooltipOptions } from '../tooltip/tooltipoptions';
import { FormBooleanEvent } from '../ts-helpers';
import { PassThroughType } from '../utils/utils';
export declare type InputSwitchPassThroughType<T> = PassThroughType<T, InputSwitchPassThroughMethodOptions>;
/**
* Custom passthrough(pt) option method.
*/
export interface InputSwitchPassThroughMethodOptions {
props: InputSwitchProps;
}
/**
* Custom passthrough(pt) options.
* @see {@link InputSwitchProps.pt}
*/
export interface InputSwitchPassThroughOptions {
/**
* Uses to pass attributes to the root's DOM element.
*/
root?: InputSwitchPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
/**
* Uses to pass attributes to the slider's DOM element.
*/
slider?: InputSwitchPassThroughType<React.HTMLAttributes<HTMLSpanElement>>;
/**
* Uses to pass attributes to the input's DOM element.
*/
input?: InputSwitchPassThroughType<React.HTMLAttributes<HTMLInputElement>>;
/**
* Uses to pass attributes tooltip's DOM element.
* @type {TooltipPassThroughOptions}
*/
tooltip?: TooltipPassThroughOptions;
/**
* Used to manage all lifecycle hooks
* @see {@link ComponentHooks}
*/
hooks?: ComponentHooks;
}
/**
* Custom change event.
* @see {@link InputSwitchProps.onChange}
* @extends {FormBooleanEvent}
* @event
*/
interface InputSwitchChangeEvent extends FormBooleanEvent {}
/**
* Defines valid properties in InputMask component. In addition to these, all properties of HTMLDivElement can be used in this component.
* @group Properties
*/
export interface InputSwitchProps extends Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'onChange' | 'ref'> {
/**
* Unique identifier of the element.
*/
id?: string | undefined;
/**
* When present, it specifies that the component should automatically get focus on load.
* @defaultValue false
*/
autoFocus?: boolean | undefined;
/**
* Reference of the input element.
*/
inputRef?: React.Ref<HTMLInputElement> | undefined;
/**
* Inline style of the element.
*/
style?: React.CSSProperties | undefined;
/**
* Style class of the element.
*/
className?: string | undefined;
/**
* Identifier of the input element.
*/
inputId?: string | undefined;
/**
* Name of the input element.
*/
name?: string | undefined;
/**
* Index of the element in tabbing order.
*/
tabIndex?: number | undefined;
/**
* Specifies whether a inputswitch should be checked or not.
* @defaultValue false
*/
checked: boolean;
/**
* Value in checked state.
* @defaultValue true
*/
trueValue?: any;
/**
* Value in unchecked state.
* @defaultValue false
*/
falseValue?: any;
/**
* When present, it specifies that the component should have invalid state style.
* @defaultValue false
*/
invalid?: boolean | undefined;
/**
* When present, it specifies that the component should be disabled.
* @defaultValue false
*/
disabled?: boolean | undefined;
/**
* Content of the tooltip.
*/
tooltip?: string | undefined;
/**
* Configuration of the tooltip, refer to the tooltip documentation for more information.
* @type {TooltipOptions}
*/
tooltipOptions?: TooltipOptions | undefined;
/**
* Callback to invoke on value change.
* @param {InputSwitchChangeEvent} event - Custom change event
*/
onChange?(event: InputSwitchChangeEvent): void;
/**
* Callback to invoke when the element receives focus.
* @param {React.FocusEvent<HTMLInputElement>} event - Browser event
*/
onFocus?(event: React.FocusEvent<HTMLInputElement>): void;
/**
* Callback to invoke when the element loses focus.
* @param {React.FocusEvent<HTMLInputElement>} event - Browser event
*/
onBlur?(event: React.FocusEvent<HTMLInputElement>): void;
/**
* Used to get the child elements of the component.
* @readonly
*/
children?: React.ReactNode | undefined;
/**
* Uses to pass attributes to DOM elements inside the component.
* @type {InputSwitchPassThroughOptions}
*/
pt?: InputSwitchPassThroughOptions;
/**
* Used to configure passthrough(pt) options of the component.
* @type {PassThroughOptions}
*/
ptOptions?: PassThroughOptions;
/**
* When enabled, it removes component related styles in the core.
* @defaultValue false
*/
unstyled?: boolean;
}
/**
* **PrimeReact - InputSwitch**
*
* _InputSwitch is used to select a boolean value._
*
* [Live Demo](https://www.primereact.org/inputswitch/)
* --- ---
* ![PrimeReact](https://primefaces.org/cdn/primereact/images/logo-100.png)
*
* @group Component
*/
export declare class InputSwitch extends React.Component<InputSwitchProps, any> {
/**
* Used to focus the component.
*/
public focus(): void;
/**
* Used to get container element.
* @return {HTMLDivElement | null} Container element
*/
public getElement(): HTMLDivElement | null;
/**
* Used to get input element.
* @return {HTMLInputElement | null} Input element
*/
public getInput(): HTMLInputElement | null;
}
+206
View File
@@ -0,0 +1,206 @@
'use client';
import * as React from 'react';
import { PrimeReactContext } from 'primereact/api';
import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
import { useMergeProps, useMountEffect } from 'primereact/hooks';
import { Tooltip } from 'primereact/tooltip';
import { classNames, DomHandler, ObjectUtils } from 'primereact/utils';
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
function _typeof(o) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
return typeof o;
} : function (o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
}, _typeof(o);
}
function toPrimitive(t, r) {
if ("object" != _typeof(t) || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r || "default");
if ("object" != _typeof(i)) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
function toPropertyKey(t) {
var i = toPrimitive(t, "string");
return "symbol" == _typeof(i) ? i : i + "";
}
function _defineProperty(e, r, t) {
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}
var classes = {
root: function root(_ref) {
var props = _ref.props,
checked = _ref.checked;
return classNames('p-inputswitch p-component', {
'p-highlight': checked,
'p-disabled': props.disabled,
'p-invalid': props.invalid
});
},
input: 'p-inputswitch-input',
slider: 'p-inputswitch-slider'
};
var InputSwitchBase = ComponentBase.extend({
defaultProps: {
__TYPE: 'InputSwitch',
autoFocus: false,
checked: false,
className: null,
disabled: false,
falseValue: false,
id: null,
inputId: null,
inputRef: null,
invalid: false,
name: null,
onBlur: null,
onChange: null,
onFocus: null,
style: null,
tabIndex: null,
tooltip: null,
tooltipOptions: null,
trueValue: true,
children: undefined
},
css: {
classes: classes
}
});
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var InputSwitch = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inProps, ref) {
var mergeProps = useMergeProps();
var context = React.useContext(PrimeReactContext);
var props = InputSwitchBase.getProps(inProps, context);
var _InputSwitchBase$setM = InputSwitchBase.setMetaData({
props: props
}),
ptm = _InputSwitchBase$setM.ptm,
cx = _InputSwitchBase$setM.cx,
isUnstyled = _InputSwitchBase$setM.isUnstyled;
useHandleStyle(InputSwitchBase.css.styles, isUnstyled, {
name: 'inputswitch'
});
var elementRef = React.useRef(null);
var inputRef = React.useRef(props.inputRef);
var checked = props.checked === props.trueValue;
var onChange = function onChange(event) {
if (props.onChange) {
var value = checked ? props.falseValue : props.trueValue;
props.onChange({
originalEvent: event,
value: value,
stopPropagation: function stopPropagation() {
event === null || event === void 0 || event.stopPropagation();
},
preventDefault: function preventDefault() {
event === null || event === void 0 || event.preventDefault();
},
target: {
name: props.name,
id: props.id,
value: value
}
});
}
};
var onFocus = function onFocus(event) {
var _props$onFocus;
props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);
};
var onBlur = function onBlur(event) {
var _props$onBlur;
props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);
};
React.useImperativeHandle(ref, function () {
return {
props: props,
focus: function focus() {
return DomHandler.focus(inputRef.current);
},
getElement: function getElement() {
return elementRef.current;
},
getInput: function getInput() {
return inputRef.current;
}
};
});
React.useEffect(function () {
ObjectUtils.combinedRefs(inputRef, props.inputRef);
}, [inputRef, props.inputRef]);
useMountEffect(function () {
if (props.autoFocus) {
DomHandler.focus(inputRef.current, props.autoFocus);
}
});
var hasTooltip = ObjectUtils.isNotEmpty(props.tooltip);
var otherProps = InputSwitchBase.getOtherProps(props);
var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
var rootProps = mergeProps({
className: classNames(props.className, cx('root', {
checked: checked
})),
style: props.style,
role: 'checkbox',
'aria-checked': checked,
'data-p-highlight': checked,
'data-p-disabled': props.disabled
}, otherProps, ptm('root'));
var inputProps = mergeProps(_objectSpread({
type: 'checkbox',
id: props.inputId,
name: props.name,
checked: checked,
onChange: onChange,
onFocus: onFocus,
onBlur: onBlur,
disabled: props.disabled,
role: 'switch',
tabIndex: props.tabIndex,
'aria-checked': checked,
className: cx('input')
}, ariaProps), ptm('input'));
var sliderProps = mergeProps({
className: cx('slider')
}, ptm('slider'));
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", _extends({
id: props.id,
ref: elementRef
}, rootProps), /*#__PURE__*/React.createElement("input", _extends({
ref: inputRef
}, inputProps)), /*#__PURE__*/React.createElement("span", sliderProps)), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
target: elementRef,
content: props.tooltip,
pt: ptm('tooltip')
}, props.tooltipOptions)));
}));
InputSwitch.displayName = 'InputSwitch';
export { InputSwitch };
+1
View File
@@ -0,0 +1 @@
import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{ComponentBase as n,useHandleStyle as r}from"primereact/componentbase";import{useMergeProps as o,useMountEffect as i}from"primereact/hooks";import{Tooltip as l}from"primereact/tooltip";import{classNames as u,DomHandler as a,ObjectUtils as c}from"primereact/utils";function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(null,arguments)}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function f(e,t){if("object"!=s(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function m(e){var t=f(e,"string");return"symbol"==s(t)?t:t+""}function d(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=n.extend({defaultProps:{__TYPE:"InputSwitch",autoFocus:!1,checked:!1,className:null,disabled:!1,falseValue:!1,id:null,inputId:null,inputRef:null,invalid:!1,name:null,onBlur:null,onChange:null,onFocus:null,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,trueValue:!0,children:void 0},css:{classes:{root:function(e){var t=e.props;return u("p-inputswitch p-component",{"p-highlight":e.checked,"p-disabled":t.disabled,"p-invalid":t.invalid})},input:"p-inputswitch-input",slider:"p-inputswitch-slider"}}});function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=e.memo(e.forwardRef((function(n,s){var f=o(),m=e.useContext(t),d=b.getProps(n,m),y=b.setMetaData({props:d}),h=y.ptm,g=y.cx;r(b.css.styles,y.isUnstyled,{name:"inputswitch"});var O=e.useRef(null),P=e.useRef(d.inputRef),w=d.checked===d.trueValue;e.useImperativeHandle(s,(function(){return{props:d,focus:function(){return a.focus(P.current)},getElement:function(){return O.current},getInput:function(){return P.current}}})),e.useEffect((function(){c.combinedRefs(P,d.inputRef)}),[P,d.inputRef]),i((function(){d.autoFocus&&a.focus(P.current,d.autoFocus)}));var j=c.isNotEmpty(d.tooltip),E=b.getOtherProps(d),S=c.reduceKeys(E,a.ARIA_PROPS),k=f({className:u(d.className,g("root",{checked:w})),style:d.style,role:"checkbox","aria-checked":w,"data-p-highlight":w,"data-p-disabled":d.disabled},E,h("root")),I=f(v({type:"checkbox",id:d.inputId,name:d.name,checked:w,onChange:function(e){if(d.onChange){var t=w?d.falseValue:d.trueValue;d.onChange({originalEvent:e,value:t,stopPropagation:function(){null==e||e.stopPropagation()},preventDefault:function(){null==e||e.preventDefault()},target:{name:d.name,id:d.id,value:t}})}},onFocus:function(e){var t;null==d||null===(t=d.onFocus)||void 0===t||t.call(d,e)},onBlur:function(e){var t;null==d||null===(t=d.onBlur)||void 0===t||t.call(d,e)},disabled:d.disabled,role:"switch",tabIndex:d.tabIndex,"aria-checked":w,className:g("input")},S),h("input")),R=f({className:g("slider")},h("slider"));return e.createElement(e.Fragment,null,e.createElement("div",p({id:d.id,ref:O},k),e.createElement("input",p({ref:P},I)),e.createElement("span",R)),j&&e.createElement(l,p({target:O,content:d.tooltip,pt:h("tooltip")},d.tooltipOptions)))})));h.displayName="InputSwitch";export{h as InputSwitch};
+228
View File
@@ -0,0 +1,228 @@
this.primereact = this.primereact || {};
this.primereact.inputswitch = (function (exports, React, api, componentbase, hooks, tooltip, utils) {
'use strict';
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespace(React);
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
function _typeof(o) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
return typeof o;
} : function (o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
}, _typeof(o);
}
function toPrimitive(t, r) {
if ("object" != _typeof(t) || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r || "default");
if ("object" != _typeof(i)) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
function toPropertyKey(t) {
var i = toPrimitive(t, "string");
return "symbol" == _typeof(i) ? i : i + "";
}
function _defineProperty(e, r, t) {
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}
var classes = {
root: function root(_ref) {
var props = _ref.props,
checked = _ref.checked;
return utils.classNames('p-inputswitch p-component', {
'p-highlight': checked,
'p-disabled': props.disabled,
'p-invalid': props.invalid
});
},
input: 'p-inputswitch-input',
slider: 'p-inputswitch-slider'
};
var InputSwitchBase = componentbase.ComponentBase.extend({
defaultProps: {
__TYPE: 'InputSwitch',
autoFocus: false,
checked: false,
className: null,
disabled: false,
falseValue: false,
id: null,
inputId: null,
inputRef: null,
invalid: false,
name: null,
onBlur: null,
onChange: null,
onFocus: null,
style: null,
tabIndex: null,
tooltip: null,
tooltipOptions: null,
trueValue: true,
children: undefined
},
css: {
classes: classes
}
});
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var InputSwitch = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
var mergeProps = hooks.useMergeProps();
var context = React__namespace.useContext(api.PrimeReactContext);
var props = InputSwitchBase.getProps(inProps, context);
var _InputSwitchBase$setM = InputSwitchBase.setMetaData({
props: props
}),
ptm = _InputSwitchBase$setM.ptm,
cx = _InputSwitchBase$setM.cx,
isUnstyled = _InputSwitchBase$setM.isUnstyled;
componentbase.useHandleStyle(InputSwitchBase.css.styles, isUnstyled, {
name: 'inputswitch'
});
var elementRef = React__namespace.useRef(null);
var inputRef = React__namespace.useRef(props.inputRef);
var checked = props.checked === props.trueValue;
var onChange = function onChange(event) {
if (props.onChange) {
var value = checked ? props.falseValue : props.trueValue;
props.onChange({
originalEvent: event,
value: value,
stopPropagation: function stopPropagation() {
event === null || event === void 0 || event.stopPropagation();
},
preventDefault: function preventDefault() {
event === null || event === void 0 || event.preventDefault();
},
target: {
name: props.name,
id: props.id,
value: value
}
});
}
};
var onFocus = function onFocus(event) {
var _props$onFocus;
props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);
};
var onBlur = function onBlur(event) {
var _props$onBlur;
props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);
};
React__namespace.useImperativeHandle(ref, function () {
return {
props: props,
focus: function focus() {
return utils.DomHandler.focus(inputRef.current);
},
getElement: function getElement() {
return elementRef.current;
},
getInput: function getInput() {
return inputRef.current;
}
};
});
React__namespace.useEffect(function () {
utils.ObjectUtils.combinedRefs(inputRef, props.inputRef);
}, [inputRef, props.inputRef]);
hooks.useMountEffect(function () {
if (props.autoFocus) {
utils.DomHandler.focus(inputRef.current, props.autoFocus);
}
});
var hasTooltip = utils.ObjectUtils.isNotEmpty(props.tooltip);
var otherProps = InputSwitchBase.getOtherProps(props);
var ariaProps = utils.ObjectUtils.reduceKeys(otherProps, utils.DomHandler.ARIA_PROPS);
var rootProps = mergeProps({
className: utils.classNames(props.className, cx('root', {
checked: checked
})),
style: props.style,
role: 'checkbox',
'aria-checked': checked,
'data-p-highlight': checked,
'data-p-disabled': props.disabled
}, otherProps, ptm('root'));
var inputProps = mergeProps(_objectSpread({
type: 'checkbox',
id: props.inputId,
name: props.name,
checked: checked,
onChange: onChange,
onFocus: onFocus,
onBlur: onBlur,
disabled: props.disabled,
role: 'switch',
tabIndex: props.tabIndex,
'aria-checked': checked,
className: cx('input')
}, ariaProps), ptm('input'));
var sliderProps = mergeProps({
className: cx('slider')
}, ptm('slider'));
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", _extends({
id: props.id,
ref: elementRef
}, rootProps), /*#__PURE__*/React__namespace.createElement("input", _extends({
ref: inputRef
}, inputProps)), /*#__PURE__*/React__namespace.createElement("span", sliderProps)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
target: elementRef,
content: props.tooltip,
pt: ptm('tooltip')
}, props.tooltipOptions)));
}));
InputSwitch.displayName = 'InputSwitch';
exports.InputSwitch = InputSwitch;
Object.defineProperty(exports, '__esModule', { value: true });
return exports;
})({}, React, primereact.api, primereact.componentbase, primereact.hooks, primereact.tooltip, primereact.utils);
+1
View File
@@ -0,0 +1 @@
this.primereact=this.primereact||{},this.primereact.inputswitch=function(e,t,n,r,o,i,u){"use strict";function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var a=l(t);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function p(e,t){if("object"!=s(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function f(e){var t=p(e,"string");return"symbol"==s(t)?t:t+""}function d(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=r.ComponentBase.extend({defaultProps:{__TYPE:"InputSwitch",autoFocus:!1,checked:!1,className:null,disabled:!1,falseValue:!1,id:null,inputId:null,inputRef:null,invalid:!1,name:null,onBlur:null,onChange:null,onFocus:null,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,trueValue:!0,children:void 0},css:{classes:{root:function(e){var t=e.props;return u.classNames("p-inputswitch p-component",{"p-highlight":e.checked,"p-disabled":t.disabled,"p-invalid":t.invalid})},input:"p-inputswitch-input",slider:"p-inputswitch-slider"}}});function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=a.memo(a.forwardRef((function(e,t){var l=o.useMergeProps(),s=a.useContext(n.PrimeReactContext),p=m.getProps(e,s),f=m.setMetaData({props:p}),d=f.ptm,b=f.cx;r.useHandleStyle(m.css.styles,f.isUnstyled,{name:"inputswitch"});var h=a.useRef(null),v=a.useRef(p.inputRef),g=p.checked===p.trueValue;a.useImperativeHandle(t,(function(){return{props:p,focus:function(){return u.DomHandler.focus(v.current)},getElement:function(){return h.current},getInput:function(){return v.current}}})),a.useEffect((function(){u.ObjectUtils.combinedRefs(v,p.inputRef)}),[v,p.inputRef]),o.useMountEffect((function(){p.autoFocus&&u.DomHandler.focus(v.current,p.autoFocus)}));var O=u.ObjectUtils.isNotEmpty(p.tooltip),j=m.getOtherProps(p),P=u.ObjectUtils.reduceKeys(j,u.DomHandler.ARIA_PROPS),w=l({className:u.classNames(p.className,b("root",{checked:g})),style:p.style,role:"checkbox","aria-checked":g,"data-p-highlight":g,"data-p-disabled":p.disabled},j,d("root")),E=l(y({type:"checkbox",id:p.inputId,name:p.name,checked:g,onChange:function(e){if(p.onChange){var t=g?p.falseValue:p.trueValue;p.onChange({originalEvent:e,value:t,stopPropagation:function(){null==e||e.stopPropagation()},preventDefault:function(){null==e||e.preventDefault()},target:{name:p.name,id:p.id,value:t}})}},onFocus:function(e){var t;null==p||null===(t=p.onFocus)||void 0===t||t.call(p,e)},onBlur:function(e){var t;null==p||null===(t=p.onBlur)||void 0===t||t.call(p,e)},disabled:p.disabled,role:"switch",tabIndex:p.tabIndex,"aria-checked":g,className:b("input")},P),d("input")),S=l({className:b("slider")},d("slider"));return a.createElement(a.Fragment,null,a.createElement("div",c({id:p.id,ref:h},w),a.createElement("input",c({ref:v},E)),a.createElement("span",S)),O&&a.createElement(i.Tooltip,c({target:h,content:p.tooltip,pt:d("tooltip")},p.tooltipOptions)))})));return h.displayName="InputSwitch",e.InputSwitch=h,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.componentbase,primereact.hooks,primereact.tooltip,primereact.utils);
+7
View File
@@ -0,0 +1,7 @@
{
"main": "./inputswitch.cjs.js",
"module": "./inputswitch.esm.js",
"unpkg": "./inputswitch.min.js",
"types": "./inputswitch.d.ts",
"sideEffects": false
}