@lblod/ember-rdfa-editor 13.2.1 → 13.3.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.
Files changed (43) hide show
  1. package/declarations/components/ember-node/embedded-editor.d.ts +14 -34
  2. package/declarations/components/ember-node/inline-rdfa.d.ts +2 -2
  3. package/declarations/components/ember-node/link.d.ts +18 -12
  4. package/declarations/components/pill.d.ts +15 -7
  5. package/declarations/components/plugins/link/_private/link-editor.d.ts +37 -0
  6. package/declarations/components/plugins/link/link-editor.d.ts +6 -20
  7. package/declarations/components/plugins/link/link-menu.d.ts +3 -0
  8. package/declarations/components/plugins/link/link-sidebar-widget.d.ts +16 -0
  9. package/declarations/plugins/link/input-rule.d.ts +19 -0
  10. package/declarations/plugins/link/nodes/link.d.ts +2 -0
  11. package/declarations/plugins/link/parser.d.ts +17 -0
  12. package/dist/_app_/components/plugins/link/_private/link-editor.js +1 -0
  13. package/dist/_app_/components/plugins/link/link-sidebar-widget.js +1 -0
  14. package/dist/components/ember-node/embedded-editor.js +13 -29
  15. package/dist/components/ember-node/embedded-editor.js.map +1 -1
  16. package/dist/components/ember-node/inline-rdfa.js +12 -4
  17. package/dist/components/ember-node/inline-rdfa.js.map +1 -1
  18. package/dist/components/ember-node/link.js +86 -49
  19. package/dist/components/ember-node/link.js.map +1 -1
  20. package/dist/components/ember-node/slot.js +10 -4
  21. package/dist/components/ember-node/slot.js.map +1 -1
  22. package/dist/components/pill.js +12 -3
  23. package/dist/components/pill.js.map +1 -1
  24. package/dist/components/plugins/link/_private/link-editor.js +128 -0
  25. package/dist/components/plugins/link/_private/link-editor.js.map +1 -0
  26. package/dist/components/plugins/link/link-editor.js +5 -78
  27. package/dist/components/plugins/link/link-editor.js.map +1 -1
  28. package/dist/components/plugins/link/link-menu.js +25 -8
  29. package/dist/components/plugins/link/link-menu.js.map +1 -1
  30. package/dist/components/plugins/link/link-sidebar-widget.js +40 -0
  31. package/dist/components/plugins/link/link-sidebar-widget.js.map +1 -0
  32. package/dist/nodes/inline-rdfa.js.map +1 -1
  33. package/dist/plugins/link/input-rule.js +82 -0
  34. package/dist/plugins/link/input-rule.js.map +1 -0
  35. package/dist/plugins/link/nodes/link.js +11 -1
  36. package/dist/plugins/link/nodes/link.js.map +1 -1
  37. package/dist/plugins/link/parser.js +58 -0
  38. package/dist/plugins/link/parser.js.map +1 -0
  39. package/package.json +4 -1
  40. package/scss/_c-formatting-marks.scss +0 -1
  41. package/scss/_c-link.scss +27 -27
  42. package/scss/_c-table.scss +4 -0
  43. package/vendor/ember-rdfa-editor.css +26 -25
@@ -1,25 +1,76 @@
1
+ import leaveOnEnterKey from '../../modifiers/leave-on-enter-key.js';
1
2
  import { action } from '@ember/object';
2
3
  import Component from '@glimmer/component';
3
- import { linkToHref } from '../../utils/_private/string-utils.js';
4
4
  import { Velcro } from 'ember-velcro';
