@elaraai/e3-ui 1.0.86 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bind/data-indexed.d.ts +159 -0
- package/dist/src/bind/data-indexed.d.ts.map +1 -0
- package/dist/src/bind/data-indexed.js +105 -0
- package/dist/src/bind/data-indexed.js.map +1 -0
- package/dist/src/bind/data.d.ts +5 -3
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +6 -0
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +34 -23
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +46 -19
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +2923 -0
- package/dist/src/calendar/index.d.ts.map +1 -0
- package/dist/src/calendar/index.js +135 -0
- package/dist/src/calendar/index.js.map +1 -0
- package/dist/src/decision/queue.d.ts +3 -3
- package/dist/src/decision/queue.d.ts.map +1 -1
- package/dist/src/decision/queue.js +2 -2
- package/dist/src/decision/queue.js.map +1 -1
- package/dist/src/decision/types.d.ts +4 -0
- package/dist/src/decision/types.d.ts.map +1 -1
- package/dist/src/decision/types.js +4 -0
- package/dist/src/decision/types.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +114 -0
- package/dist/src/flowchart/canvas.d.ts.map +1 -0
- package/dist/src/flowchart/canvas.js +84 -0
- package/dist/src/flowchart/canvas.js.map +1 -0
- package/dist/src/flowchart/flowchart.d.ts +79 -0
- package/dist/src/flowchart/flowchart.d.ts.map +1 -0
- package/dist/src/flowchart/flowchart.js +9 -0
- package/dist/src/flowchart/flowchart.js.map +1 -0
- package/dist/src/flowchart/index.d.ts +305 -0
- package/dist/src/flowchart/index.d.ts.map +1 -0
- package/dist/src/flowchart/index.js +267 -0
- package/dist/src/flowchart/index.js.map +1 -0
- package/dist/src/flowchart/library.d.ts +720 -0
- package/dist/src/flowchart/library.d.ts.map +1 -0
- package/dist/src/flowchart/library.js +611 -0
- package/dist/src/flowchart/library.js.map +1 -0
- package/dist/src/flowchart/over.d.ts +234 -0
- package/dist/src/flowchart/over.d.ts.map +1 -0
- package/dist/src/flowchart/over.js +220 -0
- package/dist/src/flowchart/over.js.map +1 -0
- package/dist/src/flowchart/patch.d.ts +64 -0
- package/dist/src/flowchart/patch.d.ts.map +1 -0
- package/dist/src/flowchart/patch.js +67 -0
- package/dist/src/flowchart/patch.js.map +1 -0
- package/dist/src/flowchart/payload.d.ts +8220 -0
- package/dist/src/flowchart/payload.d.ts.map +1 -0
- package/dist/src/flowchart/payload.js +521 -0
- package/dist/src/flowchart/payload.js.map +1 -0
- package/dist/src/flowchart/types.d.ts +393 -0
- package/dist/src/flowchart/types.d.ts.map +1 -0
- package/dist/src/flowchart/types.js +216 -0
- package/dist/src/flowchart/types.js.map +1 -0
- package/dist/src/flowchart/values.d.ts +267 -0
- package/dist/src/flowchart/values.d.ts.map +1 -0
- package/dist/src/flowchart/values.js +216 -0
- package/dist/src/flowchart/values.js.map +1 -0
- package/dist/src/flowchart/window.d.ts +521 -0
- package/dist/src/flowchart/window.d.ts.map +1 -0
- package/dist/src/flowchart/window.js +69 -0
- package/dist/src/flowchart/window.js.map +1 -0
- package/dist/src/index.d.ts +25 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +35 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +72 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +2224 -0
- package/dist/src/plan/assemble.d.ts.map +1 -0
- package/dist/src/plan/assemble.js +210 -0
- package/dist/src/plan/assemble.js.map +1 -0
- package/dist/src/plan/builders.d.ts +790 -0
- package/dist/src/plan/builders.d.ts.map +1 -0
- package/dist/src/plan/builders.js +749 -0
- package/dist/src/plan/builders.js.map +1 -0
- package/dist/src/plan/event-rows.d.ts +2565 -0
- package/dist/src/plan/event-rows.d.ts.map +1 -0
- package/dist/src/plan/event-rows.js +689 -0
- package/dist/src/plan/event-rows.js.map +1 -0
- package/dist/src/plan/factories.d.ts +458 -0
- package/dist/src/plan/factories.d.ts.map +1 -0
- package/dist/src/plan/factories.js +484 -0
- package/dist/src/plan/factories.js.map +1 -0
- package/dist/src/plan/index.d.ts +672 -0
- package/dist/src/plan/index.d.ts.map +1 -0
- package/dist/src/plan/index.js +532 -0
- package/dist/src/plan/index.js.map +1 -0
- package/dist/src/plan/ir.d.ts +2594 -0
- package/dist/src/plan/ir.d.ts.map +1 -0
- package/dist/src/plan/ir.js +78 -0
- package/dist/src/plan/ir.js.map +1 -0
- package/dist/src/plan/library.d.ts +772 -0
- package/dist/src/plan/library.d.ts.map +1 -0
- package/dist/src/plan/library.js +424 -0
- package/dist/src/plan/library.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +27 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -0
- package/dist/src/plan/ordered-source.js +48 -0
- package/dist/src/plan/ordered-source.js.map +1 -0
- package/dist/src/plan/over.d.ts +247 -0
- package/dist/src/plan/over.d.ts.map +1 -0
- package/dist/src/plan/over.js +266 -0
- package/dist/src/plan/over.js.map +1 -0
- package/dist/src/plan/pick.d.ts +78 -0
- package/dist/src/plan/pick.d.ts.map +1 -0
- package/dist/src/plan/pick.js +146 -0
- package/dist/src/plan/pick.js.map +1 -0
- package/dist/src/plan/plan.d.ts +11611 -0
- package/dist/src/plan/plan.d.ts.map +1 -0
- package/dist/src/plan/plan.js +428 -0
- package/dist/src/plan/plan.js.map +1 -0
- package/dist/src/plan/refs.d.ts +218 -0
- package/dist/src/plan/refs.d.ts.map +1 -0
- package/dist/src/plan/refs.js +226 -0
- package/dist/src/plan/refs.js.map +1 -0
- package/dist/src/plan/root.d.ts +290 -0
- package/dist/src/plan/root.d.ts.map +1 -0
- package/dist/src/plan/root.js +463 -0
- package/dist/src/plan/root.js.map +1 -0
- package/dist/src/plan/series.d.ts +13554 -0
- package/dist/src/plan/series.d.ts.map +1 -0
- package/dist/src/plan/series.js +1921 -0
- package/dist/src/plan/series.js.map +1 -0
- package/dist/src/plan/types.d.ts +12400 -0
- package/dist/src/plan/types.d.ts.map +1 -0
- package/dist/src/plan/types.js +1335 -0
- package/dist/src/plan/types.js.map +1 -0
- package/dist/src/roster/coverage.d.ts +240 -0
- package/dist/src/roster/coverage.d.ts.map +1 -0
- package/dist/src/roster/coverage.js +109 -0
- package/dist/src/roster/coverage.js.map +1 -0
- package/dist/src/roster/index.d.ts +4028 -0
- package/dist/src/roster/index.d.ts.map +1 -0
- package/dist/src/roster/index.js +115 -0
- package/dist/src/roster/index.js.map +1 -0
- package/dist/src/roster/library.d.ts +106 -0
- package/dist/src/roster/library.d.ts.map +1 -0
- package/dist/src/roster/library.js +78 -0
- package/dist/src/roster/library.js.map +1 -0
- package/dist/src/roster/people.d.ts +50 -0
- package/dist/src/roster/people.d.ts.map +1 -0
- package/dist/src/roster/people.js +32 -0
- package/dist/src/roster/people.js.map +1 -0
- package/dist/src/roster/rules.d.ts +275 -0
- package/dist/src/roster/rules.d.ts.map +1 -0
- package/dist/src/roster/rules.js +162 -0
- package/dist/src/roster/rules.js.map +1 -0
- package/dist/src/roster/types.d.ts +672 -0
- package/dist/src/roster/types.d.ts.map +1 -0
- package/dist/src/roster/types.js +248 -0
- package/dist/src/roster/types.js.map +1 -0
- package/dist/src/roster/visibility.d.ts +66 -0
- package/dist/src/roster/visibility.d.ts.map +1 -0
- package/dist/src/roster/visibility.js +25 -0
- package/dist/src/roster/visibility.js.map +1 -0
- package/dist/src/schedule/days.d.ts +54 -0
- package/dist/src/schedule/days.d.ts.map +1 -0
- package/dist/src/schedule/days.js +68 -0
- package/dist/src/schedule/days.js.map +1 -0
- package/dist/src/schedule/events.d.ts +433 -0
- package/dist/src/schedule/events.d.ts.map +1 -0
- package/dist/src/schedule/events.js +851 -0
- package/dist/src/schedule/events.js.map +1 -0
- package/dist/src/schedule/index.d.ts +150 -0
- package/dist/src/schedule/index.d.ts.map +1 -0
- package/dist/src/schedule/index.js +132 -0
- package/dist/src/schedule/index.js.map +1 -0
- package/dist/src/schedule/library.d.ts +70 -0
- package/dist/src/schedule/library.d.ts.map +1 -0
- package/dist/src/schedule/library.js +102 -0
- package/dist/src/schedule/library.js.map +1 -0
- package/dist/src/schedule/patch.d.ts +74 -0
- package/dist/src/schedule/patch.d.ts.map +1 -0
- package/dist/src/schedule/patch.js +68 -0
- package/dist/src/schedule/patch.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +189 -0
- package/dist/src/schedule/record-window.d.ts.map +1 -0
- package/dist/src/schedule/record-window.js +95 -0
- package/dist/src/schedule/record-window.js.map +1 -0
- package/dist/src/schedule/resources.d.ts +165 -0
- package/dist/src/schedule/resources.d.ts.map +1 -0
- package/dist/src/schedule/resources.js +234 -0
- package/dist/src/schedule/resources.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +47 -0
- package/dist/src/schedule/templates.d.ts.map +1 -0
- package/dist/src/schedule/templates.js +61 -0
- package/dist/src/schedule/templates.js.map +1 -0
- package/dist/src/schedule/types.d.ts +1677 -0
- package/dist/src/schedule/types.d.ts.map +1 -0
- package/dist/src/schedule/types.js +374 -0
- package/dist/src/schedule/types.js.map +1 -0
- package/dist/src/schedule/window.d.ts +154 -0
- package/dist/src/schedule/window.d.ts.map +1 -0
- package/dist/src/schedule/window.js +363 -0
- package/dist/src/schedule/window.js.map +1 -0
- package/dist/src/sheet/bridge.d.ts +385 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -0
- package/dist/src/sheet/bridge.js +809 -0
- package/dist/src/sheet/bridge.js.map +1 -0
- package/dist/src/sheet/columns.d.ts +410 -0
- package/dist/src/sheet/columns.d.ts.map +1 -0
- package/dist/src/sheet/columns.js +99 -0
- package/dist/src/sheet/columns.js.map +1 -0
- package/dist/src/sheet/context-bridge.d.ts +48 -0
- package/dist/src/sheet/context-bridge.d.ts.map +1 -0
- package/dist/src/sheet/context-bridge.js +216 -0
- package/dist/src/sheet/context-bridge.js.map +1 -0
- package/dist/src/sheet/draft-bridge.d.ts +37 -0
- package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
- package/dist/src/sheet/draft-bridge.js +153 -0
- package/dist/src/sheet/draft-bridge.js.map +1 -0
- package/dist/src/sheet/drafts.d.ts +14 -0
- package/dist/src/sheet/drafts.d.ts.map +1 -0
- package/dist/src/sheet/drafts.js +14 -0
- package/dist/src/sheet/drafts.js.map +1 -0
- package/dist/src/sheet/editing-bridge.d.ts +40 -0
- package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
- package/dist/src/sheet/editing-bridge.js +231 -0
- package/dist/src/sheet/editing-bridge.js.map +1 -0
- package/dist/src/sheet/editing-types.d.ts +268 -0
- package/dist/src/sheet/editing-types.d.ts.map +1 -0
- package/dist/src/sheet/editing-types.js +34 -0
- package/dist/src/sheet/editing-types.js.map +1 -0
- package/dist/src/sheet/edits.d.ts +37 -0
- package/dist/src/sheet/edits.d.ts.map +1 -0
- package/dist/src/sheet/edits.js +31 -0
- package/dist/src/sheet/edits.js.map +1 -0
- package/dist/src/sheet/fields.d.ts +693 -0
- package/dist/src/sheet/fields.d.ts.map +1 -0
- package/dist/src/sheet/fields.js +280 -0
- package/dist/src/sheet/fields.js.map +1 -0
- package/dist/src/sheet/group.d.ts +165 -0
- package/dist/src/sheet/group.d.ts.map +1 -0
- package/dist/src/sheet/group.js +52 -0
- package/dist/src/sheet/group.js.map +1 -0
- package/dist/src/sheet/index.d.ts +542 -0
- package/dist/src/sheet/index.d.ts.map +1 -0
- package/dist/src/sheet/index.js +387 -0
- package/dist/src/sheet/index.js.map +1 -0
- package/dist/src/sheet/library.d.ts +284 -0
- package/dist/src/sheet/library.d.ts.map +1 -0
- package/dist/src/sheet/library.js +259 -0
- package/dist/src/sheet/library.js.map +1 -0
- package/dist/src/sheet/link.d.ts +398 -0
- package/dist/src/sheet/link.d.ts.map +1 -0
- package/dist/src/sheet/link.js +228 -0
- package/dist/src/sheet/link.js.map +1 -0
- package/dist/src/sheet/record.d.ts +75 -0
- package/dist/src/sheet/record.d.ts.map +1 -0
- package/dist/src/sheet/record.js +128 -0
- package/dist/src/sheet/record.js.map +1 -0
- package/dist/src/sheet/registers.d.ts +681 -0
- package/dist/src/sheet/registers.d.ts.map +1 -0
- package/dist/src/sheet/registers.js +671 -0
- package/dist/src/sheet/registers.js.map +1 -0
- package/dist/src/sheet/root.d.ts +329 -0
- package/dist/src/sheet/root.d.ts.map +1 -0
- package/dist/src/sheet/root.js +511 -0
- package/dist/src/sheet/root.js.map +1 -0
- package/dist/src/sheet/seed-bridge.d.ts +14 -0
- package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
- package/dist/src/sheet/seed-bridge.js +51 -0
- package/dist/src/sheet/seed-bridge.js.map +1 -0
- package/dist/src/sheet/sheet.d.ts +11819 -0
- package/dist/src/sheet/sheet.d.ts.map +1 -0
- package/dist/src/sheet/sheet.js +236 -0
- package/dist/src/sheet/sheet.js.map +1 -0
- package/dist/src/sheet/sub-rows.d.ts +299 -0
- package/dist/src/sheet/sub-rows.d.ts.map +1 -0
- package/dist/src/sheet/sub-rows.js +272 -0
- package/dist/src/sheet/sub-rows.js.map +1 -0
- package/dist/src/sheet/templates.d.ts +161 -0
- package/dist/src/sheet/templates.d.ts.map +1 -0
- package/dist/src/sheet/templates.js +122 -0
- package/dist/src/sheet/templates.js.map +1 -0
- package/dist/src/sheet/transactions.d.ts +76 -0
- package/dist/src/sheet/transactions.d.ts.map +1 -0
- package/dist/src/sheet/transactions.js +40 -0
- package/dist/src/sheet/transactions.js.map +1 -0
- package/dist/src/sheet/types.d.ts +15226 -0
- package/dist/src/sheet/types.d.ts.map +1 -0
- package/dist/src/sheet/types.js +1070 -0
- package/dist/src/sheet/types.js.map +1 -0
- package/dist/src/sheet/views.d.ts +29 -0
- package/dist/src/sheet/views.d.ts.map +1 -0
- package/dist/src/sheet/views.js +43 -0
- package/dist/src/sheet/views.js.map +1 -0
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +11 -8
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/utils/derive.d.ts +134 -8
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +409 -7
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts +38 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -0
- package/dist/src/utils/ordered-source.js +45 -0
- package/dist/src/utils/ordered-source.js.map +1 -0
- package/dist/src/utils/row-inspector.d.ts +36 -0
- package/dist/src/utils/row-inspector.d.ts.map +1 -0
- package/dist/src/utils/row-inspector.js +49 -0
- package/dist/src/utils/row-inspector.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +21 -19
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +122 -122
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +9 -9
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar-records.examples.js +91 -0
- package/dist/test/calendar/calendar-records.examples.js.map +1 -0
- package/dist/test/calendar/calendar.examples.d.ts +776 -0
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar.examples.js +336 -0
- package/dist/test/calendar/calendar.examples.js.map +1 -0
- package/dist/test/decision/journal.examples.d.ts +28 -28
- package/dist/test/decision/journal.examples.d.ts.map +1 -1
- package/dist/test/decision/journal.examples.js +4 -4
- package/dist/test/decision/journal.examples.js.map +1 -1
- package/dist/test/decision/queue.examples.d.ts.map +1 -1
- package/dist/test/decision/queue.examples.js +5 -7
- package/dist/test/decision/queue.examples.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
- package/dist/test/flowchart/flowchart.examples.js +465 -0
- package/dist/test/flowchart/flowchart.examples.js.map +1 -0
- package/dist/test/plan/plan-events.examples.d.ts +3666 -0
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-events.examples.js +773 -0
- package/dist/test/plan/plan-events.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +3 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-records.examples.js +45 -0
- package/dist/test/plan/plan-records.examples.js.map +1 -0
- package/dist/test/plan/plan-windows.examples.d.ts +588 -0
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-windows.examples.js +170 -0
- package/dist/test/plan/plan-windows.examples.js.map +1 -0
- package/dist/test/plan/plan.examples.d.ts +8095 -0
- package/dist/test/plan/plan.examples.d.ts.map +1 -0
- package/dist/test/plan/plan.examples.js +2500 -0
- package/dist/test/plan/plan.examples.js.map +1 -0
- package/dist/test/roster/domain.examples.d.ts +367 -0
- package/dist/test/roster/domain.examples.d.ts.map +1 -0
- package/dist/test/roster/domain.examples.js +72 -0
- package/dist/test/roster/domain.examples.js.map +1 -0
- package/dist/test/roster/roster-records.examples.d.ts +729 -0
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
- package/dist/test/roster/roster-records.examples.js +86 -0
- package/dist/test/roster/roster-records.examples.js.map +1 -0
- package/dist/test/roster/roster.examples.d.ts +750 -0
- package/dist/test/roster/roster.examples.d.ts.map +1 -0
- package/dist/test/roster/roster.examples.js +198 -0
- package/dist/test/roster/roster.examples.js.map +1 -0
- package/dist/test/roster/warehouse.d.ts +87 -0
- package/dist/test/roster/warehouse.d.ts.map +1 -0
- package/dist/test/roster/warehouse.js +883 -0
- package/dist/test/roster/warehouse.js.map +1 -0
- package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-link.examples.js +41 -0
- package/dist/test/sheet/sheet-link.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-records.examples.js +79 -0
- package/dist/test/sheet/sheet-records.examples.js.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.js +58 -0
- package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
- package/dist/test/sheet/sheet.examples.d.ts +5562 -0
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet.examples.js +1178 -0
- package/dist/test/sheet/sheet.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +11 -11
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +12 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/roster/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAE,YAAY,EAAE,QAAQ,EAC1G,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EACxD,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EACzC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoC,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAA2D,aAAa,EAAyC,aAAa,EAAmB,KAAK,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAEtP,OAAO,EAAU,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACkB,eAAe,EAAkB,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EACzH,KAAK,gBAAgB,EACxB,MAAM,cAAc,CAAC;AAEtB,gEAAgE;AAChE,eAAO,MAAM,gBAAgB;;;EAAsD,CAAC;AACpF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB;;;EAAiD,CAAC;AAC/E,yDAAyD;AACzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;EAAoF,CAAC;AACtH,wFAAwF;AACxF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGAA4G,CAAC;AAClJ,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB;;;;;;mGAA8G,CAAC;AACrJ,uEAAuE;AACvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AACH,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;IAAE,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC,CAAC;AAChI,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AACvE,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAC;AACH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, AsyncFunctionType, BooleanType, DateTimeType, DictType, East, FloatType, FunctionType, NullType, OptionType, SetType, StringType, StructType, VariantType, none, some, variant, } from "@elaraai/east";
|
|
6
|
+
import { EastUI, Editing, UIComponentType } from "@elaraai/east-ui";
|
|
7
|
+
import { isRecordSlice, recordSliceChrome, RecordSliceChromeType, RowSourceType, localSliceHandle, SliceAffordanceType, SliceBindType, SliceChromeType } from "@elaraai/east-ui/internal";
|
|
8
|
+
import { DataPagedHandleType } from "../bind/data.js";
|
|
9
|
+
import { Record, RecordBindingType } from "../bind/record.js";
|
|
10
|
+
import * as T from "./types.js";
|
|
11
|
+
import { ScheduleClockType } from "../schedule/types.js";
|
|
12
|
+
import { rosterCoverage, rosterWeekHours } from "./coverage.js";
|
|
13
|
+
import { rosterCheck, rosterRest } from "./rules.js";
|
|
14
|
+
import { rosterPeople } from "./people.js";
|
|
15
|
+
import { rosterVisibility } from "./visibility.js";
|
|
16
|
+
import { RosterAuthorTabType, RosterPatchType, buildRosterTab, rosterActivitiesTab, rosterLibraryTab, rosterPatch, rosterPeopleTab, } from "./library.js";
|
|
17
|
+
/** Roster's layout: group shifts, or people across the week. */
|
|
18
|
+
export const RosterLayoutType = VariantType({ shifts: NullType, people: NullType });
|
|
19
|
+
/** Roster's displayed period. People always shows the whole week. */
|
|
20
|
+
export const RosterPeriodType = VariantType({ day: NullType, week: NullType });
|
|
21
|
+
/** A declared built-in or author-defined library tab. */
|
|
22
|
+
export const RosterLibraryTabType = VariantType({ people: NullType, activities: NullType, tab: RosterAuthorTabType });
|
|
23
|
+
/** A custom assignment form receives the value and an update callback, as Plan does. */
|
|
24
|
+
export const RosterAssignmentFormType = FunctionType([T.RosterAssignmentType, FunctionType([T.RosterAssignmentType], NullType)], UIComponentType);
|
|
25
|
+
/** A custom requirement form receives the value and an update callback. */
|
|
26
|
+
export const RosterRequirementFormType = FunctionType([T.RosterRequirementType, FunctionType([T.RosterRequirementType], NullType)], UIComponentType);
|
|
27
|
+
/** Optional forms; absent forms use the shared FieldForm inspector. */
|
|
28
|
+
export const RosterInspectorType = StructType({
|
|
29
|
+
assignment: OptionType(RosterAssignmentFormType), requirement: OptionType(RosterRequirementFormType),
|
|
30
|
+
});
|
|
31
|
+
/** Optional paged history, over the same weeks record. */
|
|
32
|
+
export const RosterWindowType = DataPagedHandleType(T.RosterWeeksType);
|
|
33
|
+
/** The closed renderer payload. BuilderFrame is internal to the renderer. */
|
|
34
|
+
export const RosterPayloadType = StructType({
|
|
35
|
+
sourceId: StringType, read: FunctionType([], T.RosterWeeksType),
|
|
36
|
+
apply: AsyncFunctionType([Editing.Types.ChangeSet(T.RosterWeekType, DateTimeType)], Editing.Types.ApplyResult),
|
|
37
|
+
window: OptionType(RosterWindowType), people: ArrayType(T.RosterPersonType), visiblePeople: OptionType(SetType(StringType)),
|
|
38
|
+
groups: ArrayType(T.RosterGroupType), duties: ArrayType(T.RosterSkillType), shifts: ArrayType(T.RosterShiftType),
|
|
39
|
+
positions: ArrayType(T.RosterPositionType), agencies: ArrayType(T.RosterAgencyType), rules: T.RosterRulesType,
|
|
40
|
+
costs: OptionType(T.RosterCostsType), forecast: DictType(DateTimeType, T.RosterRequirementsType), proposals: ArrayType(T.RosterProposalType),
|
|
41
|
+
check: OptionType(FunctionType([T.RosterCheckContextType], ArrayType(T.RosterIssueType))),
|
|
42
|
+
library: ArrayType(RosterLibraryTabType), inspector: OptionType(RosterInspectorType), slice: OptionType(SliceChromeType),
|
|
43
|
+
settings: StructType({
|
|
44
|
+
layout: RosterLayoutType, period: RosterPeriodType, date: OptionType(DateTimeType),
|
|
45
|
+
weekStart: VariantType({ monday: NullType, sunday: NullType }),
|
|
46
|
+
density: VariantType({ compact: NullType, comfortable: NullType }), chipSkills: BooleanType, requirements: BooleanType, readOnly: BooleanType,
|
|
47
|
+
}), id: OptionType(StringType),
|
|
48
|
+
recordSlice: OptionType(RecordSliceChromeType), visibleSource: OptionType(RowSourceType(ArrayType(StringType))),
|
|
49
|
+
});
|
|
50
|
+
/** Carrier registered by e3-ui-components. */
|
|
51
|
+
export const RosterComponent = EastUI.component("Roster", RosterPayloadType, { optional: true });
|
|
52
|
+
/** Assembles a payload; domain and interaction programs live outside the tag. @internal */
|
|
53
|
+
export function createRosterPayload(props) {
|
|
54
|
+
if (Array.isArray(props.groups) && props.groups.length === 0)
|
|
55
|
+
throw new Error("Roster: groups must not be empty");
|
|
56
|
+
if (Array.isArray(props.shifts) && props.shifts.length === 0)
|
|
57
|
+
throw new Error("Roster: shifts must not be empty");
|
|
58
|
+
const seen = new Set();
|
|
59
|
+
const library = (props.library ?? []).map(tab => {
|
|
60
|
+
const key = tab.kind === "tab" ? `tab:${tab.config.name}` : tab.kind;
|
|
61
|
+
if (seen.has(key))
|
|
62
|
+
throw new Error(`Roster: duplicate library tab ${key}`);
|
|
63
|
+
seen.add(key);
|
|
64
|
+
return tab.kind === "tab" ? East.value(variant("tab", buildRosterTab(tab)), RosterLibraryTabType)
|
|
65
|
+
: East.value(variant(tab.kind, null), RosterLibraryTabType);
|
|
66
|
+
});
|
|
67
|
+
const record = props.slice !== undefined && isRecordSlice(props.slice.slice);
|
|
68
|
+
const visibility = props.visiblePeople === undefined ? undefined : rosterVisibility(props.visiblePeople);
|
|
69
|
+
if (record && visibility?.source === undefined)
|
|
70
|
+
throw new Error("Roster: pass Slice.rows(recordSlice) as visiblePeople alongside record Slice controls");
|
|
71
|
+
const local = props.slice;
|
|
72
|
+
const forms = typeof props.inspector === "object" ? props.inspector : {};
|
|
73
|
+
return East.value({
|
|
74
|
+
sourceId: props.weeks.binding.name, read: props.weeks.read, apply: Record.onApply(props.weeks, { keyed: true }),
|
|
75
|
+
window: props.window === undefined ? none : some(props.window), people: props.people,
|
|
76
|
+
visiblePeople: visibility?.inline === undefined ? none : some(visibility.inline), groups: props.groups, shifts: props.shifts,
|
|
77
|
+
duties: props.duties ?? [], positions: props.positions ?? [{ key: "associate", label: "Associate", code: "", lead: false }],
|
|
78
|
+
agencies: props.agencies ?? [], rules: { rest: props.rules?.rest ?? 10.0, lead: props.rules?.lead ?? true, trainer: props.rules?.trainer ?? true, skill: props.rules?.skill ?? true, agree: props.rules?.agree ?? true },
|
|
79
|
+
costs: props.costs === undefined ? none : some(props.costs), forecast: props.forecast ?? new Map(), proposals: props.proposals ?? [],
|
|
80
|
+
check: props.check === undefined ? none : some(props.check), library,
|
|
81
|
+
inspector: props.inspector === undefined || props.inspector === false ? none : some({
|
|
82
|
+
assignment: forms.assignment === undefined ? none : some(forms.assignment),
|
|
83
|
+
requirement: forms.requirement === undefined ? none : some(forms.requirement),
|
|
84
|
+
}),
|
|
85
|
+
slice: record || local === undefined ? none : some({ slice: localSliceHandle(local.slice),
|
|
86
|
+
affordances: East.value((local.affordances ?? ["filter", "search"]).map(a => variant(a, null)), ArrayType(SliceAffordanceType)) }),
|
|
87
|
+
settings: {
|
|
88
|
+
layout: variant(props.view?.layout ?? "shifts", null), period: variant(props.view?.layout === "people" ? "week" : props.view?.period ?? "day", null),
|
|
89
|
+
date: props.view?.date === undefined ? none : some(props.view.date), weekStart: variant(props.week?.start ?? "monday", null),
|
|
90
|
+
density: variant(props.density ?? "comfortable", null), chipSkills: props.chipSkills ?? true,
|
|
91
|
+
requirements: props.requirements ?? true, readOnly: props.readOnly ?? false,
|
|
92
|
+
}, id: props.id === undefined ? none : some(props.id),
|
|
93
|
+
recordSlice: record ? some(recordSliceChrome(props.slice)) : none,
|
|
94
|
+
visibleSource: visibility?.source === undefined ? none : some(visibility.source),
|
|
95
|
+
}, RosterPayloadType);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Plans staffing with an internal shared BuilderFrame, Slice toolbar and editing session.
|
|
99
|
+
* @param props - Bound weeks, staff, shift configuration and optional library/inspector
|
|
100
|
+
* @returns The Roster extension
|
|
101
|
+
* @remarks One gesture is one undo step; Save and Publish each write one complete week. On narrow containers the same commands are explicit card actions.
|
|
102
|
+
*/
|
|
103
|
+
export const Roster = Object.assign((props) => RosterComponent.Root(createRosterPayload(props)), { people: rosterPeople, coverage: rosterCoverage, check: rosterCheck, weekHours: rosterWeekHours, rest: rosterRest, patch: rosterPatch,
|
|
104
|
+
library: { people: rosterPeopleTab, activities: rosterActivitiesTab, tab: rosterLibraryTab },
|
|
105
|
+
Types: {
|
|
106
|
+
Clock: ScheduleClockType, Slot: T.RosterSlotType, Who: T.RosterWhoType, Assignment: T.RosterAssignmentType, Requirement: T.RosterRequirementType,
|
|
107
|
+
Requirements: T.RosterRequirementsType, Status: T.RosterStatusType, Week: T.RosterWeekType, Weeks: T.RosterWeeksType,
|
|
108
|
+
Skill: T.RosterSkillType, Group: T.RosterGroupType, Shift: T.RosterShiftType, Position: T.RosterPositionType,
|
|
109
|
+
Agency: T.RosterAgencyType, Person: T.RosterPersonType, Rules: T.RosterRulesType, Costs: T.RosterCostsType,
|
|
110
|
+
Context: T.RosterContextType, CoverageLine: T.RosterCoverageLineType, Coverage: T.RosterCoverageType,
|
|
111
|
+
Proposal: T.RosterProposalType, Fix: T.RosterFixType, Issue: T.RosterIssueType, CheckContext: T.RosterCheckContextType,
|
|
112
|
+
Patch: RosterPatchType, Layout: RosterLayoutType, Period: RosterPeriodType,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/roster/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, BooleanType, FloatType, OptionType, StringType, StructType, type DictType, type EastType, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
6
|
+
/** A card's permitted assignment changes. An absent field leaves it untouched. */
|
|
7
|
+
export declare const RosterPatchType: StructType<{
|
|
8
|
+
readonly position: OptionType<StringType>;
|
|
9
|
+
readonly activity: OptionType<OptionType<StringType>>;
|
|
10
|
+
readonly offset: OptionType<FloatType>;
|
|
11
|
+
readonly overtime: OptionType<FloatType>;
|
|
12
|
+
readonly agreed: OptionType<OptionType<BooleanType>>;
|
|
13
|
+
}>;
|
|
14
|
+
/** One resolved author card; its original key is retained as East text. */
|
|
15
|
+
export declare const RosterCardType: StructType<{
|
|
16
|
+
readonly key: StringType;
|
|
17
|
+
readonly label: StringType;
|
|
18
|
+
readonly meta: OptionType<StringType>;
|
|
19
|
+
readonly group: OptionType<StringType>;
|
|
20
|
+
readonly patch: OptionType<StructType<{
|
|
21
|
+
readonly position: OptionType<StringType>;
|
|
22
|
+
readonly activity: OptionType<OptionType<StringType>>;
|
|
23
|
+
readonly offset: OptionType<FloatType>;
|
|
24
|
+
readonly overtime: OptionType<FloatType>;
|
|
25
|
+
readonly agreed: OptionType<OptionType<BooleanType>>;
|
|
26
|
+
}>>;
|
|
27
|
+
}>;
|
|
28
|
+
/** An author-defined tab, resolved without UI or editing programs. */
|
|
29
|
+
export declare const RosterAuthorTabType: StructType<{
|
|
30
|
+
readonly name: StringType;
|
|
31
|
+
readonly icon: OptionType<StringType>;
|
|
32
|
+
readonly cards: ArrayType<StructType<{
|
|
33
|
+
readonly key: StringType;
|
|
34
|
+
readonly label: StringType;
|
|
35
|
+
readonly meta: OptionType<StringType>;
|
|
36
|
+
readonly group: OptionType<StringType>;
|
|
37
|
+
readonly patch: OptionType<StructType<{
|
|
38
|
+
readonly position: OptionType<StringType>;
|
|
39
|
+
readonly activity: OptionType<OptionType<StringType>>;
|
|
40
|
+
readonly offset: OptionType<FloatType>;
|
|
41
|
+
readonly overtime: OptionType<FloatType>;
|
|
42
|
+
readonly agreed: OptionType<OptionType<BooleanType>>;
|
|
43
|
+
}>>;
|
|
44
|
+
}>>;
|
|
45
|
+
}>;
|
|
46
|
+
/** Fields a library card can set on a named assignment. */
|
|
47
|
+
export interface RosterPatchOptions {
|
|
48
|
+
/** Position key. */
|
|
49
|
+
position?: SubtypeExprOrValue<StringType>;
|
|
50
|
+
/** Activity key, or none to clear it. */
|
|
51
|
+
activity?: SubtypeExprOrValue<OptionType<StringType>>;
|
|
52
|
+
/** Start offset in hours. */
|
|
53
|
+
offset?: SubtypeExprOrValue<FloatType>;
|
|
54
|
+
/** Additional hours. */
|
|
55
|
+
overtime?: SubtypeExprOrValue<FloatType>;
|
|
56
|
+
/** Explicit agreement, or none to clear it. */
|
|
57
|
+
agreed?: SubtypeExprOrValue<OptionType<BooleanType>>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Describes an author card's assignment changes, retaining every unlisted field.
|
|
61
|
+
* @param fields - Position, activity or changed hours and agreement
|
|
62
|
+
* @returns A typed patch for Roster.library.tab's drop accessor
|
|
63
|
+
* @remarks Slot and person identity cannot be changed by a card patch.
|
|
64
|
+
*/
|
|
65
|
+
export declare function rosterPatch(fields: RosterPatchOptions): ExprType<typeof RosterPatchType>;
|
|
66
|
+
/** Typed accessors for cards over an author's keyed data. */
|
|
67
|
+
export interface RosterLibraryTabConfig<K extends EastType, R extends EastType> {
|
|
68
|
+
/** Tab label. */
|
|
69
|
+
name: string;
|
|
70
|
+
/** Font Awesome solid icon name. */
|
|
71
|
+
icon?: string;
|
|
72
|
+
/** Card label. */
|
|
73
|
+
label: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<StringType>;
|
|
74
|
+
/** Optional second line. */
|
|
75
|
+
meta?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
76
|
+
/** Group heading. */
|
|
77
|
+
group?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<StringType>;
|
|
78
|
+
/** Restricted assignment patch produced when the card is placed. */
|
|
79
|
+
drop?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<typeof RosterPatchType>;
|
|
80
|
+
}
|
|
81
|
+
/** One library declaration. Omit the library to omit its pane. */
|
|
82
|
+
export type RosterLibraryTab = {
|
|
83
|
+
readonly kind: "people" | "activities";
|
|
84
|
+
} | {
|
|
85
|
+
readonly kind: "tab";
|
|
86
|
+
readonly rows: unknown;
|
|
87
|
+
readonly config: RosterLibraryTabConfig<EastType, EastType>;
|
|
88
|
+
};
|
|
89
|
+
/** Declares the shared staff library, including configured agency requests. */
|
|
90
|
+
export declare function rosterPeopleTab(): RosterLibraryTab;
|
|
91
|
+
/** Declares the skills and duties library. */
|
|
92
|
+
export declare function rosterActivitiesTab(): RosterLibraryTab;
|
|
93
|
+
/**
|
|
94
|
+
* Declares an author tab over keyed data, including bound records.
|
|
95
|
+
* @typeParam K - Original key type
|
|
96
|
+
* @typeParam R - Card row type
|
|
97
|
+
* @param rows - Keyed cards
|
|
98
|
+
* @param config - Card accessors and optional assignment patch
|
|
99
|
+
* @returns A tab declaration for Roster's library prop
|
|
100
|
+
*/
|
|
101
|
+
export declare function rosterLibraryTab<K extends EastType, R extends EastType>(rows: SubtypeExprOrValue<DictType<K, R>>, config: RosterLibraryTabConfig<K, R>): RosterLibraryTab;
|
|
102
|
+
/** Reifies each author's accessors once, then resolves the keyed cards. @internal */
|
|
103
|
+
export declare function buildRosterTab(tab: Extract<RosterLibraryTab, {
|
|
104
|
+
kind: "tab";
|
|
105
|
+
}>): ExprType<typeof RosterAuthorTabType>;
|
|
106
|
+
//# sourceMappingURL=library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../src/roster/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, BooleanType, East, Expr, FloatType, OptionType, StringType, StructType, none, some, } from "@elaraai/east";
|
|
6
|
+
/** A card's permitted assignment changes. An absent field leaves it untouched. */
|
|
7
|
+
export const RosterPatchType = StructType({
|
|
8
|
+
position: OptionType(StringType), activity: OptionType(OptionType(StringType)),
|
|
9
|
+
offset: OptionType(FloatType), overtime: OptionType(FloatType), agreed: OptionType(OptionType(BooleanType)),
|
|
10
|
+
});
|
|
11
|
+
/** One resolved author card; its original key is retained as East text. */
|
|
12
|
+
export const RosterCardType = StructType({
|
|
13
|
+
key: StringType, label: StringType, meta: OptionType(StringType), group: OptionType(StringType), patch: OptionType(RosterPatchType),
|
|
14
|
+
});
|
|
15
|
+
/** An author-defined tab, resolved without UI or editing programs. */
|
|
16
|
+
export const RosterAuthorTabType = StructType({ name: StringType, icon: OptionType(StringType), cards: ArrayType(RosterCardType) });
|
|
17
|
+
/**
|
|
18
|
+
* Describes an author card's assignment changes, retaining every unlisted field.
|
|
19
|
+
* @param fields - Position, activity or changed hours and agreement
|
|
20
|
+
* @returns A typed patch for Roster.library.tab's drop accessor
|
|
21
|
+
* @remarks Slot and person identity cannot be changed by a card patch.
|
|
22
|
+
*/
|
|
23
|
+
export function rosterPatch(fields) {
|
|
24
|
+
for (const key of Object.keys(fields)) {
|
|
25
|
+
if (!["position", "activity", "offset", "overtime", "agreed"].includes(key))
|
|
26
|
+
throw new Error(`Roster.patch: ${key} cannot be changed by a library card`);
|
|
27
|
+
}
|
|
28
|
+
return East.value({
|
|
29
|
+
position: fields.position === undefined ? none : some(fields.position),
|
|
30
|
+
activity: fields.activity === undefined ? none : some(fields.activity),
|
|
31
|
+
offset: fields.offset === undefined ? none : some(fields.offset),
|
|
32
|
+
overtime: fields.overtime === undefined ? none : some(fields.overtime),
|
|
33
|
+
agreed: fields.agreed === undefined ? none : some(fields.agreed),
|
|
34
|
+
}, RosterPatchType);
|
|
35
|
+
}
|
|
36
|
+
/** Declares the shared staff library, including configured agency requests. */
|
|
37
|
+
export function rosterPeopleTab() { return { kind: "people" }; }
|
|
38
|
+
/** Declares the skills and duties library. */
|
|
39
|
+
export function rosterActivitiesTab() { return { kind: "activities" }; }
|
|
40
|
+
/**
|
|
41
|
+
* Declares an author tab over keyed data, including bound records.
|
|
42
|
+
* @typeParam K - Original key type
|
|
43
|
+
* @typeParam R - Card row type
|
|
44
|
+
* @param rows - Keyed cards
|
|
45
|
+
* @param config - Card accessors and optional assignment patch
|
|
46
|
+
* @returns A tab declaration for Roster's library prop
|
|
47
|
+
*/
|
|
48
|
+
export function rosterLibraryTab(rows, config) {
|
|
49
|
+
return { kind: "tab", rows, config: config };
|
|
50
|
+
}
|
|
51
|
+
/** Reifies each author's accessors once, then resolves the keyed cards. @internal */
|
|
52
|
+
export function buildRosterTab(tab) {
|
|
53
|
+
const rows = East.value(tab.rows);
|
|
54
|
+
const type = Expr.type(rows);
|
|
55
|
+
if (type.type !== "Dict")
|
|
56
|
+
throw new Error(`Roster: library tab "${tab.config.name}" requires keyed rows`);
|
|
57
|
+
const keyType = type.key;
|
|
58
|
+
const rowType = type.value;
|
|
59
|
+
const text = keyType.type === "String" ? East.function([StringType], StringType, (_$, key) => key)
|
|
60
|
+
: East.function([keyType], StringType, (_$, key) => East.print(key));
|
|
61
|
+
const card = East.function([rowType, keyType], RosterCardType, ($, row, key) => {
|
|
62
|
+
const keyText = $.const(text);
|
|
63
|
+
return {
|
|
64
|
+
key: keyText(key), label: tab.config.label(row, key),
|
|
65
|
+
meta: tab.config.meta?.(row, key) ?? none,
|
|
66
|
+
group: tab.config.group === undefined ? none : some(tab.config.group(row, key)),
|
|
67
|
+
patch: tab.config.drop === undefined ? none : some(tab.config.drop(row, key)),
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
return East.value({
|
|
71
|
+
name: tab.config.name, icon: tab.config.icon === undefined ? none : some(tab.config.icon),
|
|
72
|
+
cards: rows.toArray(($, row, key) => {
|
|
73
|
+
const describe = $.const(card);
|
|
74
|
+
return describe(row, key);
|
|
75
|
+
}),
|
|
76
|
+
}, RosterAuthorTabType);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/roster/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, StringType, type BooleanType, type DictType, type EastType, type ExprType, type FloatType, type OptionType, type SetType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
6
|
+
import { RosterPersonType } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Accessors adapting a staff record to roster people; none writes the source.
|
|
9
|
+
* @typeParam P - The author's staff row type
|
|
10
|
+
* @property name - Display name
|
|
11
|
+
* @property group - Home group key
|
|
12
|
+
* @property position - Default position; Associate when absent
|
|
13
|
+
* @property skills - Held skill keys; empty when absent
|
|
14
|
+
* @property contract - Contract hours; zero when absent
|
|
15
|
+
* @property agency - Named agency worker; false when absent
|
|
16
|
+
* @property trainer - Trains other staff; false when absent
|
|
17
|
+
* @property trainee - Needs a trainer; false when absent
|
|
18
|
+
* @property usual - Usual shift; none when absent
|
|
19
|
+
*/
|
|
20
|
+
export interface RosterPeopleConfig<P extends EastType> {
|
|
21
|
+
/** Display name. */
|
|
22
|
+
name: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<StringType>;
|
|
23
|
+
/** Home group key. */
|
|
24
|
+
group: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<StringType>;
|
|
25
|
+
/** Default position key; defaults to associate. */
|
|
26
|
+
position?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<StringType>;
|
|
27
|
+
/** Held skill keys; empty by default. */
|
|
28
|
+
skills?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<SetType<StringType>>;
|
|
29
|
+
/** Weekly contract hours; zero by default. */
|
|
30
|
+
contract?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<FloatType>;
|
|
31
|
+
/** Whether this is a named agency worker. */
|
|
32
|
+
agency?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<BooleanType>;
|
|
33
|
+
/** Whether this person can train others. */
|
|
34
|
+
trainer?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<BooleanType>;
|
|
35
|
+
/** Whether this person needs a trainer. */
|
|
36
|
+
trainee?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<BooleanType>;
|
|
37
|
+
/** The person's usual shift key. */
|
|
38
|
+
usual?: (person: ExprType<P>, key: ExprType<StringType>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolves a keyed staff source without changing its identity or ownership.
|
|
42
|
+
* @typeParam P - The author's staff type
|
|
43
|
+
* @param rows - Staff by String key, commonly Data.bind(record).read()
|
|
44
|
+
* @param config - Name/group and optional role, skill and hours accessors
|
|
45
|
+
* @returns Resolved people carrying their original record keys
|
|
46
|
+
* @remarks The accessor adapter is one reified East function, called per row. It contains no layout or editing program. Pass complete staff here and Slice's visible keys separately when filtering the view.
|
|
47
|
+
* @throws {Error} When the source is not a Dict keyed by String
|
|
48
|
+
*/
|
|
49
|
+
export declare function rosterPeople<P extends EastType>(rows: ExprType<DictType<StringType, P>>, config: RosterPeopleConfig<P>): ExprType<ArrayType<RosterPersonType>>;
|
|
50
|
+
//# sourceMappingURL=people.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../../src/roster/people.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAc,UAAU,EACjC,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAC7E,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EACzD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,QAAQ;IAClD,oBAAoB;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACzF,sBAAsB;IACtB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1F,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9F,yCAAyC;IACzC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACrG,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7F,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7F,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9F,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9F,oCAAoC;IACpC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;CAC1G;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC3C,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GACvE,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAcvC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, East, Expr, StringType, none, } from "@elaraai/east";
|
|
6
|
+
import { RosterPersonType } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Resolves a keyed staff source without changing its identity or ownership.
|
|
9
|
+
* @typeParam P - The author's staff type
|
|
10
|
+
* @param rows - Staff by String key, commonly Data.bind(record).read()
|
|
11
|
+
* @param config - Name/group and optional role, skill and hours accessors
|
|
12
|
+
* @returns Resolved people carrying their original record keys
|
|
13
|
+
* @remarks The accessor adapter is one reified East function, called per row. It contains no layout or editing program. Pass complete staff here and Slice's visible keys separately when filtering the view.
|
|
14
|
+
* @throws {Error} When the source is not a Dict keyed by String
|
|
15
|
+
*/
|
|
16
|
+
export function rosterPeople(rows, config) {
|
|
17
|
+
const type = Expr.type(rows);
|
|
18
|
+
if (type.type !== "Dict" || type.key.type !== "String")
|
|
19
|
+
throw new Error("Roster.people: staff must be a Dict keyed by String");
|
|
20
|
+
const resolve = East.function([type.value, StringType], RosterPersonType, (_$, row, key) => ({
|
|
21
|
+
key, name: config.name(row, key), group: config.group(row, key),
|
|
22
|
+
position: config.position?.(row, key) ?? "associate", skills: config.skills?.(row, key) ?? new Set(),
|
|
23
|
+
contract: config.contract?.(row, key) ?? 0.0, agency: config.agency?.(row, key) ?? false,
|
|
24
|
+
trainer: config.trainer?.(row, key) ?? false, trainee: config.trainee?.(row, key) ?? false,
|
|
25
|
+
usual: config.usual?.(row, key) ?? none,
|
|
26
|
+
}));
|
|
27
|
+
return rows.toArray(($, row, key) => {
|
|
28
|
+
const adapt = $.const(resolve);
|
|
29
|
+
return adapt(row, key);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=people.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../../src/roster/people.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,GAG1C,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAoC9C;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CACxB,IAAuC,EAAE,MAA6B;IAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC/H,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzF,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;QAC/D,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;QACpG,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK;QACxF,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK;QAC1F,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI;KAC1C,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,GAAuC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC"}
|