@formicoidea/labre-core 0.47.1 → 0.49.0
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/_pkgs/affine-block-data-view/configs/slash-menu.js +3 -1
- package/dist/_pkgs/affine-block-data-view/view.d.ts +17 -1
- package/dist/_pkgs/affine-block-data-view/view.js +21 -2
- package/dist/_pkgs/affine-block-database/commands.d.ts +2 -2
- package/dist/_pkgs/affine-block-database/commands.js +3 -3
- package/dist/_pkgs/affine-block-database/components/values-banner.d.ts +28 -0
- package/dist/_pkgs/affine-block-database/components/values-banner.js +199 -0
- package/dist/_pkgs/affine-block-database/configs/slash-menu.d.ts +6 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +57 -70
- package/dist/_pkgs/affine-block-database/data-source.d.ts +9 -5
- package/dist/_pkgs/affine-block-database/data-source.js +11 -7
- package/dist/_pkgs/affine-block-database/database-block-styles.d.ts +2 -0
- package/dist/_pkgs/affine-block-database/database-block-styles.js +15 -0
- package/dist/_pkgs/affine-block-database/database-block.d.ts +23 -0
- package/dist/_pkgs/affine-block-database/database-block.js +141 -19
- package/dist/_pkgs/affine-block-database/effects.js +2 -0
- package/dist/_pkgs/affine-block-database/external-data-source.d.ts +69 -2
- package/dist/_pkgs/affine-block-database/external-data-source.js +88 -16
- package/dist/_pkgs/affine-block-database/index.d.ts +2 -0
- package/dist/_pkgs/affine-block-database/index.js +2 -0
- package/dist/_pkgs/affine-block-database/linked-view.d.ts +38 -0
- package/dist/_pkgs/affine-block-database/linked-view.js +109 -0
- package/dist/_pkgs/affine-block-database/properties/index.d.ts +2 -0
- package/dist/_pkgs/affine-block-database/properties/index.js +2 -0
- package/dist/_pkgs/affine-block-database/properties/text/hosted.d.ts +15 -0
- package/dist/_pkgs/affine-block-database/properties/text/hosted.js +24 -0
- package/dist/_pkgs/affine-block-database/properties/title/hosted.d.ts +16 -0
- package/dist/_pkgs/affine-block-database/properties/title/hosted.js +42 -0
- package/dist/_pkgs/affine-block-database/service/index.d.ts +3 -0
- package/dist/_pkgs/affine-block-database/service/index.js +3 -0
- package/dist/_pkgs/affine-block-database/service/new-row-menu.d.ts +49 -0
- package/dist/_pkgs/affine-block-database/service/new-row-menu.js +21 -0
- package/dist/_pkgs/affine-block-database/service/open-row.d.ts +77 -0
- package/dist/_pkgs/affine-block-database/service/open-row.js +62 -0
- package/dist/_pkgs/affine-block-database/service/properties-panel.d.ts +23 -0
- package/dist/_pkgs/affine-block-database/service/properties-panel.js +33 -0
- package/dist/_pkgs/affine-block-database/translations.d.ts +10 -0
- package/dist/_pkgs/affine-block-database/translations.js +35 -0
- package/dist/_pkgs/affine-block-database/view-creation.d.ts +10 -0
- package/dist/_pkgs/affine-block-database/view-creation.js +14 -0
- package/dist/_pkgs/affine-block-database/view.d.ts +31 -1
- package/dist/_pkgs/affine-block-database/view.js +48 -4
- package/dist/_pkgs/affine-block-database/views/index.d.ts +30 -3
- package/dist/_pkgs/affine-block-database/views/index.js +44 -3
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/new-doc.d.ts +25 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/new-doc.js +71 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/slash-menu.js +3 -11
- package/dist/_pkgs/affine-components/date-picker/date-picker.d.ts +20 -0
- package/dist/_pkgs/affine-components/date-picker/date-picker.js +60 -26
- package/dist/_pkgs/affine-components/date-picker/style.js +1 -0
- package/dist/_pkgs/affine-components/translations.d.ts +4 -0
- package/dist/_pkgs/affine-components/translations.js +26 -0
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.d.ts +18 -0
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.js +41 -2
- package/dist/_pkgs/affine-fragment-doc-title/index.d.ts +1 -1
- package/dist/_pkgs/affine-fragment-doc-title/index.js +1 -1
- package/dist/_pkgs/affine-fragment-doc-title/title-band/band-cell.d.ts +30 -0
- package/dist/_pkgs/affine-fragment-doc-title/title-band/band-cell.js +137 -0
- package/dist/_pkgs/affine-fragment-doc-title/title-band/format.d.ts +7 -19
- package/dist/_pkgs/affine-fragment-doc-title/title-band/format.js +0 -38
- package/dist/_pkgs/affine-fragment-doc-title/title-band/show-here.d.ts +19 -0
- package/dist/_pkgs/affine-fragment-doc-title/title-band/show-here.js +61 -0
- package/dist/_pkgs/affine-fragment-doc-title/title-band/title-band.d.ts +33 -18
- package/dist/_pkgs/affine-fragment-doc-title/title-band/title-band.js +263 -205
- package/dist/_pkgs/affine-fragment-doc-title/translations.d.ts +7 -4
- package/dist/_pkgs/affine-fragment-doc-title/translations.js +12 -9
- package/dist/_pkgs/affine-model/blocks/database/types.d.ts +16 -0
- package/dist/_pkgs/affine-model/blocks/database/types.js +5 -1
- package/dist/_pkgs/affine-shared/services/data-source-picker-service.d.ts +139 -0
- package/dist/_pkgs/affine-shared/services/data-source-picker-service.js +22 -0
- package/dist/_pkgs/affine-shared/services/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/linked-doc-creation-service.d.ts +15 -6
- package/dist/_pkgs/affine-shared/services/telemetry-service/database.d.ts +59 -0
- package/dist/_pkgs/affine-shared/services/title-band-service.d.ts +34 -7
- package/dist/_pkgs/affine-shared/utils/model/doc.d.ts +10 -2
- package/dist/_pkgs/affine-shared/utils/model/doc.js +17 -7
- package/dist/_pkgs/data-view/core/component/cell-status/cell-status-css.d.ts +2 -0
- package/dist/_pkgs/data-view/core/component/cell-status/cell-status-css.js +16 -0
- package/dist/_pkgs/data-view/core/component/cell-status/cell-status.d.ts +10 -0
- package/dist/_pkgs/data-view/core/component/cell-status/cell-status.js +23 -0
- package/dist/_pkgs/data-view/core/component/index.d.ts +1 -0
- package/dist/_pkgs/data-view/core/component/index.js +1 -0
- package/dist/_pkgs/data-view/core/component/overflow/fit.d.ts +26 -0
- package/dist/_pkgs/data-view/core/component/overflow/fit.js +48 -0
- package/dist/_pkgs/data-view/core/component/overflow/overflow.d.ts +26 -3
- package/dist/_pkgs/data-view/core/component/overflow/overflow.js +84 -31
- package/dist/_pkgs/data-view/core/component/tags/colors.d.ts +7 -0
- package/dist/_pkgs/data-view/core/component/tags/colors.js +22 -10
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +25 -2
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +81 -32
- package/dist/_pkgs/data-view/core/data-source/base.d.ts +5 -1
- package/dist/_pkgs/data-view/core/data-source/base.js +7 -1
- package/dist/_pkgs/data-view/core/data-source/hydration.d.ts +44 -0
- package/dist/_pkgs/data-view/core/data-source/hydration.js +31 -0
- package/dist/_pkgs/data-view/core/data-source/index.d.ts +1 -0
- package/dist/_pkgs/data-view/core/data-source/index.js +1 -0
- package/dist/_pkgs/data-view/core/data-view.d.ts +22 -2
- package/dist/_pkgs/data-view/core/data-view.js +14 -0
- package/dist/_pkgs/data-view/core/effect.js +4 -0
- package/dist/_pkgs/data-view/core/group-by/collapsed-state.d.ts +3 -0
- package/dist/_pkgs/data-view/core/group-by/collapsed-state.js +59 -0
- package/dist/_pkgs/data-view/core/group-by/group-properties.d.ts +21 -0
- package/dist/_pkgs/data-view/core/group-by/group-properties.js +38 -0
- package/dist/_pkgs/data-view/core/group-by/group-title.js +4 -0
- package/dist/_pkgs/data-view/core/group-by/group-visibility.d.ts +40 -0
- package/dist/_pkgs/data-view/core/group-by/group-visibility.js +291 -0
- package/dist/_pkgs/data-view/core/group-by/setting.d.ts +11 -3
- package/dist/_pkgs/data-view/core/group-by/setting.js +81 -8
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +22 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +62 -1
- package/dist/_pkgs/data-view/core/index.d.ts +3 -0
- package/dist/_pkgs/data-view/core/index.js +3 -0
- package/dist/_pkgs/data-view/core/property/base-cell.d.ts +15 -1
- package/dist/_pkgs/data-view/core/property/base-cell.js +28 -3
- package/dist/_pkgs/data-view/core/property/index.d.ts +1 -0
- package/dist/_pkgs/data-view/core/property/index.js +1 -0
- package/dist/_pkgs/data-view/core/property/standalone-cell.d.ts +109 -0
- package/dist/_pkgs/data-view/core/property/standalone-cell.js +324 -0
- package/dist/_pkgs/data-view/core/telemetry.d.ts +16 -0
- package/dist/_pkgs/data-view/core/telemetry.js +22 -0
- package/dist/_pkgs/data-view/core/utils/new-tab-click.d.ts +2 -0
- package/dist/_pkgs/data-view/core/utils/new-tab-click.js +4 -0
- package/dist/_pkgs/data-view/core/utils/wording.d.ts +11 -0
- package/dist/_pkgs/data-view/core/utils/wording.js +9 -0
- package/dist/_pkgs/data-view/core/view/data-view.d.ts +7 -0
- package/dist/_pkgs/data-view/core/view/default-name.d.ts +10 -0
- package/dist/_pkgs/data-view/core/view/default-name.js +14 -0
- package/dist/_pkgs/data-view/core/view/index.d.ts +2 -0
- package/dist/_pkgs/data-view/core/view/index.js +2 -0
- package/dist/_pkgs/data-view/core/view/open-in.d.ts +27 -0
- package/dist/_pkgs/data-view/core/view/open-in.js +39 -0
- package/dist/_pkgs/data-view/core/view-manager/cell.d.ts +5 -0
- package/dist/_pkgs/data-view/core/view-manager/cell.js +11 -0
- package/dist/_pkgs/data-view/core/view-manager/index.d.ts +3 -0
- package/dist/_pkgs/data-view/core/view-manager/index.js +3 -0
- package/dist/_pkgs/data-view/core/view-manager/new-row-menu-opener.d.ts +18 -0
- package/dist/_pkgs/data-view/core/view-manager/new-row-menu-opener.js +2 -0
- package/dist/_pkgs/data-view/core/view-manager/properties-panel-opener.d.ts +8 -0
- package/dist/_pkgs/data-view/core/view-manager/properties-panel-opener.js +9 -0
- package/dist/_pkgs/data-view/core/view-manager/property.d.ts +14 -0
- package/dist/_pkgs/data-view/core/view-manager/single-view.d.ts +28 -1
- package/dist/_pkgs/data-view/core/view-manager/single-view.js +45 -1
- package/dist/_pkgs/data-view/core/view-manager/view-creation.d.ts +49 -0
- package/dist/_pkgs/data-view/core/view-manager/view-creation.js +40 -0
- package/dist/_pkgs/data-view/core/view-manager/view-manager.d.ts +6 -2
- package/dist/_pkgs/data-view/core/view-manager/view-manager.js +2 -2
- package/dist/_pkgs/data-view/property-presets/date/cell-renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/property-presets/date/cell-renderer.js +11 -2
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/text/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/translations.d.ts +55 -0
- package/dist/_pkgs/data-view/translations.js +181 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +3 -1
- package/dist/_pkgs/data-view/view-presets/convert.js +2 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-converts.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-converts.js +35 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-view-manager.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-view-manager.js +194 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-view-ui.d.ts +56 -0
- package/dist/_pkgs/data-view/view-presets/flat/flat-view-ui.js +266 -0
- package/dist/_pkgs/data-view/view-presets/gallery/define.d.ts +14 -0
- package/dist/_pkgs/data-view/view-presets/gallery/define.js +15 -0
- package/dist/_pkgs/data-view/view-presets/gallery/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/gallery/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/gallery/gallery-view.d.ts +27 -0
- package/dist/_pkgs/data-view/view-presets/gallery/gallery-view.js +179 -0
- package/dist/_pkgs/data-view/view-presets/gallery/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/gallery/index.js +2 -0
- package/dist/_pkgs/data-view/view-presets/gallery/renderer.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/gallery/renderer.js +11 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +5 -0
- package/dist/_pkgs/data-view/view-presets/index.js +7 -0
- package/dist/_pkgs/data-view/view-presets/kanban/define.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +5 -53
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/card.js +8 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +6 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/group.d.ts +4 -2
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/group.js +52 -6
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/kanban-view-ui-logic.js +5 -1
- package/dist/_pkgs/data-view/view-presets/kanban/pc/card.js +2 -0
- package/dist/_pkgs/data-view/view-presets/kanban/pc/cell.js +4 -0
- package/dist/_pkgs/data-view/view-presets/kanban/pc/group.d.ts +4 -2
- package/dist/_pkgs/data-view/view-presets/kanban/pc/group.js +51 -6
- package/dist/_pkgs/data-view/view-presets/kanban/pc/kanban-view-ui-logic.js +5 -1
- package/dist/_pkgs/data-view/view-presets/list/define.d.ts +14 -0
- package/dist/_pkgs/data-view/view-presets/list/define.js +15 -0
- package/dist/_pkgs/data-view/view-presets/list/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/list/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/list/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/list/index.js +2 -0
- package/dist/_pkgs/data-view/view-presets/list/list-view.d.ts +24 -0
- package/dist/_pkgs/data-view/view-presets/list/list-view.js +194 -0
- package/dist/_pkgs/data-view/view-presets/list/renderer.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/list/renderer.js +11 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +3 -14
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +6 -30
- package/dist/_pkgs/data-view/view-presets/table/consts.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/table/consts.js +2 -0
- package/dist/_pkgs/data-view/view-presets/table/define.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +4 -1
- package/dist/_pkgs/data-view/view-presets/table/mobile/column-header.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +3 -1
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +20 -5
- package/dist/_pkgs/data-view/view-presets/table/mobile/row.js +10 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/table-view-ui-logic.js +4 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +4 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +1 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +3 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +20 -5
- package/dist/_pkgs/data-view/view-presets/table/pc/menu.d.ts +1 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/menu.js +2 -1
- package/dist/_pkgs/data-view/view-presets/table/pc/row/row.js +3 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/table-view-ui-logic.js +4 -1
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +1 -1
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/bottom/stats/column-stats-column.js +5 -1
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +22 -19
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +4 -1
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/table-view-ui-logic.js +7 -2
- package/dist/_pkgs/data-view/view-presets/table/stats/column-stats-column.js +5 -1
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +5 -53
- package/dist/_pkgs/data-view/widget-presets/tools/presets/table-add-row/add-row.d.ts +1 -0
- package/dist/_pkgs/data-view/widget-presets/tools/presets/table-add-row/add-row.js +60 -2
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.d.ts +18 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +121 -124
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-settings.d.ts +43 -0
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-settings.js +187 -0
- package/dist/_pkgs/data-view/widget-presets/views-bar/views-view.d.ts +36 -3
- package/dist/_pkgs/data-view/widget-presets/views-bar/views-view.js +187 -59
- package/dist/extensions/view.d.ts +2 -2
- package/dist/extensions/view.js +10 -3
- package/dist/flags.d.ts +8 -4
- package/dist/flags.js +8 -4
- package/dist/frameworks.d.ts +27 -0
- package/dist/frameworks.js +28 -0
- package/dist/translations.js +13 -1
- package/package.json +5 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { viewType } from '../../core/view/data-view.js';
|
|
2
|
+
import { VIEW_NAME_GALLERY } from '../../translations.js';
|
|
3
|
+
import { FlatSingleView, flatViewDefaultData, } from '../flat/flat-view-manager.js';
|
|
4
|
+
export const galleryViewType = viewType('gallery');
|
|
5
|
+
export class GallerySingleView extends FlatSingleView {
|
|
6
|
+
get type() {
|
|
7
|
+
return this.data$.value?.mode ?? galleryViewType.type;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const galleryViewModel = galleryViewType.createModel({
|
|
11
|
+
defaultName: VIEW_NAME_GALLERY[1],
|
|
12
|
+
defaultNameKey: VIEW_NAME_GALLERY[0],
|
|
13
|
+
dataViewManager: GallerySingleView,
|
|
14
|
+
defaultData: flatViewDefaultData,
|
|
15
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function galleryEffects(): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FlatViewUI, FlatViewUILogic } from '../flat/flat-view-ui.js';
|
|
2
|
+
import type { GallerySingleView } from './define.js';
|
|
3
|
+
/**
|
|
4
|
+
* The gallery preset (ADR 0035 §1, B6): one card per row, its title then its
|
|
5
|
+
* visible properties, each drawn by the cell a table draws. A card is a
|
|
6
|
+
* kanban card out of its column, flat as every document surface is (DESIGN.md,
|
|
7
|
+
* the Flat-Page Rule): a hairline, no shadow.
|
|
8
|
+
*
|
|
9
|
+
* ponytail: no cover image on the card. The product asks for none in v2.0
|
|
10
|
+
* (PRD REQ-DB-1 to 16); the upgrade is a stored `header.coverColumn`, as the
|
|
11
|
+
* kanban's, drawn above the title with the image property's renderer.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GalleryViewUILogic extends FlatViewUILogic<GallerySingleView> {
|
|
14
|
+
renderer: import("../../../affine-shared/types/uni-component.js").UniComponent<unknown, {}>;
|
|
15
|
+
}
|
|
16
|
+
export declare class GalleryViewUI extends FlatViewUI<GalleryViewUILogic> {
|
|
17
|
+
static styles: import("lit").CSSResult[];
|
|
18
|
+
connectedCallback(): void;
|
|
19
|
+
private renderCard;
|
|
20
|
+
private renderNewCard;
|
|
21
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
'dv-gallery-view-ui': GalleryViewUI;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { PlusIcon } from '@blocksuite/icons/lit';
|
|
2
|
+
import { cssVarV2 } from '@toeverything/theme/v2';
|
|
3
|
+
import { css, html, nothing, unsafeCSS } from 'lit';
|
|
4
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
5
|
+
import { groupToggleStyles } from '../../core/group-by/group-visibility.js';
|
|
6
|
+
import { createUniComponentFromWebComponent } from '../../core/utils/uni-component/uni-component.js';
|
|
7
|
+
import { DATA_VIEW_NEW_PAGE } from '../../translations.js';
|
|
8
|
+
import { flatGroupStyles, flatOpenButtonStyles, FlatViewUI, FlatViewUILogic, } from '../flat/flat-view-ui.js';
|
|
9
|
+
/**
|
|
10
|
+
* The gallery preset (ADR 0035 §1, B6): one card per row, its title then its
|
|
11
|
+
* visible properties, each drawn by the cell a table draws. A card is a
|
|
12
|
+
* kanban card out of its column, flat as every document surface is (DESIGN.md,
|
|
13
|
+
* the Flat-Page Rule): a hairline, no shadow.
|
|
14
|
+
*
|
|
15
|
+
* ponytail: no cover image on the card. The product asks for none in v2.0
|
|
16
|
+
* (PRD REQ-DB-1 to 16); the upgrade is a stored `header.coverColumn`, as the
|
|
17
|
+
* kanban's, drawn above the title with the image property's renderer.
|
|
18
|
+
*/
|
|
19
|
+
export class GalleryViewUILogic extends FlatViewUILogic {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.renderer = createUniComponentFromWebComponent(GalleryViewUI);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class GalleryViewUI extends FlatViewUI {
|
|
26
|
+
static { this.styles = [
|
|
27
|
+
flatOpenButtonStyles,
|
|
28
|
+
flatGroupStyles,
|
|
29
|
+
groupToggleStyles,
|
|
30
|
+
css `
|
|
31
|
+
dv-gallery-view-ui {
|
|
32
|
+
display: block;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.dv-gallery {
|
|
36
|
+
display: grid;
|
|
37
|
+
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
38
|
+
gap: 12px;
|
|
39
|
+
padding: 4px 0 8px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.dv-gallery-card {
|
|
43
|
+
position: relative;
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
gap: 2px;
|
|
47
|
+
min-width: 0;
|
|
48
|
+
min-height: 72px;
|
|
49
|
+
padding: 8px;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
border: 1px solid ${unsafeCSS(cssVarV2.layer.insideBorder.border)};
|
|
52
|
+
border-radius: 8px;
|
|
53
|
+
background-color: var(--affine-background-primary-color);
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.dv-gallery-card-title {
|
|
58
|
+
padding: 2px 32px 4px 4px;
|
|
59
|
+
font-weight: 500;
|
|
60
|
+
font-size: var(--data-view-cell-text-size);
|
|
61
|
+
line-height: var(--data-view-cell-text-line-height);
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.dv-gallery-card-property {
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: 8px;
|
|
69
|
+
min-height: 28px;
|
|
70
|
+
padding: 0 4px;
|
|
71
|
+
border-radius: 4px;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.dv-gallery-card-property-icon {
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-shrink: 0;
|
|
78
|
+
color: var(--affine-icon-color);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.dv-gallery-card-property-icon svg {
|
|
82
|
+
width: 16px;
|
|
83
|
+
height: 16px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.dv-gallery-card-property dv-standalone-cell {
|
|
87
|
+
flex: 1;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.dv-gallery-card:focus-within .dv-flat-open {
|
|
91
|
+
visibility: visible;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.dv-gallery-new {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
justify-content: center;
|
|
98
|
+
gap: 4px;
|
|
99
|
+
min-height: 72px;
|
|
100
|
+
border: 1px dashed ${unsafeCSS(cssVarV2.layer.insideBorder.border)};
|
|
101
|
+
border-radius: 8px;
|
|
102
|
+
background: transparent;
|
|
103
|
+
color: var(--affine-text-secondary-color);
|
|
104
|
+
font-family: inherit;
|
|
105
|
+
font-size: var(--data-view-cell-text-size);
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.dv-gallery-new svg {
|
|
110
|
+
width: 16px;
|
|
111
|
+
height: 16px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@media (hover: hover) {
|
|
115
|
+
.dv-gallery-card:hover,
|
|
116
|
+
.dv-gallery-new:hover,
|
|
117
|
+
.dv-gallery-card-property:hover {
|
|
118
|
+
background-color: var(--affine-hover-color);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.dv-gallery-card:hover .dv-flat-open {
|
|
122
|
+
visibility: visible;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@media (pointer: coarse) {
|
|
127
|
+
.dv-gallery-card-property {
|
|
128
|
+
min-height: 44px;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
`,
|
|
132
|
+
]; }
|
|
133
|
+
connectedCallback() {
|
|
134
|
+
super.connectedCallback();
|
|
135
|
+
this.dataset.testid = 'dv-gallery-view';
|
|
136
|
+
}
|
|
137
|
+
renderCard(rowId) {
|
|
138
|
+
const view = this.view;
|
|
139
|
+
const title = view.titleProperty$.value;
|
|
140
|
+
return html `<div
|
|
141
|
+
class="dv-gallery-card"
|
|
142
|
+
data-testid="dv-gallery-card"
|
|
143
|
+
data-row-id="${rowId}"
|
|
144
|
+
@click="${this.onRowClick}"
|
|
145
|
+
>
|
|
146
|
+
${title
|
|
147
|
+
? html `<div class="dv-gallery-card-title">
|
|
148
|
+
${this.renderCell(title, rowId, true)}
|
|
149
|
+
</div>`
|
|
150
|
+
: nothing}
|
|
151
|
+
${repeat(view.bodyProperties$.value, property => property.id, property => html `<div class="dv-gallery-card-property">
|
|
152
|
+
<uni-lit
|
|
153
|
+
class="dv-gallery-card-property-icon"
|
|
154
|
+
.uni="${property.icon}"
|
|
155
|
+
></uni-lit>
|
|
156
|
+
${this.renderCell(property, rowId)}
|
|
157
|
+
</div>`)}
|
|
158
|
+
${this.renderOpenButton(rowId)}
|
|
159
|
+
</div>`;
|
|
160
|
+
}
|
|
161
|
+
renderNewCard(groupKey) {
|
|
162
|
+
if (this.view.readonly$.value)
|
|
163
|
+
return nothing;
|
|
164
|
+
return html `<button
|
|
165
|
+
class="dv-gallery-new"
|
|
166
|
+
data-testid="dv-flat-new"
|
|
167
|
+
@click="${() => this.logic.addRow('end', groupKey)}"
|
|
168
|
+
>
|
|
169
|
+
${PlusIcon()}<span>${this.wording(DATA_VIEW_NEW_PAGE)}</span>
|
|
170
|
+
</button>`;
|
|
171
|
+
}
|
|
172
|
+
render() {
|
|
173
|
+
return html `${this.renderHeaderWidget()}
|
|
174
|
+
${this.renderGrouped((rows, group) => html `<div class="dv-gallery">
|
|
175
|
+
${repeat(rows, row => row.rowId, row => this.renderCard(row.rowId))}
|
|
176
|
+
${this.renderNewCard(group?.key)}
|
|
177
|
+
</div>`)}`;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const galleryViewMeta: import("../../index.js").ViewMeta<"gallery", import("./define.js").GalleryViewData>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createIcon } from '../../core/utils/uni-icon.js';
|
|
2
|
+
import { galleryViewModel } from './define.js';
|
|
3
|
+
import { GalleryViewUILogic } from './gallery-view.js';
|
|
4
|
+
// One UI for both: the cards reflow, and a tap opens the row or edits a value.
|
|
5
|
+
export const galleryViewMeta = galleryViewModel.createMeta({
|
|
6
|
+
icon: createIcon('GridIcon'),
|
|
7
|
+
pcLogic: () => GalleryViewUILogic,
|
|
8
|
+
// Named, not left to the pc fallback: a touch screen draws this UI on
|
|
9
|
+
// purpose (B5, `mobile-editing.unit.spec.ts`).
|
|
10
|
+
mobileLogic: () => GalleryViewUILogic,
|
|
11
|
+
});
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export * from './calendar/index.js';
|
|
2
2
|
export * from './convert.js';
|
|
3
|
+
export * from './flat/flat-view-manager.js';
|
|
4
|
+
export * from './gallery/index.js';
|
|
3
5
|
export * from './kanban/index.js';
|
|
6
|
+
export * from './list/index.js';
|
|
4
7
|
export * from './table/index.js';
|
|
5
8
|
export declare const viewPresets: {
|
|
6
9
|
tableViewMeta: import("../index.js").ViewMeta<"table", import("./index.js").TableViewData>;
|
|
7
10
|
kanbanViewMeta: import("../index.js").ViewMeta<"kanban", import("./index.js").KanbanViewData>;
|
|
8
11
|
calendarViewMeta: import("../index.js").ViewMeta<"calendar", import("./index.js").CalendarViewData>;
|
|
12
|
+
galleryViewMeta: import("../index.js").ViewMeta<"gallery", import("./index.js").GalleryViewData>;
|
|
13
|
+
listViewMeta: import("../index.js").ViewMeta<"list", import("./index.js").ListViewData>;
|
|
9
14
|
};
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { calendarViewMeta } from './calendar/index.js';
|
|
2
|
+
import { galleryViewMeta } from './gallery/index.js';
|
|
2
3
|
import { kanbanViewMeta } from './kanban/index.js';
|
|
4
|
+
import { listViewMeta } from './list/index.js';
|
|
3
5
|
import { tableViewMeta } from './table/index.js';
|
|
4
6
|
export * from './calendar/index.js';
|
|
5
7
|
export * from './convert.js';
|
|
8
|
+
export * from './flat/flat-view-manager.js';
|
|
9
|
+
export * from './gallery/index.js';
|
|
6
10
|
export * from './kanban/index.js';
|
|
11
|
+
export * from './list/index.js';
|
|
7
12
|
export * from './table/index.js';
|
|
8
13
|
export const viewPresets = {
|
|
9
14
|
tableViewMeta: tableViewMeta,
|
|
10
15
|
kanbanViewMeta: kanbanViewMeta,
|
|
11
16
|
calendarViewMeta: calendarViewMeta,
|
|
17
|
+
galleryViewMeta: galleryViewMeta,
|
|
18
|
+
listViewMeta: listViewMeta,
|
|
12
19
|
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { BlockSuiteError, ErrorCode } from '../../../global/exceptions/index.js';
|
|
2
2
|
import { defaultGroupBy, getGroupByService, t } from '../../core/index.js';
|
|
3
3
|
import { viewType } from '../../core/view/data-view.js';
|
|
4
|
+
import { VIEW_NAME_KANBAN } from '../../translations.js';
|
|
4
5
|
import { KanbanSingleView } from './kanban-view-manager.js';
|
|
5
6
|
export const kanbanViewType = viewType('kanban');
|
|
6
7
|
export const kanbanViewModel = kanbanViewType.createModel({
|
|
7
|
-
defaultName:
|
|
8
|
+
defaultName: VIEW_NAME_KANBAN[1],
|
|
9
|
+
defaultNameKey: VIEW_NAME_KANBAN[0],
|
|
8
10
|
dataViewManager: KanbanSingleView,
|
|
9
11
|
defaultData: viewManager => {
|
|
10
12
|
const groupByService = getGroupByService(viewManager.dataSource);
|
|
@@ -4,7 +4,8 @@ import { evalFilter } from '../../core/filter/eval.js';
|
|
|
4
4
|
import { generateDefaultValues } from '../../core/filter/generate-default-values.js';
|
|
5
5
|
import { FilterTrait, filterTraitKey } from '../../core/filter/trait.js';
|
|
6
6
|
import { emptyFilterGroup } from '../../core/filter/utils.js';
|
|
7
|
-
import {
|
|
7
|
+
import { groupPropertiesOps } from '../../core/group-by/group-properties.js';
|
|
8
|
+
import { GroupTrait, groupTraitKey } from '../../core/group-by/trait.js';
|
|
8
9
|
import { fromJson } from '../../core/property/utils.js';
|
|
9
10
|
import { PropertyBase } from '../../core/view-manager/property.js';
|
|
10
11
|
import { SingleViewBase } from '../../core/view-manager/single-view.js';
|
|
@@ -52,58 +53,9 @@ export class KanbanSingleView extends SingleViewBase {
|
|
|
52
53
|
};
|
|
53
54
|
});
|
|
54
55
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return sortByManually(rows, v => v.rowId, property?.manuallyCardSort ?? []);
|
|
59
|
-
},
|
|
60
|
-
changeGroupSort: keys => {
|
|
61
|
-
const map = new Map(this.view?.groupProperties.map(v => [v.key, v]));
|
|
62
|
-
this.dataUpdate(() => {
|
|
63
|
-
return {
|
|
64
|
-
groupProperties: keys.map(key => {
|
|
65
|
-
const property = map.get(key);
|
|
66
|
-
if (property) {
|
|
67
|
-
return property;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
key,
|
|
71
|
-
hide: false,
|
|
72
|
-
manuallyCardSort: [],
|
|
73
|
-
};
|
|
74
|
-
}),
|
|
75
|
-
};
|
|
76
|
-
});
|
|
77
|
-
},
|
|
78
|
-
changeRowSort: (groupKeys, groupKey, keys) => {
|
|
79
|
-
const map = new Map(this.view?.groupProperties.map(v => [v.key, v]));
|
|
80
|
-
this.dataUpdate(() => {
|
|
81
|
-
return {
|
|
82
|
-
groupProperties: groupKeys.map(key => {
|
|
83
|
-
if (key === groupKey) {
|
|
84
|
-
const group = map.get(key);
|
|
85
|
-
return group
|
|
86
|
-
? {
|
|
87
|
-
...group,
|
|
88
|
-
manuallyCardSort: keys,
|
|
89
|
-
}
|
|
90
|
-
: {
|
|
91
|
-
key,
|
|
92
|
-
hide: false,
|
|
93
|
-
manuallyCardSort: keys,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
return (map.get(key) ?? {
|
|
98
|
-
key,
|
|
99
|
-
hide: false,
|
|
100
|
-
manuallyCardSort: [],
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}),
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
},
|
|
56
|
+
...groupPropertiesOps(() => this.view?.groupProperties ?? [], groupProperties => {
|
|
57
|
+
this.dataUpdate(() => ({ groupProperties }));
|
|
58
|
+
}),
|
|
107
59
|
}));
|
|
108
60
|
this.mainProperties$ = computed(() => {
|
|
109
61
|
return (this.data$.value?.header ?? {
|
|
@@ -102,7 +102,7 @@ const styles = css `
|
|
|
102
102
|
right: 8px;
|
|
103
103
|
top: 8px;
|
|
104
104
|
display: flex;
|
|
105
|
-
gap:
|
|
105
|
+
gap: 20px;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
.mobile-card-op {
|
|
@@ -115,6 +115,13 @@ const styles = css `
|
|
|
115
115
|
font-size: 16px;
|
|
116
116
|
color: ${unsafeCSSVarV2('icon/primary')};
|
|
117
117
|
}
|
|
118
|
+
|
|
119
|
+
/* A 44px touch target around the drawn 24px op (B5, ADR 0035 §1). */
|
|
120
|
+
.mobile-card-op::after {
|
|
121
|
+
content: '';
|
|
122
|
+
position: absolute;
|
|
123
|
+
inset: -10px;
|
|
124
|
+
}
|
|
118
125
|
`;
|
|
119
126
|
let MobileKanbanCard = (() => {
|
|
120
127
|
let _classSuper = SignalWatcher(WithDisposable(ShadowlessElement));
|
|
@@ -40,6 +40,7 @@ import { computed, effect, signal } from '@preact/signals-core';
|
|
|
40
40
|
import { css } from 'lit';
|
|
41
41
|
import { property } from 'lit/decorators.js';
|
|
42
42
|
import { html } from 'lit/static-html.js';
|
|
43
|
+
import { renderCellStatus } from '../../../core/component/cell-status/cell-status.js';
|
|
43
44
|
import { renderUniLit } from '../../../core/utils/uni-component/uni-component.js';
|
|
44
45
|
const styles = css `
|
|
45
46
|
mobile-kanban-cell {
|
|
@@ -47,7 +48,8 @@ const styles = css `
|
|
|
47
48
|
display: flex;
|
|
48
49
|
align-items: center;
|
|
49
50
|
padding: 4px;
|
|
50
|
-
|
|
51
|
+
/* A finger's target (B5, ADR 0035 §1); was 20px when mobile was read-only. */
|
|
52
|
+
min-height: 44px;
|
|
51
53
|
border: 1px solid transparent;
|
|
52
54
|
box-sizing: border-box;
|
|
53
55
|
}
|
|
@@ -139,6 +141,9 @@ let MobileKanbanCell = (() => {
|
|
|
139
141
|
if (!renderer)
|
|
140
142
|
return;
|
|
141
143
|
const { view } = renderer;
|
|
144
|
+
const status = renderCellStatus(props.cell);
|
|
145
|
+
if (status)
|
|
146
|
+
return html ` ${this.renderIcon()} ${status}`;
|
|
142
147
|
this.view.lockRows(this.isEditing$.value);
|
|
143
148
|
this.dataset['editing'] = `${this.isEditing$.value}`;
|
|
144
149
|
return html ` ${this.renderIcon()}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ShadowlessElement } from '../../../../std/index.js';
|
|
1
|
+
import { type BlockStdScope, ShadowlessElement } from '../../../../std/index.js';
|
|
2
2
|
import type { Group } from '../../../core/group-by/trait.js';
|
|
3
3
|
import type { MobileKanbanViewUILogic } from './kanban-view-ui-logic.js';
|
|
4
4
|
declare const MobileKanbanGroup_base: typeof ShadowlessElement & import("../../../../global/utils/types.js").Constructor<import("../../../../global/lit/with-disposable.js").DisposableClass>;
|
|
5
5
|
export declare class MobileKanbanGroup extends MobileKanbanGroup_base {
|
|
6
|
-
static styles: import("lit").CSSResult;
|
|
6
|
+
static styles: import("lit").CSSResult[];
|
|
7
|
+
/** Absent outside an editor host: the wordings read English. */
|
|
8
|
+
accessor std: BlockStdScope;
|
|
7
9
|
private readonly clickAddCard;
|
|
8
10
|
private readonly clickAddCardInStart;
|
|
9
11
|
private readonly clickGroupOptions;
|
|
@@ -35,13 +35,16 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
35
35
|
import { menu, popFilterableSimpleMenu, popupTargetFromElement, } from '../../../../affine-components/context-menu/index.js';
|
|
36
36
|
import { SignalWatcher, WithDisposable } from '../../../../global/lit/index.js';
|
|
37
37
|
import { AddCursorIcon } from '@blocksuite/icons/lit';
|
|
38
|
-
import { ShadowlessElement } from '../../../../std/index.js';
|
|
38
|
+
import { ShadowlessElement, stdContext } from '../../../../std/index.js';
|
|
39
|
+
import { consume } from '@lit/context';
|
|
39
40
|
import { css, nothing } from 'lit';
|
|
40
41
|
import { property } from 'lit/decorators.js';
|
|
41
42
|
import { repeat } from 'lit/directives/repeat.js';
|
|
42
43
|
import { html } from 'lit/static-html.js';
|
|
43
44
|
import { GroupTitle } from '../../../core/group-by/group-title.js';
|
|
45
|
+
import { groupToggleStyles, hideGroupAction, renderGroupToggle, } from '../../../core/group-by/group-visibility.js';
|
|
44
46
|
import { dragHandler } from '../../../core/utils/wc-dnd/dnd-context.js';
|
|
47
|
+
import { wordingOf } from '../../../core/utils/wording.js';
|
|
45
48
|
const styles = css `
|
|
46
49
|
mobile-kanban-group {
|
|
47
50
|
width: 260px;
|
|
@@ -69,9 +72,36 @@ const styles = css `
|
|
|
69
72
|
gap: 12px;
|
|
70
73
|
}
|
|
71
74
|
|
|
75
|
+
.mobile-group-body[hidden] {
|
|
76
|
+
display: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media (pointer: coarse) {
|
|
80
|
+
.mobile-group-header {
|
|
81
|
+
height: auto;
|
|
82
|
+
min-height: 44px;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.mobile-group-header-main {
|
|
87
|
+
flex: 1 1 auto;
|
|
88
|
+
min-width: 0;
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
justify-content: space-between;
|
|
92
|
+
gap: 8px;
|
|
93
|
+
overflow: hidden;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.dv-kanban-hidden-groups {
|
|
97
|
+
width: 260px;
|
|
98
|
+
flex-shrink: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
72
101
|
.mobile-add-card {
|
|
73
102
|
display: flex;
|
|
74
103
|
align-items: center;
|
|
104
|
+
min-height: 44px;
|
|
75
105
|
padding: 4px;
|
|
76
106
|
border-radius: 4px;
|
|
77
107
|
font-size: var(--data-view-cell-text-size);
|
|
@@ -81,6 +111,9 @@ const styles = css `
|
|
|
81
111
|
`;
|
|
82
112
|
let MobileKanbanGroup = (() => {
|
|
83
113
|
let _classSuper = SignalWatcher(WithDisposable(ShadowlessElement));
|
|
114
|
+
let _std_decorators;
|
|
115
|
+
let _std_initializers = [];
|
|
116
|
+
let _std_extraInitializers = [];
|
|
84
117
|
let _group_decorators;
|
|
85
118
|
let _group_initializers = [];
|
|
86
119
|
let _group_extraInitializers = [];
|
|
@@ -90,24 +123,35 @@ let MobileKanbanGroup = (() => {
|
|
|
90
123
|
return class MobileKanbanGroup extends _classSuper {
|
|
91
124
|
static {
|
|
92
125
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
126
|
+
_std_decorators = [consume({ context: stdContext })];
|
|
93
127
|
_group_decorators = [property({ attribute: false })];
|
|
94
128
|
_kanbanViewLogic_decorators = [property({ attribute: false })];
|
|
129
|
+
__esDecorate(this, null, _std_decorators, { kind: "accessor", name: "std", static: false, private: false, access: { has: obj => "std" in obj, get: obj => obj.std, set: (obj, value) => { obj.std = value; } }, metadata: _metadata }, _std_initializers, _std_extraInitializers);
|
|
95
130
|
__esDecorate(this, null, _group_decorators, { kind: "accessor", name: "group", static: false, private: false, access: { has: obj => "group" in obj, get: obj => obj.group, set: (obj, value) => { obj.group = value; } }, metadata: _metadata }, _group_initializers, _group_extraInitializers);
|
|
96
131
|
__esDecorate(this, null, _kanbanViewLogic_decorators, { kind: "accessor", name: "kanbanViewLogic", static: false, private: false, access: { has: obj => "kanbanViewLogic" in obj, get: obj => obj.kanbanViewLogic, set: (obj, value) => { obj.kanbanViewLogic = value; } }, metadata: _metadata }, _kanbanViewLogic_initializers, _kanbanViewLogic_extraInitializers);
|
|
97
132
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
98
133
|
}
|
|
99
|
-
static { this.styles = styles; }
|
|
134
|
+
static { this.styles = [styles, groupToggleStyles]; }
|
|
135
|
+
#std_accessor_storage;
|
|
136
|
+
/** Absent outside an editor host: the wordings read English. */
|
|
137
|
+
get std() { return this.#std_accessor_storage; }
|
|
138
|
+
set std(value) { this.#std_accessor_storage = value; }
|
|
100
139
|
render() {
|
|
101
140
|
const cards = this.group.rows;
|
|
141
|
+
// Folded (personal, B8): the header and its count stay, the cards go.
|
|
142
|
+
const collapsed = this.group.manager.collapsed$(this.group.key).value;
|
|
102
143
|
return html `
|
|
103
144
|
<div class="mobile-group-header" ${dragHandler(this.group.key)}>
|
|
104
|
-
${
|
|
145
|
+
${renderGroupToggle(this.group, wordingOf(this.std))}
|
|
146
|
+
<div class="mobile-group-header-main">
|
|
147
|
+
${GroupTitle(this.group, {
|
|
105
148
|
readonly: this.view.readonly$.value,
|
|
106
149
|
clickAdd: this.clickAddCardInStart,
|
|
107
150
|
clickOps: this.clickGroupOptions,
|
|
108
151
|
})}
|
|
152
|
+
</div>
|
|
109
153
|
</div>
|
|
110
|
-
<div class="mobile-group-body">
|
|
154
|
+
<div class="mobile-group-body" ?hidden="${collapsed}">
|
|
111
155
|
${repeat(cards, row => row.rowId, row => {
|
|
112
156
|
return html `
|
|
113
157
|
<mobile-kanban-card
|
|
@@ -142,10 +186,11 @@ let MobileKanbanGroup = (() => {
|
|
|
142
186
|
}
|
|
143
187
|
constructor() {
|
|
144
188
|
super(...arguments);
|
|
145
|
-
this
|
|
189
|
+
this.#std_accessor_storage = __runInitializers(this, _std_initializers, void 0);
|
|
190
|
+
this.clickAddCard = (__runInitializers(this, _std_extraInitializers), () => {
|
|
146
191
|
this.view.addCard('end', this.group.key);
|
|
147
192
|
this.requestUpdate();
|
|
148
|
-
};
|
|
193
|
+
});
|
|
149
194
|
this.clickAddCardInStart = () => {
|
|
150
195
|
this.view.addCard('start', this.group.key);
|
|
151
196
|
this.requestUpdate();
|
|
@@ -165,6 +210,7 @@ let MobileKanbanGroup = (() => {
|
|
|
165
210
|
this.requestUpdate();
|
|
166
211
|
},
|
|
167
212
|
}),
|
|
213
|
+
hideGroupAction(this.group, wordingOf(this.std)),
|
|
168
214
|
menu.action({
|
|
169
215
|
name: 'Delete Cards',
|
|
170
216
|
select: () => {
|
|
@@ -97,7 +97,7 @@ export class MobileKanbanViewUI extends DataViewUIBase {
|
|
|
97
97
|
this.classList.add(mobileKanbanViewWrapper);
|
|
98
98
|
}
|
|
99
99
|
render() {
|
|
100
|
-
const groups = this.logic.groupManager.
|
|
100
|
+
const groups = this.logic.groupManager.visibleGroups$.value;
|
|
101
101
|
if (!groups) {
|
|
102
102
|
return html ``;
|
|
103
103
|
}
|
|
@@ -122,6 +122,10 @@ export class MobileKanbanViewUI extends DataViewUIBase {
|
|
|
122
122
|
></mobile-kanban-group>`;
|
|
123
123
|
})}
|
|
124
124
|
${this.logic.renderAddGroup()}
|
|
125
|
+
<dv-hidden-groups
|
|
126
|
+
class="dv-kanban-hidden-groups"
|
|
127
|
+
.groupTrait="${this.logic.groupManager}"
|
|
128
|
+
></dv-hidden-groups>
|
|
125
129
|
</div>
|
|
126
130
|
`;
|
|
127
131
|
}
|
|
@@ -43,6 +43,7 @@ import { property } from 'lit/decorators.js';
|
|
|
43
43
|
import { classMap } from 'lit/directives/class-map.js';
|
|
44
44
|
import { repeat } from 'lit/directives/repeat.js';
|
|
45
45
|
import { html } from 'lit/static-html.js';
|
|
46
|
+
import { isNewTabClick } from '../../../core/utils/new-tab-click.js';
|
|
46
47
|
import { openDetail, popCardMenu } from './menu.js';
|
|
47
48
|
const styles = css `
|
|
48
49
|
affine-data-view-kanban-card {
|
|
@@ -272,6 +273,7 @@ let KanbanCard = (() => {
|
|
|
272
273
|
this.kanbanViewLogic.root.openDetailPanel({
|
|
273
274
|
view: this.view,
|
|
274
275
|
rowId: this.cardId,
|
|
276
|
+
newTab: isNewTabClick(e),
|
|
275
277
|
onClose: () => {
|
|
276
278
|
if (selection) {
|
|
277
279
|
selection.selection = preSelection;
|
|
@@ -39,6 +39,7 @@ import { signal } from '@preact/signals-core';
|
|
|
39
39
|
import { css } from 'lit';
|
|
40
40
|
import { property } from 'lit/decorators.js';
|
|
41
41
|
import { html } from 'lit/static-html.js';
|
|
42
|
+
import { renderCellStatus } from '../../../core/component/cell-status/cell-status.js';
|
|
42
43
|
import { renderUniLit } from '../../../core/utils/uni-component/uni-component.js';
|
|
43
44
|
const styles = css `
|
|
44
45
|
affine-data-view-kanban-cell {
|
|
@@ -150,6 +151,9 @@ let KanbanCell = (() => {
|
|
|
150
151
|
if (!renderer)
|
|
151
152
|
return;
|
|
152
153
|
const { view } = renderer;
|
|
154
|
+
const status = renderCellStatus(props.cell);
|
|
155
|
+
if (status)
|
|
156
|
+
return html ` ${this.renderIcon()} ${status}`;
|
|
153
157
|
this.view.lockRows(this.isEditing$.value);
|
|
154
158
|
this.dataset['editing'] = `${this.isEditing$.value}`;
|
|
155
159
|
this.style.border = this.isFocus$.value
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ShadowlessElement } from '../../../../std/index.js';
|
|
1
|
+
import { type BlockStdScope, ShadowlessElement } from '../../../../std/index.js';
|
|
2
2
|
import type { Group } from '../../../core/group-by/trait.js';
|
|
3
3
|
import type { KanbanViewUILogic } from './kanban-view-ui-logic.js';
|
|
4
4
|
declare const KanbanGroup_base: typeof ShadowlessElement & import("../../../../global/utils/types.js").Constructor<import("../../../../global/lit/with-disposable.js").DisposableClass>;
|
|
5
5
|
export declare class KanbanGroup extends KanbanGroup_base {
|
|
6
|
-
static styles: import("lit").CSSResult;
|
|
6
|
+
static styles: import("lit").CSSResult[];
|
|
7
|
+
/** Absent outside an editor host: the wordings read English. */
|
|
8
|
+
accessor std: BlockStdScope;
|
|
7
9
|
private readonly clickAddCard;
|
|
8
10
|
private readonly clickAddCardInStart;
|
|
9
11
|
private readonly clickGroupOptions;
|