diff --git a/client/src/app/core/core-services/app-load.service.ts b/client/src/app/core/core-services/app-load.service.ts index 97728f430..c926b4006 100644 --- a/client/src/app/core/core-services/app-load.service.ts +++ b/client/src/app/core/core-services/app-load.service.ts @@ -99,8 +99,8 @@ export class AppLoadService { private isSearchableModelEntry(entry: ModelEntry | SearchableModelEntry): entry is SearchableModelEntry { if ((entry).searchOrder !== undefined) { // We need to double check, because Typescipt cannot check contructors. If typescript could differentiate - // between (ModelConstructor) and (new (...args: any[]) => (BaseModel & Searchable)), we would not have - // to check if the result of the contructor (the model instance) is really a searchable. + // between (ModelConstructor) and (new (...args: any[]) => (BaseModel & Searchable)), + // we would not have to check if the result of the contructor (the model instance) is really a searchable. if (!isSearchable(new entry.viewModel())) { throw Error( `Wrong configuration for ${entry.model.COLLECTIONSTRING}: you gave a searchOrder, but the model is not searchable.` diff --git a/client/src/app/core/core-services/data-store.service.ts b/client/src/app/core/core-services/data-store.service.ts index e569f15cb..a9ff9fc7e 100644 --- a/client/src/app/core/core-services/data-store.service.ts +++ b/client/src/app/core/core-services/data-store.service.ts @@ -160,7 +160,8 @@ interface JsonStorage { } /** - * TODO: Avoid circular dependencies between `DataStoreUpdateManagerService` and `DataStoreService` and split them into two files + * TODO: Avoid circular dependencies between `DataStoreUpdateManagerService` and + * `DataStoreService` and split them into two files */ @Injectable({ providedIn: 'root' diff --git a/client/src/app/core/pdf-services/pdf-document.service.ts b/client/src/app/core/pdf-services/pdf-document.service.ts index 965c60b09..30f3c69d1 100644 --- a/client/src/app/core/pdf-services/pdf-document.service.ts +++ b/client/src/app/core/pdf-services/pdf-document.service.ts @@ -47,8 +47,8 @@ export class PdfError extends Error { * Provides the general document structure for PDF documents, such as page margins, header, footer and styles. * Also provides general purpose open and download functions. * - * Use a local pdf service (i.e. MotionPdfService) to get the document definition for the content and use this service to - * open or download the pdf document + * Use a local pdf service (i.e. MotionPdfService) to get the document definition for the content and + * use this service to open or download the pdf document * * @example * ```ts diff --git a/client/src/app/core/repositories/config/config-repository.service.ts b/client/src/app/core/repositories/config/config-repository.service.ts index cc9aac81c..c5cab929d 100644 --- a/client/src/app/core/repositories/config/config-repository.service.ts +++ b/client/src/app/core/repositories/config/config-repository.service.ts @@ -80,7 +80,8 @@ export class ConfigRepositoryService extends BaseRepository { } /** - * Helper function to get the `viewModelListObservable` of a given repository object and creates dynamic filters for them + * Helper function to get the `viewModelListObservable` of a given repository object and creates dynamic + * filters for them * * @param repo repository to create dynamic filters from * @param filter the OSFilter for the filter property diff --git a/client/src/app/core/ui-services/diff.service.spec.ts b/client/src/app/core/ui-services/diff.service.spec.ts index 4b081f5e8..b5afcb9c8 100644 --- a/client/src/app/core/ui-services/diff.service.spec.ts +++ b/client/src/app/core/ui-services/diff.service.spec.ts @@ -754,7 +754,10 @@ describe('DiffService', () => { })); it('handles inserted paragraphs (2)', inject([DiffService], (service: DiffService) => { - // Specifically, Noch

should not be enclosed by ..., as Noch

would be seriously broken + /** + * Specifically, Noch

should not be enclosed by ..., as Noch

+ * would be seriously broken + */ const before = "

rief sie alle sieben herbei und sprach 'liebe Kinder, ich will hinaus in den Wald, seid

", after = diff --git a/client/src/app/core/ui-services/diff.service.ts b/client/src/app/core/ui-services/diff.service.ts index e721a4c16..30c6716c1 100644 --- a/client/src/app/core/ui-services/diff.service.ts +++ b/client/src/app/core/ui-services/diff.service.ts @@ -25,7 +25,8 @@ export enum ModificationType { } /** - * This data structure is used when determining the most specific common ancestor of two HTML nodes (`node1` and `node2`) + * This data structure is used when determining the most specific common ancestor of two HTML node + * (`node1` and `node2`) * within the same Document Fragment. */ interface CommonAncestorData { @@ -34,11 +35,13 @@ interface CommonAncestorData { */ commonAncestor: Node; /** - * The nodes inbetween `commonAncestor` and the `node1` in the DOM hierarchy. Empty, if node1 is a direct descendant. + * The nodes inbetween `commonAncestor` and the `node1` in the DOM hierarchy. + * Empty, if node1 is a direct descendant. */ trace1: Node[]; /** - * The nodes inbetween `commonAncestor` and the `node2` in the DOM hierarchy. Empty, if node2 is a direct descendant. + * The nodes inbetween `commonAncestor` and the `node2` in the DOM hierarchy. + * Empty, if node2 is a direct descendant. */ trace2: Node[]; /** @@ -109,7 +112,8 @@ export interface LineRange { /** * The end line number. * HINT: As this object is usually referring to actual line numbers, not lines, - * the line starting by `to` is not included in the extracted content anymore, only the text between `from` and `to`. + * the line starting by `to` is not included in the extracted content anymore, + * only the text between `from` and `to`. */ to: number; } @@ -167,7 +171,9 @@ export interface DiffLinesInParagraph { * * ```ts * const lineLength = 80; - * const lineNumberedText = this.lineNumbering.insertLineNumbers('

A line

Another line

  • A list item
  • Yet another item
', lineLength); + * const lineNumberedText = this.lineNumbering.insertLineNumbers( + * '

A line

Another line

  • A list item
  • Yet another item
', lineLength + * ); * const extractFrom = 2; * const extractUntil = 3; * const extractedData = this.diffService.extractRangeByLineNumbers(lineNumberedText, extractFrom, extractUntil) @@ -197,7 +203,8 @@ export interface DiffLinesInParagraph { * Given a diff'ed string, apply all changes to receive the new version of the text: * * ```ts - * const diffedHtml = '

Test Test 2 Another test Test 3

Test 4

'; + * const diffedHtml = + * '

Test Test 2 Another test Test 3

Test 4

'; * const newVersion = this.diffService.diffHtmlToFinalText(diffedHtml); * ``` * @@ -205,7 +212,11 @@ export interface DiffLinesInParagraph { * * ```ts * const lineLength = 80; - * const lineNumberedText = this.lineNumbering.insertLineNumbers('

A line

Another line

  • A list item
  • Yet another item
', lineLength); + * const lineNumberedText = + * this.lineNumbering.insertLineNumbers( + * '

A line

Another line

  • A list item
  • Yet another item
', + * lineLength + * ); * const merged = this.diffService.replaceLines(lineNumberedText, '

Replaced paragraph

', 1, 2); * ``` */ @@ -1063,7 +1074,8 @@ export class DiffService { } /** - * This fixes a very specific, really weird bug that is tested in the test case "does not a change in a very specific case". + * This fixes a very specific, really weird bug that is tested in the test case "does not a change in a very + * specific case. * * @param {string}diffStr * @return {string} @@ -1178,7 +1190,8 @@ export class DiffService { /** * Given a DOM tree and a specific node within that tree, this method returns the HTML string from the beginning * of this tree up to this node. - * The returned string in itself is not renderable, as it stops in the middle of the complete HTML, with opened tags. + * The returned string in itself is not renderable, as it stops in the middle of the complete HTML, with + * opened tags. * * Implementation hint: the first element of "toChildTrace" array needs to be a child element of "node" * @param {Node} node @@ -1228,7 +1241,8 @@ export class DiffService { /** * Given a DOM tree and a specific node within that tree, this method returns the HTML string beginning after this * node to the end of the tree. - * The returned string in itself is not renderable, as it starts in the middle of the complete HTML, with opened tags. + * The returned string in itself is not renderable, as it starts in the middle of the complete HTML + * with opened tags. * * Implementation hint: the first element of "fromChildTrace" array needs to be a child element of "node" * @param {Node} node @@ -1283,7 +1297,8 @@ export class DiffService { * Returns the HTML snippet between two given line numbers. * extractRangeByLineNumbers * Hint: - * - The last line (toLine) is not included anymore, as the number refers to the line breaking element at the end of the line + * - The last line (toLine) is not included anymore, as the number refers to the line breaking element at the end + * of the line * - if toLine === null, then everything from fromLine to the end of the fragment is returned * * In addition to the HTML snippet, additional information is provided regarding the most specific DOM element @@ -1296,7 +1311,8 @@ export class DiffService { * rendering it and for merging it again correctly. * - os-split-*: These classes are set for all HTML Tags that have been split into two by this process, * e.g. if the fromLine- or toLine-line-break was somewhere in the middle of this tag. - * If a tag is split, the first one receives "os-split-after", and the second one "os-split-before". + * If a tag is split, the first one receives "os-split-after", and the second + * one "os-split-before". * For example, for the following string

Line 1
Line 2
Line 3

: * - extracting line 1 to 2 results in

Line 1

* - extracting line 2 to 3 results in

Line 2

@@ -1588,7 +1604,8 @@ export class DiffService { /** * This returns the line number range in which changes (insertions, deletions) are encountered. - * As in extractRangeByLineNumbers(), "to" refers to the line breaking element at the end, i.e. the start of the following line. + * As in extractRangeByLineNumbers(), "to" refers to the line breaking element at the end, i.e. the start of the + * following line. * * @param {string} diffHtml * @returns {LineRange} diff --git a/client/src/app/core/ui-services/linenumbering.service.ts b/client/src/app/core/ui-services/linenumbering.service.ts index 14e4e109c..593465215 100644 --- a/client/src/app/core/ui-services/linenumbering.service.ts +++ b/client/src/app/core/ui-services/linenumbering.service.ts @@ -29,7 +29,8 @@ export interface LineNumberRange { /** * The end line number. * HINT: As this object is usually referring to actual line numbers, not lines, - * the line starting by `to` is not included in the extracted content anymore, only the text between `from` and `to`. + * the line starting by `to` is not included in the extracted content anymore, only the text between + * `from` and `to`. */ to: number; } @@ -67,7 +68,9 @@ interface SectionHeading { * * Removing line numbers from a line-numbered string: * ```ts - * const lineNumberedHtml = '

 Lorem ipsum dolorsit amet

'; + * const lineNumberedHtml = + * '

  + * Lorem ipsum dolorsit amet

'; * const originalHtml = this.lineNumbering.stripLineNumbers(inHtml); * ``` * @@ -118,7 +121,8 @@ export class LinenumberingService { // The line number counter private currentLineNumber: number = null; - // Indicates that we just entered a block element and we want to add a line number without line break at the beginning. + // Indicates that we just entered a block element and we want to add a line number without line break + // at the beginning. private prependLineNumberToFirstText = false; // A workaround to prevent double line numbers diff --git a/client/src/app/core/ui-services/tree.service.ts b/client/src/app/core/ui-services/tree.service.ts index 92de6c810..3bc179eac 100644 --- a/client/src/app/core/ui-services/tree.service.ts +++ b/client/src/app/core/ui-services/tree.service.ts @@ -354,7 +354,8 @@ export class TreeService { * * @param item The current item from which the flat node will be created. * @param level The level the flat node will be. - * @param additionalTag Optional: A key of the items. If this parameter is set, the nodes will have a tag for filtering them. + * @param additionalTag Optional: A key of the items. If this parameter is set, + * the nodes will have a tag for filtering them. * * @returns An array containing the parent node with all its children. */ diff --git a/client/src/app/shared/components/logo/logo.component.ts b/client/src/app/shared/components/logo/logo.component.ts index 2183c53dd..3ceb6fb71 100644 --- a/client/src/app/shared/components/logo/logo.component.ts +++ b/client/src/app/shared/components/logo/logo.component.ts @@ -62,7 +62,8 @@ export class LogoComponent implements OnInit, OnDestroy { /** * Get the image based on custom images and footer. - * If a custom image is set and this component is displayed as footer or there is no custom image, then the OpenSlides logo is used. + * If a custom image is set and this component is displayed as footer or there is no custom image, then the + * OpenSlides logo is used. * * @returns path to image */ diff --git a/client/src/app/shared/components/search-value-selector/search-value-selector.component.ts b/client/src/app/shared/components/search-value-selector/search-value-selector.component.ts index 2197446af..059c09236 100644 --- a/client/src/app/shared/components/search-value-selector/search-value-selector.component.ts +++ b/client/src/app/shared/components/search-value-selector/search-value-selector.component.ts @@ -25,7 +25,8 @@ import { Selectable } from '../selectable'; /** * Searchable Value Selector * - * Use `multiple="true"`, `[inputListValues]=myValues`,`formControlName="myformcontrol"` and `placeholder={{listname}}` to pass the Values and Listname + * Use `multiple="true"`, `[inputListValues]=myValues`,`formControlName="myformcontrol"` and + * `placeholder={{listname}}` to pass the Values and Listname * * ## Examples: * diff --git a/client/src/app/shared/components/sort-filter-bar/sort-filter-bar.component.ts b/client/src/app/shared/components/sort-filter-bar/sort-filter-bar.component.ts index 1e2709509..ab04ca982 100644 --- a/client/src/app/shared/components/sort-filter-bar/sort-filter-bar.component.ts +++ b/client/src/app/shared/components/sort-filter-bar/sort-filter-bar.component.ts @@ -62,7 +62,8 @@ export class SortFilterBarComponent { public extraItemInfo: string; /** - * Optional string to tell the verbose name of the filtered items. This string is displayed, if no filter service is given. + * Optional string to tell the verbose name of the filtered items. This string is displayed, + * if no filter service is given. */ @Input() public itemsVerboseName: string; diff --git a/client/src/app/shared/components/sorting-tree/sorting-tree.component.ts b/client/src/app/shared/components/sorting-tree/sorting-tree.component.ts index 888e64869..9afaa501e 100644 --- a/client/src/app/shared/components/sorting-tree/sorting-tree.component.ts +++ b/client/src/app/shared/components/sorting-tree/sorting-tree.component.ts @@ -865,7 +865,8 @@ export class SortingTreeComponent implemen /** * Function to get the data from tree. * - * @returns An array that contains all necessary information to see the connections between the nodes and their subnodes. + * @returns An array that contains all necessary information to see the connections between the nodes + * and their subnodes. */ public getTreeData(): TreeIdNode[] { return this.treeService.makeTreeFromFlatTree(this.osTreeData); @@ -940,12 +941,13 @@ export class SortingTreeComponent implemen } /** - * Function to check recursively the child nodes of a given node whether they will be filtered or if they should be seen. + * Function to check recursively the child nodes of a given node whether they will be filtered + * or if they should be seen. * The result is necessary to decide whether the parent node is expandable or not. * * @param node is the inspected node. - * @param parent optional: If the node has a parent, it is necessary to see if this parent will be filtered or is seen. - * + * @param parent optional: If the node has a parent, it is necessary to see if this parent + * will be filtered or is seen. * @returns A boolean which describes if the given node will be filtered. */ private checkChildrenToBeFiltered(node: FlatNode, parent?: FlatNode): boolean { diff --git a/client/src/app/shared/models/base/base-form-control.ts b/client/src/app/shared/models/base/base-form-control.ts index 67f1e93e4..f77ec71f8 100644 --- a/client/src/app/shared/models/base/base-form-control.ts +++ b/client/src/app/shared/models/base/base-form-control.ts @@ -7,7 +7,8 @@ import { MatFormFieldControl } from '@angular/material/form-field'; import { Subject, Subscription } from 'rxjs'; /** - * Abstract class to implement some simple logic and provide the subclass as a controllable form-control in `MatFormField`. + * Abstract class to implement some simple logic and provide the subclass as a controllable + * form-control in `MatFormField`. * * Please remember to prepare the `providers` in the `@Component`-decorator. Something like: * diff --git a/client/src/app/site/assignments/components/assignment-poll-dialog/assignment-poll-dialog.component.ts b/client/src/app/site/assignments/components/assignment-poll-dialog/assignment-poll-dialog.component.ts index 4a49f55a2..d449b8ccd 100644 --- a/client/src/app/site/assignments/components/assignment-poll-dialog/assignment-poll-dialog.component.ts +++ b/client/src/app/site/assignments/components/assignment-poll-dialog/assignment-poll-dialog.component.ts @@ -91,7 +91,8 @@ export class AssignmentPollDialogComponent extends BasePollDialogComponent !!groups.length)); diff --git a/client/src/app/site/motions/modules/motion-detail/components/motion-detail-diff/motion-detail-diff.component.ts b/client/src/app/site/motions/modules/motion-detail/components/motion-detail-diff/motion-detail-diff.component.ts index 9db9a9593..ec2f6383f 100644 --- a/client/src/app/site/motions/modules/motion-detail/components/motion-detail-diff/motion-detail-diff.component.ts +++ b/client/src/app/site/motions/modules/motion-detail/components/motion-detail-diff/motion-detail-diff.component.ts @@ -29,7 +29,8 @@ import { * This component displays the original motion text with the change blocks inside. * If the user is an administrator, each change block can be rejected. * - * The line numbers are provided within the pre-rendered HTML, so we have to work with raw HTML and native HTML elements. + * The line numbers are provided within the pre-rendered HTML, so we have to work with raw HTML + * and native HTML elements. * * It takes the styling from the parent component. * diff --git a/client/src/app/site/motions/modules/motion-detail/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts b/client/src/app/site/motions/modules/motion-detail/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts index 16ee35660..e3136d5fb 100644 --- a/client/src/app/site/motions/modules/motion-detail/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts +++ b/client/src/app/site/motions/modules/motion-detail/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts @@ -20,7 +20,8 @@ import { ViewMotionChangeRecommendation } from 'app/site/motions/models/view-mot * It's called from motion-details for displaying the whole motion text as well as from the diff view to show the * unchanged parts of the motion. * - * The line numbers are provided within the pre-rendered HTML, so we have to work with raw HTML and native HTML elements. + * The line numbers are provided within the pre-rendered HTML, so we have to work with raw HTML + * and native HTML elements. * * It takes the styling from the parent component. * diff --git a/client/src/app/site/motions/modules/motion-detail/components/motion-detail/motion-detail.component.ts b/client/src/app/site/motions/modules/motion-detail/components/motion-detail/motion-detail.component.ts index c398651fe..343bca0a9 100644 --- a/client/src/app/site/motions/modules/motion-detail/components/motion-detail/motion-detail.component.ts +++ b/client/src/app/site/motions/modules/motion-detail/components/motion-detail/motion-detail.component.ts @@ -730,7 +730,9 @@ export class MotionDetailComponent extends BaseViewComponent implements OnInit, this.contentForm.addControl('text_' + paragraphNo, new FormControl('')); contentPatch.selected_paragraphs.push(paragraph); - contentPatch.text = formMotion.amendment_paragraphs[paragraphNo]; // Workaround as 'text' is required from the backend + + // Workaround as 'text' is required from the backend + contentPatch.text = formMotion.amendment_paragraphs[paragraphNo]; contentPatch['text_' + paragraphNo] = formMotion.amendment_paragraphs[paragraphNo]; } }); @@ -1370,7 +1372,8 @@ export class MotionDetailComponent extends BaseViewComponent implements OnInit, this.pdfExport.exportSingleMotion(this.motion, { lnMode: this.lnMode === this.LineNumberingMode.Inside ? this.LineNumberingMode.Outside : this.lnMode, crMode: this.crMode, - comments: this.motion.commentSectionIds.concat([PERSONAL_NOTE_ID]) // export all comment fields as well as personal note + // export all comment fields as well as personal note + comments: this.motion.commentSectionIds.concat([PERSONAL_NOTE_ID]) }); } diff --git a/client/src/app/site/motions/services/motion-multiselect.service.ts b/client/src/app/site/motions/services/motion-multiselect.service.ts index d6dc02087..6a49cab8e 100644 --- a/client/src/app/site/motions/services/motion-multiselect.service.ts +++ b/client/src/app/site/motions/services/motion-multiselect.service.ts @@ -206,7 +206,8 @@ export class MotionMultiselectService { if (selectedChoice.action === choices[0]) { requestData = motions.map(motion => { let submitterIds = [...motion.sorted_submitter_ids, ...(selectedChoice.items as number[])]; - submitterIds = submitterIds.filter((id, index, self) => self.indexOf(id) === index); // remove duplicates + // remove duplicates + submitterIds = submitterIds.filter((id, index, self) => self.indexOf(id) === index); return { id: motion.id, submitters: submitterIds diff --git a/client/src/app/site/motions/services/motion-pdf.service.ts b/client/src/app/site/motions/services/motion-pdf.service.ts index 6c751db0b..e0daad377 100644 --- a/client/src/app/site/motions/services/motion-pdf.service.ts +++ b/client/src/app/site/motions/services/motion-pdf.service.ts @@ -78,7 +78,8 @@ export class MotionPdfService { * @param crMode determine the used change Recommendation mode * @param contentToExport determine which content is to export. If left out, everything will be exported * @param infoToExport determine which metaInfo to export. If left out, everything will be exported. - * @param commentsToExport comments to chose for export. If 'allcomments' is set in infoToExport, this selection will be ignored and all comments exported + * @param commentsToExport comments to chose for export. If 'allcomments' is set in infoToExport, + * this selection will be ignored and all comments exported * @returns doc def for the motion */ public motionToDocDef(motion: ViewMotion, exportInfo?: MotionExportInfo): object { diff --git a/client/src/app/site/polls/components/base-poll-detail.component.ts b/client/src/app/site/polls/components/base-poll-detail.component.ts index 7215844a4..d51935842 100644 --- a/client/src/app/site/polls/components/base-poll-detail.component.ts +++ b/client/src/app/site/polls/components/base-poll-detail.component.ts @@ -114,7 +114,8 @@ export abstract class BasePollDetailComponent this.poll && this.canSeeVotes), // filter first for valid poll state to avoid unneccessary iteration of potentially thousands of votes + // filter first for valid poll state to avoid unneccessary iteration of potentially thousands of votes + filter(() => this.poll && this.canSeeVotes), map(votes => votes.filter(vote => vote.option.poll_id === this.poll.id)), filter(votes => !!votes.length) ) diff --git a/client/src/app/site/projector/services/current-agenda-item.service.ts b/client/src/app/site/projector/services/current-agenda-item.service.ts index 08aa16099..01941443d 100644 --- a/client/src/app/site/projector/services/current-agenda-item.service.ts +++ b/client/src/app/site/projector/services/current-agenda-item.service.ts @@ -59,7 +59,8 @@ export class CurrentListOfSpeakersService { private getCurrentListOfSpeakersForProjector(projector: ViewProjector): ViewListOfSpeakers | null { const nonStableElements = projector.elements.filter(element => !element.stable); if (nonStableElements.length > 0) { - const nonStableElement = this.slideManager.getIdentifialbeProjectorElement(nonStableElements[0]); // The normal case is just one non stable slide + // The normal case is just one non stable slide + const nonStableElement = this.slideManager.getIdentifialbeProjectorElement(nonStableElements[0]); try { const viewModel = this.projectorService.getViewModelFromProjectorElement(nonStableElement); if (isBaseViewModelWithListOfSpeakers(viewModel)) { diff --git a/client/tslint.json b/client/tslint.json index 0514acce1..15b113ce8 100644 --- a/client/tslint.json +++ b/client/tslint.json @@ -1,11 +1,7 @@ { "rulesDirectory": ["node_modules/codelyzer"], "linterOptions": { - "exclude": [ - "src/polyfills.ts", - "src/test.ts", - "src/app/shared/shared.module.ts" - ] + "exclude": ["src/polyfills.ts", "src/test.ts", "src/app/shared/shared.module.ts"] }, "rules": { "array-type": [true, "array"], @@ -21,6 +17,7 @@ "interface-name": false, "interface-over-type-literal": true, "label-position": true, + "max-line-length": [true, { "limit": 120, "ignore-pattern": "^import [^,]+ from" }], "member-access": false, "member-ordering": [ true, @@ -30,7 +27,19 @@ ], "no-arg": true, "no-bitwise": true, - "no-console": [true, "table", "clear", "count", "countReset", "info", "time", "timeEnd", "timeline", "timelineEnd", "trace"], + "no-console": [ + true, + "table", + "clear", + "count", + "countReset", + "info", + "time", + "timeEnd", + "timeline", + "timelineEnd", + "trace" + ], "no-consecutive-blank-lines": false, "no-construct": true, "no-debugger": true, @@ -51,26 +60,33 @@ "no-var-keyword": true, "object-literal-key-quotes": [true, "as-needed"], "object-literal-sort-keys": false, - "ordered-imports": [true, { - "import-source-order": "case-sensitive", - "grouped-imports": true, - "groups": [{ - "name": "angular", - "match": "^@angular", - "order": 10 - },{ - "name": "internal dependencies", - "match": "^(app/|\\.?\\./).*", - "order": 30 - },{ - "name": "external dependencies", - "_match": "^(?!(app/|\\.?\\./)).*", - "match": ".*", - "order": 20 - }], - "named-imports-order": "case-insensitive", - "module-source-path": "basename" - }], + "ordered-imports": [ + true, + { + "import-source-order": "case-sensitive", + "grouped-imports": true, + "groups": [ + { + "name": "angular", + "match": "^@angular", + "order": 10 + }, + { + "name": "internal dependencies", + "match": "^(app/|\\.?\\./).*", + "order": 30 + }, + { + "name": "external dependencies", + "_match": "^(?!(app/|\\.?\\./)).*", + "match": ".*", + "order": 20 + } + ], + "named-imports-order": "case-insensitive", + "module-source-path": "basename" + } + ], "prefer-const": true, "radix": true, "triple-equals": [true, "allow-null-check"],