All files / app/mods/org notes.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 0/0
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107117x         117x                                                                                                                                                                   117x         117x         117x                  
import { DateTime } from 'luxon';
import { Ext } from '../../model/ext';
import { Mod } from '../../model/tag';
import { Template } from '../../model/template';
 
export const notesTemplate: Template = {
  tag: 'notes',
  name: $localize` Notebook`,
  config: {
    mod: $localize`✍️ Notes`,
    type: 'lens',
    experimental: true,
    generated: $localize`Generated by jasper-ui ${DateTime.now().toISO()}`,
    view: $localize`📓️`,
    description: $localize`Keep private notes in a notebook.`,
    icons: [
      { label: $localize`✍️` },
    ],
    filters: [
      { query: 'notes', label: $localize`✍️ notes`, title: $localize`Notes`, group: $localize`Templates 🎨️` },
    ],
    overrideForm: true,
    form: [{
      key: 'defaultCols',
      type: 'select',
      props: {
        label: $localize`Columns:`,
        options: [
          { label: $localize`Default` },
          { value: 1, label: $localize`1 Column` },
          { value: 2, label: $localize`2 Columns` },
          { value: 3, label: $localize`3 Columns` },
          { value: 4, label: $localize`4 Columns` },
          { value: 5, label: $localize`5 Columns` },
          { value: 6, label: $localize`6 Columns` },
        ],
      },
    }, {
      key: 'badges',
      className: 'badges',
      type: 'tags',
      props: {
        label: $localize`Badges:`,
        addText: $localize`+ Add another badge tag`,
      }
    }, {
      key: 'queryFilters',
      type: 'list',
      props: {
        label: $localize`Query Filters:`,
        addText: $localize`+ Add another query filter`,
      },
      fieldArray: {
        fieldGroup: [{
          key: 'label',
          type: 'string',
          props: {
            label: $localize`Label:`
          }
        }, {
          key: 'query',
          type: 'query',
          props: {
            required: true,
          }
        }]
      }
    }],
    advancedForm: [],
  },
  defaults: {
    defaultCols: 0, // Leave to CSS screen size detection, but show cols dropdown
    badges: ['reminder', 'important'],
    queryFilters: [
      { query: 'reminder', label: $localize`🎗️ reminder` },
      { query: 'important', label: $localize`‼️ important` },
    ],
    defaultSort: ['modified'],
    addTags: [],
  },
  schema: {
    optionalProperties: {
      badges: { elements: { type: 'string' } },
    },
  }
};
 
export const reminderExt: Ext = {
  tag: 'reminder',
  name: $localize`🎗️`
}
 
export const importantExt: Ext = {
  tag: 'reminder',
  name: $localize`‼️`
}
 
export const notesMod: Mod = {
  template: [
    notesTemplate,
  ],
  ext: [
    reminderExt,
    importantExt,
  ]
};