Repository navigation
Commit abba2c4
docs(sdk): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide and 57 renderer-type pages into content/docs/sdk (#27168)
<!-- claude-projects-attribution: {"github_login":"os-tesla"} -->
_Requested by **Tesla** · [project
thread](https://claude.ai/code/project/chan_01AXsQkLFKRdQCqQ3RTr6Jao?thread=cmsg_01AXsQkLFKRdQCqQ3RTr6JaoPtdjqtKpSx1fGxRsHcdHte)_
Fixes #27140
Clause-②: no
Metadata-protocol: none
## 维护者速读
- **改了什么:** 新开入口「Custom front-end」(`content/docs/frontend/`,侧栏在 API &
SDK 之后)。入口页先分三条路:在 Console 里加自定义页面去 React pages,自己的前端读写数据去 Client
SDK,自己的 React 应用里渲染元数据才是 ObjectUI SDK。objectui.org 的 95 页按你定的方案 B
精简后放进来:SDK 专属的 16 页指南、UI 插件总览和 15 个插件页保留,57 个渲染器类型页合成一页清单,重复的 schema
总览、schema 参考、报表插件页删掉。
- **为什么改:** objectui.org 要撤掉;你指出 `sdk` 放最外层有歧义、`ui/` 只该放 UI 元数据,并选了「新入口
+ 方案 B」(评估文档在项目线程里)。
- **风险与回滚:** 只动文档。新增 34
页,另有四个现有页面各加了几节:`data-modeling/field-types`、`ui/pages`、`ui/forms`、`ui/reports`,共
+495 行,内容取自被删的 SDK 页。`ui/content/docs` 没动,`apps/docs` 不加依赖。回滚就是 revert 本
PR。
- **先看:**
`content/docs/frontend/index.mdx`(三条路的入口页)、`content/docs/frontend/renderers.mdx`(57
个类型合成的清单)、`content/docs/ui/pages.mdx` 的 Element data sources
一节(并入的最大一块,+302 行)。
- **两分钟验证:** 本地 `pnpm docs:dev`,打开 `/docs/frontend`,侧栏应出现「Custom
Front-end」,入口页顶部是三行选择表。
- **需要你做的:** 本 PR 要在 K3 #27179 之后合并:插件页链到 K3 生成的
`/docs/ui/components/plugins#…`,K3 没合之前 `check:doc-anchors` 会报这 15
个链接。K3 合并后我合一次 main 转绿,超过 3000 行,由你合并。
## What changes
- **New entry `content/docs/frontend/` ("Custom front-end")**, listed in
`content/docs/meta.json` after `api`. Its landing page is a three-row
chooser: a custom page inside the Console → [React
pages](/docs/ui/react-pages) (metadata, stays in `ui/`); data access
from your own front-end → [Client SDK](/docs/api/client-sdk); rendering
ObjectStack views and forms in your own React app → the ObjectUI SDK,
which is the rest of the section. `ui/` keeps metadata only.
- **ObjectUI SDK pages kept (flattened):** quick-start,
building-crud-app, architecture-overview (now links
`concepts/architecture` for the protocol layers), schema-rendering,
component-registry, fields, data-source, layout, app-shell, sidebar-nav,
theming, plugin-development (now says it is the front-end kind and links
`plugins/development`), cli, create-plugin, data-objectstack,
troubleshooting, and `plugins/` (the UI plugins overview plus 15 plugin
pages).
- **Removed as duplicates:** `guide/schema-overview` (the landing page
covers it) and `api/schema-reference` (1443 lines; the generated
component reference and `references/ui` cover it, and it carried stale
shapes such as a detail view holding `tabs` beside `columns`).
- **Merged:** `core/schema-renderer` into `schema-rendering` (its one
unique section, the `data-obj-id` / `data-obj-type` attributes, checked
in `SchemaRenderer.tsx`); the old plugin gallery `plugins/index` into
the UI plugins overview, which gained `plugin-list` and `plugin-detail`
entries and a line separating it from runtime plugins; `plugin-report`
into `ui/reports`.
- **57 renderer-type pages → `renderers.mdx`.** None of the 57 types is
in `sdui.manifest.json`, so an ObjectStack page cannot use them; the
page says so in a callout and lists each type with its description and
the source file holding its `ComponentRegistry.register` call (52 in
`@object-ui/components`, 3 in `@object-ui/plugin-view`, each path
checked).
- **Plugin pages trimmed** (calendar, charts, dashboard, form, gantt,
grid, kanban, list, map, markdown, timeline): the `Schema API` section,
the catalog `Example schemas` gallery and the `Examples` section are
removed (plus calendar/gantt/map `Configuration` and dashboard's filter,
widget-options and drill sections, which `ui/dashboards` already has).
Each page now links its types' generated entries in
`/docs/ui/components/plugins` (K3) and keeps installation, React usage,
component props, events, data providers and TypeScript. Chatbot, editor,
view and detail document types outside the manifest or React component
APIs and keep their schema sections.
- **Metadata the site lacked, moved to the metadata pages** (text moved
as written, headings re-levelled):
- `data-modeling/field-types`, under "How the Console renders a field":
polymorphic pointer pairs (`referenceVia`, `referenceDeletedWhen`),
naming a registry item by name (`position-ref`, `permission-ref`), a
widget's face on the record heading. The number-input section was
already there from K2.
- `ui/pages`, under "Element data sources": how a saved `view` combines
with the binding, and the per-block table of which `dataSource` keys
each block honours (with `parentDataSource` and `{record_id}`).
`frontend/data-source` keeps the SDK side (`useElementDataSource`, the
host's `apiFetch`, `ElementApiOpenScope`) and links here.
- `ui/forms`: "What an edit save writes".
- `ui/reports`: where the numbers come from, stored pre-9.0 documents
(the lossy bridge, confirmed in `ReportRenderer.tsx`), and the
filter-time CEL limitation.
- **Live demos → static code blocks** (unchanged from the first
revision): every `SchemaExample` became a fenced `json` block; no
`@object-ui/*` dependency in `apps/docs`.
- **Gate bookkeeping:** `scripts/docs-audit/handwritten-docs.json`
regenerated with `--write`; `scripts/role-word-baseline.json` is a pure
relocation of the rows the maintainer approved (5 `sdk/` rows, 29
occurrences, out; 3 `frontend/` rows, 26, in; the 3 others left with the
removed pages).
⛔ Nothing under `ui/` is edited or deleted; `ui/apps/site` is untouched.
K4 does both.
## Old path → new path (for K4's redirect map)
Every row is `/docs/PATH` on www.objectui.org → its target on
objectstack.ai. 95 rows: 19 moved, 14 moved and trimmed, 60 merged into
another page (57 renderer pages land on their group's heading in
`renderers`), 2 removed and pointed at the page that covers them.
<details><summary>95 rows</summary>
| # | Source file (`ui/content/docs/`) | Old URL (www.objectui.org) |
New URL (objectstack.ai) | Change |
|---|---|---|---|---|
| 1 | `index.md` | `/docs` | `/docs/frontend` | moved |
| 2 | `guide/quick-start.md` | `/docs/guide/quick-start` |
`/docs/frontend/quick-start` | moved |
| 3 | `guide/building-crud-app.md` | `/docs/guide/building-crud-app` |
`/docs/frontend/building-crud-app` | moved |
| 4 | `guide/architecture-overview.md` |
`/docs/guide/architecture-overview` |
`/docs/frontend/architecture-overview` | moved |
| 5 | `guide/schema-overview.md` | `/docs/guide/schema-overview` |
`/docs/frontend` | removed |
| 6 | `guide/schema-rendering.md` | `/docs/guide/schema-rendering` |
`/docs/frontend/schema-rendering` | moved |
| 7 | `guide/component-registry.md` | `/docs/guide/component-registry` |
`/docs/frontend/component-registry` | moved |
| 8 | `guide/fields.md` | `/docs/guide/fields` | `/docs/frontend/fields`
| trimmed |
| 9 | `guide/plugins.md` | `/docs/guide/plugins` |
`/docs/frontend/plugins` | moved |
| 10 | `guide/plugin-development.md` | `/docs/guide/plugin-development`
| `/docs/frontend/plugin-development` | moved |
| 11 | `guide/data-source.md` | `/docs/guide/data-source` |
`/docs/frontend/data-source` | trimmed |
| 12 | `guide/layout.md` | `/docs/guide/layout` |
`/docs/frontend/layout` | trimmed |
| 13 | `guide/theming.md` | `/docs/guide/theming` |
`/docs/frontend/theming` | moved |
| 14 | `guide/troubleshooting.md` | `/docs/guide/troubleshooting` |
`/docs/frontend/troubleshooting` | moved |
| 15 | `core/schema-renderer.mdx` | `/docs/core/schema-renderer` |
`/docs/frontend/schema-rendering` | merged |
| 16 | `layout/app-shell.mdx` | `/docs/layout/app-shell` |
`/docs/frontend/app-shell` | moved |
| 17 | `layout/sidebar-nav.mdx` | `/docs/layout/sidebar-nav` |
`/docs/frontend/sidebar-nav` | moved |
| 18 | `api/schema-reference.md` | `/docs/api/schema-reference` |
`/docs/ui/components` | removed |
| 19 | `utilities/cli.mdx` | `/docs/utilities/cli` |
`/docs/frontend/cli` | moved |
| 20 | `utilities/create-plugin.mdx` | `/docs/utilities/create-plugin` |
`/docs/frontend/create-plugin` | moved |
| 21 | `utilities/data-objectstack.mdx` |
`/docs/utilities/data-objectstack` | `/docs/frontend/data-objectstack` |
moved |
| 22 | `plugins/index.md` | `/docs/plugins` | `/docs/frontend/plugins` |
merged |
| 23 | `plugins/plugin-calendar.mdx` | `/docs/plugins/plugin-calendar` |
`/docs/frontend/plugins/plugin-calendar` | trimmed |
| 24 | `plugins/plugin-charts.mdx` | `/docs/plugins/plugin-charts` |
`/docs/frontend/plugins/plugin-charts` | trimmed |
| 25 | `plugins/plugin-chatbot.mdx` | `/docs/plugins/plugin-chatbot` |
`/docs/frontend/plugins/plugin-chatbot` | moved |
| 26 | `plugins/plugin-dashboard.mdx` | `/docs/plugins/plugin-dashboard`
| `/docs/frontend/plugins/plugin-dashboard` | trimmed |
| 27 | `plugins/plugin-detail.mdx` | `/docs/plugins/plugin-detail` |
`/docs/frontend/plugins/plugin-detail` | moved |
| 28 | `plugins/plugin-editor.mdx` | `/docs/plugins/plugin-editor` |
`/docs/frontend/plugins/plugin-editor` | moved |
| 29 | `plugins/plugin-form.mdx` | `/docs/plugins/plugin-form` |
`/docs/frontend/plugins/plugin-form` | trimmed |
| 30 | `plugins/plugin-gantt.mdx` | `/docs/plugins/plugin-gantt` |
`/docs/frontend/plugins/plugin-gantt` | trimmed |
| 31 | `plugins/plugin-grid.mdx` | `/docs/plugins/plugin-grid` |
`/docs/frontend/plugins/plugin-grid` | trimmed |
| 32 | `plugins/plugin-kanban.mdx` | `/docs/plugins/plugin-kanban` |
`/docs/frontend/plugins/plugin-kanban` | trimmed |
| 33 | `plugins/plugin-list.mdx` | `/docs/plugins/plugin-list` |
`/docs/frontend/plugins/plugin-list` | trimmed |
| 34 | `plugins/plugin-map.mdx` | `/docs/plugins/plugin-map` |
`/docs/frontend/plugins/plugin-map` | trimmed |
| 35 | `plugins/plugin-markdown.mdx` | `/docs/plugins/plugin-markdown` |
`/docs/frontend/plugins/plugin-markdown` | trimmed |
| 36 | `plugins/plugin-report.mdx` | `/docs/plugins/plugin-report` |
`/docs/ui/reports` | merged |
| 37 | `plugins/plugin-timeline.mdx` | `/docs/plugins/plugin-timeline` |
`/docs/frontend/plugins/plugin-timeline` | trimmed |
| 38 | `plugins/plugin-view.mdx` | `/docs/plugins/plugin-view` |
`/docs/frontend/plugins/plugin-view` | moved |
| 39 | `components/basic/button-group.mdx` |
`/docs/components/basic/button-group` | `/docs/frontend/renderers#basic`
| merged |
| 40 | `components/basic/div.mdx` | `/docs/components/basic/div` |
`/docs/frontend/renderers#basic` | merged |
| 41 | `components/basic/navigation-menu.mdx` |
`/docs/components/basic/navigation-menu` |
`/docs/frontend/renderers#basic` | merged |
| 42 | `components/basic/pagination.mdx` |
`/docs/components/basic/pagination` | `/docs/frontend/renderers#basic` |
merged |
| 43 | `components/basic/separator.mdx` |
`/docs/components/basic/separator` | `/docs/frontend/renderers#basic` |
merged |
| 44 | `components/basic/sidebar.mdx` | `/docs/components/basic/sidebar`
| `/docs/frontend/renderers#basic` | merged |
| 45 | `components/complex/carousel.mdx` |
`/docs/components/complex/carousel` | `/docs/frontend/renderers#complex`
| merged |
| 46 | `components/complex/data-table.mdx` |
`/docs/components/complex/data-table` |
`/docs/frontend/renderers#complex` | merged |
| 47 | `components/complex/filter-builder.mdx` |
`/docs/components/complex/filter-builder` |
`/docs/frontend/renderers#complex` | merged |
| 48 | `components/complex/filter-ui.mdx` |
`/docs/components/complex/filter-ui` |
`/docs/frontend/renderers#complex` | merged |
| 49 | `components/complex/resizable.mdx` |
`/docs/components/complex/resizable` |
`/docs/frontend/renderers#complex` | merged |
| 50 | `components/complex/scroll-area.mdx` |
`/docs/components/complex/scroll-area` |
`/docs/frontend/renderers#complex` | merged |
| 51 | `components/complex/sort-ui.mdx` |
`/docs/components/complex/sort-ui` | `/docs/frontend/renderers#complex`
| merged |
| 52 | `components/complex/view-switcher.mdx` |
`/docs/components/complex/view-switcher` |
`/docs/frontend/renderers#complex` | merged |
| 53 | `components/data-display/avatar.mdx` |
`/docs/components/data-display/avatar` |
`/docs/frontend/renderers#data-display` | merged |
| 54 | `components/data-display/breadcrumb.mdx` |
`/docs/components/data-display/breadcrumb` |
`/docs/frontend/renderers#data-display` | merged |
| 55 | `components/data-display/kbd.mdx` |
`/docs/components/data-display/kbd` |
`/docs/frontend/renderers#data-display` | merged |
| 56 | `components/data-display/list.mdx` |
`/docs/components/data-display/list` |
`/docs/frontend/renderers#data-display` | merged |
| 57 | `components/data-display/statistic.mdx` |
`/docs/components/data-display/statistic` |
`/docs/frontend/renderers#data-display` | merged |
| 58 | `components/data-display/tree-view.mdx` |
`/docs/components/data-display/tree-view` |
`/docs/frontend/renderers#data-display` | merged |
| 59 | `components/disclosure/collapsible.mdx` |
`/docs/components/disclosure/collapsible` |
`/docs/frontend/renderers#disclosure` | merged |
| 60 | `components/disclosure/toggle-group.mdx` |
`/docs/components/disclosure/toggle-group` |
`/docs/frontend/renderers#disclosure` | merged |
| 61 | `components/feedback/empty.mdx` |
`/docs/components/feedback/empty` | `/docs/frontend/renderers#feedback`
| merged |
| 62 | `components/feedback/loading.mdx` |
`/docs/components/feedback/loading` |
`/docs/frontend/renderers#feedback` | merged |
| 63 | `components/feedback/progress.mdx` |
`/docs/components/feedback/progress` |
`/docs/frontend/renderers#feedback` | merged |
| 64 | `components/feedback/skeleton.mdx` |
`/docs/components/feedback/skeleton` |
`/docs/frontend/renderers#feedback` | merged |
| 65 | `components/feedback/sonner.mdx` |
`/docs/components/feedback/sonner` | `/docs/frontend/renderers#feedback`
| merged |
| 66 | `components/feedback/spinner.mdx` |
`/docs/components/feedback/spinner` |
`/docs/frontend/renderers#feedback` | merged |
| 67 | `components/feedback/toast.mdx` |
`/docs/components/feedback/toast` | `/docs/frontend/renderers#feedback`
| merged |
| 68 | `components/form/calendar.mdx` | `/docs/components/form/calendar`
| `/docs/frontend/renderers#form` | merged |
| 69 | `components/form/checkbox.mdx` | `/docs/components/form/checkbox`
| `/docs/frontend/renderers#form` | merged |
| 70 | `components/form/combobox.mdx` | `/docs/components/form/combobox`
| `/docs/frontend/renderers#form` | merged |
| 71 | `components/form/command.mdx` | `/docs/components/form/command` |
`/docs/frontend/renderers#form` | merged |
| 72 | `components/form/date-picker.mdx` |
`/docs/components/form/date-picker` | `/docs/frontend/renderers#form` |
merged |
| 73 | `components/form/file-upload.mdx` |
`/docs/components/form/file-upload` | `/docs/frontend/renderers#form` |
merged |
| 74 | `components/form/form.mdx` | `/docs/components/form/form` |
`/docs/frontend/renderers#form` | merged |
| 75 | `components/form/input-otp.mdx` |
`/docs/components/form/input-otp` | `/docs/frontend/renderers#form` |
merged |
| 76 | `components/form/input.mdx` | `/docs/components/form/input` |
`/docs/frontend/renderers#form` | merged |
| 77 | `components/form/radio-group.mdx` |
`/docs/components/form/radio-group` | `/docs/frontend/renderers#form` |
merged |
| 78 | `components/form/select.mdx` | `/docs/components/form/select` |
`/docs/frontend/renderers#form` | merged |
| 79 | `components/form/slider.mdx` | `/docs/components/form/slider` |
`/docs/frontend/renderers#form` | merged |
| 80 | `components/form/switch.mdx` | `/docs/components/form/switch` |
`/docs/frontend/renderers#form` | merged |
| 81 | `components/form/textarea.mdx` | `/docs/components/form/textarea`
| `/docs/frontend/renderers#form` | merged |
| 82 | `components/form/toggle.mdx` | `/docs/components/form/toggle` |
`/docs/frontend/renderers#form` | merged |
| 83 | `components/layout/aspect-ratio.mdx` |
`/docs/components/layout/aspect-ratio` |
`/docs/frontend/renderers#layout` | merged |
| 84 | `components/layout/page.mdx` | `/docs/components/layout/page` |
`/docs/frontend/renderers#layout` | merged |
| 85 | `components/navigation/header-bar.mdx` |
`/docs/components/navigation/header-bar` |
`/docs/frontend/renderers#navigation` | merged |
| 86 | `components/overlay/alert-dialog.mdx` |
`/docs/components/overlay/alert-dialog` |
`/docs/frontend/renderers#overlay` | merged |
| 87 | `components/overlay/context-menu.mdx` |
`/docs/components/overlay/context-menu` |
`/docs/frontend/renderers#overlay` | merged |
| 88 | `components/overlay/dialog.mdx` |
`/docs/components/overlay/dialog` | `/docs/frontend/renderers#overlay` |
merged |
| 89 | `components/overlay/drawer.mdx` |
`/docs/components/overlay/drawer` | `/docs/frontend/renderers#overlay` |
merged |
| 90 | `components/overlay/dropdown-menu.mdx` |
`/docs/components/overlay/dropdown-menu` |
`/docs/frontend/renderers#overlay` | merged |
| 91 | `components/overlay/hover-card.mdx` |
`/docs/components/overlay/hover-card` |
`/docs/frontend/renderers#overlay` | merged |
| 92 | `components/overlay/menubar.mdx` |
`/docs/components/overlay/menubar` | `/docs/frontend/renderers#overlay`
| merged |
| 93 | `components/overlay/popover.mdx` |
`/docs/components/overlay/popover` | `/docs/frontend/renderers#overlay`
| merged |
| 94 | `components/overlay/sheet.mdx` | `/docs/components/overlay/sheet`
| `/docs/frontend/renderers#overlay` | merged |
| 95 | `components/overlay/tooltip.mdx` |
`/docs/components/overlay/tooltip` | `/docs/frontend/renderers#overlay`
| merged |
</details>
## Tests
Head `8275dff1` merges `main` at `1287b2fa`, after K3 #27179 landed, and
renames the "Views & Apps" pointer in `frontend/index.mdx` to "User
Interface". `check:doc-anchors` is now green, with 788 fragment links
resolving, the 15 `plugins#TYPE` links among them. Every CI check-run on
`8275dff1` concluded success or skipped, and `mergeable_state` is clean.
Head `12b1047a` renames "Object UI" to "ObjectUI" in
`content/docs/frontend` (25 occurrences plus the sidebar separator), on
Tesla's question in the card thread. It is a wording-only commit on top
of `773055de`; the docs gates were re-run green, and `check:doc-anchors`
still fails only on the same 15 K3 links. The readings below are for
`773055de`.
Docs-only diff; no package source changes, so no package test or
typecheck applies.
- `pnpm --filter @objectstack/docs build` (the command production runs)
at head `773055de`: exit 0 under the verify lock. It emits 34 pages
under `/en/docs/frontend` (the landing page, 16 SDK pages, `renderers`,
the UI plugins overview and 15 plugin pages).
- `git grep -n
"InteractiveDemo\|ComponentDemo\|LiveSplitDemo\|SchemaExample" --
content/docs` prints nothing (card acceptance).
- Source checks on the kept pages: every named `import { … } from
'@object-ui/PKG'` resolves to a name the package's `src/index.ts`
exports; every `ComponentRegistry.*` method the pages call exists in
`ui/packages/core/src/registry/Registry.ts`; every `objectui SUBCOMMAND`
the pages name is a `.command()` in `ui/packages/cli/src`; every
`@object-ui/*` package named exists, except
`@object-ui/plugin-calendar-view`, which the calendar page names only in
its migration note (that package merged into `plugin-calendar`).
- `apps/docs/package.json`: unchanged.
## Verification
Local gates at head `773055de`: `node scripts/pm/dispatch-gates.mjs
--commands` derives 54 commands, all run, exit codes captured before any
pipe.
- 52 of 54 exit 0.
- `pnpm --filter @objectstack/spec run check:skill-examples` exited 3 in
the sweep (`packages/spec/dist` declarations predated the sources after
merging main). After `env -u OS_SKIP_DTS pnpm --filter
'@objectstack/client-react...' build`: exit 0, "270 prose examples
type-check across 3 surface(s)".
- `pnpm check:doc-anchors` exits 1 on exactly 15 links, all
`/docs/ui/components/plugins#TYPE` from the trimmed plugin pages. That
page is K3's (#27179) and is not on `main` yet; this PR lands after K3,
and the gate goes green when `main` is merged in.
## Acceptance notes
- **Landing order: K3 #27179 first.** The plugin pages point at K3's
generated entries instead of carrying their own copy of each type's
props; that is the duplication this revision removes.
- **Scope grew past the card on the maintainer's ruling.** The card
asked for a one-to-one move; the maintainer asked for a duplication and
fit review, then chose a new entry plus the trimmed set. The review is
in the project thread. Four existing pages gained moved sections (+495
lines, text as written in the removed SDK pages); nothing existing was
rewritten.
- `renderers` replaces 57 pages of per-type examples with one list. An
SDK reader who needs a type's inputs follows its source link to the
`ComponentRegistry.register` call, which declares them.
- Reserved-word ratchet: the maintainer approved baselining the SDK's
own `role` keys (the `ai` SDK chat message key, the ARIA DOM key). This
revision only relocates those rows: 29 occurrences in 5 `sdk/` rows
become 26 in 3 `frontend/` rows; the other 3 left with
`api/schema-reference` and the trimmed page-header section of `layout`.
No other row changes.
- `guide/theming` keeps `export const brand = { … } satisfies Theme;`
(the SDK's `@object-ui/types` runtime object, not spec metadata), as in
the first revision.
- The README's "guides are published at objectui.org" line and
`ui/content/docs/` links outside this section are K4's sweep, untouched
here.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01L9qibzngYyRjmvNxjkfVyd)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 0d45c0e commit abba2c4
43 files changed
Lines changed: 13590 additions & 0 deletions
File tree
- content/docs
- data-modeling
- frontend
- plugins
- ui
- scripts
- docs-audit
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1058 | 1058 | | |
1059 | 1059 | | |
1060 | 1060 | | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
1061 | 1138 | | |
1062 | 1139 | | |
1063 | 1140 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
0 commit comments