void showPackageVersionsDialog()

in lib/sharing/editor_ui.dart [65:111]


  void showPackageVersionsDialog() {
    final directlyImportableList = StringBuffer('<dl>');
    final indirectList = StringBuffer('<dl>');
    for (final package in _packageInfo) {
      final packageUrl = 'https://pub.dev/packages/${package.name}';
      final packageLink = AnchorElement()
        ..href = packageUrl
        ..setAttribute('target', '_blank')
        ..text = package.name;
      final dt = '<dt>${packageLink.outerHtml}</dt>';
      final packageVersion = package.version;
      final versionLink = SpanElement()
        ..children.add(AnchorElement()
          ..href = '$packageUrl/versions/$packageVersion'
          ..setAttribute('target', '_blank')
          ..text = packageVersion);
      final dd = '<dd>${versionLink.outerHtml}</dd>';
      if (package.supported) {
        directlyImportableList.write(dt);
        directlyImportableList.write(dd);
      } else {
        indirectList.write(dt);
        indirectList.write(dd);
      }
    }
    directlyImportableList.write('</dl>');
    indirectList.write('</dl>');
    final directDl = Element.html(directlyImportableList.toString(),
        treeSanitizer: NodeTreeSanitizer.trusted);
    final indirectDl = Element.html(indirectList.toString(),
        treeSanitizer: NodeTreeSanitizer.trusted);

    final div = DivElement()
      ..children.add(DivElement()
        ..children
            .add(ParagraphElement()..text = 'Directly importable packages')
        ..children.add(directDl)
        ..children.add(ParagraphElement()
          ..text = 'Packages available transitively'
          ..children.add(BRElement())
          ..children.add(SpanElement()
            ..text = '(These are not directly importable.)'
            ..classes.add('muted')))
        ..children.add(indirectDl)
        ..classes.add('keys-dialog'));
    dialog.showOk('Pub package versions', div.innerHtml);
  }