8bf first comm 3 vuotta sitten css-sel3.js 77628cf8bf first comm 3 vuotta sitten css-selection.js 77628cf8bf first comm 3 vuotta sitten css-shapes.js 77628cf8bf first comm 3 vuotta sitten css-snappoints.js 77628cf8bf first comm 3 vuotta sitten css-sticky.js 77628cf8bf first comm 3 vuotta sitten css-subgrid.js 77628cf8bf first comm 3 vuotta sitten css-supports-api.js 77628cf8bf first comm 3 vuotta sitten css-table.js 77628cf8bf first comm 3 vuotta sitten css-text-align-last.js 77628cf8bf first comm 3 vuotta sitten css-text-box-trim.js 77628cf8bf first comm 3 vuotta sitten css-text-indent.js 77628cf8bf first comm 3 vuotta sitten css-text-justify.js 77628cf8bf first comm 3 vuotta sitten css-text-orientation.js 77628cf8bf first comm 3 vuotta sitten css-text-spacing.js 77628cf8bf first comm 3 vuotta sitten css-textshadow.js 77628cf8bf first comm 3 vuotta sitten css-touch-action.js 77628cf8bf first comm 3 vuotta sitten css-transitions.js 77628cf8bf first comm 3 vuotta sitten css-unicode-bidi.js 77628cf8bf first comm 3 vuotta sitten css-unset-value.js 77628cf8bf first comm 3 vuotta sitten css-variables.js 77628cf8bf first comm 3 vuotta sitten css-when-else.js 77628cf8bf first comm 3 vuotta sitten css-widows-orphans.js 77628cf8bf first comm 3 vuotta sitten css-width-stretch.js 77628cf8bf first comm 3 vuotta sitten css-writing-mode.js 77628cf8bf first comm 3 vuotta sitten css-zoom.js 77628cf8bf first comm 3 vuotta sitten css3-attr.js 77628cf8bf first comm 3 vuotta sitten css3-boxsizing.js 77628cf8bf first comm 3 vuotta sitten css3-colors.js 77628cf8bf first comm 3 vuotta sitten css3-cursors-grab.js 77628cf8bf first comm 3 vuotta sitten css3-cursors-newer.js 77628cf8bf first comm 3 vuotta sitten css3-cursors.js 77628cf8bf first comm 3 vuotta sitten css3-tabsize.js 77628cf8bf first comm 3 vuotta sitten currentcolor.js 77628cf8bf first comm 3 vuotta sitten custom-elements.js 77628cf8bf first comm 3 vuotta sitten custom-elementsv1.js 77628cf8bf first comm 3 vuotta sitten customevent.js 77628cf8bf first comm 3 vuotta sitten datalist.js 77628cf8bf first comm 3 vuotta sitten dataset.js 77628cf8bf first comm 3 vuotta sitten datauri.js 77628cf8bf first comm 3 vuotta sitten date-tolocaledatestring.js 77628cf8bf first comm 3 vuotta sitten declarative-shadow-dom.js 77628cf8bf first comm 3 vuotta sitten decorators.js 77628cf8bf first comm 3 vuotta sitten details.js 77628cf8bf first comm 3 vuotta sitten deviceorientation.js 77628cf8bf first comm 3 vuotta sitten devicepixelratio.js 77628cf8bf first comm 3 vuotta sitten dialog.js 77628cf8bf first comm 3 vuotta sitten dispatchevent.js 77628cf8bf first comm 3 vuotta sitten dnssec.js 77628cf8bf first comm 3 vuotta sitten do-not-track.js 77628cf8bf first comm 3 vuotta sitten document-currentscript.js 77628cf8bf first comm 3 vuotta sitten document-evaluate-xpath.js 77628cf8bf first comm 3 vuotta sitten document-execcommand.js 77628cf8bf first comm 3 vuotta sitten document-policy.js 77628cf8bf first comm 3 vuotta sitten document-scrollingelement.js 77628cf8bf first comm 3 vuotta sitten documenthead.js 77628cf8bf first comm 3 vuotta sitten dom-manip-convenience.js 77628cf8bf first comm 3 vuotta sitten dom-range.js 77628cf8bf first comm 3 vuotta sitten domcontentloaded.js 77628cf8bf first comm 3 vuotta sitten dommatrix.js 77628cf8bf first comm 3 vuotta sitten download.js 77628cf8bf first comm 3 vuotta sitten dragndrop.js 77628cf8bf first comm 3 vuotta sitten element-closest.js 77628cf8bf first comm 3 vuotta sitten element-from-point.js 77628cf8bf first comm 3 vuotta sitten element-scroll-methods.js 77628cf8bf first comm 3 vuotta sitten eme.js 77628cf8bf first comm 3 vuotta sitten eot.js 77628cf8bf first comm 3 vuotta sitten es5.js 77628cf8bf first comm 3 vuotta sitten es6-class.js 77628cf8bf first comm 3 vuotta sitten es6-generators.js 77628cf8bf first comm 3 vuotta sitten es6-module-dynamic-import.js 77628cf8bf first comm 3 vuotta sitten es6-module.js 77628cf8bf first comm 3 vuotta sitten es6-number.js 77628cf8bf first comm 3 vuotta sitten es6-string-includes.js 77628cf8bf first comm 3 vuotta sitten es6.js 77628cf8bf first comm 3 vuotta sitten eventsource.js 77628cf8bf first comm 3 vuotta sitten extended-system-fonts.js 77628cf8bf first comm 3 vuotta sitten feature-policy.js 77628cf8bf first comm 3 vuotta sitten fetch.js 77628cf8bf first comm 3 vuotta sitten fieldset-disabled.js 77628cf8bf first comm 3 vuotta sitten fileapi.js 77628cf8bf first comm 3 vuotta sitten filereader.js 77628cf8bf first comm 3 vuotta sitten filereadersync.js 77628cf8bf first comm 3 vuotta sitten filesystem.js 77628cf8bf first comm 3 vuotta sitten flac.js 77628cf8bf first comm 3 vuotta sitten flexbox-gap.js 77628cf8bf first comm 3 vuotta sitten flexbox.js 77628cf8bf first comm 3 vuotta sitten flow-root.js 77628cf8bf first comm 3 vuotta sitten focusin-focusout-events.js 77628cf8bf first comm 3 vuotta sitten font-family-system-ui.js 77628cf8bf first comm 3 vuotta sitten font-feature.js 77628cf8bf first comm 3 vuotta sitten font-kerning.js 77628cf8bf first comm 3 vuotta sitten font-loading.js 77628cf8bf first comm 3 vuotta sitten font-size-adjust.js 77628cf8bf first comm 3 vuotta sitten font-smooth.js 77628cf8bf first comm 3 vuotta sitten font-unicode-range.js 77628cf8bf first comm 3 vuotta sitten font-variant-alternates.js 77628cf8bf first comm 3 vuotta sitten font-variant-numeric.js 77628cf8bf first comm 3 vuotta sitten fontface.js 77628cf8bf first comm 3 vuotta sitten form-attribute.js 77628cf8bf first comm 3 vuotta sitten form-submit-attributes.js 77628cf8bf first comm 3 vuotta sitten form-validation.js 77628cf8bf first comm 3 vuotta sitten forms.js 77628cf8bf first comm 3 vuotta sitten fullscreen.js 77628cf8bf first comm 3 vuotta sitten gamepad.js 77628cf8bf first comm 3 vuotta sitten geolocation.js 77628cf8bf first comm 3 vuotta sitten getboundingclientrect.js 77628cf8bf first comm 3 vuotta sitten getcomputedstyle.js 77628cf8bf first comm 3 vuotta sitten getelementsbyclassname.js 77628cf8bf first comm 3 vuotta sitten getrandomvalues.js 77628cf8bf first comm 3 vuotta sitten gyroscope.js 77628cf8bf first comm 3 vuotta sitten hardwareconcurrency.js 77628cf8bf first comm 3 vuotta sitten hashchange.js 77628cf8bf first comm 3 vuotta sitten heif.js 77628cf8bf first comm 3 vuotta sitten hevc.js 77628cf8bf first comm 3 vuotta sitten hidden.js 77628cf8bf first comm 3 vuotta sitten high-resolution-time.js 77628cf8bf first comm 3 vuotta sitten history.js 77628cf8bf first comm 3 vuotta sitten html-media-capture.js 77628cf8bf first comm 3 vuotta sitten html5semantic.js 77628cf8bf first comm 3 vuotta sitten http-live-streaming.js 77628cf8bf first comm 3 vuotta sitten http2.js 77628cf8bf first comm 3 vuotta sitten http3.js 77628cf8bf first comm 3 vuotta sitten iframe-sandbox.js 77628cf8bf first comm 3 vuotta sitten iframe-seamless.js 77628cf8bf first comm 3 vuotta sitten iframe-srcdoc.js 77628cf8bf first comm 3 vuotta sitten imagecapture.js 77628cf8bf first comm 3 vuotta sitten ime.js 77628cf8bf first comm 3 vuotta sitten img-naturalwidth-naturalheight.js 77628cf8bf first comm 3 vuotta sitten import-maps.js 77628cf8bf first comm 3 vuotta sitten imports.js 77628cf8bf first comm 3 vuotta sitten indeterminate-checkbox.js 77628cf8bf first comm 3 vuotta sitten indexeddb.js 77628cf8bf first comm 3 vuotta sitten indexeddb2.js 77628cf8bf first comm 3 vuotta sitten inline-block.js 77628cf8bf first comm 3 vuotta sitten innertext.js 77628cf8bf first comm 3 vuotta sitten input-autocomplete-onoff.js 77628cf8bf first comm 3 vuotta sitten input-color.js 77628cf8bf first comm 3 vuotta sitten input-datetime.js 77628cf8bf first comm 3 vuotta sitten input-email-tel-url.js 77628cf8bf first comm 3 vuotta sitten input-event.js 77628cf8bf first comm 3 vuotta sitten input-file-accept.js 77628cf8bf first comm 3 vuotta sitten input-file-directory.js 77628cf8bf first comm 3 vuotta sitten input-file-multiple.js 77628cf8bf first comm 3 vuotta sitten input-inputmode.js 77628cf8bf first comm 3 vuotta sitten input-minlength.js 77628cf8bf first comm 3 vuotta sitten input-number.js 77628cf8bf first comm 3 vuotta sitten input-pattern.js 77628cf8bf first comm 3 vuotta sitten input-placeholder.js 77628cf8bf first comm 3 vuotta sitten input-range.js 77628cf8bf first comm 3 vuotta sitten input-search.js 77628cf8bf first comm 3 vuotta sitten input-selection.js 77628cf8bf first comm 3 vuotta sitten insert-adjacent.js 77628cf8bf first comm 3 vuotta sitten insertadjacenthtml.js 77628cf8bf first comm 3 vuotta sitten internationalization.js 77628cf8bf first comm 3 vuotta sitten intersectionobserver-v2.js 77628cf8bf first comm 3 vuotta sitten intersectionobserver.js 77628cf8bf first comm 3 vuotta sitten intl-pluralrules.js 77628cf8bf first comm 3 vuotta sitten intrinsic-width.js 77628cf8bf first comm 3 vuotta sitten jpeg2000.js 77628cf8bf first comm 3 vuotta sitten jpegxl.js 77628cf8bf first comm 3 vuotta sitten jpegxr.js 77628cf8bf first comm 3 vuotta sitten js-regexp-lookbehind.js 77628cf8bf first comm 3 vuotta sitten json.js 77628cf8bf first comm 3 vuotta sitten justify-content-space-evenly.js 77628cf8bf first comm 3 vuotta sitten kerning-pairs-ligatures.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-charcode.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-code.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-getmodifierstate.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-key.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-location.js 77628cf8bf first comm 3 vuotta sitten keyboardevent-which.js 77628cf8bf first comm 3 vuotta sitten lazyload.js 77628cf8bf first comm 3 vuotta sitten let.js 77628cf8bf first comm 3 vuotta sitten link-icon-png.js 77628cf8bf first comm 3 vuotta sitten link-icon-svg.js 77628cf8bf first comm 3 vuotta sitten link-rel-dns-prefetch.js 77628cf8bf first comm 3 vuotta sitten link-rel-modulepreload.js 77628cf8bf first comm 3 vuotta sitten link-rel-preconnect.js 77628cf8bf first comm 3 vuotta sitten link-rel-prefetch.js 77628cf8bf first comm 3 vuotta sitten link-rel-preload.js 77628cf8bf first comm 3 vuotta sitten link-rel-prerender.js 77628cf8bf first comm 3 vuotta sitten loading-lazy-attr.js 77628cf8bf first comm 3 vuotta sitten localecompare.js 77628cf8bf first comm 3 vuotta sitten magnetometer.js 77628cf8bf first comm 3 vuotta sitten matchesselector.js 77628cf8bf first comm 3 vuotta sitten matchmedia.js 77628cf8bf first comm 3 vuotta sitten mathml.js 77628cf8bf first comm 3 vuotta sitten maxlength.js 77628cf8bf first comm 3 vuotta sitten mdn-css-unicode-bidi-isolate-override.js 77628cf8bf first comm 3 vuotta sitten mdn-css-unicode-bidi-isolate.js 77628cf8bf first comm 3 vuotta sitten mdn-css-unicode-bidi-plaintext.js 77628cf8bf first comm 3 vuotta sitten mdn-text-decoration-color.js 77628cf8bf first comm 3 vuotta sitten mdn-text-decoration-line.js 77628cf8bf first comm 3 vuotta sitten mdn-text-decoration-shorthand.js 77628cf8bf first comm 3 vuotta sitten mdn-text-decoration-style.js 77628cf8bf first comm 3 vuotta sitten media-fragments.js 77628cf8bf first comm 3 vuotta sitten mediacapture-fromelement.js 77628cf8bf first comm 3 vuotta sitten mediarecorder.js 77628cf8bf first comm 3 vuotta sitten mediasource.js 77628cf8bf first comm 3 vuotta sitten menu.js 77628cf8bf first comm 3 vuotta sitten meta-theme-color.js 77628cf8bf first comm 3 vuotta sitten meter.js 77628cf8bf first comm 3 vuotta sitten midi.js 77628cf8bf first comm 3 vuotta sitten minmaxwh.js 77628cf8bf first comm 3 vuotta sitten mp3.js 77628cf8bf first comm 3 vuotta sitten mpeg-dash.js 77628cf8bf first comm 3 vuotta sitten mpeg4.js 77628cf8bf first comm 3 vuotta sitten multibackgrounds.js 77628cf8bf first comm 3 vuotta sitten multicolumn.js 77628cf8bf first comm 3 vuotta sitten mutation-events.js 77628cf8bf first comm 3 vuotta sitten mutationobserver.js 77628cf8bf first comm 3 vuotta sitten namevalue-storage.js 77628cf8bf first comm 3 vuotta sitten native-filesystem-api.js 77628cf8bf first comm 3 vuotta sitten nav-timing.js 77628cf8bf first comm 3 vuotta sitten netinfo.js 77628cf8bf first comm 3 vuotta sitten notifications.js 77628cf8bf first comm 3 vuotta sitten object-entries.js 77628cf8bf first comm 3 vuotta sitten object-fit.js 77628cf8bf first comm 3 vuotta sitten object-observe.js 77628cf8bf first comm 3 vuotta sitten object-values.js 77628cf8bf first comm 3 vuotta sitten objectrtc.js 77628cf8bf first comm 3 vuotta sitten offline-apps.js 77628cf8bf first comm 3 vuotta sitten offscreencanvas.js 77628cf8bf first comm 3 vuotta sitten ogg-vorbis.js 77628cf8bf first comm 3 vuotta sitten ogv.js 77628cf8bf first comm 3 vuotta sitten ol-reversed.js 77628cf8bf first comm 3 vuotta sitten once-event-listener.js 77628cf8bf first comm 3 vuotta sitten online-status.js 77628cf8bf first comm 3 vuotta sitten opus.js 77628cf8bf first comm 3 vuotta sitten orientation-sensor.js 77628cf8bf first comm 3 vuotta sitten outline.js 77628cf8bf first comm 3 vuotta sitten pad-start-end.js 77628cf8bf first comm 3 vuotta sitten page-transition-events.js 77628cf8bf first comm 3 vuotta sitten pagevisibility.js 77628cf8bf first comm 3 vuotta sitten passive-event-listener.js 77628cf8bf first comm 3 vuotta sitten passwordrules.js 77628cf8bf first comm 3 vuotta sitten path2d.js 77628cf8bf first comm 3 vuotta sitten payment-request.js 77628cf8bf first comm 3 vuotta sitten pdf-viewer.js 77628cf8bf first comm 3 vuotta sitten permissions-api.js 77628cf8bf first comm 3 vuotta sitten permissions-policy.js 77628cf8bf first comm 3 vuotta sitten picture-in-picture.js 77628cf8bf first comm 3 vuotta sitten picture.js 77628cf8bf first comm 3 vuotta sitten ping.js 77628cf8bf first comm 3 vuotta sitten png-alpha.js 77628cf8bf first comm 3 vuotta sitten pointer-events.js 77628cf8bf first comm 3 vuotta sitten pointer.js 77628cf8bf first comm 3 vuotta sitten pointerlock.js 77628cf8bf first comm 3 vuotta sitten portals.js 77628cf8bf first comm 3 vuotta sitten prefers-color-scheme.js 77628cf8bf first comm 3 vuotta sitten prefers-reduced-motion.js 77628cf8bf first comm 3 vuotta sitten progress.js 77628cf8bf first comm 3 vuotta sitten promise-finally.js 77628cf8bf first comm 3 vuotta sitten promises.js 77628cf8bf first comm 3 vuotta sitten proximity.js 77628cf8bf first comm 3 vuotta sitten proxy.js 77628cf8bf first comm 3 vuotta sitten publickeypinning.js 77628cf8bf first comm 3 vuotta sitten push-api.js 77628cf8bf first comm 3 vuotta sitten queryselector.js 77628cf8bf first comm 3 vuotta sitten readonly-attr.js 77628cf8bf first comm 3 vuotta sitten referrer-policy.js 77628cf8bf first comm 3 vuotta sitten registerprotocolhandler.js 77628cf8bf first comm 3 vuotta sitten rel-noopener.js 77628cf8bf first comm 3 vuotta sitten rel-noreferrer.js 77628cf8bf first comm 3 vuotta sitten rellist.js 77628cf8bf first comm 3 vuotta sitten rem.js 77628cf8bf first comm 3 vuotta sitten requestanimationframe.js 77628cf8bf first comm 3 vuotta sitten requestidlecallback.js 77628cf8bf first comm 3 vuotta sitten resizeobserver.js 77628cf8bf first comm 3 vuotta sitten resource-timing.js 77628cf8bf first comm 3 vuotta sitten rest-parameters.js 77628cf8bf first comm 3 vuotta sitten rtcpeerconnection.js 77628cf8bf first comm 3 vuotta sitten ruby.js 77628cf8bf first comm 3 vuotta sitten run-in.js 77628cf8bf first comm 3 vuotta sitten same-site-cookie-attribute.js 77628cf8bf first comm 3 vuotta sitten screen-orientation.js 77628cf8bf first comm 3 vuotta sitten script-async.js 77628cf8bf first comm 3 vuotta sitten script-defer.js 77628cf8bf first comm 3 vuotta sitten scrollintoview.js 77628cf8bf first comm 3 vuotta sitten scrollintoviewifneeded.js 77628cf8bf first comm 3 vuotta sitten sdch.js 77628cf8bf first comm 3 vuotta sitten selection-api.js 77628cf8bf first comm 3 vuotta sitten server-timing.js 77628cf8bf first comm 3 vuotta sitten serviceworkers.js 77628cf8bf first comm 3 vuotta sitten setimmediate.js 77628cf8bf first comm 3 vuotta sitten shadowdom.js 77628cf8bf first comm 3 vuotta sitten shadowdomv1.js 77628cf8bf first comm 3 vuotta sitten sharedarraybuffer.js 77628cf8bf first comm 3 vuotta sitten sharedworkers.js 77628cf8bf first comm 3 vuotta sitten sni.js 77628cf8bf first comm 3 vuotta sitten spdy.js 77628cf8bf first comm 3 vuotta sitten speech-recognition.js 77628cf8bf first comm 3 vuotta sitten speech-synthesis.js 77628cf8bf first comm 3 vuotta sitten spellcheck-attribute.js 77628cf8bf first comm 3 vuotta sitten sql-storage.js 77628cf8bf first comm 3 vuotta sitten srcset.js 77628cf8bf first comm 3 vuotta sitten stream.js 77628cf8bf first comm 3 vuotta sitten streams.js 77628cf8bf first comm 3 vuotta sitten stricttransportsecurity.js 77628cf8bf first comm 3 vuotta sitten style-scoped.js 77628cf8bf first comm 3 vuotta sitten subresource-bundling.js 77628cf8bf first comm 3 vuotta sitten subresource-integrity.js 77628cf8bf first comm 3 vuotta sitten svg-css.js 77628cf8bf first comm 3 vuotta sitten svg-filters.js 77628cf8bf first comm 3 vuotta sitten svg-fonts.js 77628cf8bf first comm 3 vuotta sitten svg-fragment.js 77628cf8bf first comm 3 vuotta sitten svg-html.js 77628cf8bf first comm 3 vuotta sitten svg-html5.js 77628cf8bf first comm 3 vuotta sitten svg-img.js 77628cf8bf first comm 3 vuotta sitten svg-smil.js 77628cf8bf first comm 3 vuotta sitten svg.js 77628cf8bf first comm 3 vuotta sitten sxg.js 77628cf8bf first comm 3 vuotta sitten tabindex-attr.js 77628cf8bf first comm 3 vuotta sitten template-literals.js 77628cf8bf first comm 3 vuotta sitten template.js 77628cf8bf first comm 3 vuotta sitten temporal.js 77628cf8bf first comm 3 vuotta sitten testfeat.js 77628cf8bf first comm 3 vuotta sitten text-decoration.js 77628cf8bf first comm 3 vuotta sitten text-emphasis.js 77628cf8bf first comm 3 vuotta sitten text-overflow.js 77628cf8bf first comm 3 vuotta sitten text-size-adjust.js 77628cf8bf first comm 3 vuotta sitten text-stroke.js 77628cf8bf first comm 3 vuotta sitten textcontent.js 77628cf8bf first comm 3 vuotta sitten textencoder.js 77628cf8bf first comm 3 vuotta sitten tls1-1.js 77628cf8bf first comm 3 vuotta sitten tls1-2.js 77628cf8bf first comm 3 vuotta sitten tls1-3.js 77628cf8bf first comm 3 vuotta sitten touch.js 77628cf8bf first comm 3 vuotta sitten transforms2d.js 77628cf8bf first comm 3 vuotta sitten transforms3d.js 77628cf8bf first comm 3 vuotta sitten trusted-types.js 77628cf8bf first comm 3 vuotta sitten ttf.js 77628cf8bf first comm 3 vuotta sitten typedarrays.js 77628cf8bf first comm 3 vuotta sitten u2f.js 77628cf8bf first comm 3 vuotta sitten unhandledrejection.js 77628cf8bf first comm 3 vuotta sitten upgradeinsecurerequests.js 77628cf8bf first comm 3 vuotta sitten url-scroll-to-text-fragment.js 77628cf8bf first comm 3 vuotta sitten url.js 77628cf8bf first comm 3 vuotta sitten urlsearchparams.js 77628cf8bf first comm 3 vuotta sitten use-strict.js 77628cf8bf first comm 3 vuotta sitten user-select-none.js 77628cf8bf first comm 3 vuotta sitten user-timing.js 77628cf8bf first comm 3 vuotta sitten variable-fonts.js 77628cf8bf first comm 3 vuotta sitten vector-effect.js 77628cf8bf first comm 3 vuotta sitten vibration.js 77628cf8bf first comm 3 vuotta sitten video.js 77628cf8bf first comm 3 vuotta sitten videotracks.js 77628cf8bf first comm 3 vuotta sitten viewport-unit-variants.js 77628cf8bf first comm 3 vuotta sitten viewport-units.js 77628cf8bf first comm 3 vuotta sitten wai-aria.js 77628cf8bf first comm 3 vuotta sitten wake-lock.js 77628cf8bf first comm 3 vuotta sitten wasm.js 77628cf8bf first comm 3 vuotta sitten wav.js 77628cf8bf first comm 3 vuotta sitten wbr-element.js 77628cf8bf first comm 3 vuotta sitten web-animation.js 77628cf8bf first comm 3 vuotta sitten web-app-manifest.js 77628cf8bf first comm 3 vuotta sitten web-bluetooth.js 77628cf8bf first comm 3 vuotta sitten web-serial.js 77628cf8bf first comm 3 vuotta sitten web-share.js 77628cf8bf first comm 3 vuotta sitten webauthn.js 77628cf8bf first comm 3 vuotta sitten webcodecs.js 77628cf8bf first comm 3 vuotta sitten webgl.js 77628cf8bf first comm 3 vuotta sitten webgl2.js 77628cf8bf first comm 3 vuotta sitten webgpu.js 77628cf8bf first comm 3 vuotta sitten webhid.js 77628cf8bf first comm 3 vuotta sitten webkit-user-drag.js 77628cf8bf first comm 3 vuotta sitten webm.js 77628cf8bf first comm 3 vuotta sitten webnfc.js 77628cf8bf first comm 3 vuotta sitten webp.js 77628cf8bf first comm 3 vuotta sitten websockets.js 77628cf8bf first comm 3 vuotta sitten webtransport.js 77628cf8bf first comm 3 vuotta sitten webusb.js 77628cf8bf first comm 3 vuotta sitten webvr.js 77628cf8bf first comm 3 vuotta sitten webvtt.js 77628cf8bf first comm 3 vuotta sitten webworkers.js 77628cf8bf first comm 3 vuotta sitten webxr.js 77628cf8bf first comm 3 vuotta sitten will-change.js 77628cf8bf first comm 3 vuotta sitten woff.js 77628cf8bf first comm 3 vuotta sitten woff2.js 77628cf8bf first comm 3 vuotta sitten word-break.js 77628cf8bf first comm 3 vuotta sitten wordwrap.js 77628cf8bf first comm 3 vuotta sitten x-doc-messaging.js 77628cf8bf first comm 3 vuotta sitten x-frame-options.js 77628cf8bf first comm 3 vuotta sitten xhr2.js 77628cf8bf first comm 3 vuotta sitten xhtml.js 77628cf8bf first comm 3 vuotta sitten xhtmlsmil.js 77628cf8bf first comm 3 vuotta sitten xml-serializer.js 77628cf8bf first comm 3 vuotta sitten tum/whitesports - Gogs: Simplico Git Service

