Files
sm-seo-plugin/assets/src/elements/index.ts
Jakub Zych 10ff628f6a feat: structured data, graph preview and primary category in the SEO tab
- E8 golem15-seo-schema: the type per content kind, the Service grid with
  price and currency checks, custom JSON-LD with a 300 ms parse status
- E9 golem15-seo-graph: nodes and findings from the seo_graph action, the
  JSON, the Rich Results Test link, 800 ms re-check on fill changes, the
  ML locale switch, one queued request, the failure line
- golem15-seo-parent: the primary category select over the record's
  parents; the seoparent Decode accepts the loaded value sent back
- the rebuilt element bundle and vitest smoke tests
2026-11-04 14:37:49 +01:00

56 lines
1.7 KiB
TypeScript

import './styles.css'
import { GRAPH_TAG, SeoGraphElement } from './graph'
import { IMAGE_TAG, SeoImageElement } from './image'
import { PARENT_TAG, SeoParentElement } from './parent'
import { ROBOTS_TAG, SeoRobotsElement } from './robots'
import { ROBOTSTESTER_TAG, SeoRobotsTesterElement } from './robotstester'
import { ROBOTSTXT_TAG, SeoRobotsTxtElement } from './robotstxt'
import { SCHEMA_TAG, SeoSchemaElement } from './schema'
import { SERP_TAG, SeoSerpElement } from './serp'
import { SeoTextElement, TEXT_TAG } from './text'
import { SeoTransferElement, TRANSFER_TAG } from './transfer'
// The admin SPA loads this script once on every admin page (the SEO field
// types list it in Scripts); defining a tag twice would throw, so a second
// evaluation is a no-op.
const elements: Array<[string, CustomElementConstructor]> = [
[TEXT_TAG, SeoTextElement],
[ROBOTS_TAG, SeoRobotsElement],
[SERP_TAG, SeoSerpElement],
[IMAGE_TAG, SeoImageElement],
[ROBOTSTXT_TAG, SeoRobotsTxtElement],
[ROBOTSTESTER_TAG, SeoRobotsTesterElement],
[TRANSFER_TAG, SeoTransferElement],
['golem15-seo-schema', SeoSchemaElement],
['golem15-seo-graph', SeoGraphElement],
['golem15-seo-parent', SeoParentElement],
]
for (const [tag, ctor] of elements) {
if (!customElements.get(tag)) {
customElements.define(tag, ctor)
}
}
export {
GRAPH_TAG,
IMAGE_TAG,
PARENT_TAG,
SCHEMA_TAG,
SeoGraphElement,
SeoParentElement,
SeoSchemaElement,
ROBOTS_TAG,
ROBOTSTESTER_TAG,
ROBOTSTXT_TAG,
SERP_TAG,
SeoImageElement,
SeoRobotsElement,
SeoRobotsTesterElement,
SeoRobotsTxtElement,
SeoSerpElement,
SeoTextElement,
SeoTransferElement,
TEXT_TAG,
TRANSFER_TAG,
}