ngx-edu-sharing-ui 10.0.20 → 10.0.22

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 (131) hide show
  1. package/assets/scss/material-theme.scss +3 -3
  2. package/assets/scss/mixins.scss +1 -1
  3. package/assets/scss/variables-root.scss +2 -0
  4. package/assets/scss/variables-scss.scss +3 -4
  5. package/assets/scss/variables.scss +1 -1
  6. package/fesm2022/ngx-edu-sharing-ui.mjs +376 -319
  7. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  8. package/lib/index.d.ts +1 -0
  9. package/lib/list-items/list-widget.d.ts +1 -1
  10. package/lib/mds-viewer/mds-editor-instance-service.abstract.d.ts +14 -0
  11. package/lib/mds-viewer/widget/mds-widget.component.d.ts +6 -4
  12. package/package.json +8 -9
  13. package/esm2022/lib/actionbar/actionbar.component.mjs +0 -206
  14. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +0 -170
  15. package/esm2022/lib/directives/border-box-observer.directive.mjs +0 -71
  16. package/esm2022/lib/directives/check-text-overflow.directive.mjs +0 -71
  17. package/esm2022/lib/directives/drag-nodes/drag-nodes.mjs +0 -14
  18. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +0 -79
  19. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +0 -49
  20. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +0 -105
  21. package/esm2022/lib/directives/focus-state.directive.mjs +0 -44
  22. package/esm2022/lib/directives/icon.directive.mjs +0 -184
  23. package/esm2022/lib/directives/infinite-scroll.directive.mjs +0 -85
  24. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -83
  25. package/esm2022/lib/edu-sharing-ui-configuration.mjs +0 -48
  26. package/esm2022/lib/edu-sharing-ui.module.mjs +0 -82
  27. package/esm2022/lib/index.mjs +0 -96
  28. package/esm2022/lib/list-items/available-widgets.mjs +0 -27
  29. package/esm2022/lib/list-items/format-duration.pipe.mjs +0 -20
  30. package/esm2022/lib/list-items/list-base/list-base.component.mjs +0 -46
  31. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +0 -29
  32. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +0 -56
  33. package/esm2022/lib/list-items/list-items.module.mjs +0 -50
  34. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +0 -41
  35. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +0 -47
  36. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +0 -24
  37. package/esm2022/lib/list-items/list-text/list-text.component.mjs +0 -106
  38. package/esm2022/lib/list-items/list-widget.mjs +0 -49
  39. package/esm2022/lib/list-items/node-row/node-row.component.mjs +0 -24
  40. package/esm2022/lib/list-items/node-source.pipe.mjs +0 -49
  41. package/esm2022/lib/mds/mds-helper.service.mjs +0 -167
  42. package/esm2022/lib/mds/mds.module.mjs +0 -16
  43. package/esm2022/lib/mds-viewer/mds-viewer.component.mjs +0 -170
  44. package/esm2022/lib/mds-viewer/mds-viewer.service.mjs +0 -18
  45. package/esm2022/lib/mds-viewer/replace-element-with-div.mjs +0 -47
  46. package/esm2022/lib/mds-viewer/view-instance.service.mjs +0 -27
  47. package/esm2022/lib/mds-viewer/widget/mds-widget.component.mjs +0 -379
  48. package/esm2022/lib/node-entries/combined-data-source.mjs +0 -41
  49. package/esm2022/lib/node-entries/custom-templates-data-source.mjs +0 -7
  50. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +0 -21
  51. package/esm2022/lib/node-entries/entries-model.mjs +0 -24
  52. package/esm2022/lib/node-entries/items-cap.mjs +0 -47
  53. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +0 -37
  54. package/esm2022/lib/node-entries/node-cache.mjs +0 -73
  55. package/esm2022/lib/node-entries/node-data-source-remote.mjs +0 -4
  56. package/esm2022/lib/node-entries/node-data-source.mjs +0 -117
  57. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +0 -117
  58. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +0 -329
  59. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +0 -44
  60. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +0 -27
  61. package/esm2022/lib/node-entries/node-entries-global.service.mjs +0 -71
  62. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +0 -42
  63. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +0 -294
  64. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +0 -11
  65. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +0 -369
  66. package/esm2022/lib/node-entries/node-entries.component.mjs +0 -132
  67. package/esm2022/lib/node-entries/node-entries.module.mjs +0 -161
  68. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +0 -125
  69. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +0 -48
  70. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +0 -36
  71. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +0 -75
  72. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +0 -53
  73. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +0 -41
  74. package/esm2022/lib/node-url/node-url.component.mjs +0 -132
  75. package/esm2022/lib/pipes/file-size.pipe.mjs +0 -32
  76. package/esm2022/lib/pipes/format-date.pipe.mjs +0 -38
  77. package/esm2022/lib/pipes/mds-duration.pipe.mjs +0 -25
  78. package/esm2022/lib/pipes/node-icon.pipe.mjs +0 -18
  79. package/esm2022/lib/pipes/node-image-size.pipe.mjs +0 -24
  80. package/esm2022/lib/pipes/node-image.pipe.mjs +0 -55
  81. package/esm2022/lib/pipes/node-license.pipe.mjs +0 -24
  82. package/esm2022/lib/pipes/node-person-name.pipe.mjs +0 -50
  83. package/esm2022/lib/pipes/node-title.pipe.mjs +0 -35
  84. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +0 -33
  85. package/esm2022/lib/pipes/property-slug.pipe.mjs +0 -16
  86. package/esm2022/lib/pipes/replace-chars.pipe.mjs +0 -29
  87. package/esm2022/lib/pipes/vcard-name.pipe.mjs +0 -25
  88. package/esm2022/lib/services/abstract/app.service.mjs +0 -3
  89. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +0 -10
  90. package/esm2022/lib/services/abstract/options-helper.service.mjs +0 -3
  91. package/esm2022/lib/services/abstract/toast.service.mjs +0 -3
  92. package/esm2022/lib/services/accessibility.service.mjs +0 -73
  93. package/esm2022/lib/services/app-container.service.mjs +0 -69
  94. package/esm2022/lib/services/local-events.service.mjs +0 -43
  95. package/esm2022/lib/services/node-entries.service.mjs +0 -201
  96. package/esm2022/lib/services/node-helper.service.mjs +0 -330
  97. package/esm2022/lib/services/nodes-drag-drop.service.mjs +0 -155
  98. package/esm2022/lib/services/options-helper-data.service.mjs +0 -142
  99. package/esm2022/lib/services/render-helper.service.mjs +0 -114
  100. package/esm2022/lib/services/repo-url.service.mjs +0 -50
  101. package/esm2022/lib/services/search-helper.service.mjs +0 -52
  102. package/esm2022/lib/services/temporary-storage.service.mjs +0 -48
  103. package/esm2022/lib/services/ui.service.mjs +0 -327
  104. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +0 -50
  105. package/esm2022/lib/spinner/spinner.component.mjs +0 -19
  106. package/esm2022/lib/spinner-small/spinner-small.component.mjs +0 -18
  107. package/esm2022/lib/translations/fallback-translation-handler.mjs +0 -6
  108. package/esm2022/lib/translations/translation-loader.mjs +0 -219
  109. package/esm2022/lib/translations/translation-source.mjs +0 -11
  110. package/esm2022/lib/translations/translations.module.mjs +0 -82
  111. package/esm2022/lib/translations/translations.service.mjs +0 -238
  112. package/esm2022/lib/types/accessibillity.mjs +0 -19
  113. package/esm2022/lib/types/api-models.mjs +0 -2
  114. package/esm2022/lib/types/drag-drop.mjs +0 -2
  115. package/esm2022/lib/types/injection-tokens.mjs +0 -31
  116. package/esm2022/lib/types/keyboard-shortcuts.mjs +0 -11
  117. package/esm2022/lib/types/list-item.mjs +0 -41
  118. package/esm2022/lib/types/option-item.mjs +0 -192
  119. package/esm2022/lib/types/workflow.mjs +0 -25
  120. package/esm2022/lib/util/DateHelper.mjs +0 -200
  121. package/esm2022/lib/util/VCard.mjs +0 -278
  122. package/esm2022/lib/util/color-helper.mjs +0 -124
  123. package/esm2022/lib/util/duration-helper.mjs +0 -102
  124. package/esm2022/lib/util/functions.mjs +0 -13
  125. package/esm2022/lib/util/helper.mjs +0 -64
  126. package/esm2022/lib/util/isNumeric.mjs +0 -11
  127. package/esm2022/lib/util/rest-helper.mjs +0 -42
  128. package/esm2022/lib/util/ui-animation.mjs +0 -146
  129. package/esm2022/lib/util/ui-constants.mjs +0 -21
  130. package/esm2022/ngx-edu-sharing-ui.mjs +0 -5
  131. package/esm2022/public-api.mjs +0 -2