Bez popisu

duplicate-post-wpml.php 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * WPML compatibility functions
  4. *
  5. * @global array $duplicated_posts Array to store the posts being duplicated.
  6. *
  7. * @package Duplicate Post
  8. * @since 3.2
  9. */
  10. add_action( 'admin_init', 'duplicate_post_wpml_init' );
  11. /**
  12. * Add handlers for WPML compatibility.
  13. */
  14. function duplicate_post_wpml_init() {
  15. if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
  16. add_action( 'dp_duplicate_page', 'duplicate_post_wpml_copy_translations', 10, 3 );
  17. add_action( 'dp_duplicate_post', 'duplicate_post_wpml_copy_translations', 10, 3 );
  18. add_action( 'shutdown', 'duplicate_wpml_string_packages', 11 );
  19. }
  20. }
  21. global $duplicated_posts; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  22. $duplicated_posts = array(); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  23. /**
  24. * Copy post translations.
  25. *
  26. * @global SitePress $sitepress Instance of the Main WPML class.
  27. * @global array $duplicated_posts Array of duplicated posts.
  28. *
  29. * @param int $post_id ID of the copy.
  30. * @param WP_Post $post Original post object.
  31. * @param string $status Status of the new post.
  32. */
  33. function duplicate_post_wpml_copy_translations( $post_id, $post, $status = '' ) {
  34. global $sitepress;
  35. global $duplicated_posts;
  36. remove_action( 'dp_duplicate_page', 'duplicate_post_wpml_copy_translations', 10 );
  37. remove_action( 'dp_duplicate_post', 'duplicate_post_wpml_copy_translations', 10 );
  38. $current_language = $sitepress->get_current_language();
  39. $trid = $sitepress->get_element_trid( $post->ID );
  40. if ( ! empty( $trid ) ) {
  41. $translations = $sitepress->get_element_translations( $trid );
  42. $new_trid = $sitepress->get_element_trid( $post_id );
  43. foreach ( $translations as $code => $details ) {
  44. if ( $code !== $current_language ) {
  45. if ( $details->element_id ) {
  46. $translation = get_post( $details->element_id );
  47. if ( ! $translation ) {
  48. continue;
  49. }
  50. $new_post_id = duplicate_post_create_duplicate( $translation, $status );
  51. if ( ! is_wp_error( $new_post_id ) ) {
  52. $sitepress->set_element_language_details(
  53. $new_post_id,
  54. 'post_' . $translation->post_type,
  55. $new_trid,
  56. $code,
  57. $current_language
  58. );
  59. }
  60. }
  61. }
  62. }
  63. $duplicated_posts[ $post->ID ] = $post_id; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  64. }
  65. }
  66. /**
  67. * Duplicate string packages.
  68. *
  69. * @global array() $duplicated_posts Array of duplicated posts.
  70. */
  71. function duplicate_wpml_string_packages() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  72. global $duplicated_posts;
  73. foreach ( $duplicated_posts as $original_post_id => $duplicate_post_id ) {
  74. $original_string_packages = apply_filters( 'wpml_st_get_post_string_packages', false, $original_post_id ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  75. $new_string_packages = apply_filters( 'wpml_st_get_post_string_packages', false, $duplicate_post_id ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  76. if ( is_array( $original_string_packages ) ) {
  77. foreach ( $original_string_packages as $original_string_package ) {
  78. $translated_original_strings = $original_string_package->get_translated_strings( array() );
  79. foreach ( $new_string_packages as $new_string_package ) {
  80. $cache = new WPML_WP_Cache( 'WPML_Package' );
  81. $cache->flush_group_cache();
  82. $new_strings = $new_string_package->get_package_strings();
  83. foreach ( $new_strings as $new_string ) {
  84. if ( isset( $translated_original_strings[ $new_string->name ] ) ) {
  85. foreach ( $translated_original_strings[ $new_string->name ] as $language => $translated_string ) {
  86. do_action(
  87. 'wpml_add_string_translation', // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
  88. $new_string->id,
  89. $language,
  90. $translated_string['value'],
  91. $translated_string['status']
  92. );
  93. }
  94. }
  95. }
  96. }
  97. }
  98. }
  99. }
  100. }