{"version":3,"file":"wheaton.js","mappings":"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QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE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","sources":["webpack://@linchpin/hari/./assets/js/components.js","webpack://@linchpin/hari/./assets/js/department-nav.js","webpack://@linchpin/hari/./assets/js/faculty.js","webpack://@linchpin/hari/./assets/js/filtering.js","webpack://@linchpin/hari/./assets/js/footer-menu.js","webpack://@linchpin/hari/./assets/js/navigation.js","webpack://@linchpin/hari/./assets/js/slider.js","webpack://@linchpin/hari/./node_modules/select2/dist/js/select2.js","webpack://@linchpin/hari/external var \"jQuery\"","webpack://@linchpin/hari/./node_modules/ssr-window/ssr-window.esm.js","webpack://@linchpin/hari/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://@linchpin/hari/./node_modules/swiper/core/breakpoints/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://@linchpin/hari/./node_modules/swiper/core/check-overflow/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/classes/addClasses.js","webpack://@linchpin/hari/./node_modules/swiper/core/classes/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/classes/removeClasses.js","webpack://@linchpin/hari/./node_modules/swiper/core/core.js","webpack://@linchpin/hari/./node_modules/swiper/core/defaults.js","webpack://@linchpin/hari/./node_modules/swiper/core/events-emitter.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onClick.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onLoad.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onResize.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onScroll.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onTouchEnd.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onTouchMove.js","webpack://@linchpin/hari/./node_modules/swiper/core/events/onTouchStart.js","webpack://@linchpin/hari/./node_modules/swiper/core/grab-cursor/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://@linchpin/hari/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://@linchpin/hari/./node_modules/swiper/core/loop/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/loop/loopCreate.js","webpack://@linchpin/hari/./node_modules/swiper/core/loop/loopDestroy.js","webpack://@linchpin/hari/./node_modules/swiper/core/loop/loopFix.js","webpack://@linchpin/hari/./node_modules/swiper/core/moduleExtendParams.js","webpack://@linchpin/hari/./node_modules/swiper/core/modules/observer/observer.js","webpack://@linchpin/hari/./node_modules/swiper/core/modules/resize/resize.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideNext.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slidePrev.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideReset.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideTo.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideToClosest.js","webpack://@linchpin/hari/./node_modules/swiper/core/slide/slideToLoop.js","webpack://@linchpin/hari/./node_modules/swiper/core/transition/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/transition/setTransition.js","webpack://@linchpin/hari/./node_modules/swiper/core/transition/transitionEmit.js","webpack://@linchpin/hari/./node_modules/swiper/core/transition/transitionEnd.js","webpack://@linchpin/hari/./node_modules/swiper/core/transition/transitionStart.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/getTranslate.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/maxTranslate.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/minTranslate.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/setTranslate.js","webpack://@linchpin/hari/./node_modules/swiper/core/translate/translateTo.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/index.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateProgress.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateSize.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateSlides.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://@linchpin/hari/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://@linchpin/hari/./node_modules/swiper/modules/a11y/a11y.js","webpack://@linchpin/hari/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://@linchpin/hari/./node_modules/swiper/modules/controller/controller.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://@linchpin/hari/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://@linchpin/hari/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://@linchpin/hari/./node_modules/swiper/modules/grid/grid.js","webpack://@linchpin/hari/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://@linchpin/hari/./node_modules/swiper/modules/history/history.js","webpack://@linchpin/hari/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/manipulation.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack://@linchpin/hari/./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack://@linchpin/hari/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://@linchpin/hari/./node_modules/swiper/modules/navigation/navigation.js","webpack://@linchpin/hari/./node_modules/swiper/modules/pagination/pagination.js","webpack://@linchpin/hari/./node_modules/swiper/modules/parallax/parallax.js","webpack://@linchpin/hari/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://@linchpin/hari/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://@linchpin/hari/./node_modules/swiper/modules/virtual/virtual.js","webpack://@linchpin/hari/./node_modules/swiper/modules/zoom/zoom.js","webpack://@linchpin/hari/./node_modules/swiper/shared/classes-to-selector.js","webpack://@linchpin/hari/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://@linchpin/hari/./node_modules/swiper/shared/create-shadow.js","webpack://@linchpin/hari/./node_modules/swiper/shared/effect-init.js","webpack://@linchpin/hari/./node_modules/swiper/shared/effect-target.js","webpack://@linchpin/hari/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://@linchpin/hari/./node_modules/swiper/shared/get-browser.js","webpack://@linchpin/hari/./node_modules/swiper/shared/get-device.js","webpack://@linchpin/hari/./node_modules/swiper/shared/get-support.js","webpack://@linchpin/hari/./node_modules/swiper/shared/process-lazy-preloader.js","webpack://@linchpin/hari/./node_modules/swiper/shared/utils.js","webpack://@linchpin/hari/./node_modules/swiper/swiper.esm.js","webpack://@linchpin/hari/webpack/bootstrap","webpack://@linchpin/hari/webpack/runtime/compat get default export","webpack://@linchpin/hari/webpack/runtime/define property getters","webpack://@linchpin/hari/webpack/runtime/hasOwnProperty shorthand","webpack://@linchpin/hari/webpack/runtime/make namespace object","webpack://@linchpin/hari/./assets/js/wheaton.js"],"sourcesContent":["export default function components() {\n\tlet scroll_to_top = document.getElementById('scrollToTopBtn');\n\n\tif (scroll_to_top) {\n\t\tscroll_to_top.addEventListener( 'click', function() {\n\t\t\twindow.scrollTo( {\n\t\t\t\ttop: 0,\n\t\t\t\tbehavior: 'smooth'\n\t\t\t} );\n\t\t} );\n\n\t\twindow.addEventListener( 'scroll', function() {\n\t\t\tif( window.scrollY > 200 ) {\n\t\t\t\tscroll_to_top.classList.add( 'show' );\n\t\t\t}else {\n\t\t\t\tscroll_to_top.classList.remove( 'show' );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/*\n\t$( window ).scroll( function() {\n\t\tif( $( window ).scrollTop() > 0 ) {\n\t\t\tgetElement( '.top-bar' ).addClass( 'is-fixed' );\n\t\t}\n\t\tif( $( window ).scrollTop() <= 0 ) {\n\t\t\tgetElement( '.top-bar' ).removeClass( 'is-fixed' );\n\t\t}\n\t\tif( $( window ).scrollTop() > 200 ) {\n\t\t\tgetElement( '#scrollToTopBtn' ).addClass( 'showBtn' );\n\t\t}else {\n\t\t\tgetElement( '#scrollToTopBtn' ).removeClass( 'showBtn' );\n\t\t}\n\t} );\n\t*/\n}","export default function department_nav() {\n\tlet department_page_items = document.querySelectorAll('.department-menu-container > nav > .menu > .page_item');\n\tlet cutoff_index = 4;\n\n\t// if there are more than cutoff_index departments, add a \"more\" button and add the rest of the departments to a hidden list\n\tif ( department_page_items.length > cutoff_index ) {\n\t\tlet more_button = document.createElement('li');\n\t\tmore_button.classList.add('page_item', 'page-item-0', 'menu-item', 'menu-item-0', 'menu-item-type-custom', 'menu-item-object-custom', 'page_item_has_children', 'menu-item-has-children', 'department-nav-more');\n\t\tmore_button.innerHTML = 'More';\n\n\t\tlet more_list = document.createElement('ul');\n\t\tmore_list.classList.add('children');\n\n\t\t// add the first cutoff_index departments to the main list\n\t\tfor ( let i = 0; i < cutoff_index; i++ ) {\n\t\t\tdepartment_page_items[i].classList.add('department-nav-item');\n\t\t\tdepartment_page_items[i].classList.remove('department-nav-item-hidden');\n\t\t}\n\n\t\t// add the rest of the departments to the \"more\" list\n\t\tfor ( let i = cutoff_index; i < department_page_items.length; i++ ) {\n\t\t\tdepartment_page_items[i].classList.add('department-nav-item', 'department-nav-item-hidden');\n\t\t\tmore_list.appendChild(department_page_items[i]);\n\t\t}\n\n\t\tmore_button.appendChild(more_list);\n\t\tdocument.querySelector('.department-menu-container > nav > .menu').appendChild(more_button);\n\t}\n\n\tdepartment_page_items.forEach( function(item) {\n\t\titem.classList.add('show');\n\t});\n}","import jQuery from 'jquery';\n\nlet $ = jQuery;\n\nexport default function faculty() {\n\tlet accordion_titles = document.querySelectorAll( '.faculty-accordion__title' );\n\t\n\taccordion_titles.forEach( accordion_title => {\n\t\taccordion_title.addEventListener( 'click', function() {\n\t\t\tthis.classList.toggle( 'active' );\n\t\t\tlet accordion_content = this.nextElementSibling;\n\n\t\t\t$(accordion_content).slideToggle();\n\t\t} );\n\t} );\n}","import jQuery from 'jquery';\nimport select2 from 'select2';\n\nlet $ = jQuery;\nexport default function filtering() {\n\tlet department_filter = document.getElementById( 'department-filter' );\n\tlet department_filter_active = false;\n\tlet faculty_list = document.getElementById( 'faculty-list' );\n\tlet active_filters_class = 'results-filtered';\n\n\t// Set-up clearing function for department filter\n\tconst clearDepartmentFilter = () => {\n\t\tdocument.body.classList.remove(active_filters_class);\n\n\t\tlet department_checkboxes = document.querySelectorAll('input[name=\"filter_department\"]');\n\n\t\tdepartment_checkboxes.forEach((checkbox) => { \n\t\t\tcheckbox.checked = false;\n\t\t});\n\n\t\tdepartment_filter.dispatchEvent(new Event('change'));\n\t}\n\n\t// Set-up clearing function for faculty filter\n\tconst clearFacultyFilter = () => {\n\t\tdocument.body.classList.remove(active_filters_class);\n\n\t\t$('#search_faculty').val(null).trigger('change');\n\t\t$('.faculty-loop-item').removeClass('show');\n\t\tfaculty_list.classList.remove('filtered');\n\t}\n\t\n\tif ( $('#search_faculty').length ) {\n\t\t$('#search_faculty').select2({\n\t\t\tplaceholder: 'Search Faculty',\n\t\t\tallowClear: true,\n\t\t\tallowEmpty: true,\n\t\t\twidth: '100%',\n\t\t\tdropdownParent: $('form.search-form')\n\t\t});\n\n\t\t$('#search_faculty').on('select2:open', function (e) {\n\t\t\t$('.select2-search__field').attr('placeholder', wheatonData.faculty_filter_placeholder);\n\t\t})\n\n\t\t$('#search_faculty').on('select2:select', function (e) {\n\t\t\tclearDepartmentFilter();\n\n\t\t\t$('.faculty-loop-item').removeClass('show');\n\t\t\tfaculty_list.classList.remove('filtered');\n\n\t\t\tlet data = e.params.data;\n\t\t\t\n\t\t\tif ( data ) {\n\t\t\t\t$('.faculty-loop-item.' + data.id).addClass('show');\n\t\t\t\tfaculty_list.classList.add('filtered');\n\n\t\t\t\tdocument.body.classList.add(active_filters_class);\n\t\t\t}\n\t\t});\n\n\t\t$('#search_faculty').on('select2:clear', function (e) {\n\t\t\t$('.faculty-loop-item').removeClass('show');\n\t\t\tfaculty_list.classList.remove('filtered');\n\t\t\tdocument.body.classList.remove(active_filters_class);\n\t\t});\n\t}\n\n\t// Department filter\n\tif ( department_filter ) {\n\t\tlet department_filter_trigger = document.querySelector('.department-filter-toggle');\n\t\tlet department_filter_contain = document.querySelector('.department-filter-choices');\n\t\tlet department_checkboxes = document.querySelectorAll('input[name=\"filter_department\"]');\n\t\tlet dashicons_arrow = document.querySelector('.department-filter-toggle .dashicons');\n\t\tlet filtering_by = document.querySelector('.department-filter__filtering-by');\n\t\tlet filtering_by_container = document.querySelector('.department-filter__filtering-by-container');\n\t\tlet clear_filters = document.querySelector('.button.clear-filters');\n\n\t\t// Add click event to catch clicks outside of #department-filter\n\t\tdocument.body.addEventListener('click', function(e) {\n\t\t\tlet target = e.target;\n\t\t\t\n\t\t\tif ( ! department_filter.contains(target) && department_filter_active ) {\n\t\t\t\tdepartment_filter_contain.classList.toggle('active');\n\t\t\t\tdashicons_arrow.classList.toggle('dashicons-arrow-right');\n\t\t\t\tdashicons_arrow.classList.toggle('dashicons-arrow-down');\n\n\t\t\t\tdepartment_filter_active = false;\n\t\t\t}\n\t\t});\n\n\t\t/*\n\t\tdepartment_filter_trigger.addEventListener( 'click', function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tdepartment_filter_contain.classList.toggle('active');\n\t\t\tdashicons_arrow.classList.toggle('dashicons-arrow-right');\n\t\t\tdashicons_arrow.classList.toggle('dashicons-arrow-down');\n\n\t\t\tif ( department_filter_contain.classList.contains('active') ) {\n\t\t\t\tdepartment_filter_active = true;\n\t\t\t} else {\n\t\t\t\tdepartment_filter_active = false;\n\t\t\t}\n\t\t});\n\t\t\n\t\tdepartment_filter_trigger.addEventListener( 'keydown', function(e) {\n\t\t\tif ( e.keyCode === ( 'ArrowDown' || 'Space' ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tdepartment_filter_trigger.click();\n\t\t\t}\n\t\t});\n\t\t*/\n\n\t\tdepartment_checkboxes.forEach((checkbox) => {\n\t\t\tcheckbox.addEventListener('keydown', function(e) {\n\t\t\t\t// check for escape key, close filters\n\t\t\t\tif ( e.keyCode === 27 ) {\n\t\t\t\t\tdepartment_filter_trigger.click();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// On change of department filter select, only show items matching the selected department\n\t\tdepartment_filter.addEventListener( 'change', function(e) {\n\t\t\tlet selected_departments = [];\n\n\t\t\t// Reset all items\n\t\t\tfaculty_list.classList.remove('filtered');\n\t\t\tfiltering_by.innerHTML = '';\n\t\t\tfiltering_by_container.classList.remove('active');\n\n\t\t\tlet filter_items = document.querySelectorAll('.faculty-loop-item');\n\t\t\t\n\t\t\tfilter_items.forEach( (item) => {\n\t\t\t\titem.classList.remove('show');\n\t\t\t});\n\t\t\t\n\t\t\t// Check which departments are selected\n\t\t\tdepartment_checkboxes.forEach((checkbox) => { \n\t\t\t\tif ( checkbox.checked ) {\n\t\t\t\t\tlet department_data = [checkbox.value, checkbox.getAttribute('data-department-name')];\n\n\t\t\t\t\tselected_departments.push(department_data);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif ( ! selected_departments.length ) {\n\t\t\t\tfiltering_by.classList.remove('active');\n\n\t\t\t\tdocument.body.classList.remove(active_filters_class);\n\n\t\t\t\t// If no departments are selected, show all items\n\t\t\t\treturn false;\n\t\t\t\n\t\t\t} else {\n\t\t\t\tclearFacultyFilter();\n\n\t\t\t\tdocument.body.classList.add(active_filters_class);\n\n\t\t\t\tfiltering_by_container.classList.add('active');\n\n\t\t\t\t// If departments are selected, show only items matching the selected departments\n\t\t\t\tfaculty_list.classList.add('filtered');\n\n\t\t\t\tselected_departments.forEach( (department) => {\n\t\t\t\t\tlet filtered_items = document.querySelectorAll('.' + department[0]);\n\t\t\t\t\tfiltered_items.forEach( (filtered_item) => {\n\t\t\t\t\t\tfiltered_item.classList.add('show');\n\t\t\t\t\t});\n\n\t\t\t\t\t// Add the selected department to the filtering by list\n\t\t\t\t\tlet filtering_by_item = document.createElement('span');\n\t\t\t\t\tfiltering_by_item.classList.add('department-filter__filtering-by-item');\n\t\t\t\t\tfiltering_by_item.innerHTML = department[1];\n\t\t\t\t\tfiltering_by_item.setAttribute('data-department-name', department[0]);\n\t\t\t\t\tfiltering_by.appendChild(filtering_by_item);\n\n\t\t\t\t} );\n\t\t\t}\n\t\t});\n\n\t\t// Clear indivudal filters\n\t\tfiltering_by.addEventListener( 'click', function(e) {\n\t\t\tlet target = e.target;\n\n\t\t\tif ( target.classList.contains('department-filter__filtering-by-item') ) {\n\t\t\t\tlet department_name = target.getAttribute('data-department-name');\n\t\t\t\tlet department_checkbox = document.querySelector('input[name=\"filter_department\"][value=\"' + department_name + '\"]');\n\n\t\t\t\tdepartment_checkbox.checked = false;\n\t\t\t\tdepartment_filter.dispatchEvent(new Event('change'));\n\t\t\t}\n\t\t});\n\n\t\t// Clear all filters\n\t\tclear_filters.addEventListener( 'click', function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tlet department_checkboxes = document.querySelectorAll('input[name=\"filter_department\"]');\n\n\t\t\tdepartment_checkboxes.forEach((checkbox) => { \n\t\t\t\tcheckbox.checked = false;\n\t\t\t});\n\n\t\t\tdepartment_filter.dispatchEvent(new Event('change'));\n\t\t});\n\t}\n}","import jQuery from 'jquery';\n\nlet $ = jQuery;\n\nexport default function footer_menu() {\n if ( $('#menu-footer-menu').length ) {\n const grid = document.getElementById('menu-footer-menu');\n const itemCount = grid.children.length;\n const rows = Math.ceil(itemCount / 2);\n grid.style.gridTemplateRows = `repeat(${rows}, auto)`;\n }\n}","export default function navigation() {\n\tlet mobile_nav_trigger = document.querySelector('.top-bar__toggler');\n\n\tif ( mobile_nav_trigger ) {\n\t\tmobile_nav_trigger.addEventListener('click', function() {\n\t\t\tdocument.body.classList.toggle('mobile-nav-open');\n\t\t});\n\t}\n}","import Swiper, { Thumbs, Pagination, Navigation } from \"swiper\";\nimport jquery from 'jquery';\n\nSwiper.use([Thumbs, Pagination, Navigation]);\n\nlet $ = jquery;\n\nexport default function slider() {\n\t// Private Variables\n\tconst $body = $('body');\n\n\tconst moreLikeThisCarousel = new Swiper('#department-faculty-carousel', {\n\t\tspaceBetween: 16,\n\t\tcenterInsufficientSlides: false,\n\t\tnavigation: {\n\t\t\tnextEl: '.swiper-navigations .next',\n\t\t\tprevEl: '.swiper-navigations .prev',\n\t\t},\n\t\tpagination: {\n\t\t\tel: '.swiper-navigations .pagination',\n\t\t},\n\t\tcreateElements: true,\n\t\tslidesPerGroup: 1,\n\t\tslidesPerView: 1,\n\t\tslideClass: 'faculty-card-wrapper',\n\t\tbreakpoints: {\n\t\t\t528: {\n\t\t\t\tslidesPerGroup: 2,\n\t\t\t\tslidesPerView: 2\n\t\t\t},\n\t\t\t700: {\n\t\t\t\tslidesPerGroup: 3,\n\t\t\t\tslidesPerView: 3\n\t\t\t},\n\t\t\t1090: {\n\t\t\t\tslidesPerGroup: 4,\n\t\t\t\tslidesPerView: 4\n\t\t\t},\n\t\t},\n\t\ton: {\n\t\t\tinit: function () {\n\t\t\t\tlet slides_count = this.slides.length;\n\n\t\t\t\tif ( slides_count <= 4 ) {\n\t\t\t\t\tthis.el.classList.add('no-arrows-1090-up');\n\t\t\t\t}\n\n\t\t\t\tif ( slides_count <= 3 ) {\n\t\t\t\t\tthis.el.classList.add('no-arrows-700-up');\n\t\t\t\t}\n\n\t\t\t\tif ( slides_count <= 2 ) {\n\t\t\t\t\tthis.el.classList.add('no-arrows-600-up');\n\t\t\t\t}\n\n\t\t\t\tif ( slides_count <= 1 ) {\n\t\t\t\t\tthis.el.classList.add('no-arrows');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n","/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n }\n\n // If element has id, use it.\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() +\n '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n\n var replacements = destinationClasses.concat(sourceClasses);\n\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n ''\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option--selectable');\n\n var $selected = $options.filter('.select2-results__option--selected');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option--selectable');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && selectedIds.indexOf(id) > -1)) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n\n var attrs = {\n 'role': 'option'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n attrs['aria-disabled'] = 'true';\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option--selectable',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted')\n .attr('aria-selected', 'false');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n\n $selection.html(\n ''\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n\n this.$selection.on(\n 'keydown',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
  • ' +\n '' +\n '' +\n '
  • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered')\n .attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display')\n .append(formatted)\n .attr('id', selectionId);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n\n var $remove = $selection.find('.select2-selection__choice__remove');\n\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n\n], function () {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n\n var placeholderTitle = placeholder.title ||\n placeholder.text ||\n $placeholder.text();\n\n this.$selection.find('.select2-selection__rendered').attr(\n 'title',\n placeholderTitle\n );\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered')\n .attr('id');\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n ''\n );\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n $rendered.append(this.$searchContainer);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n\n decorated.call(this, container, $container);\n\n self.$search.attr('aria-describedby', selectionId);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection\n .find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/selectionCss',[\n '../utils'\n], function (Utils) {\n function SelectionCSS () { }\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n\n return $selection;\n };\n\n return SelectionCSS;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n\n var data = Array.prototype.map.call(\n this.$element[0].querySelectorAll(':checked'),\n function (selectedElement) {\n return self.item($(selectedElement));\n }\n );\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if (\n data.element != null && data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (\n data.element != null &&\n data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n if (\n this.tagName.toLowerCase() !== 'option' &&\n this.tagName.toLowerCase() !== 'optgroup'\n ) {\n return;\n }\n\n var $option = $(this);\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery'\n], function ($) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown[0].classList\n .contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList\n .contains('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/dropdown/dropdownCss',[\n '../utils'\n], function (Utils) {\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/dropdown/tagsSearchHighlight',[\n '../utils'\n], function (Utils) {\n function TagsSearchHighlight () { }\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results\n .find(\n '.select2-results__option--selectable' +\n ':not(.select2-results__option--selected)'\n );\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n },\n removeItem: function () {\n return 'Remove item';\n },\n search: function() {\n return 'Search';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/selectionCss',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n './dropdown/dropdownCss',\n './dropdown/tagsSearchHighlight',\n\n './i18n/en'\n], function ($,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, SelectionCSS, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n DropdownCSS, TagsSearchHighlight,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n TagsSearchHighlight\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'jquery',\n './defaults',\n './utils'\n], function ($, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n self._syncS(mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n this._observer = null;\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container[0].classList\n .add('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","module.exports = jQuery;","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n const slides = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport { createElement, elementIndex } from '../../shared/utils.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n if (swiper.isElement) {\n swiper.el.shadowEl.append(liveRegion);\n } else {\n swiper.el.append(liveRegion);\n }\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit,\n params\n}) {\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { elementTransitionEnd, nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = e => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow(params, slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow(params, slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow(params, slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow(params, slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport { createElement } from '../../shared/utils.js';\nexport default function EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`);\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`);\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.slidesEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow(params, slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n const params = swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress, params);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, params);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n };\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { elementChildren } from '../../shared/utils.js';\nexport default function HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`);\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`);\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { elementOffset, elementParents } from '../../shared/utils.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { elementChildren } from '../../shared/utils.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid\n } = swiper;\n elementChildren(el, '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]').forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = (duration = swiper.params.speed) => {\n const {\n el\n } = swiper;\n el.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nimport { elementChildren, isObject } from '../../shared/utils.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementChildren, setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) swiper.virtual.cache[index] = slideEl;\n return slideEl;\n }\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementChildren, elementOffset, elementParents, getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.el.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","import { createElement, getSlideTransformEl } from './utils.js';\nexport default function createShadow(params, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass}`);\n if (!shadowEl) {\n shadowEl = createElement('div', `swiper-slide-shadow${side ? `-${side}` : ''}`);\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","import { getSlideTransformEl } from './utils.js';\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}","import { elementTransitionEnd } from './utils.js';\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides\n}) {\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nexport const preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex !== activeIndex && realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(slideIndexLastInView - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && i > slideIndexLastInView) unlazy(swiper, i);\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","/**\n * Swiper 9.3.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: May 15, 2023\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import jQuery from 'jquery';\nimport filtering from './filtering';\nimport department_nav from './department-nav';\nimport navigation from './navigation';\nimport components from './components';\nimport slider from './slider';\nimport faculty from './faculty';\nimport footer_menu from './footer-menu';\n\njQuery(function () {\n\tfiltering();\n\tdepartment_nav();\n\tnavigation();\n\tcomponents();\n\tslider();\n\tfaculty();\n\tfooter_menu();\n} );\n"],"names":["components","scroll_to_top","document","getElementById","addEventListener","window","scrollTo","top","behavior","scrollY","classList","add","remove","department_nav","department_page_items","querySelectorAll","cutoff_index","length","more_button","createElement","innerHTML","more_list","i","appendChild","querySelector","forEach","item","jQuery","$","faculty","accordion_titles","accordion_title","toggle","accordion_content","nextElementSibling","slideToggle","select2","filtering","department_filter","department_filter_active","faculty_list","active_filters_class","clearDepartmentFilter","body","department_checkboxes","checkbox","checked","dispatchEvent","Event","clearFacultyFilter","val","trigger","removeClass","placeholder","allowClear","allowEmpty","width","dropdownParent","on","e","attr","wheatonData","faculty_filter_placeholder","data","params","id","addClass","department_filter_trigger","department_filter_contain","dashicons_arrow","filtering_by","filtering_by_container","clear_filters","target","contains","keyCode","click","selected_departments","filter_items","department_data","value","getAttribute","push","department","filtered_items","filtered_item","filtering_by_item","setAttribute","department_name","department_checkbox","preventDefault","footer_menu","grid","itemCount","children","rows","Math","ceil","style","gridTemplateRows","navigation","mobile_nav_trigger","Swiper","Thumbs","Pagination","Navigation","jquery","use","slider","$body","moreLikeThisCarousel","spaceBetween","centerInsufficientSlides","nextEl","prevEl","pagination","el","createElements","slidesPerGroup","slidesPerView","slideClass","breakpoints","init","slides_count","slides","factory","define","amd","module","exports","root","undefined","require","S2","fn","requirejs","undef","main","req","makeMap","handlers","defined","waiting","config","defining","hasOwn","Object","prototype","hasOwnProperty","aps","slice","jsSuffixRegExp","hasProp","obj","prop","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","j","part","normalizedBaseParts","baseParts","split","map","starMap","nodeIdCompat","test","replace","charAt","concat","splice","join","makeRequire","relName","forceSync","args","arguments","apply","makeNormalize","makeLoad","depName","callDep","Error","splitPrefix","prefix","index","indexOf","substring","makeRelParts","relParts","plugin","parts","relResourceName","f","n","pr","p","makeConfig","uri","deps","callback","cjsModule","ret","callbackType","usingExports","load","alt","setTimeout","cfg","_defined","_$","console","error","Utils","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","constructor","key","__super__","getMethods","theClass","proto","methods","methodName","m","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","Array","argCount","calledConstructor","displayName","ctr","superMethod","calledMethod","originalMethod","decoratedMethod","d","Observable","listeners","event","_type","invoke","len","generateChars","chars","randomChar","floor","random","toString","bind","func","context","_convertData","originalKey","keys","dataLevel","k","toLowerCase","hasScroll","$el","overflowX","overflowY","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","String","match","__cache","GetUniqueElementId","element","select2Id","StoreData","GetData","RemoveData","removeAttribute","copyNonInternalCssClasses","dest","src","classes","destinationClasses","trim","filter","clazz","sourceClasses","replacements","Results","$element","options","dataAdapter","render","$results","get","clear","empty","displayMessage","hideLoading","$message","message","append","className","hideMessages","find","$options","results","sort","$option","option","position","$dropdown","$resultsContainer","sorter","highlightFirstItem","$selected","first","ensureHighlightVisible","setClasses","self","current","selected","selectedIds","s","each","showLoading","loadingMore","loading","disabled","text","$loading","prepend","attrs","matches","Element","msMatchesSelector","webkitMatchesSelector","_resultId","title","role","label","template","$children","c","child","$child","$childrenContainer","container","$container","isOpen","removeAttr","$highlighted","getHighlightedResults","hasClass","currentIndex","nextIndex","$next","eq","currentOffset","offset","nextTop","nextOffset","scrollTop","outerHeight","nextBottom","mousewheel","bottom","deltaY","isAtTop","isAtBottom","height","stopPropagation","evt","$this","originalEvent","destroy","offsetDelta","result","content","display","KEYS","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","which","update","_attachCloseHandler","_detachCloseHandler","activeElement","$target","$select","closest","$all","off","$selectionContainer","isEnabled","isDisabled","SingleSelection","html","$rendered","selectionContainer","selection","formatted","MultipleSelection","$remove","parent","$selections","selectionIdPrefix","selectionId","removeItem","Placeholder","decorated","normalizePlaceholder","_","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","multipleSelections","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","resizeSearch","_keyUpPrevented","isDefaultPrevented","$previousChoice","last","searchRemoveChoice","msie","documentMode","disableInputEvents","type","handleSearch","searchHadFocus","input","term","css","minimumWidth","SelectionCSS","selectionCssClass","EventRelay","relayEvents","preventableEvents","Translation","dict","all","extend","translation","_cache","loadPath","path","translations","diacritics","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","select","tagName","currentData","unselect","addOptions","textContent","innerText","normalizedData","_normalizeItem","defaults","matcher","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","transport","success","failure","$request","ajax","then","fail","_request","abort","url","request","isArray","status","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","t","tag","_removeOldTags","page","wrapper","checkChildren","optionText","toUpperCase","paramsTerm","checkText","Tokenizer","tokenizer","dropdown","createAndSelect","$existingOptions","tokenData","separators","termChar","substr","partParams","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","documentElement","loadingMoreOffset","loadMore","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","parents","x","scrollLeft","y","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","left","$offsetParent","offsetParent","parentOffset","isConnected","outerWidth","minWidth","appendTo","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","metaKey","DropdownCSS","dropdownCssClass","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","remainingChars","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","reset","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","language","_resolveLanguage","uniqueLanguages","l","_processTranslations","debug","stripDiacritics","a","original","amdLanguageBase","autocomplete","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","isEmptyObject","isPlainObject","resolvedLanguages","languageParts","baseLanguage","languageData","ex","warn","set","camelKey","camelCase","convertedData","Options","fromElement","excludedData","dir","dataset","upperCaseLetter","letter","attributes","attributeName","dataName","dataValue","camelDataName","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","method","WIDTH","styleWidth","elementWidth","computedStyle","getComputedStyle","_syncA","_syncS","_syncSubtree","_observer","MutationObserver","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","focus","altKey","close","open","_isChangeMutation","addedNodes","node","removedNodes","some","mutation","changed","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","disconnect","removeData","thisMethods","instanceOptions","instance","isObject","ssrDocument","removeEventListener","blur","nodeName","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","Date","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","getWindow","win","getBreakpoint","base","containerEl","breakpoint","currentHeight","clientHeight","points","point","minRatio","parseFloat","b","parseInt","clientWidth","setBreakpoint","isGridEnabled","swiper","realIndex","initialized","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","directionChanged","direction","needsReLoop","loop","changeDirection","assign","allowTouchMove","allowSlideNext","allowSlidePrev","emit","loopDestroy","loopCreate","updateSlides","checkOverflow","isLocked","wasLocked","slidesOffsetBefore","lastSlideIndex","lastSlideRightEdge","slidesGrid","slidesSizesGrid","size","snapGrid","isEnd","prepareClasses","entries","resultClasses","classNames","addClasses","rtl","device","suffixes","freeMode","autoHeight","android","ios","cssMode","centeredSlides","watchSlidesProgress","removeClasses","deleteProps","elementChildren","elementStyle","elementIndex","getSupport","getDevice","getBrowser","Resize","Observer","eventsEmitter","translate","transition","slide","grabCursor","events","moduleExtendParams","processLazyPreloader","preload","prototypes","extendedDefaults","_len","_key","swipers","newParams","__swiper__","support","browser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","mod","extendParams","once","swiperParams","passedParams","eventName","onAny","isHorizontal","isVertical","activeIndex","isBeginning","previousTranslate","progress","velocity","animating","cssOverflowAdjustment","trunc","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","startMoving","evCache","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","getSlideIndex","slideEl","slidesEl","firstSlideIndex","getSlideIndexByData","recalcSlides","setGrabCursor","unsetGrabCursor","setProgress","speed","min","max","minTranslate","maxTranslate","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","cls","getSlideClasses","destroyed","emitSlidesClasses","updates","slidesPerViewDynamic","view","exact","swiperSize","spv","slideSize","swiperSlideSize","breakLoop","slideInView","imageEl","complete","updateSize","updateProgress","setTranslate","translateValue","rtlTranslate","newTranslate","translated","updateAutoHeight","virtual","slideTo","watchOverflow","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","shadowEl","isElement","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","res","wrapperEl","wrongRTL","initialSlide","slidesBefore","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","oneWayMovement","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","effect","slidesPerGroupSkip","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetAfter","normalizeSlideIndex","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","preventClicks","preventClicksPropagation","slideToClickedSlide","loopedSlides","loopPreventsSliding","rewind","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","maxBackfaceHiddenSlides","lazyPreloaderClass","lazyPreloadPrevNext","handler","priority","onceHandler","__emitterProxy","offAny","eventHandler","_len2","_key2","eventsArray","onTouchStart","onTouchMove","onTouchEnd","onResize","onClick","onScroll","onLoad","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","stopImmediatePropagation","offsetWidth","isVirtual","isVirtualLoop","slideToLoop","autoplay","running","paused","resizeTimeout","resume","newProgress","translatesDiff","now","nextTick","pointerIndex","findIndex","cachedEv","pointerId","includes","proceed","isSafari","isWebView","pointerType","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","swipeDirection","currentPos","stopIndex","groupSize","increment","rewindFirstIndex","rewindLastIndex","ratio","abs","isNavButtonTarget","targetTouch","pageX","pageY","preventedByNestedSwiper","prevX","prevY","targetTouches","diffX","diffY","sqrt","atan2","PI","zoom","cancelable","touchesDiff","previousX","previousY","prevTouchesDirection","touchesDirection","isLoop","loopFix","getTranslate","setTransition","bubbles","loopFixed","disableParentSwiper","activeSlideIndex","closestElement","selector","__closestFrom","assignedSlot","found","getRootNode","targetEl","button","swipingClassHasValue","eventPath","isTargetShadow","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","moving","__preventObserver__","cursor","slideRealIndex","newSlidesOrder","swiperSlideIndex","byController","byMousewheel","snapIndex","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","updateSlidesOffset","currentSlideTranslate","newSlideTranslate","controller","control","loopParams","moduleParamName","moduleParams","auto","elementParents","_ref","observers","attach","ObserverFunc","WebkitMutationObserver","observer","observerUpdate","characterData","observeParents","containerParents","observeSlideChildren","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","newHeight","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","unobserve","orientationChangeHandler","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","_clientLeft","clientLeft","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","prevIndex","animateCSSModeScroll","initial","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","transitionEnd","isH","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","smoothScroll","targetPosition","side","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","slideSelector","clickedSlide","currentSnap","nextSnap","indexAsNumber","newIndex","duration","transitionDuration","transitionEmit","step","getSwiperTranslate","axis","z","transform","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesProgress","getActiveIndexByTranslate","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","activeSlides","getSlideByIndex","visibleSlides","offsetHeight","slideFound","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","Number","isNaN","elementOuterSize","setCSSProperty","getDirectionLabel","property","getDirectionPropertyValue","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesAfter","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","backFaceHiddenClass","hasClassBackfaceClassAdded","elementNextAll","elementPrevAll","getFilteredSlide","activeSlide","nextSlide","prevSlide","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","classesToSelector","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","notification","makeElementsArray","getRandomNumber","round","repeat","makeElFocusable","subEl","makeElNotFocusable","addElRole","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","bulletClass","updateNavigation","hasPagination","bullets","hasClickablePagination","clickable","updatePagination","bulletEl","renderBullet","bulletActiveClass","initNavEl","wrapperId","handlePointerDown","handlePointerUp","handleFocus","isActive","sourceCapabilities","firesTouchEvents","ariaLabelMessage","paginationEl","Autoplay","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","timeout","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","getTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","onTransitionEnd","calcTimeLeft","getSlideDelay","activeSlideEl","currentSlideDelay","run","delayForce","start","stop","pause","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","_s","elementTransitionEnd","Controller","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","x2","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","isFinite","setControlledTransition","removeSpline","HTMLElement","controlElement","onControllerSwiper","detail","createShadow","effectInit","effectTarget","effectVirtualTransitionEnd","getSlideTransformEl","EffectCards","cardsEffect","slideShadows","rotate","perSlideRotate","perSlideOffset","tX","tY","tZ","scale","tXAdd","from","isSwipeToNext","isSwipeToPrev","subProgress","scaleString","opacity","zIndex","transformElements","perspective","overwriteParams","EffectCoverflow","coverflowEffect","stretch","depth","modifier","swiperWidth","swiperHeight","center","centerOffset","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","prev","next","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","opacityString","shadow","shadowOpacity","transformOrigin","allSlides","EffectCube","cubeEffect","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","recreateShadows","wrapperRotate","cubeShadowEl","slideAngle","tx","ty","tz","shadowAngle","sin","cos","scale1","scale2","zFactor","needPerspectiveFix","setProperty","getEffectParams","EffectFade","fadeEffect","crossFade","slideOpacity","EffectFlip","flipEffect","limitRotation","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","time","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","HashNavigation","hashNavigation","watchState","slideWithHash","onHashChange","newHash","activeSlideHash","setHash","History","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","total","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","elementOffset","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","appendSlide","prependSlide","addSlide","removeSlide","removeAllSlides","Manipulation","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","appendElement","tempDOM","prependElement","slidesIndexes","indexToRemove","Mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","targetElContainsTarget","rtlFactor","positions","sign","shift","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","autoplayDisableOnInteraction","createElementIfNotDefined","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","getEl","toggleEl","onPrevClick","onNextClick","initButton","destroyButton","isHidden","pfx","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","onBulletClick","newSlideIndex","currentSlideIndex","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","Parallax","parallax","setTransform","currentOpacity","currentScale","currentRotate","parallaxEl","parallaxDuration","_swiper","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","hide","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","newSize","newPos","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","getBoundingClientRect","onDragMove","onDragEnd","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","to","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","loopFrom","loopTo","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","domSlidesAssigned","Zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","fakeGestureTouched","fakeGestureMoved","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","defineProperty","getDistanceBetweenTouches","x1","y1","y2","getScaleOrigin","box","getSlideSelector","eventWithinSlide","eventWithinZoomContainer","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","scaleRatio","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","zoomIn","overflow","touchAction","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","forceZoomRatio","scrollX","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","in","out","checkProps","shadowClass","shadowContainer","overwriteParamsResult","requireUpdateOnVirtual","effectParams","transformEl","backfaceVisibility","getSlide","parentElement","parentNode","eventTriggered","transitionEndTarget","calcBrowser","ua","major","minor","num","deviceCached","calcDevice","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","touch","os","overrides","calcSupport","DocumentTouch","lazyEl","unlazy","amount","slideIndexLastInView","object","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","isNode","nodeType","noExtend","nextSource","keysArray","nextKey","desc","getOwnPropertyDescriptor","enumerable","varName","varValue","startPosition","startTime","cssModeFrameID","isOutOfBound","animate","easeProgress","currentPosition","findElementsInElements","elements","clientTop","prevEls","previousElementSibling","nextEls","previousSibling","fireCallBack","includeMargins","default","FreeMode"],"sourceRoot":""}