@@ -1,53 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../../pipes/node-image.pipe";
5
- /**
6
- * Displays the preview image of `node`.
7
- *
8
- * When `node` is a video, the animated preview image is replaced with a static canvas unless
9
- * `playAnimation` is set to `true`.
10
- */
11
- export class PreviewImageComponent {
12
- constructor() {
13
- this.playAnimation = false;
14
- // @ViewChild('backdropCanvas') backdropCanvasRef: ElementRef<HTMLCanvasElement>;
15
- this.showCanvas = false;
16
- this.replacedWithStatic = false;
17
- }
18
- onImageLoad(event) {
19
- if (this.node.mimetype?.startsWith('video')) {
20
- const image = event.target;
21
- this.showCanvas = true;
22
- setTimeout(() => {
23
- this.initCanvas(image, this.canvasRef.nativeElement);
24
- // this.initCanvas(image, this.backdropCanvasRef.nativeElement);
25
- this.replacedWithStatic = true;
26
- });
27
- }
28
- }
29
- initCanvas(image, canvas) {
30
- var width = image.naturalWidth;
31
- var height = image.naturalHeight;
32
- canvas.width = width;
33
- canvas.height = height;
34
- canvas.getContext('2d').drawImage(image, 0, 0, width, height);
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PreviewImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PreviewImageComponent, selector: "es-preview-image", inputs: { node: "node", playAnimation: "playAnimation" }, viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["image"], descendants: true }, { propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<div class=\"card-image-backdrop\">\n <!-- The blur filter does not work with canvas as it does with img on Chrome, so we go for a black\n background for now. -->\n <!-- <canvas *ngIf=\"showCanvas\" #backdropCanvas role=\"presentation\" aria-hidden=\"true\"></canvas> -->\n <img\n [src]=\"node | esNodeImage : { maxWidth: 300, maxHeight: 300, crop: true } | async\"\n alt=\"\"\n *ngIf=\"!replacedWithStatic\"\n />\n</div>\n\n<canvas *ngIf=\"showCanvas\" #canvas role=\"presentation\" aria-hidden=\"true\"></canvas>\n<img\n (load)=\"onImageLoad($event)\"\n #image\n [src]=\"node | esNodeImage : { maxWidth: 300, maxHeight: 300, crop: true } | async\"\n alt=\"\"\n [class.display-none]=\"replacedWithStatic && !playAnimation\"\n/>\n", styles: [":host{position:relative;overflow:hidden}.card-image-backdrop{position:absolute;width:100%;height:100%;background-color:#000}.card-image-backdrop img,.card-image-backdrop canvas{position:absolute;left:-30px;top:-30px;width:calc(100% + 60px);height:calc(100% + 60px);z-index:0;overflow:hidden;filter:blur(15px);object-fit:cover;opacity:.7;opacity:1}:host>img,:host>canvas{width:100%;height:100%;object-fit:contain;position:absolute}.display-none{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.NodeImagePipe, name: "esNodeImage" }] }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PreviewImageComponent, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'es-preview-image', template: "<div class=\"card-image-backdrop\">\n <!-- The blur filter does not work with canvas as it does with img on Chrome, so we go for a black\n background for now. -->\n <!-- <canvas *ngIf=\"showCanvas\" #backdropCanvas role=\"presentation\" aria-hidden=\"true\"></canvas> -->\n <img\n [src]=\"node | esNodeImage : { maxWidth: 300, maxHeight: 300, crop: true } | async\"\n alt=\"\"\n *ngIf=\"!replacedWithStatic\"\n />\n</div>\n\n<canvas *ngIf=\"showCanvas\" #canvas role=\"presentation\" aria-hidden=\"true\"></canvas>\n<img\n (load)=\"onImageLoad($event)\"\n #image\n [src]=\"node | esNodeImage : { maxWidth: 300, maxHeight: 300, crop: true } | async\"\n alt=\"\"\n [class.display-none]=\"replacedWithStatic && !playAnimation\"\n/>\n", styles: [":host{position:relative;overflow:hidden}.card-image-backdrop{position:absolute;width:100%;height:100%;background-color:#000}.card-image-backdrop img,.card-image-backdrop canvas{position:absolute;left:-30px;top:-30px;width:calc(100% + 60px);height:calc(100% + 60px);z-index:0;overflow:hidden;filter:blur(15px);object-fit:cover;opacity:.7;opacity:1}:host>img,:host>canvas{width:100%;height:100%;object-fit:contain;position:absolute}.display-none{display:none}\n"] }]
42
- }], ctorParameters: () => [], propDecorators: { node: [{
43
- type: Input
44
- }], playAnimation: [{
45
- type: Input
46
- }], imageRef: [{
47
- type: ViewChild,
48
- args: ['image']
49
- }], canvasRef: [{
50
- type: ViewChild,
51
- args: ['canvas']
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9wcmV2aWV3LWltYWdlL3ByZXZpZXctaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvcHJldmlldy1pbWFnZS9wcmV2aWV3LWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUd4RTs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFXOUI7UUFUUyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUkvQixpRkFBaUY7UUFFakYsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFckIsQ0FBQztJQUVoQixXQUFXLENBQUMsS0FBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDckQsZ0VBQWdFO2dCQUNoRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBdUIsRUFBRSxNQUF5QjtRQUNqRSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQy9CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDakMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7K0dBL0JRLHFCQUFxQjttR0FBckIscUJBQXFCLDJTQ2RsQywrdUJBbUJBOzs0RkRMYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksa0JBQWtCO3dEQUtuQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFYyxRQUFRO3NCQUEzQixTQUFTO3VCQUFDLE9BQU87Z0JBQ0csU0FBUztzQkFBN0IsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5cbi8qKlxuICogRGlzcGxheXMgdGhlIHByZXZpZXcgaW1hZ2Ugb2YgYG5vZGVgLlxuICpcbiAqIFdoZW4gYG5vZGVgIGlzIGEgdmlkZW8sIHRoZSBhbmltYXRlZCBwcmV2aWV3IGltYWdlIGlzIHJlcGxhY2VkIHdpdGggYSBzdGF0aWMgY2FudmFzIHVubGVzc1xuICogYHBsYXlBbmltYXRpb25gIGlzIHNldCB0byBgdHJ1ZWAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXMtcHJldmlldy1pbWFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpZXctaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByZXZpZXctaW1hZ2UuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld0ltYWdlQ29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlPiB7XG4gICAgQElucHV0KCkgbm9kZTogVDtcbiAgICBASW5wdXQoKSBwbGF5QW5pbWF0aW9uID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdpbWFnZScpIGltYWdlUmVmOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2NhbnZhcycpIGNhbnZhc1JlZjogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgLy8gQFZpZXdDaGlsZCgnYmFja2Ryb3BDYW52YXMnKSBiYWNrZHJvcENhbnZhc1JlZjogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG5cbiAgICBzaG93Q2FudmFzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcmVwbGFjZWRXaXRoU3RhdGljOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBvbkltYWdlTG9hZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubm9kZS5taW1ldHlwZT8uc3RhcnRzV2l0aCgndmlkZW8nKSkge1xuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBldmVudC50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuc2hvd0NhbnZhcyA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRDYW52YXMoaW1hZ2UsIHRoaXMuY2FudmFzUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuaW5pdENhbnZhcyhpbWFnZSwgdGhpcy5iYWNrZHJvcENhbnZhc1JlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcGxhY2VkV2l0aFN0YXRpYyA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENhbnZhcyhpbWFnZTogSFRNTEltYWdlRWxlbWVudCwgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCk6IHZvaWQge1xuICAgICAgICB2YXIgd2lkdGggPSBpbWFnZS5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHZhciBoZWlnaHQgPSBpbWFnZS5uYXR1cmFsSGVpZ2h0O1xuICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1pbWFnZS1iYWNrZHJvcFwiPlxuICA8IS0tIFRoZSBibHVyIGZpbHRlciBkb2VzIG5vdCB3b3JrIHdpdGggY2FudmFzIGFzIGl0IGRvZXMgd2l0aCBpbWcgb24gQ2hyb21lLCBzbyB3ZSBnbyBmb3IgYSBibGFja1xuICBiYWNrZ3JvdW5kIGZvciBub3cuIC0tPlxuICA8IS0tIDxjYW52YXMgKm5nSWY9XCJzaG93Q2FudmFzXCIgI2JhY2tkcm9wQ2FudmFzIHJvbGU9XCJwcmVzZW50YXRpb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2NhbnZhcz4gLS0+XG4gIDxpbWdcbiAgICBbc3JjXT1cIm5vZGUgfCBlc05vZGVJbWFnZSA6IHsgbWF4V2lkdGg6IDMwMCwgbWF4SGVpZ2h0OiAzMDAsIGNyb3A6IHRydWUgfSB8IGFzeW5jXCJcbiAgICBhbHQ9XCJcIlxuICAgICpuZ0lmPVwiIXJlcGxhY2VkV2l0aFN0YXRpY1wiXG4gIC8+XG48L2Rpdj5cblxuPGNhbnZhcyAqbmdJZj1cInNob3dDYW52YXNcIiAjY2FudmFzIHJvbGU9XCJwcmVzZW50YXRpb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2NhbnZhcz5cbjxpbWdcbiAgKGxvYWQpPVwib25JbWFnZUxvYWQoJGV2ZW50KVwiXG4gICNpbWFnZVxuICBbc3JjXT1cIm5vZGUgfCBlc05vZGVJbWFnZSA6IHsgbWF4V2lkdGg6IDMwMCwgbWF4SGVpZ2h0OiAzMDAsIGNyb3A6IHRydWUgfSB8IGFzeW5jXCJcbiAgYWx0PVwiXCJcbiAgW2NsYXNzLmRpc3BsYXktbm9uZV09XCJyZXBsYWNlZFdpdGhTdGF0aWMgJiYgIXBsYXlBbmltYXRpb25cIlxuLz5cbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "../../directives/icon.directive";
6
- import * as i4 from "../../sort-dropdown/sort-dropdown.component";
7
- import * as i5 from "@angular/material/button";
8
- import * as i6 from "@angular/material/menu";
9
- import * as i7 from "@angular/material/slide-toggle";
10
- import * as i8 from "@ngx-translate/core";
11
- export class SortSelectPanelComponent {
12
- constructor() {
13
- this.sortChange = new EventEmitter();
14
- this.customSortingInProgressChange = new EventEmitter();
15
- }
16
- onSort(event) {
17
- this.sortChange.emit({
18
- active: event.name,
19
- direction: event.ascending ? 'asc' : 'desc',
20
- });
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SortSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: SortSelectPanelComponent, selector: "es-sort-select-panel", inputs: { active: "active", direction: "direction", columns: "columns", customSortingInProgress: "customSortingInProgress" }, outputs: { sortChange: "sortChange", customSortingInProgressChange: "customSortingInProgressChange" }, ngImport: i0, template: "<mat-slide-toggle\n *ngIf=\"active === 'ccm:collection_ordered_position'\"\n [(ngModel)]=\"customSortingInProgress\"\n (ngModelChange)=\"customSortingInProgressChange.emit($event)\"\n>\n {{ 'COLLECTIONS.SORT_SLIDER' | translate }}\n</mat-slide-toggle>\n<ng-container *ngIf=\"columns?.length\">\n <button\n *ngIf=\"sortDropdown.menu\"\n [matMenuTriggerFor]=\"sortDropdown.menu\"\n mat-button\n color=\"primary\"\n >\n <span *ngIf=\"active\">{{ 'NODE.' + active | translate }}</span>\n <span *ngIf=\"!active\">{{ 'SORT_BY' | translate }}</span>\n <i\n *ngIf=\"active && active !== 'ccm:collection_ordered_position'\"\n [esIcon]=\"'arrow_' + (direction === 'asc' ? 'upward' : 'downward')\"\n ></i>\n </button>\n\n <es-sort-dropdown\n #sortDropdown\n [columns]=\"columns\"\n [sortBy]=\"active\"\n [sortAscending]=\"direction === 'asc'\"\n (sort)=\"onSort($event)\"\n ></es-sort-dropdown>\n</ng-container>\n", styles: [":host{display:flex;justify-content:flex-end;align-items:center}mat-slide-toggle{margin-right:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i4.SortDropdownComponent, selector: "es-sort-dropdown", inputs: ["columns", "sortBy", "sortAscending"], outputs: ["sort"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SortSelectPanelComponent, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'es-sort-select-panel', template: "<mat-slide-toggle\n *ngIf=\"active === 'ccm:collection_ordered_position'\"\n [(ngModel)]=\"customSortingInProgress\"\n (ngModelChange)=\"customSortingInProgressChange.emit($event)\"\n>\n {{ 'COLLECTIONS.SORT_SLIDER' | translate }}\n</mat-slide-toggle>\n<ng-container *ngIf=\"columns?.length\">\n <button\n *ngIf=\"sortDropdown.menu\"\n [matMenuTriggerFor]=\"sortDropdown.menu\"\n mat-button\n color=\"primary\"\n >\n <span *ngIf=\"active\">{{ 'NODE.' + active | translate }}</span>\n <span *ngIf=\"!active\">{{ 'SORT_BY' | translate }}</span>\n <i\n *ngIf=\"active && active !== 'ccm:collection_ordered_position'\"\n [esIcon]=\"'arrow_' + (direction === 'asc' ? 'upward' : 'downward')\"\n ></i>\n </button>\n\n <es-sort-dropdown\n #sortDropdown\n [columns]=\"columns\"\n [sortBy]=\"active\"\n [sortAscending]=\"direction === 'asc'\"\n (sort)=\"onSort($event)\"\n ></es-sort-dropdown>\n</ng-container>\n", styles: [":host{display:flex;justify-content:flex-end;align-items:center}mat-slide-toggle{margin-right:10px}\n"] }]
28
- }], ctorParameters: () => [], propDecorators: { active: [{
29
- type: Input
30
- }], direction: [{
31
- type: Input
32
- }], columns: [{
33
- type: Input
34
- }], sortChange: [{
35
- type: Output
36
- }], customSortingInProgress: [{
37
- type: Input
38
- }], customSortingInProgressChange: [{
39
- type: Output
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvc29ydC1zZWxlY3QtcGFuZWwvc29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvc29ydC1zZWxlY3QtcGFuZWwvc29ydC1zZWxlY3QtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVN2RSxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDO1FBSlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEMsa0NBQTZCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV2RCxDQUFDO0lBRWhCLE1BQU0sQ0FBQyxLQUFnQjtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUM5QyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWZRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGlTQ1RyQyxrOEJBOEJBOzs0RkRyQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQjt3REFLdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNJLDZCQUE2QjtzQkFBdEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBMaXN0SXRlbVNvcnQsIFNvcnRFdmVudCwgU29ydFBhbmVsIH0gZnJvbSAnLi4vLi4vdHlwZXMvbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlcy1zb3J0LXNlbGVjdC1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NvcnQtc2VsZWN0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zb3J0LXNlbGVjdC1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTb3J0U2VsZWN0UGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBTb3J0UGFuZWwge1xuICAgIEBJbnB1dCgpIGFjdGl2ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBMaXN0SXRlbVNvcnRbXTtcbiAgICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcbiAgICBASW5wdXQoKSBjdXN0b21Tb3J0aW5nSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgY3VzdG9tU29ydGluZ0luUHJvZ3Jlc3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBvblNvcnQoZXZlbnQ6IFNvcnRFdmVudCkge1xuICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBhY3RpdmU6IGV2ZW50Lm5hbWUsXG4gICAgICAgICAgICBkaXJlY3Rpb246IGV2ZW50LmFzY2VuZGluZyA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bWF0LXNsaWRlLXRvZ2dsZVxuICAqbmdJZj1cImFjdGl2ZSA9PT0gJ2NjbTpjb2xsZWN0aW9uX29yZGVyZWRfcG9zaXRpb24nXCJcbiAgWyhuZ01vZGVsKV09XCJjdXN0b21Tb3J0aW5nSW5Qcm9ncmVzc1wiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImN1c3RvbVNvcnRpbmdJblByb2dyZXNzQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIHt7ICdDT0xMRUNUSU9OUy5TT1JUX1NMSURFUicgfCB0cmFuc2xhdGUgfX1cbjwvbWF0LXNsaWRlLXRvZ2dsZT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zPy5sZW5ndGhcIj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic29ydERyb3Bkb3duLm1lbnVcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzb3J0RHJvcGRvd24ubWVudVwiXG4gICAgbWF0LWJ1dHRvblxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cImFjdGl2ZVwiPnt7ICdOT0RFLicgKyBhY3RpdmUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCIhYWN0aXZlXCI+e3sgJ1NPUlRfQlknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxpXG4gICAgICAqbmdJZj1cImFjdGl2ZSAmJiBhY3RpdmUgIT09ICdjY206Y29sbGVjdGlvbl9vcmRlcmVkX3Bvc2l0aW9uJ1wiXG4gICAgICBbZXNJY29uXT1cIidhcnJvd18nICsgKGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAndXB3YXJkJyA6ICdkb3dud2FyZCcpXCJcbiAgICA+PC9pPlxuICA8L2J1dHRvbj5cblxuICA8ZXMtc29ydC1kcm9wZG93blxuICAgICNzb3J0RHJvcGRvd25cbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbc29ydEJ5XT1cImFjdGl2ZVwiXG4gICAgW3NvcnRBc2NlbmRpbmddPVwiZGlyZWN0aW9uID09PSAnYXNjJ1wiXG4gICAgKHNvcnQpPVwib25Tb3J0KCRldmVudClcIlxuICA+PC9lcy1zb3J0LWRyb3Bkb3duPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,132 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../services/node-helper.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/material/core";
6
- import * as i4 from "@angular/router";
7
- // TODO: Decide if providing focus highlights and ripples with this component is a good idea. When
8
- // using `app-node-url` for cards, we might need highlights and ripples for the whole card while
9
- // `app-node-url` should only wrap the title since links with lots of content confuse screen
10
- // readers.
11
- const NODE_URL_TAG_NAME = 'es-node-url';
12
- export class NodeUrlComponent {
13
- constructor(nodeHelper, elementRef) {
14
- this.nodeHelper = nodeHelper;
15
- this.elementRef = elementRef;
16
- /**
17
- * custom query params to include
18
- */
19
- this.queryParams = {};
20
- /**
21
- * link: a element
22
- * button: button element
23
- * wrapper: div element with behavior "like" a link
24
- */
25
- this.mode = 'link';
26
- this.disabled = false;
27
- /**
28
- * Show the ripple effect even when disabled.
29
- *
30
- * @deprecated Temporary workaround for list-table, which *sometimes* uses it's on click
31
- * bindings.
32
- */
33
- this.alwaysRipple = false;
34
- this.ariaLabel = true;
35
- this.buttonClick = new EventEmitter();
36
- }
37
- ngAfterViewInit() {
38
- setTimeout(() => {
39
- this.isNested = this.getIsNested();
40
- });
41
- }
42
- getState() {
43
- return {
44
- scope: this.scope,
45
- };
46
- }
47
- get(mode) {
48
- const result = this.nodeHelper.getNodeLink(mode, this.node);
49
- if (mode === 'queryParams') {
50
- // it is important that we remove the fromLogin info because otherwise the render component will redirect to the default page on back
51
- result.fromLogin = null;
52
- if (mode === 'queryParams') {
53
- Object.keys(this.queryParams).forEach((k) => (result[k] = this.queryParams[k]));
54
- }
55
- }
56
- return result;
57
- }
58
- focus() {
59
- this.link.nativeElement.focus();
60
- }
61
- clickWrapper(event) {
62
- const eventCopy = copyClickEvent(event);
63
- this.link.nativeElement.dispatchEvent(eventCopy);
64
- event.preventDefault();
65
- }
66
- getIsNested() {
67
- let ancestor = this.elementRef.nativeElement.parentElement;
68
- while (ancestor) {
69
- if (ancestor.tagName === NODE_URL_TAG_NAME.toUpperCase()) {
70
- return true;
71
- }
72
- ancestor = ancestor.parentElement;
73
- }
74
- return false;
75
- }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeUrlComponent, deps: [{ token: i1.NodeHelperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NodeUrlComponent, selector: "es-node-url", inputs: { node: "node", nodes: "nodes", target: "target", scope: "scope", queryParams: "queryParams", mode: "mode", disabled: "disabled", alwaysRipple: "alwaysRipple", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], ariaLabel: ["aria-label", "ariaLabel"] }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "link", first: true, predicate: ["link"], descendants: true }], ngImport: i0, template: "<ng-template #content><ng-content></ng-content></ng-template>\n<ng-container *ngIf=\"mode === 'link'\">\n <a\n *ngIf=\"!disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"isNested\"\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [target]=\"target\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n cdkMonitorElementFocus\n [attr.aria-label]=\"ariaLabel ? node.name : null\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- We use `div`s instead of `span`s here because the legacy `ListTable` component will insert\n `div` elements into this component's content. However, this will lead to invalid HTML for \"button\"\n mode. So really, users of this component should only insert flow content. -->\n <div *ngIf=\"disabled && !alwaysRipple\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div *ngIf=\"disabled && alwaysRipple\" matRipple matRippleColor=\"primary\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'wrapper'\">\n <div\n class=\"node-url-wrapper\"\n #wrapper\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"clickWrapper($event)\"\n (auxclick)=\"clickWrapper($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <!-- An invisible link that will by clicked programmatically by `clickWrapper()`. -->\n <a\n #link\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"cdk-visually-hidden\"\n ></a>\n</ng-container>\n<ng-container *ngIf=\"mode === 'button'\">\n <button\n [disabled]=\"disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"buttonClick.emit($event)\"\n cdkMonitorElementFocus\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex}:host>*{flex-grow:1}:host>a{text-decoration:none}.cdk-keyboard-focused{outline:none;outline:2px solid var(--palette-primary-300);outline-offset:2px}button{background-color:unset;border:unset;padding:unset;text-align:unset}div.node-url-wrapper{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeUrlComponent, decorators: [{
80
- type: Component,
81
- args: [{ selector: NODE_URL_TAG_NAME, template: "<ng-template #content><ng-content></ng-content></ng-template>\n<ng-container *ngIf=\"mode === 'link'\">\n <a\n *ngIf=\"!disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"isNested\"\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [target]=\"target\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n cdkMonitorElementFocus\n [attr.aria-label]=\"ariaLabel ? node.name : null\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- We use `div`s instead of `span`s here because the legacy `ListTable` component will insert\n `div` elements into this component's content. However, this will lead to invalid HTML for \"button\"\n mode. So really, users of this component should only insert flow content. -->\n <div *ngIf=\"disabled && !alwaysRipple\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div *ngIf=\"disabled && alwaysRipple\" matRipple matRippleColor=\"primary\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'wrapper'\">\n <div\n class=\"node-url-wrapper\"\n #wrapper\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"clickWrapper($event)\"\n (auxclick)=\"clickWrapper($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <!-- An invisible link that will by clicked programmatically by `clickWrapper()`. -->\n <a\n #link\n [routerLink]=\"get('routerLink')\"\n [state]=\"getState()\"\n [queryParams]=\"get('queryParams')\"\n queryParamsHandling=\"merge\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"cdk-visually-hidden\"\n ></a>\n</ng-container>\n<ng-container *ngIf=\"mode === 'button'\">\n <button\n [disabled]=\"disabled\"\n #link\n matRipple\n matRippleColor=\"primary\"\n [matRippleDisabled]=\"disabled && !alwaysRipple\"\n (click)=\"buttonClick.emit($event)\"\n cdkMonitorElementFocus\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex}:host>*{flex-grow:1}:host>a{text-decoration:none}.cdk-keyboard-focused{outline:none;outline:2px solid var(--palette-primary-300);outline-offset:2px}button{background-color:unset;border:unset;padding:unset;text-align:unset}div.node-url-wrapper{cursor:pointer}\n"] }]
82
- }], ctorParameters: () => [{ type: i1.NodeHelperService }, { type: i0.ElementRef }], propDecorators: { link: [{
83
- type: ViewChild,
84
- args: ['link']
85
- }], node: [{
86
- type: Input
87
- }], nodes: [{
88
- type: Input
89
- }], target: [{
90
- type: Input
91
- }], scope: [{
92
- type: Input
93
- }], queryParams: [{
94
- type: Input
95
- }], mode: [{
96
- type: Input
97
- }], disabled: [{
98
- type: Input
99
- }], alwaysRipple: [{
100
- type: Input
101
- }], ariaDescribedby: [{
102
- type: Input,
103
- args: ['aria-describedby']
104
- }], ariaLabel: [{
105
- type: Input,
106
- args: ['aria-label']
107
- }], buttonClick: [{
108
- type: Output
109
- }] } });
110
- function copyClickEvent(event) {
111
- // On Firefox, a middle click via neither the 'click', nor the 'auxclick' event cause a new tab
112
- // to be opened when triggered programmatically. As a workaround, we simulate a ctrl click
113
- // instead of a middle click. This matches Firefox's defaults, but we cannot account for
114
- // changed middle-click behavior.
115
- if (event.type === 'auxclick' && event.button === 1 && isFirefox()) {
116
- return copyClickEvent({ ...event, type: 'click', ctrlKey: true, button: 0 });
117
- }
118
- // It would seem better to use `event.type` instead of hard-coding 'click', but that doesn't
119
- // have the desired effect for non-click events when dispatched.
120
- return new MouseEvent('click', {
121
- cancelable: true,
122
- button: event.button,
123
- ctrlKey: event.ctrlKey,
124
- shiftKey: event.shiftKey,
125
- altKey: event.altKey,
126
- metaKey: event.metaKey,
127
- });
128
- }
129
- function isFirefox() {
130
- return navigator.userAgent.includes('Firefox');
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11cmwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLXVybC9ub2RlLXVybC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtdXJsL25vZGUtdXJsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJdkIsa0dBQWtHO0FBQ2xHLGdHQUFnRztBQUNoRyw0RkFBNEY7QUFDNUYsV0FBVztBQUVYLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDO0FBT3hDLE1BQU0sT0FBTyxnQkFBZ0I7SUEwQ3pCLFlBQ1ksVUFBNkIsRUFDN0IsVUFBbUM7UUFEbkMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFyQy9DOztXQUVHO1FBQ00sZ0JBQVcsR0FBaUQsRUFBRSxDQUFDO1FBQ3hFOzs7O1dBSUc7UUFDTSxTQUFJLEdBQWtDLE1BQU0sQ0FBQztRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOzs7OztXQUtHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFVCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQWlCcEQsQ0FBQztJQUVKLGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBa0M7UUFDbEMsTUFBTSxNQUFNLEdBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUN6QixxSUFBcUk7WUFDckksTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEYsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUI7UUFDMUIsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDM0QsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUN2RCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBQ0QsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7K0dBMUZRLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHNjQ3hCN0Isc3VFQWtFQTs7NEZEMUNhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDSSxpQkFBaUI7K0dBS1IsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUVSLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3FCLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNKLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxXQUFXO3NCQUFwQixNQUFNOztBQWlFWCxTQUFTLGNBQWMsQ0FBQyxLQUFpQjtJQUNyQywrRkFBK0Y7SUFDL0YsMEZBQTBGO0lBQzFGLHdGQUF3RjtJQUN4RixpQ0FBaUM7SUFDakMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sY0FBYyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCw0RkFBNEY7SUFDNUYsZ0VBQWdFO0lBQ2hFLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzNCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87S0FDekIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNkLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBOb2RlSGVscGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtaGVscGVyLnNlcnZpY2UnO1xuXG4vLyBUT0RPOiBEZWNpZGUgaWYgcHJvdmlkaW5nIGZvY3VzIGhpZ2hsaWdodHMgYW5kIHJpcHBsZXMgd2l0aCB0aGlzIGNvbXBvbmVudCBpcyBhIGdvb2QgaWRlYS4gV2hlblxuLy8gdXNpbmcgYGFwcC1ub2RlLXVybGAgZm9yIGNhcmRzLCB3ZSBtaWdodCBuZWVkIGhpZ2hsaWdodHMgYW5kIHJpcHBsZXMgZm9yIHRoZSB3aG9sZSBjYXJkIHdoaWxlXG4vLyBgYXBwLW5vZGUtdXJsYCBzaG91bGQgb25seSB3cmFwIHRoZSB0aXRsZSBzaW5jZSBsaW5rcyB3aXRoIGxvdHMgb2YgY29udGVudCBjb25mdXNlIHNjcmVlblxuLy8gcmVhZGVycy5cblxuY29uc3QgTk9ERV9VUkxfVEFHX05BTUUgPSAnZXMtbm9kZS11cmwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogTk9ERV9VUkxfVEFHX05BTUUsXG4gICAgdGVtcGxhdGVVcmw6ICdub2RlLXVybC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ25vZGUtdXJsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVVcmxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdsaW5rJykgbGluazogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD47XG5cbiAgICBASW5wdXQoKSBub2RlOiBOb2RlO1xuICAgIEBJbnB1dCgpIG5vZGVzOiBOb2RlW107XG4gICAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2NvcGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBjdXN0b20gcXVlcnkgcGFyYW1zIHRvIGluY2x1ZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gPSB7fTtcbiAgICAvKipcbiAgICAgKiBsaW5rOiBhIGVsZW1lbnRcbiAgICAgKiBidXR0b246IGJ1dHRvbiBlbGVtZW50XG4gICAgICogd3JhcHBlcjogZGl2IGVsZW1lbnQgd2l0aCBiZWhhdmlvciBcImxpa2VcIiBhIGxpbmtcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlOiAnbGluaycgfCAnYnV0dG9uJyB8ICd3cmFwcGVyJyA9ICdsaW5rJztcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIHJpcHBsZSBlZmZlY3QgZXZlbiB3aGVuIGRpc2FibGVkLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWQgVGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIGxpc3QtdGFibGUsIHdoaWNoICpzb21ldGltZXMqIHVzZXMgaXQncyBvbiBjbGlja1xuICAgICAqIGJpbmRpbmdzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGFsd2F5c1JpcHBsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbCA9IHRydWU7XG5cbiAgICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgaW5zdGFuY2Ugb2YgYE5vZGVVcmxgIGlzIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBgTm9kZVVybGAuXG4gICAgICovXG4gICAgLy8gV2UgdXNlIG5lc3RlZCBgTm9kZVVybGBzIGZvciBhMTF5IHdoZXJlIHdlIGhhdmUgYSBgTm9kZVVybGAgaW4gd3JhcHBlciBtb2RlIHRvIG1heGltaXplXG4gICAgLy8gY2xpY2thYmxlIGFyZWEgYW5kIG9uZSBpbiAgbGluayBtb2RlIHRoYXQgb25seSBjb250YWlucyB0aGUgdGl0bGUuIFdlIG9ubHkgd2FudCB0aGUgb3V0bW9zdFxuICAgIC8vIGBOb2RlVXJsYCB0byBhcHBseSB0aGUgcmlwcGxlIGVmZmVjdC5cbiAgICAvL1xuICAgIC8vIE5vdGUgdGhhdCBuZXN0aW5nIGBOb2RlVXJsYHMgaXMgb25seSBuZWNlc3Nhcnkgd2hlbiB3ZSB3YW50IHRvIHByb3ZpZGUgaG92ZXIgZWZmZWN0cyBvbiBwYXJ0c1xuICAgIC8vIG9mIHRoZSBvdXRlciBgTm9kZVVybGAuIElmIHdlIGRvbid0IG5lZWQgdGhhdCwgaXQgd291bGQgYmUgZWFzaWVyIHRvIGF0dGFjaCBhIHBzZXVkbyBgOmFmdGVyYFxuICAgIC8vIGVsZW1lbnQgdG8gdGhlIGlubmVyIGBOb2RlVXJsYCB0aGF0IGV4cGFuZHMgaXRzIGNsaWNrIGFyZWEuXG4gICAgaXNOZXN0ZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc05lc3RlZCA9IHRoaXMuZ2V0SXNOZXN0ZWQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQobW9kZTogJ3JvdXRlckxpbmsnIHwgJ3F1ZXJ5UGFyYW1zJyk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5ub2RlSGVscGVyLmdldE5vZGVMaW5rKG1vZGUsIHRoaXMubm9kZSk7XG4gICAgICAgIGlmIChtb2RlID09PSAncXVlcnlQYXJhbXMnKSB7XG4gICAgICAgICAgICAvLyBpdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSByZW1vdmUgdGhlIGZyb21Mb2dpbiBpbmZvIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSByZW5kZXIgY29tcG9uZW50IHdpbGwgcmVkaXJlY3QgdG8gdGhlIGRlZmF1bHQgcGFnZSBvbiBiYWNrXG4gICAgICAgICAgICByZXN1bHQuZnJvbUxvZ2luID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChtb2RlID09PSAncXVlcnlQYXJhbXMnKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5xdWVyeVBhcmFtcykuZm9yRWFjaCgoaykgPT4gKHJlc3VsdFtrXSA9IHRoaXMucXVlcnlQYXJhbXNba10pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmsubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGNsaWNrV3JhcHBlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBldmVudENvcHkgPSBjb3B5Q2xpY2tFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMubGluay5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnRDb3B5KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldElzTmVzdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgYW5jZXN0b3IgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICAgICAgICAgIGlmIChhbmNlc3Rvci50YWdOYW1lID09PSBOT0RFX1VSTF9UQUdfTkFNRS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY29weUNsaWNrRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiBNb3VzZUV2ZW50IHtcbiAgICAvLyBPbiBGaXJlZm94LCBhIG1pZGRsZSBjbGljayB2aWEgbmVpdGhlciB0aGUgJ2NsaWNrJywgbm9yIHRoZSAnYXV4Y2xpY2snIGV2ZW50IGNhdXNlIGEgbmV3IHRhYlxuICAgIC8vIHRvIGJlIG9wZW5lZCB3aGVuIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5LiBBcyBhIHdvcmthcm91bmQsIHdlIHNpbXVsYXRlIGEgY3RybCBjbGlja1xuICAgIC8vIGluc3RlYWQgb2YgYSBtaWRkbGUgY2xpY2suIFRoaXMgbWF0Y2hlcyBGaXJlZm94J3MgZGVmYXVsdHMsIGJ1dCB3ZSBjYW5ub3QgYWNjb3VudCBmb3JcbiAgICAvLyBjaGFuZ2VkIG1pZGRsZS1jbGljayBiZWhhdmlvci5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2F1eGNsaWNrJyAmJiBldmVudC5idXR0b24gPT09IDEgJiYgaXNGaXJlZm94KCkpIHtcbiAgICAgICAgcmV0dXJuIGNvcHlDbGlja0V2ZW50KHsgLi4uZXZlbnQsIHR5cGU6ICdjbGljaycsIGN0cmxLZXk6IHRydWUsIGJ1dHRvbjogMCB9KTtcbiAgICB9XG4gICAgLy8gSXQgd291bGQgc2VlbSBiZXR0ZXIgdG8gdXNlIGBldmVudC50eXBlYCBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nICdjbGljaycsIGJ1dCB0aGF0IGRvZXNuJ3RcbiAgICAvLyBoYXZlIHRoZSBkZXNpcmVkIGVmZmVjdCBmb3Igbm9uLWNsaWNrIGV2ZW50cyB3aGVuIGRpc3BhdGNoZWQuXG4gICAgcmV0dXJuIG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgYnV0dG9uOiBldmVudC5idXR0b24sXG4gICAgICAgIGN0cmxLZXk6IGV2ZW50LmN0cmxLZXksXG4gICAgICAgIHNoaWZ0S2V5OiBldmVudC5zaGlmdEtleSxcbiAgICAgICAgYWx0S2V5OiBldmVudC5hbHRLZXksXG4gICAgICAgIG1ldGFLZXk6IGV2ZW50Lm1ldGFLZXksXG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzRmlyZWZveCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnRmlyZWZveCcpO1xufVxuIiwiPG5nLXRlbXBsYXRlICNjb250ZW50PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdsaW5rJ1wiPlxuICA8YVxuICAgICpuZ0lmPVwiIWRpc2FibGVkXCJcbiAgICAjbGlua1xuICAgIG1hdFJpcHBsZVxuICAgIG1hdFJpcHBsZUNvbG9yPVwicHJpbWFyeVwiXG4gICAgW21hdFJpcHBsZURpc2FibGVkXT1cImlzTmVzdGVkXCJcbiAgICBbcm91dGVyTGlua109XCJnZXQoJ3JvdXRlckxpbmsnKVwiXG4gICAgW3N0YXRlXT1cImdldFN0YXRlKClcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0KCdxdWVyeVBhcmFtcycpXCJcbiAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxuICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IG5vZGUubmFtZSA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cbiAgPCEtLSBXZSB1c2UgYGRpdmBzIGluc3RlYWQgb2YgYHNwYW5gcyBoZXJlIGJlY2F1c2UgdGhlIGxlZ2FjeSBgTGlzdFRhYmxlYCBjb21wb25lbnQgd2lsbCBpbnNlcnRcbiAgYGRpdmAgZWxlbWVudHMgaW50byB0aGlzIGNvbXBvbmVudCdzIGNvbnRlbnQuIEhvd2V2ZXIsIHRoaXMgd2lsbCBsZWFkIHRvIGludmFsaWQgSFRNTCBmb3IgXCJidXR0b25cIlxuICBtb2RlLiBTbyByZWFsbHksIHVzZXJzIG9mIHRoaXMgY29tcG9uZW50IHNob3VsZCBvbmx5IGluc2VydCBmbG93IGNvbnRlbnQuIC0tPlxuICA8ZGl2ICpuZ0lmPVwiZGlzYWJsZWQgJiYgIWFsd2F5c1JpcHBsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZGlzYWJsZWQgJiYgYWx3YXlzUmlwcGxlXCIgbWF0UmlwcGxlIG1hdFJpcHBsZUNvbG9yPVwicHJpbWFyeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3dyYXBwZXInXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm5vZGUtdXJsLXdyYXBwZXJcIlxuICAgICN3cmFwcGVyXG4gICAgbWF0UmlwcGxlXG4gICAgbWF0UmlwcGxlQ29sb3I9XCJwcmltYXJ5XCJcbiAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiZGlzYWJsZWQgJiYgIWFsd2F5c1JpcHBsZVwiXG4gICAgKGNsaWNrKT1cImNsaWNrV3JhcHBlcigkZXZlbnQpXCJcbiAgICAoYXV4Y2xpY2spPVwiY2xpY2tXcmFwcGVyKCRldmVudClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0gQW4gaW52aXNpYmxlIGxpbmsgdGhhdCB3aWxsIGJ5IGNsaWNrZWQgcHJvZ3JhbW1hdGljYWxseSBieSBgY2xpY2tXcmFwcGVyKClgLiAtLT5cbiAgPGFcbiAgICAjbGlua1xuICAgIFtyb3V0ZXJMaW5rXT1cImdldCgncm91dGVyTGluaycpXCJcbiAgICBbc3RhdGVdPVwiZ2V0U3RhdGUoKVwiXG4gICAgW3F1ZXJ5UGFyYW1zXT1cImdldCgncXVlcnlQYXJhbXMnKVwiXG4gICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gID48L2E+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnYnV0dG9uJ1wiPlxuICA8YnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAjbGlua1xuICAgIG1hdFJpcHBsZVxuICAgIG1hdFJpcHBsZUNvbG9yPVwicHJpbWFyeVwiXG4gICAgW21hdFJpcHBsZURpc2FibGVkXT1cImRpc2FibGVkICYmICFhbHdheXNSaXBwbGVcIlxuICAgIChjbGljayk9XCJidXR0b25DbGljay5lbWl0KCRldmVudClcIlxuICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,32 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ngx-translate/core";
4
- export class FormatSizePipe {
5
- constructor(translate) {
6
- this.translate = translate;
7
- }
8
- transform(value, args = null) {
9
- let names = ['bytes', 'KB', 'MB', 'GB', 'TB'];
10
- let i = 0;
11
- if (isNaN(value))
12
- return value;
13
- if (value == null)
14
- value = 0;
15
- while (value >= 1024 && i < names.length) {
16
- value /= 1024;
17
- i++;
18
- }
19
- let options = {
20
- maximumFractionDigits: i > 1 ? 1 : 0,
21
- };
22
- let numberFormat = new Intl.NumberFormat([], options);
23
- return numberFormat.format(value) + ' ' + names[i];
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormatSizePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
26
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: FormatSizePipe, name: "formatSize" }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormatSizePipe, decorators: [{
29
- type: Pipe,
30
- args: [{ name: 'formatSize' }]
31
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL2ZpbGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJcEQsTUFBTSxPQUFPLGNBQWM7SUFDdkIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxLQUFVLEVBQUUsT0FBaUIsSUFBSTtRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvQixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2QsQ0FBQyxFQUFFLENBQUM7UUFDUixDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQTZCO1lBQ3BDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QyxDQUFDO1FBQ0YsSUFBSSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOytHQWpCUSxjQUFjOzZHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AUGlwZSh7IG5hbWU6ICdmb3JtYXRTaXplJyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1hdFNpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJnczogc3RyaW5nW10gPSBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG5hbWVzID0gWydieXRlcycsICdLQicsICdNQicsICdHQicsICdUQiddO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHZhbHVlID0gMDtcbiAgICAgICAgd2hpbGUgKHZhbHVlID49IDEwMjQgJiYgaSA8IG5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsdWUgLz0gMTAyNDtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBsZXQgb3B0aW9uczogSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zID0ge1xuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBpID4gMSA/IDEgOiAwLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgbnVtYmVyRm9ybWF0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFtdLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQodmFsdWUpICsgJyAnICsgbmFtZXNbaV07XG4gICAgfVxufVxuIl19
@@ -1,38 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as rxjs from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import { DateHelper, FormatOptions } from '../util/DateHelper';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngx-translate/core";
7
- export class FormatDatePipe {
8
- constructor(translate) {
9
- this.translate = translate;
10
- }
11
- transform(value, args = null) {
12
- if (!value) {
13
- return args?.async ? rxjs.of('') : '';
14
- }
15
- let options = new FormatOptions();
16
- if (args && args.time != null)
17
- options.showAlwaysTime = args.time;
18
- if (args && args.date != null)
19
- options.showDate = args.date;
20
- if (args && args.relative !== null)
21
- options.useRelativeLabels = args.relative;
22
- if (args?.async) {
23
- return this.translate
24
- .get('dummy') // Wait for the translation service to be ready
25
- .pipe(map(() => DateHelper.formatDate(this.translate, value, options)));
26
- }
27
- else {
28
- return DateHelper.formatDate(this.translate, value, options);
29
- }
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormatDatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
32
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: FormatDatePipe, name: "formatDate" }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormatDatePipe, decorators: [{
35
- type: Pipe,
36
- args: [{ name: 'formatDate' }]
37
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvcGlwZXMvZm9ybWF0LWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRy9ELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQVVuRCxTQUFTLENBQ0wsS0FBNkIsRUFDN0IsT0FBZ0YsSUFBSTtRQUVwRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUFFLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUztpQkFDaEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLCtDQUErQztpQkFDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0wsQ0FBQzsrR0E3QlEsY0FBYzs2R0FBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi4vdXRpbC9EYXRlSGVscGVyJztcblxuQFBpcGUoeyBuYW1lOiAnZm9ybWF0RGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBGb3JtYXREYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJncz86IHsgdGltZT86IGJvb2xlYW47IGRhdGU/OiBib29sZWFuOyByZWxhdGl2ZT86IGJvb2xlYW4gfSxcbiAgICApOiBzdHJpbmc7XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJnczogeyB0aW1lPzogYm9vbGVhbjsgZGF0ZT86IGJvb2xlYW47IHJlbGF0aXZlPzogYm9vbGVhbjsgYXN5bmM6IHRydWUgfSxcbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgYXJnczogeyB0aW1lPzogYm9vbGVhbjsgZGF0ZT86IGJvb2xlYW47IHJlbGF0aXZlPzogYm9vbGVhbjsgYXN5bmM/OiBib29sZWFuIH0gPSBudWxsLFxuICAgICk6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzPy5hc3luYyA/IHJ4anMub2YoJycpIDogJyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG9wdGlvbnMgPSBuZXcgRm9ybWF0T3B0aW9ucygpO1xuICAgICAgICBpZiAoYXJncyAmJiBhcmdzLnRpbWUgIT0gbnVsbCkgb3B0aW9ucy5zaG93QWx3YXlzVGltZSA9IGFyZ3MudGltZTtcbiAgICAgICAgaWYgKGFyZ3MgJiYgYXJncy5kYXRlICE9IG51bGwpIG9wdGlvbnMuc2hvd0RhdGUgPSBhcmdzLmRhdGU7XG4gICAgICAgIGlmIChhcmdzICYmIGFyZ3MucmVsYXRpdmUgIT09IG51bGwpIG9wdGlvbnMudXNlUmVsYXRpdmVMYWJlbHMgPSBhcmdzLnJlbGF0aXZlO1xuICAgICAgICBpZiAoYXJncz8uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIC5nZXQoJ2R1bW15JykgLy8gV2FpdCBmb3IgdGhlIHRyYW5zbGF0aW9uIHNlcnZpY2UgdG8gYmUgcmVhZHlcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gRGF0ZUhlbHBlci5mb3JtYXREYXRlKHRoaXMudHJhbnNsYXRlLCB2YWx1ZSwgb3B0aW9ucykpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlSGVscGVyLmZvcm1hdERhdGUodGhpcy50cmFuc2xhdGUsIHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class MdsDurationPipe {
4
- transform(value) {
5
- if (isNaN(Number(value)) || !value) {
6
- return '-';
7
- }
8
- const totalSeconds = Math.floor(parseInt(value) / 1000);
9
- const hours = Math.floor(totalSeconds / 3600);
10
- const minutes = Math.round((totalSeconds - hours * 3600) / 60);
11
- if (hours > 0) {
12
- return hours + 'h ' + minutes + 'm';
13
- }
14
- return minutes + 'm';
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsDurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: MdsDurationPipe, name: "appMdsDuration" }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsDurationPipe, decorators: [{
20
- type: Pipe,
21
- args: [{
22
- name: 'appMdsDuration',
23
- }]
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLWR1cmF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL21kcy1kdXJhdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sZUFBZTtJQUN4QixTQUFTLENBQUMsS0FBYTtRQUNuQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxLQUFLLEdBQUcsSUFBSSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDOytHQVpRLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZ0JBQWdCO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdhcHBNZHNEdXJhdGlvbicsXG59KVxuZXhwb3J0IGNsYXNzIE1kc0R1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlzTmFOKE51bWJlcih2YWx1ZSkpIHx8ICF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICctJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b3RhbFNlY29uZHMgPSBNYXRoLmZsb29yKHBhcnNlSW50KHZhbHVlKSAvIDEwMDApO1xuICAgICAgICBjb25zdCBob3VyczogbnVtYmVyID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyAzNjAwKTtcbiAgICAgICAgY29uc3QgbWludXRlczogbnVtYmVyID0gTWF0aC5yb3VuZCgodG90YWxTZWNvbmRzIC0gaG91cnMgKiAzNjAwKSAvIDYwKTtcbiAgICAgICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXJzICsgJ2ggJyArIG1pbnV0ZXMgKyAnbSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbnV0ZXMgKyAnbSc7XG4gICAgfVxufVxuIl19
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../services/repo-url.service";
4
- export class NodeIconPipe {
5
- constructor(repoUrlService) {
6
- this.repoUrlService = repoUrlService;
7
- }
8
- transform(node) {
9
- return this.repoUrlService.getRepoUrl(node.iconURL, node);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeIconPipe, deps: [{ token: i1.RepoUrlService }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NodeIconPipe, name: "esNodeIcon" }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeIconPipe, decorators: [{
15
- type: Pipe,
16
- args: [{ name: 'esNodeIcon' }]
17
- }], ctorParameters: () => [{ type: i1.RepoUrlService }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pY29uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL25vZGUtaWNvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUN0RCxTQUFTLENBQUMsSUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQzsrR0FKUSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBRHhCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgUmVwb1VybFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBvLXVybC5zZXJ2aWNlJztcblxuQFBpcGUoeyBuYW1lOiAnZXNOb2RlSWNvbicgfSlcbmV4cG9ydCBjbGFzcyBOb2RlSWNvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9VcmxTZXJ2aWNlOiBSZXBvVXJsU2VydmljZSkge31cbiAgICB0cmFuc2Zvcm0obm9kZTogTm9kZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvVXJsU2VydmljZS5nZXRSZXBvVXJsKG5vZGUuaWNvblVSTCwgbm9kZSk7XG4gICAgfVxufVxuIl19
@@ -1,24 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { RestConstants } from 'ngx-edu-sharing-api';
3
- import * as i0 from "@angular/core";
4
- export class NodeImageSizePipe {
5
- transform(node, args = null) {
6
- const width = parseFloat(node.properties[RestConstants.CCM_PROP_WIDTH]?.[0]);
7
- const height = parseFloat(node.properties[RestConstants.CCM_PROP_HEIGHT]?.[0]);
8
- const megapixel = Math.round((width * height) / 1000000);
9
- if (width && height) {
10
- if (megapixel > 1) {
11
- return megapixel + ' Megapixel';
12
- }
13
- return Math.round(width) + 'x' + Math.round(height);
14
- }
15
- return '';
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeImageSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
18
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NodeImageSizePipe, name: "NodeImageSize" }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeImageSizePipe, decorators: [{
21
- type: Pipe,
22
- args: [{ name: 'NodeImageSize' }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbWFnZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL25vZGUtaW1hZ2Utc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBUSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixTQUFTLENBQUMsSUFBVSxFQUFFLE9BQVksSUFBSTtRQUNsQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxTQUFTLEdBQUcsWUFBWSxDQUFDO1lBQ3BDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzsrR0FaUSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlVHJhbnNmb3JtLCBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlLCBSZXN0Q29uc3RhbnRzIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5cbkBQaXBlKHsgbmFtZTogJ05vZGVJbWFnZVNpemUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZUltYWdlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0obm9kZTogTm9kZSwgYXJnczogYW55ID0gbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcGFyc2VGbG9hdChub2RlLnByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DQ01fUFJPUF9XSURUSF0/LlswXSk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHBhcnNlRmxvYXQobm9kZS5wcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfSEVJR0hUXT8uWzBdKTtcbiAgICAgICAgY29uc3QgbWVnYXBpeGVsID0gTWF0aC5yb3VuZCgod2lkdGggKiBoZWlnaHQpIC8gMTAwMDAwMCk7XG4gICAgICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHtcbiAgICAgICAgICAgIGlmIChtZWdhcGl4ZWwgPiAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lZ2FwaXhlbCArICcgTWVnYXBpeGVsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHdpZHRoKSArICd4JyArIE1hdGgucm91bmQoaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuIl19
@@ -1,55 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as rxjs from 'rxjs';
3
- import { map, switchMap } from 'rxjs/operators';
4
- import { RestConstants } from 'ngx-edu-sharing-api';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../services/node-helper.service";
7
- import * as i2 from "@angular/platform-browser";
8
- import * as i3 from "../services/repo-url.service";
9
- import * as i4 from "ngx-edu-sharing-api";
10
- export class NodeImagePipe {
11
- constructor(nodeHelper, sanitizer, repoUrlService, networkApi) {
12
- this.nodeHelper = nodeHelper;
13
- this.sanitizer = sanitizer;
14
- this.repoUrlService = repoUrlService;
15
- this.networkApi = networkApi;
16
- }
17
- transform(node, preferences) {
18
- if (this.nodeHelper.isNodeCollection(node) && node.preview.isIcon) {
19
- return null;
20
- }
21
- else if (node.preview.data) {
22
- return rxjs.of(this.sanitizer.bypassSecurityTrustResourceUrl('data:' + node.preview.mimetype + ';base64,' + node.preview.data));
23
- }
24
- else {
25
- return this.getPreviewUrl(node, preferences);
26
- }
27
- }
28
- getPreviewUrl(node, preferences) {
29
- return this.isEduSharingNode(node).pipe(switchMap(async (isEduSharingNode) => {
30
- let url = await this.repoUrlService.getRepoUrl(node.preview.url, node);
31
- if (isEduSharingNode) {
32
- url += Object.entries(preferences)
33
- .map(([key, value]) => `&${key}=${value}`)
34
- .join('');
35
- }
36
- return url;
37
- }));
38
- }
39
- isEduSharingNode(node) {
40
- return rxjs
41
- .forkJoin([
42
- this.networkApi.isFromHomeRepository(node),
43
- this.networkApi.getRepositoryOfNode(node),
44
- ])
45
- .pipe(map(([isFromHomeRepository, repository]) => isFromHomeRepository ||
46
- repository?.repositoryType === RestConstants.REPOSITORY_TYPE_ALFRESCO));
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeImagePipe, deps: [{ token: i1.NodeHelperService }, { token: i2.DomSanitizer }, { token: i3.RepoUrlService }, { token: i4.NetworkService }], target: i0.ɵɵFactoryTarget.Pipe }); }
49
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NodeImagePipe, name: "esNodeImage" }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeImagePipe, decorators: [{
52
- type: Pipe,
53
- args: [{ name: 'esNodeImage' }]
54
- }], ctorParameters: () => [{ type: i1.NodeHelperService }, { type: i2.DomSanitizer }, { type: i3.RepoUrlService }, { type: i4.NetworkService }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbWFnZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLWltYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHcEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQVdwRCxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNZLFVBQTZCLEVBQzdCLFNBQXVCLEVBQ3ZCLGNBQThCLEVBQzlCLFVBQTBCO1FBSDFCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQWdCO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQUMsSUFBVSxFQUFFLFdBQWlDO1FBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQ3pDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ25FLENBQ0osQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVLEVBQUUsV0FBaUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNuQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEVBQUU7WUFDakMsSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztxQkFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO3FCQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQy9CLE9BQU8sSUFBSTthQUNOLFFBQVEsQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1NBQzVDLENBQUM7YUFDRCxJQUFJLENBQ0QsR0FBRyxDQUNDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQ25DLG9CQUFvQjtZQUNwQixVQUFVLEVBQUUsY0FBYyxLQUFLLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDNUUsQ0FDSixDQUFDO0lBQ1YsQ0FBQzsrR0FqRFEsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTm9kZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IFJlcG9VcmxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwby11cmwuc2VydmljZSc7XG5pbXBvcnQgeyBSZXN0Q29uc3RhbnRzIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5cbmludGVyZmFjZSBOb2RlSW1hZ2VQcmVmZXJlbmNlcyB7XG4gICAgY3JvcD86IGJvb2xlYW47XG4gICAgbWF4V2lkdGg/OiBudW1iZXI7XG4gICAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbn1cblxuQFBpcGUoeyBuYW1lOiAnZXNOb2RlSW1hZ2UnIH0pXG5leHBvcnQgY2xhc3MgTm9kZUltYWdlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5vZGVIZWxwZXI6IE5vZGVIZWxwZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlcG9VcmxTZXJ2aWNlOiBSZXBvVXJsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrQXBpOiBOZXR3b3JrU2VydmljZSxcbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0obm9kZTogTm9kZSwgcHJlZmVyZW5jZXM6IE5vZGVJbWFnZVByZWZlcmVuY2VzKTogT2JzZXJ2YWJsZTxTYWZlUmVzb3VyY2VVcmw+IHtcbiAgICAgICAgaWYgKHRoaXMubm9kZUhlbHBlci5pc05vZGVDb2xsZWN0aW9uKG5vZGUpICYmIG5vZGUucHJldmlldy5pc0ljb24pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGUucHJldmlldy5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gcnhqcy5vZihcbiAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoXG4gICAgICAgICAgICAgICAgICAgICdkYXRhOicgKyBub2RlLnByZXZpZXcubWltZXR5cGUgKyAnO2Jhc2U2NCwnICsgbm9kZS5wcmV2aWV3LmRhdGEsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRQcmV2aWV3VXJsKG5vZGUsIHByZWZlcmVuY2VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJldmlld1VybChub2RlOiBOb2RlLCBwcmVmZXJlbmNlczogTm9kZUltYWdlUHJlZmVyZW5jZXMpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0VkdVNoYXJpbmdOb2RlKG5vZGUpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoYXN5bmMgKGlzRWR1U2hhcmluZ05vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gYXdhaXQgdGhpcy5yZXBvVXJsU2VydmljZS5nZXRSZXBvVXJsKG5vZGUucHJldmlldy51cmwsIG5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChpc0VkdVNoYXJpbmdOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCArPSBPYmplY3QuZW50cmllcyhwcmVmZXJlbmNlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCYke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0VkdVNoYXJpbmdOb2RlKG5vZGU6IE5vZGUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHJ4anNcbiAgICAgICAgICAgIC5mb3JrSm9pbihbXG4gICAgICAgICAgICAgICAgdGhpcy5uZXR3b3JrQXBpLmlzRnJvbUhvbWVSZXBvc2l0b3J5KG5vZGUpLFxuICAgICAgICAgICAgICAgIHRoaXMubmV0d29ya0FwaS5nZXRSZXBvc2l0b3J5T2ZOb2RlKG5vZGUpLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFtpc0Zyb21Ib21lUmVwb3NpdG9yeSwgcmVwb3NpdG9yeV0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Zyb21Ib21lUmVwb3NpdG9yeSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeT8ucmVwb3NpdG9yeVR5cGUgPT09IFJlc3RDb25zdGFudHMuUkVQT1NJVE9SWV9UWVBFX0FMRlJFU0NPLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { RestConstants } from 'ngx-edu-sharing-api';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngx-translate/core";
5
- export class NodeLicensePipe {
6
- constructor(translate) {
7
- this.translate = translate;
8
- }
9
- transform(node, args) {
10
- if (node.properties[RestConstants.CCM_PROP_LICENSE]?.[0]) {
11
- if (args?.type === 'name') {
12
- return this.translate.get('LICENSE.NAMES.' + node.properties[RestConstants.CCM_PROP_LICENSE]?.[0]);
13
- }
14
- }
15
- return null;
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeLicensePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
18
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NodeLicensePipe, name: "esNodeLicense" }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeLicensePipe, decorators: [{
21
- type: Pipe,
22
- args: [{ name: 'esNodeLicense' }]
23
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1saWNlbnNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3BpcGVzL25vZGUtbGljZW5zZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBUSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTFELE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQUNuRCxTQUFTLENBQUMsSUFBVSxFQUFFLElBQTJCO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNyQixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzFFLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBWFEsZUFBZTs2R0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuZXhwb3J0IHR5cGUgTGljZW5zZVR5cGUgPSAnbmFtZSc7XG5cbkBQaXBlKHsgbmFtZTogJ2VzTm9kZUxpY2Vuc2UnIH0pXG5leHBvcnQgY2xhc3MgTm9kZUxpY2Vuc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG4gICAgdHJhbnNmb3JtKG5vZGU6IE5vZGUsIGFyZ3M6IHsgdHlwZTogTGljZW5zZVR5cGUgfSkge1xuICAgICAgICBpZiAobm9kZS5wcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfTElDRU5TRV0/LlswXSkge1xuICAgICAgICAgICAgaWYgKGFyZ3M/LnR5cGUgPT09ICduYW1lJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoXG4gICAgICAgICAgICAgICAgICAgICdMSUNFTlNFLk5BTUVTLicgKyBub2RlLnByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DQ01fUFJPUF9MSUNFTlNFXT8uWzBdLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19