5
- import { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';
6
- import { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';
7
- import getClassnamesFromNode from '../../utils/get-classnames-from-node.js';
5
+ import { hash } from '@ember/helper';
6
+ import EmbeddedEditor from './embedded-editor.js';
7
+ import { on } from '@ember/modifier';
8
+ import t from 'ember-intl/helpers/t';
9
+ import PillComponent from '../pill.js';
10
+ import LinkEditor from '../plugins/link/_private/link-editor.js';
11
+ import { defaultLinkParser } from '../../plugins/link/parser.js';
12
+ import { tracked, cached } from '@glimmer/tracking';
13
+ import { service } from '@ember/service';
14
+ import { CircleXIcon } from '@appuniversum/ember-appuniversum/components/icons/circle-x';
8
15
  import { precompileTemplate } from '@ember/template-compilation';
9
- import { n } from 'decorator-transforms/runtime';
10
16
  import { setComponentTemplate } from '@ember/component';
11
-
12
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n<this.Velcro\n @placement=\"bottom\"\n @offsetOptions={{hash mainAxis=3}}\n @strategy=\"absolute\"\n as |velcro|\n>\n <Pill\n class={{this.class}}\n @skin=\"link\"\n title={{t \"ember-rdfa-editor.link.ctrlClickDescription\"}}\n aria-describedby=\"link-tooltip\"\n {{velcro.hook}}\n {{on \"click\" this.onClick}}\n >\n <EmberNode::EmbeddedEditor\n @controller={{@controller}}\n @node={{@node}}\n @view={{@view}}\n @getPos={{@getPos}}\n @selected={{@selected}}\n @onSelected={{this.onSelectEmbedded}}\n @placeholder={{t \"ember-rdfa-editor.link.placeholder.text\"}}\n @decorations={{@decorations}}\n @contentDecorations={{@contentDecorations}}\n {{leave-on-enter-key this.controller @getPos}}\n />\n </Pill>\n {{#if (and this.selected this.interactive)}}\n <Pill\n @size=\"small\"\n class=\"say-link-tooltip\"\n id=\"link-tooltip\"\n {{velcro.loop}}\n >\n <AuLinkExternal\n href={{this.href}}\n @skin=\"button-naked\"\n @icon={{this.LinkExternalIcon}}\n title={{t \"ember-rdfa-editor.link.open\"}}\n />\n <AuInput\n value={{this.href}}\n placeholder={{t \"ember-rdfa-editor.link.placeholder.href\"}}\n {{on \"change\" this.setHref}}\n {{on \"focus\" this.selectHref}}\n {{leave-on-enter-key this.controller @getPos}}\n />\n <AuButton\n @icon={{this.LinkBrokenIcon}}\n @skin=\"naked\"\n @size=\"small\"\n {{on \"click\" this.remove}}\n title={{t \"ember-rdfa-editor.link.edit.uncouple\"}}\n />\n </Pill>\n {{/if}}\n</this.Velcro>");
17
+ import { g, i, n } from 'decorator-transforms/runtime';
13
18
 
14
19
  class Link extends Component {
15
- Velcro = Velcro;
16
- LinkExternalIcon = LinkExternalIcon;
17
- LinkBrokenIcon = LinkBrokenIcon;
20
+ static {
21
+ g(this.prototype, "intl", [service]);
22
+ }
23
+ #intl = (i(this, "intl"), void 0);
24
+ static {
25
+ g(this.prototype, "hideTooltip", [tracked], function () {
26
+ return false;
27
+ });
28
+ }
29
+ #hideTooltip = (i(this, "hideTooltip"), void 0);
30
+ get isNewLink() {
31
+ return this.link && this.link.node.attrs['isNew'];
32
+ }
33
+ selectionChangeHandler = selected => {
34
+ this.hideTooltip = false;
35
+ if (!selected && this.isNewLink) {
36
+ this.args.updateAttribute('isNew', false, true);
37
+ }
38
+ };
18
39
  get href() {
19
40
  return this.args.node.attrs['href'];
20
41
  }
21
- set href(value) {
22
- this.args.updateAttribute('href', value);
42
+ get link() {
43
+ const pos = this.args.getPos();
44
+ if (!pos) {
45
+ return;
46
+ }
47
+ return {
48
+ node: this.args.node,
49
+ pos
50
+ };
51
+ }
52
+ get linkParser() {
53
+ return this.node.attrs['linkParser'] ?? defaultLinkParser();
54
+ }
55
+ get linkParserResult() {
56
+ return this.linkParser(this.href);
57
+ }
58
+ static {
59
+ n(this.prototype, "linkParserResult", [cached]);
60
+ }
61
+ get linkTitle() {
62
+ if (this.linkParserResult.isSuccessful) {
63
+ return this.intl.t('ember-rdfa-editor.link.ctrlClickDescription');
64
+ } else {
65
+ return this.linkParserResult.errors[0];
66
+ }
67
+ }
68
+ get linkIcon() {
69
+ if (this.linkParserResult.isSuccessful || this.isNewLink) {
70
+ return;
71
+ } else {
72
+ return CircleXIcon;
73
+ }
23
74
  }
24
75
  get controller() {
25
76
  return this.args.controller;
@@ -34,32 +85,7 @@ class Link extends Component {
34
85
  return this.node.attrs['interactive'];
35
86
  }
36
87
  get class() {
37
- return getClassnamesFromNode(this.node);
38
- }
39
- onSelectEmbedded(selected, innerState) {
40
- if (!selected && !this.href) {
41
- const href = linkToHref(innerState.doc.textContent);
42
- if (href) {
43
- this.href = href;
44
- }
45
- }
46
- }
47
- static {
48
- n(this.prototype, "onSelectEmbedded", [action]);
49
- }
50
- setHref(event) {
51
- const text = event.target.value;
52
- const href = linkToHref(text);
53
- this.href = href || text;
54
- }
55
- static {
56
- n(this.prototype, "setHref", [action]);
57
- }
58
- selectHref(event) {
59
- event.target.select();
60
- }
61
- static {
62
- n(this.prototype, "selectHref", [action]);
88
+ return `say-pill ${this.linkParserResult.isSuccessful || this.isNewLink ? '' : 'say-pill--error'}`;
63
89
  }
64
90
  onClick(event) {
65
91
  if (event.ctrlKey || event.metaKey) {
@@ -69,21 +95,32 @@ class Link extends Component {
69
95
  static {
70
96
  n(this.prototype, "onClick", [action]);
71
97
  }
72
- remove() {
73
- const pos = this.args.getPos();
74
- if (pos !== undefined) {
75
- this.controller.withTransaction(tr => {
76
- return tr.replaceWith(pos, pos + this.node.nodeSize, this.node.content);
77
- }, {
78
- view: this.controller.mainEditorView
79
- });
80
- }
98
+ get shouldShowTooltip() {
99
+ return this.interactive && this.link && this.selected && !this.hideTooltip;
81
100
  }
101
+ onKeyUp = event => {
102
+ if (event.key === 'Escape' || event.key === 'Enter') {
103
+ this.hideTooltip = true;
104
+ } else {
105
+ this.hideTooltip = false;
106
+ }
107
+ };
82
108
  static {
83
- n(this.prototype, "remove", [action]);
109
+ setComponentTemplate(precompileTemplate("\n <Velcro @placement=\"bottom-start\" @offsetOptions={{hash mainAxis=3}} @strategy=\"fixed\" as |velcro|>\n <Pill {{on \"keyup\" this.onKeyUp}} class={{this.class}} @skin=\"link\" @icon={{this.linkIcon}} title={{this.linkTitle}} aria-describedby=\"link-tooltip\" {{velcro.hook}} {{on \"click\" this.onClick}}>\n <EmbeddedEditor @controller={{@controller}} @node={{@node}} @view={{@view}} @getPos={{@getPos}} @onSelected={{this.selectionChangeHandler}} @selected={{@selected}} @placeholder={{t \"ember-rdfa-editor.link.placeholder.text\"}} @contentDecorations={{@contentDecorations}} @updateAttribute={{@updateAttribute}} @selectNode={{@selectNode}} {{leaveOnEnterKey @controller @getPos}} />\n </Pill>\n {{#if this.shouldShowTooltip}}\n <LinkEditor {{on \"keyup\" this.onKeyUp}} @controller={{@controller}} {{!-- @glint-expect-error --}} @link={{this.link}} @linkParser={{this.linkParser}} {{velcro.loop}} />\n {{/if}}\n </Velcro>\n ", {
110
+ strictMode: true,
111
+ scope: () => ({
112
+ Velcro,
113
+ hash,
114
+ Pill: PillComponent,
115
+ on,
116
+ EmbeddedEditor,
117
+ t,
118
+ leaveOnEnterKey,
119
+ LinkEditor
120
+ })
121
+ }), this);
84
122
  }
85
123
  }
86
- setComponentTemplate(TEMPLATE, Link);
87
124
 
88
125
  export { Link as default };
89
126
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sources":["../../../src/components/ember-node/link.ts"],"sourcesContent":["import { action } from '@ember/object';\nimport Component from '@glimmer/component';\nimport type { EmberNodeArgs } from '#root/utils/ember-node.ts';\nimport { linkToHref } from '#root/utils/_private/string-utils.ts';\nimport { Velcro } from 'ember-velcro';\nimport { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';\nimport { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';\nimport getClassnamesFromNode from '#root/utils/get-classnames-from-node.ts';\nimport type { EditorState } from 'prosemirror-state';\n\nexport default class Link extends Component<EmberNodeArgs> {\n Velcro = Velcro;\n LinkExternalIcon = LinkExternalIcon;\n LinkBrokenIcon = LinkBrokenIcon;\n\n get href() {\n return this.args.node.attrs['href'] as string;\n }\n\n set href(value: string) {\n this.args.updateAttribute('href', value);\n }\n\n get controller() {\n return this.args.controller;\n }\n\n get node() {\n return this.args.node;\n }\n\n get selected() {\n return this.args.selected;\n }\n\n get interactive() {\n return this.node.attrs['interactive'] as boolean;\n }\n\n get class() {\n return getClassnamesFromNode(this.node);\n }\n\n @action\n onSelectEmbedded(selected: boolean, innerState: EditorState) {\n if (!selected && !this.href) {\n const href = linkToHref(innerState.doc.textContent);\n if (href) {\n this.href = href;\n }\n }\n }\n\n @action\n setHref(event: InputEvent) {\n const text = (event.target as HTMLInputElement).value;\n const href = linkToHref(text);\n this.href = href || text;\n }\n\n @action\n selectHref(event: InputEvent) {\n (event.target as HTMLInputElement).select();\n }\n\n @action\n onClick(event: KeyboardEvent) {\n if (event.ctrlKey || event.metaKey) {\n window.open(this.href);\n }\n }\n\n @action\n remove() {\n const pos = this.args.getPos();\n if (pos !== undefined) {\n this.controller.withTransaction(\n (tr) => {\n return tr.replaceWith(\n pos,\n pos + this.node.nodeSize,\n this.node.content,\n );\n },\n { view: this.controller.mainEditorView },\n );\n }\n }\n}\n"],"names":["Link","Component","Velcro","LinkExternalIcon","LinkBrokenIcon","href","args","node","attrs","value","updateAttribute","controller","selected","interactive","class","getClassnamesFromNode","onSelectEmbedded","innerState","linkToHref","doc","textContent","n","prototype","action","setHref","event","text","target","selectHref","select","onClick","ctrlKey","metaKey","window","open","remove","pos","getPos","undefined","withTransaction","tr","replaceWith","nodeSize","content","view","mainEditorView","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sources":["../../../src/components/ember-node/link.gts"],"sourcesContent":["import leaveOnEnterKey from '#root/modifiers/leave-on-enter-key.ts';\nimport { action } from '@ember/object';\nimport Component from '@glimmer/component';\nimport type { EmberNodeArgs } from '#root/utils/ember-node.ts';\nimport { Velcro } from 'ember-velcro';\nimport { hash } from '@ember/helper';\nimport EmbeddedEditor from './embedded-editor.gts';\nimport { on } from '@ember/modifier';\nimport t from 'ember-intl/helpers/t';\nimport Pill from '#root/components/pill.gts';\nimport LinkEditor from '../plugins/link/_private/link-editor.gts';\nimport {\n defaultLinkParser,\n type LinkParser,\n} from '#root/plugins/link/parser.ts';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\nimport type IntlService from 'ember-intl/services/intl';\nimport { CircleXIcon } from '@appuniversum/ember-appuniversum/components/icons/circle-x';\n\nexport default class Link extends Component<EmberNodeArgs> {\n @service declare intl: IntlService;\n @tracked hideTooltip = false;\n\n get isNewLink() {\n return this.link && (this.link.node.attrs['isNew'] as boolean);\n }\n\n selectionChangeHandler = (selected: boolean) => {\n this.hideTooltip = false;\n if (!selected && this.isNewLink) {\n this.args.updateAttribute('isNew', false, true);\n }\n };\n\n get href() {\n return this.args.node.attrs['href'] as string;\n }\n\n get link() {\n const pos = this.args.getPos();\n if (!pos) {\n return;\n }\n return {\n node: this.args.node,\n pos,\n };\n }\n\n get linkParser() {\n return (\n (this.node.attrs['linkParser'] as LinkParser | null) ??\n defaultLinkParser()\n );\n }\n\n @cached\n get linkParserResult() {\n return this.linkParser(this.href);\n }\n\n get linkTitle() {\n if (this.linkParserResult.isSuccessful) {\n return this.intl.t('ember-rdfa-editor.link.ctrlClickDescription');\n } else {\n return this.linkParserResult.errors[0];\n }\n }\n\n get linkIcon() {\n if (this.linkParserResult.isSuccessful || this.isNewLink) {\n return;\n } else {\n return CircleXIcon;\n }\n }\n\n get controller() {\n return this.args.controller;\n }\n\n get node() {\n return this.args.node;\n }\n\n get selected() {\n return this.args.selected;\n }\n\n get interactive() {\n return this.node.attrs['interactive'] as boolean;\n }\n\n get class() {\n return `say-pill ${this.linkParserResult.isSuccessful || this.isNewLink ? '' : 'say-pill--error'}`;\n }\n\n @action\n onClick(event: PointerEvent) {\n if (event.ctrlKey || event.metaKey) {\n window.open(this.href);\n }\n }\n\n get shouldShowTooltip() {\n return this.interactive && this.link && this.selected && !this.hideTooltip;\n }\n\n onKeyUp = (event: KeyboardEvent) => {\n if (event.key === 'Escape' || event.key === 'Enter') {\n this.hideTooltip = true;\n } else {\n this.hideTooltip = false;\n }\n };\n\n <template>\n <Velcro\n @placement=\"bottom-start\"\n @offsetOptions={{hash mainAxis=3}}\n @strategy=\"fixed\"\n as |velcro|\n >\n <Pill\n {{on \"keyup\" this.onKeyUp}}\n class={{this.class}}\n @skin=\"link\"\n @icon={{this.linkIcon}}\n title={{this.linkTitle}}\n aria-describedby=\"link-tooltip\"\n {{velcro.hook}}\n {{on \"click\" this.onClick}}\n >\n <EmbeddedEditor\n @controller={{@controller}}\n @node={{@node}}\n @view={{@view}}\n @getPos={{@getPos}}\n @onSelected={{this.selectionChangeHandler}}\n @selected={{@selected}}\n @placeholder={{t \"ember-rdfa-editor.link.placeholder.text\"}}\n @contentDecorations={{@contentDecorations}}\n @updateAttribute={{@updateAttribute}}\n @selectNode={{@selectNode}}\n {{leaveOnEnterKey @controller @getPos}}\n />\n </Pill>\n {{#if this.shouldShowTooltip}}\n <LinkEditor\n {{on \"keyup\" this.onKeyUp}}\n @controller={{@controller}}\n {{! @glint-expect-error }}\n @link={{this.link}}\n @linkParser={{this.linkParser}}\n {{velcro.loop}}\n />\n {{/if}}\n </Velcro>\n </template>\n}\n"],"names":["Link","Component","g","prototype","service","i","tracked","isNewLink","link","node","attrs","selectionChangeHandler","selected","hideTooltip","args","updateAttribute","href","pos","getPos","linkParser","defaultLinkParser","linkParserResult","n","cached","linkTitle","isSuccessful","intl","t","errors","linkIcon","CircleXIcon","controller","interactive","class","onClick","event","ctrlKey","metaKey","window","open","action","shouldShowTooltip","onKeyUp","key","setComponentTemplate","precompileTemplate","strictMode","scope","Velcro","hash","Pill","on","EmbeddedEditor","leaveOnEnterKey","LinkEditor"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { action } from '@ember/object';
2
+ import didInsert from '@ember/render-modifiers/modifiers/did-insert';
2
3
  import Component from '@glimmer/component';
3
4
  import { precompileTemplate } from '@ember/template-compilation';
4
- import { n } from 'decorator-transforms/runtime';
5
5
  import { setComponentTemplate } from '@ember/component';
6
-
7
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{! template-lint-disable no-at-ember-render-modifiers }}\n<div data-slot {{did-insert this.didInsert}}></div>");
6
+ import { n } from 'decorator-transforms/runtime';
8
7
 
9
8
  class EmberNodeSlot extends Component {
10
9
  didInsert(slotElement) {
@@ -13,8 +12,15 @@ class EmberNodeSlot extends Component {
13
12
  static {
14
13
  n(this.prototype, "didInsert", [action]);
15
14
  }
15
+ static {
16
+ setComponentTemplate(precompileTemplate("\n <div data-slot {{didInsert this.didInsert}}></div>\n ", {
17
+ strictMode: true,
18
+ scope: () => ({
19
+ didInsert
20
+ })
21
+ }), this);
22
+ }
16
23
  }
17
- setComponentTemplate(TEMPLATE, EmberNodeSlot);
18
24
 
19
25
  export { EmberNodeSlot as default };
20
26
  //# sourceMappingURL=slot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sources":["../../../src/components/ember-node/slot.ts"],"sourcesContent":["import { action } from '@ember/object';\nimport Component from '@glimmer/component';\n\nexport default class EmberNodeSlot extends Component<{\n contentDOM: HTMLElement;\n}> {\n @action\n didInsert(slotElement: HTMLElement) {\n slotElement.appendChild(this.args.contentDOM);\n }\n}\n"],"names":["EmberNodeSlot","Component","didInsert","slotElement","appendChild","args","contentDOM","n","prototype","action","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAGe,MAAMA,aAAa,SAASC,SAAS,CAEjD;EAEDC,SAASA,CAACC,WAAwB,EAAE;IAClCA,WAAW,CAACC,WAAW,CAAC,IAAI,CAACC,IAAI,CAACC,UAAU,CAAC;AAC/C,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAHAC,MAAM,CAAA,CAAA;AAAA;AAIT;AAACC,oBAAA,CAAAC,QAAA,EAPoBX,aAAa,CAAA;;;;"}
1
+ {"version":3,"file":"slot.js","sources":["../../../src/components/ember-node/slot.gts"],"sourcesContent":["import { action } from '@ember/object';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport Component from '@glimmer/component';\n\nexport default class EmberNodeSlot extends Component<{\n contentDOM: HTMLElement;\n}> {\n @action\n didInsert(slotElement: HTMLElement) {\n slotElement.appendChild(this.args.contentDOM);\n }\n\n <template>\n <div data-slot {{didInsert this.didInsert}}></div>\n </template>\n}\n"],"names":["EmberNodeSlot","Component","didInsert","slotElement","appendChild","args","contentDOM","n","prototype","action","setComponentTemplate","precompileTemplate","strictMode","scope"],"mappings":";;;;;;;AAKe,MAAMA,aAAA,SAAsBC,SAAA;EAIzCC,SAAAA,CAAUC,WAAwB,EAAE;IAClCA,WAAA,CAAYC,WAAW,CAAC,IAAI,CAACC,IAAI,CAACC,UAAU,CAAA;AAC9C,EAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,8DAAA,EAEA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAX,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,9 +1,9 @@
1
+ import AuIcon from '@appuniversum/ember-appuniversum/components/au-icon';
1
2
  import Component from '@glimmer/component';
3
+ import { eq, notEq } from 'ember-truth-helpers';
2
4
  import { precompileTemplate } from '@ember/template-compilation';
3
5
  import { setComponentTemplate } from '@ember/component';
4
6
 
5
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n<span class=\"au-c-pill {{this.skin}} {{this.size}}\" ...attributes>\n {{#if @icon}}\n {{#if (not-eq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n {{yield}}\n {{#if @icon}}\n {{#if (eq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n</span>");
6
-
7
7
  class PillComponent extends Component {
8
8
  get skin() {
9
9
  if (this.args.skin) {
@@ -20,8 +20,17 @@ class PillComponent extends Component {
20
20
  get iconAlignment() {
21
21
  return this.args.iconAlignment ?? 'left';
22
22
  }
23
+ static {
24
+ setComponentTemplate(precompileTemplate("\n <span class=\"au-c-pill {{this.skin}} {{this.size}}\" ...attributes>\n {{#if @icon}}\n {{#if (notEq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n {{yield}}\n {{#if @icon}}\n {{#if (eq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n </span>\n ", {
25
+ strictMode: true,
26
+ scope: () => ({
27
+ notEq,
28
+ AuIcon,
29
+ eq
30
+ })
31
+ }), this);
32
+ }
23
33
  }
24
- setComponentTemplate(TEMPLATE, PillComponent);
25
34
 
26
35
  export { PillComponent as default };
27
36
  //# sourceMappingURL=pill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pill.js","sources":["../../src/components/pill.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport type { ComponentLike } from '@glint/template';\n\nconst PILL_SIZES = ['small'] as const;\n\ntype PillComponentArgs = {\n skin?:\n | 'border'\n | 'action'\n | 'ongoing'\n | 'link'\n | 'success'\n | 'warning'\n | 'error';\n size?: (typeof PILL_SIZES)[number];\n iconAlignment?: 'left' | 'right';\n icon?: ComponentLike;\n};\n\nexport default class PillComponent extends Component<PillComponentArgs> {\n get skin() {\n if (this.args.skin) {\n return `au-c-pill--${this.args.skin}`;\n }\n\n return 'au-c-pill--default';\n }\n\n get size() {\n if (!this.args.size) {\n return '';\n }\n\n return `au-c-pill--${this.args.size}`;\n }\n\n get iconAlignment(): PillComponentArgs['iconAlignment'] {\n return this.args.iconAlignment ?? 'left';\n }\n}\n"],"names":["PillComponent","Component","skin","args","size","iconAlignment","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AAmBe,MAAMA,aAAa,SAASC,SAAS,CAAoB;EACtE,IAAIC,IAAIA,GAAG;AACT,IAAA,IAAI,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE;AAClB,MAAA,OAAO,cAAc,IAAI,CAACC,IAAI,CAACD,IAAI,CAAA,CAAE;AACvC,IAAA;AAEA,IAAA,OAAO,oBAAoB;AAC7B,EAAA;EAEA,IAAIE,IAAIA,GAAG;AACT,IAAA,IAAI,CAAC,IAAI,CAACD,IAAI,CAACC,IAAI,EAAE;AACnB,MAAA,OAAO,EAAE;AACX,IAAA;AAEA,IAAA,OAAO,cAAc,IAAI,CAACD,IAAI,CAACC,IAAI,CAAA,CAAE;AACvC,EAAA;EAEA,IAAIC,aAAaA,GAAuC;AACtD,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,aAAa,IAAI,MAAM;AAC1C,EAAA;AACF;AAACC,oBAAA,CAAAC,QAAA,EApBoBP,aAAa,CAAA;;;;"}
1
+ {"version":3,"file":"pill.js","sources":["../../src/components/pill.gts"],"sourcesContent":["import AuIcon from '@appuniversum/ember-appuniversum/components/au-icon';\nimport Component from '@glimmer/component';\nimport type { ComponentLike } from '@glint/template';\nimport { eq, notEq } from 'ember-truth-helpers';\n\nconst PILL_SIZES = ['small'] as const;\n\nexport type PillComponentSignature = {\n Element: HTMLSpanElement;\n Args: {\n skin?:\n | 'border'\n | 'action'\n | 'ongoing'\n | 'link'\n | 'success'\n | 'warning'\n | 'error';\n size?: (typeof PILL_SIZES)[number];\n iconAlignment?: 'left' | 'right';\n icon?: ComponentLike<{ Element: Element }>;\n };\n Blocks: {\n default: [];\n };\n};\n\nexport default class PillComponent extends Component<PillComponentSignature> {\n get skin() {\n if (this.args.skin) {\n return `au-c-pill--${this.args.skin}`;\n }\n\n return 'au-c-pill--default';\n }\n\n get size() {\n if (!this.args.size) {\n return '';\n }\n\n return `au-c-pill--${this.args.size}`;\n }\n\n get iconAlignment(): PillComponentSignature['Args']['iconAlignment'] {\n return this.args.iconAlignment ?? 'left';\n }\n\n <template>\n <span class=\"au-c-pill {{this.skin}} {{this.size}}\" ...attributes>\n {{#if @icon}}\n {{#if (notEq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n {{yield}}\n {{#if @icon}}\n {{#if (eq @iconAlignment \"right\")}}\n <AuIcon @icon={{@icon}} />\n {{/if}}\n {{/if}}\n </span>\n </template>\n}\n"],"names":["PillComponent","Component","skin","args","size","iconAlignment","setComponentTemplate","precompileTemplate","strictMode","scope","notEq","AuIcon","eq"],"mappings":";;;;;;AA2Be,MAAMA,sBAAsBC,SAAA,CAAU;EACnD,IAAIC,IAAAA,GAAO;AACT,IAAA,IAAI,IAAI,CAACC,IAAI,CAACD,IAAI,EAAE;AAClB,MAAA,OAAO,cAAc,IAAI,CAACC,IAAI,CAACD,IAAI,CAAA,CAAE;AACvC,IAAA;AAEA,IAAA,OAAO,oBAAA;AACT,EAAA;EAEA,IAAIE,IAAAA,GAAO;AACT,IAAA,IAAI,CAAC,IAAI,CAACD,IAAI,CAACC,IAAI,EAAE;AACnB,MAAA,OAAO,EAAA;AACT,IAAA;AAEA,IAAA,OAAO,cAAc,IAAI,CAACD,IAAI,CAACC,IAAI,CAAA,CAAE;AACvC,EAAA;EAEA,IAAIC,aAAAA,GAAiE;AACnE,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,aAAa,IAAI,MAAA;AACpC,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,qYAAA,EAcA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,MAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -0,0 +1,128 @@
1
+ import { action } from '@ember/object';
2
+ import Component from '@glimmer/component';
3
+ import { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';
4
+ import { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';
5
+ import AuCard from '@appuniversum/ember-appuniversum/components/au-card';
6
+ import AuHeading from '@appuniversum/ember-appuniversum/components/au-heading';
7
+ import AuButton from '@appuniversum/ember-appuniversum/components/au-button';
8
+ import t from 'ember-intl/helpers/t';
9
+ import { on } from '@ember/modifier';
10
+ import AuInput from '@appuniversum/ember-appuniversum/components/au-input';
11
+ import AuLinkExternal from '@appuniversum/ember-appuniversum/components/au-link-external';
12
+ import AuAlert from '@appuniversum/ember-appuniversum/components/au-alert';
13
+ import { cached } from '@glimmer/tracking';
14
+ import { defaultLinkParser } from '../../../../plugins/link/parser.js';
15
+ import { LinkIcon } from '@appuniversum/ember-appuniversum/components/icons/link';
16
+ import { MessageIcon } from '@appuniversum/ember-appuniversum/components/icons/message';
17
+ import { modifier } from 'ember-modifier';
18
+ import { precompileTemplate } from '@ember/template-compilation';
19
+ import { setComponentTemplate } from '@ember/component';
20
+ import { n } from 'decorator-transforms/runtime';
21
+
22
+ class LinkEditor extends Component {
23
+ get isNewLink() {
24
+ return this.link.node.attrs['isNew'];
25
+ }
26
+ parseLink = input => {
27
+ return this.args.linkParser ? this.args.linkParser(input) : defaultLinkParser()(input);
28
+ };
29
+ get linkParserResult() {
30
+ return this.parseLink(this.href);
31
+ }
32
+ static {
33
+ n(this.prototype, "linkParserResult", [cached]);
34
+ }
35
+ get controller() {
36
+ return this.args.controller;
37
+ }
38
+ get link() {
39
+ return this.args.link;
40
+ }
41
+ get href() {
42
+ return this.link.node.attrs['href'];
43
+ }
44
+ setHref(event) {
45
+ const text = event.target.value;
46
+ const result = this.parseLink(text);
47
+ const {
48
+ pos
49
+ } = this.link;
50
+ this.controller.withTransaction(tr => {
51
+ tr.setNodeAttribute(pos, 'href', result.value ?? text);
52
+ tr.setNodeAttribute(pos, 'isNew', false);
53
+ return tr;
54
+ },
55
+ // After reload the default (activeEditorView) is just the link text, so use the main view
56
+ {
57
+ view: this.controller.mainEditorView
58
+ });
59
+ }
60
+ static {
61
+ n(this.prototype, "setHref", [action]);
62
+ }
63
+ get linkText() {
64
+ return this.link.node.textContent;
65
+ }
66
+ setLinkText(event) {
67
+ const text = event.target.value;
68
+ const {
69
+ pos,
70
+ node
71
+ } = this.link;
72
+ this.controller.withTransaction(tr => tr.insertText(text, pos + 1, pos + node.nodeSize - 1), {
73
+ view: this.controller.mainEditorView
74
+ });
75
+ }
76
+ static {
77
+ n(this.prototype, "setLinkText", [action]);
78
+ }
79
+ selectInputElement(event) {
80
+ event.target.select();
81
+ }
82
+ static {
83
+ n(this.prototype, "selectInputElement", [action]);
84
+ }
85
+ remove() {
86
+ const {
87
+ pos,
88
+ node
89
+ } = this.link;
90
+ this.controller.withTransaction(tr => {
91
+ return tr.replaceWith(pos, pos + node.nodeSize, node.content);
92
+ }, {
93
+ view: this.controller.mainEditorView
94
+ });
95
+ }
96
+ static {
97
+ n(this.prototype, "remove", [action]);
98
+ }
99
+ disableDragging = modifier(element => {
100
+ const preventDefault = event => event.preventDefault();
101
+ element.addEventListener('dragstart', preventDefault);
102
+ return () => {
103
+ element.removeEventListener('dragstart', preventDefault);
104
+ };
105
+ });
106
+ static {
107
+ setComponentTemplate(precompileTemplate("\n <AuCard {{this.disableDragging}} class=\"say-link-editor\" @flex={{true}} @expandable={{false}} @size=\"small\" @shadow={{true}} @disableAuContent={{true}} ...attributes as |c|>\n {{#if @showTitle}}\n <c.header>\n <AuHeading @level=\"3\" @skin=\"5\">{{t \"ember-rdfa-editor.link.edit.title\"}}</AuHeading>\n </c.header>\n {{/if}}\n <c.content class=\"au-u-flex au-u-flex--column au-u-flex--spaced-tiny\">\n <AuInput value={{this.linkText}} @width=\"block\" @icon={{MessageIcon}} {{on \"change\" this.setLinkText}} {{on \"focus\" this.selectInputElement}} placeholder={{t \"ember-rdfa-editor.link.placeholder.text\"}} />\n <AuInput value={{this.href}} @width=\"block\" @icon={{LinkIcon}} {{on \"change\" this.setHref}} {{on \"focus\" this.selectInputElement}} placeholder={{t \"ember-rdfa-editor.link.placeholder.href\"}} />\n {{#unless this.isNewLink}}\n {{#unless this.linkParserResult.isSuccessful}}\n {{#let this.linkParserResult.errors as |errors|}}\n {{#each errors as |error|}}\n <AuAlert class=\"au-u-margin-bottom-none\" @size=\"small\" @skin=\"error\" @icon=\"cross\">\n {{error}}\n </AuAlert>\n {{/each}}\n {{/let}}\n {{/unless}}\n {{/unless}}\n </c.content>\n <c.footer class=\"au-u-flex au-u-flex--spaced-small au-u-margin-left-tiny au-u-margin-right-tiny\">\n <AuLinkExternal class=\"say-link-editor__button\" @icon={{LinkExternalIcon}} @skin=\"bold\" href={{this.href}}>{{t \"ember-rdfa-editor.link.open\"}}</AuLinkExternal>\n <AuButton class=\"au-u-padding-none\" @icon={{LinkBrokenIcon}} @skin=\"link-bold\" @alert={{true}} {{on \"click\" this.remove}}>{{t \"ember-rdfa-editor.link.edit.uncouple\"}}</AuButton>\n </c.footer>\n </AuCard>\n ", {
108
+ strictMode: true,
109
+ scope: () => ({
110
+ AuCard,
111
+ AuHeading,
112
+ t,
113
+ AuInput,
114
+ MessageIcon,
115
+ on,
116
+ LinkIcon,
117
+ AuAlert,
118
+ AuLinkExternal,
119
+ LinkExternalIcon,
120
+ AuButton,
121
+ LinkBrokenIcon
122
+ })
123
+ }), this);
124
+ }
125
+ }
126
+
127
+ export { LinkEditor as default };
128
+ //# sourceMappingURL=link-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-editor.js","sources":["../../../../../src/components/plugins/link/_private/link-editor.gts"],"sourcesContent":["import { action } from '@ember/object';\nimport Component from '@glimmer/component';\nimport { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';\nimport { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';\nimport type SayController from '#root/core/say-controller.ts';\nimport AuCard from '@appuniversum/ember-appuniversum/components/au-card';\nimport AuHeading from '@appuniversum/ember-appuniversum/components/au-heading';\nimport AuButton from '@appuniversum/ember-appuniversum/components/au-button';\nimport t from 'ember-intl/helpers/t';\nimport { on } from '@ember/modifier';\nimport AuInput from '@appuniversum/ember-appuniversum/components/au-input';\nimport AuLinkExternal from '@appuniversum/ember-appuniversum/components/au-link-external';\nimport AuAlert from '@appuniversum/ember-appuniversum/components/au-alert';\nimport { cached } from '@glimmer/tracking';\nimport type { LinkParser } from '#root/plugins/link/parser.js';\nimport { defaultLinkParser } from '#root/plugins/link/parser.ts';\nimport type { PNode } from '#root/prosemirror-aliases.js';\nimport { LinkIcon } from '@appuniversum/ember-appuniversum/components/icons/link';\nimport { MessageIcon } from '@appuniversum/ember-appuniversum/components/icons/message';\nimport { modifier } from 'ember-modifier';\n\ntype Args = {\n controller: SayController;\n linkParser: LinkParser;\n link: { pos: number; node: PNode };\n showTitle?: boolean;\n};\n\nexport default class LinkEditor extends Component<Args> {\n get isNewLink() {\n return this.link.node.attrs['isNew'] as boolean;\n }\n\n parseLink: LinkParser = (input?: string) => {\n return this.args.linkParser\n ? this.args.linkParser(input)\n : defaultLinkParser()(input);\n };\n\n @cached\n get linkParserResult() {\n return this.parseLink(this.href);\n }\n\n get controller() {\n return this.args.controller;\n }\n\n get link() {\n return this.args.link;\n }\n\n get href() {\n return this.link.node.attrs['href'] as string | undefined;\n }\n\n @action\n setHref(event: InputEvent) {\n const text = (event.target as HTMLInputElement).value;\n const result = this.parseLink(text);\n\n const { pos } = this.link;\n this.controller.withTransaction(\n (tr) => {\n tr.setNodeAttribute(pos, 'href', result.value ?? text);\n tr.setNodeAttribute(pos, 'isNew', false);\n return tr;\n },\n // After reload the default (activeEditorView) is just the link text, so use the main view\n { view: this.controller.mainEditorView },\n );\n }\n\n get linkText() {\n return this.link.node.textContent;\n }\n\n @action\n setLinkText(event: InputEvent) {\n const text = (event.target as HTMLInputElement).value;\n const { pos, node } = this.link;\n this.controller.withTransaction(\n (tr) => tr.insertText(text, pos + 1, pos + node.nodeSize - 1),\n { view: this.controller.mainEditorView },\n );\n }\n\n @action\n selectInputElement(event: FocusEvent) {\n (event.target as HTMLInputElement).select();\n }\n @action\n remove() {\n const { pos, node } = this.link;\n this.controller.withTransaction(\n (tr) => {\n return tr.replaceWith(pos, pos + node.nodeSize, node.content);\n },\n { view: this.controller.mainEditorView },\n );\n }\n\n disableDragging = modifier((element: HTMLElement) => {\n const preventDefault = (event: InputEvent) => event.preventDefault();\n element.addEventListener('dragstart', preventDefault);\n return () => {\n element.removeEventListener('dragstart', preventDefault);\n };\n });\n\n <template>\n <AuCard\n {{this.disableDragging}}\n class=\"say-link-editor\"\n @flex={{true}}\n @expandable={{false}}\n @size=\"small\"\n @shadow={{true}}\n @disableAuContent={{true}}\n ...attributes\n as |c|\n >\n {{#if @showTitle}}\n <c.header>\n <AuHeading @level=\"3\" @skin=\"5\">{{t\n \"ember-rdfa-editor.link.edit.title\"\n }}</AuHeading>\n </c.header>\n {{/if}}\n <c.content class=\"au-u-flex au-u-flex--column au-u-flex--spaced-tiny\">\n <AuInput\n value={{this.linkText}}\n @width=\"block\"\n @icon={{MessageIcon}}\n {{on \"change\" this.setLinkText}}\n {{on \"focus\" this.selectInputElement}}\n placeholder={{t \"ember-rdfa-editor.link.placeholder.text\"}}\n />\n <AuInput\n value={{this.href}}\n @width=\"block\"\n @icon={{LinkIcon}}\n {{on \"change\" this.setHref}}\n {{on \"focus\" this.selectInputElement}}\n placeholder={{t \"ember-rdfa-editor.link.placeholder.href\"}}\n />\n {{#unless this.isNewLink}}\n {{#unless this.linkParserResult.isSuccessful}}\n {{#let this.linkParserResult.errors as |errors|}}\n {{#each errors as |error|}}\n <AuAlert\n class=\"au-u-margin-bottom-none\"\n @size=\"small\"\n @skin=\"error\"\n @icon=\"cross\"\n >\n {{error}}\n </AuAlert>\n {{/each}}\n {{/let}}\n {{/unless}}\n {{/unless}}\n </c.content>\n <c.footer\n class=\"au-u-flex au-u-flex--spaced-small au-u-margin-left-tiny au-u-margin-right-tiny\"\n >\n <AuLinkExternal\n class=\"say-link-editor__button\"\n @icon={{LinkExternalIcon}}\n @skin=\"bold\"\n href={{this.href}}\n >{{t \"ember-rdfa-editor.link.open\"}}</AuLinkExternal>\n <AuButton\n class=\"au-u-padding-none\"\n @icon={{LinkBrokenIcon}}\n @skin=\"link-bold\"\n @alert={{true}}\n {{on \"click\" this.remove}}\n >{{t \"ember-rdfa-editor.link.edit.uncouple\"}}</AuButton>\n </c.footer>\n </AuCard>\n </template>\n}\n"],"names":["LinkEditor","Component","isNewLink","link","node","attrs","parseLink","input","args","linkParser","defaultLinkParser","linkParserResult","href","n","prototype","cached","controller","setHref","event","text","target","value","result","pos","withTransaction","tr","setNodeAttribute","view","mainEditorView","action","linkText","textContent","setLinkText","insertText","nodeSize","selectInputElement","select","remove","replaceWith","content","disableDragging","modifier","element","preventDefault","addEventListener","removeEventListener","setComponentTemplate","precompileTemplate","strictMode","scope","AuCard","AuHeading","t","AuInput","MessageIcon","on","LinkIcon","AuAlert","AuLinkExternal","LinkExternalIcon","AuButton","LinkBrokenIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4Be,MAAMA,mBAAmBC,SAAA,CAAU;EAChD,IAAIC,SAAAA,GAAY;IACd,OAAO,IAAI,CAACC,IAAI,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,CAAQ;AACtC,EAAA;EAEAC,SAAA,GAAyBC,KAAc,IAAA;IACrC,OAAO,IAAI,CAACC,IAAI,CAACC,UAAU,GACvB,IAAI,CAACD,IAAI,CAACC,UAAU,CAACF,SACrBG,iBAAA,EAAA,CAAoBH,KAAA,CAAA;EAC1B,CAAA;EAEA,IACII,gBAAAA,GAAmB;AACrB,IAAA,OAAO,IAAI,CAACL,SAAS,CAAC,IAAI,CAACM,IAAI,CAAA;AACjC,EAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;EAKD,IAAIC,UAAAA,GAAa;AACf,IAAA,OAAO,IAAI,CAACR,IAAI,CAACQ,UAAU;AAC7B,EAAA;EAEA,IAAIb,IAAAA,GAAO;AACT,IAAA,OAAO,IAAI,CAACK,IAAI,CAACL,IAAI;AACvB,EAAA;EAEA,IAAIS,IAAAA,GAAO;IACT,OAAO,IAAI,CAACT,IAAI,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,CAAO;AACrC,EAAA;EAGAY,OAAAA,CAAQC,KAAiB,EAAE;AACzB,IAAA,MAAMC,OAAQD,KAAA,CAAME,MAAM,CAAsBC,KAAK;AACrD,IAAA,MAAMC,MAAA,GAAS,IAAI,CAAChB,SAAS,CAACa,IAAA,CAAA;IAE9B,MAAM;AAAEI,MAAAA;KAAK,GAAG,IAAI,CAACpB,IAAI;AACzB,IAAA,IAAI,CAACa,UAAU,CAACQ,eAAe,CAC5BC,EAAA,IAAA;AACCA,MAAAA,EAAA,CAAGC,gBAAgB,CAACH,GAAA,EAAK,MAAA,EAAQD,MAAA,CAAOD,KAAK,IAAIF,IAAA,CAAA;MACjDM,EAAA,CAAGC,gBAAgB,CAACH,GAAA,EAAK,OAAA,EAAS,KAAA,CAAA;AAClC,MAAA,OAAOE,EAAA;IACT,CAAA;AACA;AACA,IAAA;AAAEE,MAAAA,IAAA,EAAM,IAAI,CAACX,UAAU,CAACY;AAAe,KAAA,CAAA;AAE3C,EAAA;AAAA,EAAA;IAAAf,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAfCe,MAAA,CAAA,CAAA;AAAA;EAiBD,IAAIC,QAAAA,GAAW;AACb,IAAA,OAAO,IAAI,CAAC3B,IAAI,CAACC,IAAI,CAAC2B,WAAW;AACnC,EAAA;EAGAC,WAAAA,CAAYd,KAAiB,EAAE;AAC7B,IAAA,MAAMC,OAAQD,KAAA,CAAME,MAAM,CAAsBC,KAAK;IACrD,MAAM;MAAEE,GAAG;AAAEnB,MAAAA;KAAM,GAAG,IAAI,CAACD,IAAI;IAC/B,IAAI,CAACa,UAAU,CAACQ,eAAe,CAC5BC,EAAA,IAAOA,EAAA,CAAGQ,UAAU,CAACd,MAAMI,GAAA,GAAM,CAAA,EAAGA,MAAMnB,IAAA,CAAK8B,QAAQ,GAAG,CAAA,CAAA,EAC3D;AAAEP,MAAAA,IAAA,EAAM,IAAI,CAACX,UAAU,CAACY;AAAe,KAAA,CAAA;AAE3C,EAAA;AAAA,EAAA;IAAAf,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CARCe,MAAA,CAAA,CAAA;AAAA;EAWDM,kBAAAA,CAAmBjB,KAAiB,EAAE;AACnCA,IAAAA,KAAA,CAAME,MAAM,CAAsBgB,MAAM,EAAA;AAC3C,EAAA;AAAA,EAAA;IAAAvB,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CAHCe,MAAA,CAAA,CAAA;AAAA;AAKDQ,EAAAA,MAAAA,GAAS;IACP,MAAM;MAAEd,GAAG;AAAEnB,MAAAA;KAAM,GAAG,IAAI,CAACD,IAAI;AAC/B,IAAA,IAAI,CAACa,UAAU,CAACQ,eAAe,CAC5BC,EAAA,IAAA;AACC,MAAA,OAAOA,EAAA,CAAGa,WAAW,CAACf,GAAA,EAAKA,MAAMnB,IAAA,CAAK8B,QAAQ,EAAE9B,IAAA,CAAKmC,OAAO,CAAA;AAC9D,IAAA,CAAA,EACA;AAAEZ,MAAAA,IAAA,EAAM,IAAI,CAACX,UAAU,CAACY;AAAe,KAAA,CAAA;AAE3C,EAAA;AAAA,EAAA;IAAAf,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CATCe,MAAA,CAAA,CAAA;AAAA;AAWDW,EAAAA,eAAA,GAAkBC,QAAA,CAAUC,OAAS,IAAA;IACnC,MAAMC,cAAA,GAAkBzB,KAAO,IAAeA,MAAMyB,cAAc,EAAA;AAClED,IAAAA,OAAA,CAAQE,gBAAgB,CAAC,WAAA,EAAaD,cAAA,CAAA;AACtC,IAAA,OAAO,MAAA;AACLD,MAAAA,OAAA,CAAQG,mBAAmB,CAAC,WAAA,EAAaF,cAAA,CAAA;IAC3C,CAAA;AACF,EAAA,CAAA,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,m1DAAA,EAuEA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,SAAA;QAAAC,CAAA;QAAAC,OAAA;QAAAC,WAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,OAAA;QAAAC,cAAA;QAAAC,gBAAA;QAAAC,QAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,82 +1,9 @@
1
- import { action } from '@ember/object';
2
- import Component from '@glimmer/component';
3
- import { NodeSelection } from 'prosemirror-state';
4
- import { linkToHref } from '../../../utils/_private/string-utils.js';
5
- import { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';
6
- import { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';
7
- import { precompileTemplate } from '@ember/template-compilation';
8
- import { n } from 'decorator-transforms/runtime';
9
- import { setComponentTemplate } from '@ember/component';
1
+ import LinkSidebarWidget from './link-sidebar-widget.js';
10
2
 
11
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{#if this.link}}\n <AuCard\n @flex={{true}}\n @expandable={{false}}\n @shadow={{true}}\n @size=\"small\"\n @disableAuContent={{true}}\n as |c|\n >\n <c.header>\n <AuHeading @level=\"3\" @skin=\"5\">{{t\n \"ember-rdfa-editor.link.edit.title\"\n }}</AuHeading>\n </c.header>\n <c.content class=\"au-c-content--small\">\n <AuInput\n value={{this.href}}\n @width=\"block\"\n {{on \"change\" this.setHref}}\n {{on \"focus\" this.selectHref}}\n placeholder={{t \"ember-rdfa-editor.link.placeholder.href\"}}\n />\n </c.content>\n <c.footer>\n <AuLinkExternal\n @icon={{this.LinkExternalIcon}}\n @skin=\"button-secondary\"\n href={{this.href}}\n >{{t \"ember-rdfa-editor.link.open\"}}</AuLinkExternal>\n <AuButton\n @icon={{this.LinkBrokenIcon}}\n @alert={{true}}\n @skin=\"secondary\"\n {{on \"click\" this.remove}}\n >{{t \"ember-rdfa-editor.link.edit.uncouple\"}}</AuButton>\n </c.footer>\n </AuCard>\n{{/if}}");
12
-
13
- class LinkEditor extends Component {
14
- LinkExternalIcon = LinkExternalIcon;
15
- LinkBrokenIcon = LinkBrokenIcon;
16
- get controller() {
17
- return this.args.controller;
18
- }
19
- get href() {
20
- return this.link?.node.attrs['href'];
21
- }
22
- set href(value) {
23
- if (this.link && this.controller) {
24
- const {
25
- pos
26
- } = this.link;
27
- this.controller.withTransaction(tr => tr.setNodeAttribute(pos, 'href', value),
28
- // After reload the default (activeEditorView) is just the link text, so use the main view
29
- {
30
- view: this.controller.mainEditorView
31
- });
32
- }
33
- }
34
- setHref(event) {
35
- const text = event.target.value;
36
- const href = linkToHref(text);
37
- this.href = href || text;
38
- }
39
- static {
40
- n(this.prototype, "setHref", [action]);
41
- }
42
- selectHref(event) {
43
- event.target.select();
44
- }
45
- static {
46
- n(this.prototype, "selectHref", [action]);
47
- }
48
- get link() {
49
- if (this.controller) {
50
- const {
51
- selection
52
- } = this.controller.mainEditorState;
53
- if (selection instanceof NodeSelection && selection.node.type === this.controller.schema.nodes['link']) {
54
- return {
55
- pos: selection.from,
56
- node: selection.node
57
- };
58
- }
59
- }
60
- return;
61
- }
62
- remove() {
63
- if (this.controller && this.link) {
64
- const {
65
- pos,
66
- node
67
- } = this.link;
68
- this.controller.withTransaction(tr => {
69
- return tr.replaceWith(pos, pos + node.nodeSize, node.content);
70
- }, {
71
- view: this.controller.mainEditorView
72
- });
73
- }
74
- }
75
- static {
76
- n(this.prototype, "remove", [action]);
77
- }
78
- }
79
- setComponentTemplate(TEMPLATE, LinkEditor);
3
+ /**
4
+ * @deprecated use {@link LinkSidebarWidget} instead
5
+ */
6
+ const LinkEditor = LinkSidebarWidget;
80
7
 
81
8
  export { LinkEditor as default };
82
9
  //# sourceMappingURL=link-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link-editor.js","sources":["../../../../src/components/plugins/link/link-editor.ts"],"sourcesContent":["import { action } from '@ember/object';\nimport Component from '@glimmer/component';\nimport { NodeSelection } from 'prosemirror-state';\nimport { linkToHref } from '#root/utils/_private/string-utils.ts';\nimport { LinkExternalIcon } from '@appuniversum/ember-appuniversum/components/icons/link-external';\nimport { LinkBrokenIcon } from '@appuniversum/ember-appuniversum/components/icons/link-broken';\nimport type SayController from '#root/core/say-controller.ts';\n\ntype Args = {\n controller?: SayController;\n};\nexport default class LinkEditor extends Component<Args> {\n LinkExternalIcon = LinkExternalIcon;\n LinkBrokenIcon = LinkBrokenIcon;\n\n get controller() {\n return this.args.controller;\n }\n\n get href() {\n return this.link?.node.attrs['href'] as string | undefined;\n }\n\n set href(value: string | undefined) {\n if (this.link && this.controller) {\n const { pos } = this.link;\n this.controller.withTransaction(\n (tr) => tr.setNodeAttribute(pos, 'href', value),\n // After reload the default (activeEditorView) is just the link text, so use the main view\n { view: this.controller.mainEditorView },\n );\n }\n }\n\n @action\n setHref(event: InputEvent) {\n const text = (event.target as HTMLInputElement).value;\n const href = linkToHref(text);\n this.href = href || text;\n }\n\n @action\n selectHref(event: InputEvent) {\n (event.target as HTMLInputElement).select();\n }\n\n get link() {\n if (this.controller) {\n const { selection } = this.controller.mainEditorState;\n if (\n selection instanceof NodeSelection &&\n selection.node.type === this.controller.schema.nodes['link']\n ) {\n return { pos: selection.from, node: selection.node };\n }\n }\n return;\n }\n\n @action\n remove() {\n if (this.controller && this.link) {\n const { pos, node } = this.link;\n this.controller.withTransaction(\n (tr) => {\n return tr.replaceWith(pos, pos + node.nodeSize, node.content);\n },\n { view: this.controller.mainEditorView },\n );\n }\n }\n}\n"],"names":["LinkEditor","Component","LinkExternalIcon","LinkBrokenIcon","controller","args","href","link","node","attrs","value","pos","withTransaction","tr","setNodeAttribute","view","mainEditorView","setHref","event","text","target","linkToHref","n","prototype","action","selectHref","select","selection","mainEditorState","NodeSelection","type","schema","nodes","from","remove","replaceWith","nodeSize","content","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;AAWe,MAAMA,UAAU,SAASC,SAAS,CAAO;AACtDC,EAAAA,gBAAgB,GAAGA,gBAAgB;AACnCC,EAAAA,cAAc,GAAGA,cAAc;EAE/B,IAAIC,UAAUA,GAAG;AACf,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,UAAU;AAC7B,EAAA;EAEA,IAAIE,IAAIA,GAAG;IACT,OAAO,IAAI,CAACC,IAAI,EAAEC,IAAI,CAACC,KAAK,CAAC,MAAM,CAAC;AACtC,EAAA;EAEA,IAAIH,IAAIA,CAACI,KAAyB,EAAE;AAClC,IAAA,IAAI,IAAI,CAACH,IAAI,IAAI,IAAI,CAACH,UAAU,EAAE;MAChC,MAAM;AAAEO,QAAAA;OAAK,GAAG,IAAI,CAACJ,IAAI;AACzB,MAAA,IAAI,CAACH,UAAU,CAACQ,eAAe,CAC5BC,EAAE,IAAKA,EAAE,CAACC,gBAAgB,CAACH,GAAG,EAAE,MAAM,EAAED,KAAK,CAAC;AAC/C;AACA,MAAA;AAAEK,QAAAA,IAAI,EAAE,IAAI,CAACX,UAAU,CAACY;AAAe,OACzC,CAAC;AACH,IAAA;AACF,EAAA;EAGAC,OAAOA,CAACC,KAAiB,EAAE;AACzB,IAAA,MAAMC,IAAI,GAAID,KAAK,CAACE,MAAM,CAAsBV,KAAK;AACrD,IAAA,MAAMJ,IAAI,GAAGe,UAAU,CAACF,IAAI,CAAC;AAC7B,IAAA,IAAI,CAACb,IAAI,GAAGA,IAAI,IAAIa,IAAI;AAC1B,EAAA;AAAC,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CALAC,MAAM,CAAA,CAAA;AAAA;EAQPC,UAAUA,CAACP,KAAiB,EAAE;AAC3BA,IAAAA,KAAK,CAACE,MAAM,CAAsBM,MAAM,EAAE;AAC7C,EAAA;AAAC,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAHAC,MAAM,CAAA,CAAA;AAAA;EAKP,IAAIjB,IAAIA,GAAG;IACT,IAAI,IAAI,CAACH,UAAU,EAAE;MACnB,MAAM;AAAEuB,QAAAA;AAAU,OAAC,GAAG,IAAI,CAACvB,UAAU,CAACwB,eAAe;MACrD,IACED,SAAS,YAAYE,aAAa,IAClCF,SAAS,CAACnB,IAAI,CAACsB,IAAI,KAAK,IAAI,CAAC1B,UAAU,CAAC2B,MAAM,CAACC,KAAK,CAAC,MAAM,CAAC,EAC5D;QACA,OAAO;UAAErB,GAAG,EAAEgB,SAAS,CAACM,IAAI;UAAEzB,IAAI,EAAEmB,SAAS,CAACnB;SAAM;AACtD,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAGA0B,EAAAA,MAAMA,GAAG;AACP,IAAA,IAAI,IAAI,CAAC9B,UAAU,IAAI,IAAI,CAACG,IAAI,EAAE;MAChC,MAAM;QAAEI,GAAG;AAAEH,QAAAA;OAAM,GAAG,IAAI,CAACD,IAAI;AAC/B,MAAA,IAAI,CAACH,UAAU,CAACQ,eAAe,CAC5BC,EAAE,IAAK;AACN,QAAA,OAAOA,EAAE,CAACsB,WAAW,CAACxB,GAAG,EAAEA,GAAG,GAAGH,IAAI,CAAC4B,QAAQ,EAAE5B,IAAI,CAAC6B,OAAO,CAAC;AAC/D,MAAA,CAAC,EACD;AAAEtB,QAAAA,IAAI,EAAE,IAAI,CAACX,UAAU,CAACY;AAAe,OACzC,CAAC;AACH,IAAA;AACF,EAAA;AAAC,EAAA;IAAAM,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAXAC,MAAM,CAAA,CAAA;AAAA;AAYT;AAACc,oBAAA,CAAAC,QAAA,EA5DoBvC,UAAU,CAAA;;;;"}
1
+ {"version":3,"file":"link-editor.js","sources":["../../../../src/components/plugins/link/link-editor.gts"],"sourcesContent":["import LinkSidebarWidget from './link-sidebar-widget.gts';\n\n/**\n * @deprecated use {@link LinkSidebarWidget} instead\n */\nconst LinkEditor = LinkSidebarWidget;\nexport default LinkEditor;\n"],"names":["LinkEditor","LinkSidebarWidget"],"mappings":";;AAEA;;AAEC;AACD,MAAMA,UAAA,GAAaC;;;;"}