60e2149072
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.
2 lines
2.5 KiB
JavaScript
2 lines
2.5 KiB
JavaScript
this.primereact=this.primereact||{},this.primereact.chart=function(e,t,r,n,u,a){"use strict";function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(t),c=n.ComponentBase.extend({defaultProps:{__TYPE:"Chart",id:null,type:null,data:null,options:null,plugins:null,width:null,height:null,style:null,className:null,children:void 0},css:{classes:{root:"p-chart"},inlineStyles:{root:function(e){var t=e.props;return Object.assign({width:t.width,height:t.height},t.style)}},styles:"\n @layer primereact {\n .p-chart {\n position: relative\n }\n }\n "}}),o=function(){try{return Chart}catch(e){return null}}(),l=s.memo(s.forwardRef((function(e,t){var i=u.useMergeProps(),l=s.useContext(r.PrimeReactContext),p=c.getProps(e,l),f=c.setMetaData({props:p}),d=f.ptm,h=f.cx,m=f.sx;n.useHandleStyle(c.css.styles,f.isUnstyled,{name:"chart"});var g=s.useRef(null),y=s.useRef(null),v=s.useRef(null),b=function(){w();var e={type:p.type,data:p.data,options:p.options,plugins:p.plugins};o?y.current=new o(v.current,e):import("chart.js/auto").then((function(t){w(),v.current&&t&&(y.current=t.default?new t.default(v.current,e):new t(v.current,e))}))},w=function(){y.current&&(y.current.destroy(),y.current=null)};s.useImperativeHandle(t,(function(){return{props:p,getCanvas:function(){return v.current},getChart:function(){return y.current},getBase64Image:function(){return y.current.toBase64Image()},getElement:function(){return g.current},generateLegend:function(){return y.current&&y.current.generateLegend()},refresh:function(){return y.current&&y.current.update()}}})),s.useEffect((function(){b()})),u.useUnmountEffect((function(){w()}));var C=p.ariaLabel||p.options&&p.options.plugins&&p.options.plugins.title&&p.options.plugins.title.text,O=i({id:p.id,ref:g,style:m("root"),className:a.classNames(p.className,h("root"))},c.getOtherProps(p),d("root")),P=i({ref:v,width:p.width,height:p.height,role:"img","aria-label":C},d("canvas"));return s.createElement("div",O,s.createElement("canvas",P))})),(function(e,t){return e.data===t.data&&e.options===t.options&&e.type===t.type}));return l.displayName="Chart",e.Chart=l,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.componentbase,primereact.hooks,primereact.utils);
|