From 1db1e04e8a4a71cd2e515271e560ddb92f55e10d Mon Sep 17 00:00:00 2001 From: Elena Poelman Date: Tue, 18 Feb 2025 13:02:34 +0100 Subject: [PATCH 01/10] convert collapsible and sidebar components to gts format --- .changeset/red-avocados-thank.md | 5 + .changeset/silent-peas-travel.md | 5 + .../src/components/collapsible.gts | 92 +++++++++++++++++++ .../src/components/collapsible.hbs | 52 ----------- .../src/components/collapsible.ts | 22 ----- .../src/components/sidebar.gts | 23 +++++ .../src/components/sidebar.hbs | 6 -- .../src/components/sidebar.ts | 12 --- 8 files changed, 125 insertions(+), 92 deletions(-) create mode 100644 .changeset/red-avocados-thank.md create mode 100644 .changeset/silent-peas-travel.md create mode 100644 packages/ember-rdfa-editor/src/components/collapsible.gts delete mode 100644 packages/ember-rdfa-editor/src/components/collapsible.hbs delete mode 100644 packages/ember-rdfa-editor/src/components/collapsible.ts create mode 100644 packages/ember-rdfa-editor/src/components/sidebar.gts delete mode 100644 packages/ember-rdfa-editor/src/components/sidebar.hbs delete mode 100644 packages/ember-rdfa-editor/src/components/sidebar.ts diff --git a/.changeset/red-avocados-thank.md b/.changeset/red-avocados-thank.md new file mode 100644 index 000000000..ac27a129a --- /dev/null +++ b/.changeset/red-avocados-thank.md @@ -0,0 +1,5 @@ +--- +'@lblod/ember-rdfa-editor': patch +--- + +Convert `collapsible` component to `gts` format diff --git a/.changeset/silent-peas-travel.md b/.changeset/silent-peas-travel.md new file mode 100644 index 000000000..50fd9a904 --- /dev/null +++ b/.changeset/silent-peas-travel.md @@ -0,0 +1,5 @@ +--- +'@lblod/ember-rdfa-editor': patch +--- + +Convert `sidebar` component to `gts` format diff --git a/packages/ember-rdfa-editor/src/components/collapsible.gts b/packages/ember-rdfa-editor/src/components/collapsible.gts new file mode 100644 index 000000000..81282e122 --- /dev/null +++ b/packages/ember-rdfa-editor/src/components/collapsible.gts @@ -0,0 +1,92 @@ +import AuButton from '@appuniversum/ember-appuniversum/components/au-button'; +import AuIcon from '@appuniversum/ember-appuniversum/components/au-icon'; +import AuList, { + type AuListSignature, +} from '@appuniversum/ember-appuniversum/components/au-list'; +import AuToolbar from '@appuniversum/ember-appuniversum/components/au-toolbar'; +import { AddIcon } from '@appuniversum/ember-appuniversum/components/icons/add'; +import { RemoveIcon } from '@appuniversum/ember-appuniversum/components/icons/remove'; +import { on } from '@ember/modifier'; + +import { action } from '@ember/object'; +import Component from '@glimmer/component'; +import { tracked } from 'tracked-built-ins'; + +type CollapsibleSignature = { + Args: { + expandedInitially?: boolean; + title: string; + }; + Element: HTMLDivElement; + Blocks: { + default: AuListSignature['Blocks']['default']; + }; +}; +export default class Collapsible extends Component { + @tracked _expanded?: boolean; + + get expanded() { + return this._expanded ?? this.args.expandedInitially; + } + + @action + toggle() { + this._expanded = !this.expanded; + } + + +} diff --git a/packages/ember-rdfa-editor/src/components/collapsible.hbs b/packages/ember-rdfa-editor/src/components/collapsible.hbs deleted file mode 100644 index 34e7d2a4c..000000000 --- a/packages/ember-rdfa-editor/src/components/collapsible.hbs +++ /dev/null @@ -1,52 +0,0 @@ -{{! @glint-nocheck: not typesafe yet }} -
-
- - -
- -
-
- - {{#if this.expanded}} - - - Open accordion - - {{else}} - - - Sluit accordion - - {{/if}} - -
-
- - {{yield Item}} - -
-
-
\ No newline at end of file diff --git a/packages/ember-rdfa-editor/src/components/collapsible.ts b/packages/ember-rdfa-editor/src/components/collapsible.ts deleted file mode 100644 index 6f5d3287b..000000000 --- a/packages/ember-rdfa-editor/src/components/collapsible.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { action } from '@ember/object'; -import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; -import { RemoveIcon } from '@appuniversum/ember-appuniversum/components/icons/remove'; -import { AddIcon } from '@appuniversum/ember-appuniversum/components/icons/add'; - -type Args = { expandedInitially?: boolean }; -export default class CollapsibleComponent extends Component { - RemoveIcon = RemoveIcon; - AddIcon = AddIcon; - - @tracked _expanded: boolean | null = null; - - get expanded() { - return this._expanded ?? this.args.expandedInitially; - } - - @action - toggle() { - this._expanded = !this.expanded; - } -} diff --git a/packages/ember-rdfa-editor/src/components/sidebar.gts b/packages/ember-rdfa-editor/src/components/sidebar.gts new file mode 100644 index 000000000..e58949c23 --- /dev/null +++ b/packages/ember-rdfa-editor/src/components/sidebar.gts @@ -0,0 +1,23 @@ +import type { TOC } from '@ember/component/template-only'; +import { hash } from '@ember/helper'; +import Collapsible from './collapsible.gts'; + +type SidebarSignature = { + Blocks: { + default: [ + { + Collapsible: typeof Collapsible; + }, + ]; + }; + Element: HTMLDivElement; +}; +const Sidebar: TOC = ; + +export default Sidebar; diff --git a/packages/ember-rdfa-editor/src/components/sidebar.hbs b/packages/ember-rdfa-editor/src/components/sidebar.hbs deleted file mode 100644 index 0f6963b85..000000000 --- a/packages/ember-rdfa-editor/src/components/sidebar.hbs +++ /dev/null @@ -1,6 +0,0 @@ -{{! @glint-nocheck: not typesafe yet }} -
-
    - {{yield (hash Collapsible=(component "collapsible"))}} -
-
\ No newline at end of file diff --git a/packages/ember-rdfa-editor/src/components/sidebar.ts b/packages/ember-rdfa-editor/src/components/sidebar.ts deleted file mode 100644 index 21e061e11..000000000 --- a/packages/ember-rdfa-editor/src/components/sidebar.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { action } from '@ember/object'; -import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; - -export default class SidebarComponent extends Component { - @tracked expanded = false; - - @action - toggle() { - this.expanded = !this.expanded; - } -} From e627cfadd10ad5b50d2d1363f31288f60921d38d Mon Sep 17 00:00:00 2001 From: Elena Poelman Date: Wed, 19 Feb 2025 10:00:55 +0100 Subject: [PATCH 02/10] add manual-control option to collapsible component --- .changeset/eighty-keys-drum.md | 9 ++++++ .../src/components/collapsible.gts | 28 ++++++++++++++----- 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 .changeset/eighty-keys-drum.md diff --git a/.changeset/eighty-keys-drum.md b/.changeset/eighty-keys-drum.md new file mode 100644 index 000000000..f14af7f8a --- /dev/null +++ b/.changeset/eighty-keys-drum.md @@ -0,0 +1,9 @@ +--- +'@lblod/ember-rdfa-editor': minor +--- + +`collapsible` component: add option to manually control toggled state through arguments: +- `expanded` (optional, default: `false`) +- `onToggle` (optional) + +The `expandedInitally` argument has been marked as deprecated, and should be replaced by the `expanded` argument diff --git a/packages/ember-rdfa-editor/src/components/collapsible.gts b/packages/ember-rdfa-editor/src/components/collapsible.gts index 81282e122..ab838d242 100644 --- a/packages/ember-rdfa-editor/src/components/collapsible.gts +++ b/packages/ember-rdfa-editor/src/components/collapsible.gts @@ -10,20 +10,32 @@ import { on } from '@ember/modifier'; import { action } from '@ember/object'; import Component from '@glimmer/component'; -import { tracked } from 'tracked-built-ins'; +import { localCopy } from 'tracked-toolbox'; +type Args = { + title: string; + onToggle?: (expanded: boolean) => void; +} & ( + | { + /** @deprecated, use `expanded` instead */ + expandedInitially?: boolean; + expanded: never; + } + | { + /** @deprecated, use `expanded` instead */ + expandedInitially?: never; + expanded?: boolean; + } +); type CollapsibleSignature = { - Args: { - expandedInitially?: boolean; - title: string; - }; + Args: Args; Element: HTMLDivElement; Blocks: { default: AuListSignature['Blocks']['default']; }; }; export default class Collapsible extends Component { - @tracked _expanded?: boolean; + @localCopy('args.expanded') _expanded?: boolean; get expanded() { return this._expanded ?? this.args.expandedInitially; @@ -31,7 +43,9 @@ export default class Collapsible extends Component { @action toggle() { - this._expanded = !this.expanded; + const newState = !this.expanded; + this._expanded = newState; + this.args.onToggle?.(newState); } } diff --git a/packages/ember-rdfa-editor/src/components/_private/doc-editor/info-pill.ts b/packages/ember-rdfa-editor/src/components/_private/doc-editor/info-pill.ts index cc27c779c..7497778dd 100644 --- a/packages/ember-rdfa-editor/src/components/_private/doc-editor/info-pill.ts +++ b/packages/ember-rdfa-editor/src/components/_private/doc-editor/info-pill.ts @@ -1,6 +1,6 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; -import AttributeEditor from '../attribute-editor/index.ts'; +import AttributeEditor from '../attribute-editor/index.gts'; import type { ResolvedPNode } from '#root/utils/_private/types.ts'; import RdfaEditor from '../rdfa-editor/index.gts'; import type SayController from '#root/core/say-controller.ts'; From d8f6a2d08304195da4d415078c4ad64779f547e5 Mon Sep 17 00:00:00 2001 From: Elena Poelman Date: Wed, 19 Feb 2025 11:09:28 +0100 Subject: [PATCH 08/10] rdfa-editor: add option to control expanded state --- .changeset/soft-seas-know.md | 7 +++++++ .../src/components/_private/rdfa-editor/index.gts | 14 ++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 .changeset/soft-seas-know.md diff --git a/.changeset/soft-seas-know.md b/.changeset/soft-seas-know.md new file mode 100644 index 000000000..1807c6d40 --- /dev/null +++ b/.changeset/soft-seas-know.md @@ -0,0 +1,7 @@ +--- +'@lblod/ember-rdfa-editor': minor +--- + +`RdfaEditor` component, add arguments to control `expanded` state: +- `onToggle` (optional) +- `expanded` (optional, default: `true`) diff --git a/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts b/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts index 4b7f2dfcd..154e8b20d 100644 --- a/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts +++ b/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts @@ -1,5 +1,4 @@ import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; import { isResourceNode } from '#root/utils/node-utils.ts'; import { on } from '@ember/modifier'; import RdfaPropertyEditor from './property-editor/index.ts'; @@ -17,17 +16,20 @@ import AuButton from '@appuniversum/ember-appuniversum/components/au-button'; import ExternalTripleEditor from './external-triple-editor.gts'; import type SayController from '#root/core/say-controller.ts'; import { NodeSelection } from 'prosemirror-state'; +import { localCopy } from 'tracked-toolbox'; type Args = { controller?: SayController; node: ResolvedPNode; additionalImportedResources?: string[]; + expanded?: boolean; + onToggle?: (expanded: boolean) => void; }; export default class RdfaEditor extends Component { - @tracked collapsed = false; + @localCopy('args.expanded', true) declare expanded: boolean; toggleSection = () => { - this.collapsed = !this.collapsed; + this.expanded = !this.expanded; }; get isResourceNode() { @@ -92,7 +94,7 @@ export default class RdfaEditor extends Component { {{this.type}} @@ -101,7 +103,7 @@ export default class RdfaEditor extends Component { {{#if this.controller}} {{#if @node}} - {{#unless this.collapsed}} + {{#if this.expanded}} {{#if this.showPropertiesSection}}
{ {{/if}}
- {{/unless}} + {{/if}} {{else}}
From a1dfd3383673101355054f940bb027d92fba8582 Mon Sep 17 00:00:00 2001 From: Elena Poelman Date: Fri, 21 Feb 2025 11:23:07 +0100 Subject: [PATCH 09/10] linting --- .../src/components/_private/attribute-editor/index.gts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ember-rdfa-editor/src/components/_private/attribute-editor/index.gts b/packages/ember-rdfa-editor/src/components/_private/attribute-editor/index.gts index a772e7dce..3b72fe170 100644 --- a/packages/ember-rdfa-editor/src/components/_private/attribute-editor/index.gts +++ b/packages/ember-rdfa-editor/src/components/_private/attribute-editor/index.gts @@ -149,7 +149,7 @@ export default class AttributeEditor extends Component { {{/if}} From 2d3324be41698fff24c8697ffb4dab66d4263a17 Mon Sep 17 00:00:00 2001 From: Elena Poelman Date: Fri, 21 Feb 2025 13:16:04 +0100 Subject: [PATCH 10/10] rdfa-editor: add missing onToggle call --- .../src/components/_private/rdfa-editor/index.gts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts b/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts index 154e8b20d..dab51409f 100644 --- a/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts +++ b/packages/ember-rdfa-editor/src/components/_private/rdfa-editor/index.gts @@ -30,6 +30,7 @@ export default class RdfaEditor extends Component { toggleSection = () => { this.expanded = !this.expanded; + this.args.onToggle?.(this.expanded); }; get isResourceNode() {