@memberjunction/ng-dashboards 5.48.0 → 5.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +1 -1
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +2 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +7 -0
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +25 -5
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +7 -0
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +66 -37
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +29 -12
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +7 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +11 -4
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +35 -25
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.d.ts +5 -0
- package/dist/Testing/services/testing-instrumentation.service.d.ts.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.js +8 -2
- package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
- package/dist/ThemeStudio/theme-agent-context.d.ts +64 -0
- package/dist/ThemeStudio/theme-agent-context.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-agent-context.js +129 -0
- package/dist/ThemeStudio/theme-agent-context.js.map +1 -0
- package/dist/ThemeStudio/theme-manager-dashboard.component.d.ts +62 -0
- package/dist/ThemeStudio/theme-manager-dashboard.component.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-manager-dashboard.component.js +464 -0
- package/dist/ThemeStudio/theme-manager-dashboard.component.js.map +1 -0
- package/dist/ThemeStudio/theme-manager-resource.component.d.ts +31 -0
- package/dist/ThemeStudio/theme-manager-resource.component.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-manager-resource.component.js +97 -0
- package/dist/ThemeStudio/theme-manager-resource.component.js.map +1 -0
- package/dist/ThemeStudio/theme-studio-dashboard.component.d.ts +351 -0
- package/dist/ThemeStudio/theme-studio-dashboard.component.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-studio-dashboard.component.js +2931 -0
- package/dist/ThemeStudio/theme-studio-dashboard.component.js.map +1 -0
- package/dist/ThemeStudio/theme-studio-resource.component.d.ts +28 -0
- package/dist/ThemeStudio/theme-studio-resource.component.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-studio-resource.component.js +96 -0
- package/dist/ThemeStudio/theme-studio-resource.component.js.map +1 -0
- package/dist/ThemeStudio/theme-studio.constants.d.ts +79 -0
- package/dist/ThemeStudio/theme-studio.constants.d.ts.map +1 -0
- package/dist/ThemeStudio/theme-studio.constants.js +217 -0
- package/dist/ThemeStudio/theme-studio.constants.js.map +1 -0
- package/dist/core-dashboards.module.d.ts +56 -52
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +24 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +4 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +63 -60
|
@@ -46,6 +46,13 @@ export declare class ListsMyListsResource extends BaseResourceComponent implemen
|
|
|
46
46
|
contextMenuX: number;
|
|
47
47
|
contextMenuY: number;
|
|
48
48
|
selectedContextList: MJListEntity | null;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the current user may DELETE the context-menu's list — the same shared ownership rule
|
|
51
|
+
* the server enforces (owner, or a Developer/Integration user). This "My Lists" view is
|
|
52
|
+
* owner-scoped, so for the standard case it's the owner and resolves true; the gate makes it
|
|
53
|
+
* correct-by-construction (and consistent with the Browse view) rather than an unconditional button.
|
|
54
|
+
*/
|
|
55
|
+
get CanDeleteSelectedList(): boolean;
|
|
49
56
|
showCreateDialog: boolean;
|
|
50
57
|
editingList: MJListEntity | null;
|
|
51
58
|
newListName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists-my-lists-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Lists/components/lists-my-lists-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,eAAe,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"lists-my-lists-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Lists/components/lists-my-lists-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Component, ViewEncapsulation, HostListener } from '@angular/core';
|
|
8
8
|
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
9
9
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
10
|
+
import { MJListEntityExtended } from '@memberjunction/core-entities';
|
|
10
11
|
import { RunView } from '@memberjunction/core';
|
|
11
12
|
import { Subject } from 'rxjs';
|
|
12
13
|
import { validateEnumParam, validateStringParam } from '../../shared/agent-tool-validation';
|
|
@@ -309,6 +310,15 @@ function ListsMyListsResource_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
|
309
310
|
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeContextMenu()); });
|
|
310
311
|
i0.ɵɵelementEnd();
|
|
311
312
|
} }
|
|
313
|
+
function ListsMyListsResource_Conditional_19_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
314
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
315
|
+
i0.ɵɵelement(0, "div", 76);
|
|
316
|
+
i0.ɵɵelementStart(1, "button", 77);
|
|
317
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_19_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.confirmDeleteList()); });
|
|
318
|
+
i0.ɵɵelement(2, "i", 78);
|
|
319
|
+
i0.ɵɵtext(3, " Delete ");
|
|
320
|
+
i0.ɵɵelementEnd();
|
|
321
|
+
} }
|
|
312
322
|
function ListsMyListsResource_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
313
323
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
314
324
|
i0.ɵɵelementStart(0, "div", 72)(1, "button", 73);
|
|
@@ -321,20 +331,18 @@ function ListsMyListsResource_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
321
331
|
i0.ɵɵelement(5, "i", 75);
|
|
322
332
|
i0.ɵɵtext(6, " Duplicate ");
|
|
323
333
|
i0.ɵɵelementEnd();
|
|
324
|
-
i0.ɵɵ
|
|
325
|
-
i0.ɵɵ
|
|
326
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_19_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.confirmDeleteList()); });
|
|
327
|
-
i0.ɵɵelement(9, "i", 78);
|
|
328
|
-
i0.ɵɵtext(10, " Delete ");
|
|
329
|
-
i0.ɵɵelementEnd()();
|
|
334
|
+
i0.ɵɵconditionalCreate(7, ListsMyListsResource_Conditional_19_Conditional_7_Template, 4, 0);
|
|
335
|
+
i0.ɵɵelementEnd();
|
|
330
336
|
} if (rf & 2) {
|
|
331
337
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
332
338
|
i0.ɵɵstyleProp("top", ctx_r2.contextMenuY, "px")("left", ctx_r2.contextMenuX, "px");
|
|
339
|
+
i0.ɵɵadvance(7);
|
|
340
|
+
i0.ɵɵconditional(ctx_r2.CanDeleteSelectedList ? 7 : -1);
|
|
333
341
|
} }
|
|
334
342
|
function ListsMyListsResource_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
335
|
-
const
|
|
343
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
336
344
|
i0.ɵɵelementStart(0, "div", 79);
|
|
337
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_20_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
345
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_20_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
338
346
|
i0.ɵɵelementEnd();
|
|
339
347
|
} }
|
|
340
348
|
function ListsMyListsResource_Conditional_21_For_28_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -342,59 +350,59 @@ function ListsMyListsResource_Conditional_21_For_28_Template(rf, ctx) { if (rf &
|
|
|
342
350
|
i0.ɵɵtext(1);
|
|
343
351
|
i0.ɵɵelementEnd();
|
|
344
352
|
} if (rf & 2) {
|
|
345
|
-
const
|
|
346
|
-
i0.ɵɵproperty("ngValue",
|
|
353
|
+
const cat_r23 = ctx.$implicit;
|
|
354
|
+
i0.ɵɵproperty("ngValue", cat_r23.ID);
|
|
347
355
|
i0.ɵɵadvance();
|
|
348
|
-
i0.ɵɵtextInterpolate(
|
|
356
|
+
i0.ɵɵtextInterpolate(cat_r23.displayName);
|
|
349
357
|
} }
|
|
350
358
|
function ListsMyListsResource_Conditional_21_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
351
359
|
i0.ɵɵelement(0, "i", 93);
|
|
352
360
|
} }
|
|
353
361
|
function ListsMyListsResource_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
354
|
-
const
|
|
362
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
355
363
|
i0.ɵɵelementStart(0, "div", 18)(1, "div", 80)(2, "h3");
|
|
356
364
|
i0.ɵɵtext(3);
|
|
357
365
|
i0.ɵɵelementEnd();
|
|
358
366
|
i0.ɵɵelementStart(4, "button", 81);
|
|
359
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_4_listener() { i0.ɵɵrestoreView(
|
|
367
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
360
368
|
i0.ɵɵelement(5, "i", 82);
|
|
361
369
|
i0.ɵɵelementEnd()();
|
|
362
370
|
i0.ɵɵelementStart(6, "div", 83)(7, "div", 84)(8, "label");
|
|
363
371
|
i0.ɵɵtext(9, "Name *");
|
|
364
372
|
i0.ɵɵelementEnd();
|
|
365
373
|
i0.ɵɵelementStart(10, "input", 85);
|
|
366
|
-
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(
|
|
374
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListName, $event) || (ctx_r2.newListName = $event); return i0.ɵɵresetView($event); });
|
|
367
375
|
i0.ɵɵelementEnd()();
|
|
368
376
|
i0.ɵɵelementStart(11, "div", 84)(12, "label");
|
|
369
377
|
i0.ɵɵtext(13, "Description");
|
|
370
378
|
i0.ɵɵelementEnd();
|
|
371
379
|
i0.ɵɵelementStart(14, "textarea", 86);
|
|
372
|
-
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(
|
|
380
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListDescription, $event) || (ctx_r2.newListDescription = $event); return i0.ɵɵresetView($event); });
|
|
373
381
|
i0.ɵɵelementEnd()();
|
|
374
382
|
i0.ɵɵelementStart(15, "div", 84)(16, "label");
|
|
375
383
|
i0.ɵɵtext(17, "Entity *");
|
|
376
384
|
i0.ɵɵelementEnd();
|
|
377
385
|
i0.ɵɵelementStart(18, "div", 87)(19, "input", 88, 1);
|
|
378
|
-
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(
|
|
379
|
-
i0.ɵɵlistener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(
|
|
386
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.entitySearchTerm, $event) || (ctx_r2.entitySearchTerm = $event); return i0.ɵɵresetView($event); });
|
|
387
|
+
i0.ɵɵlistener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.filterEntities($event)); })("focus", function ListsMyListsResource_Conditional_21_Template_input_focus_19_listener() { i0.ɵɵrestoreView(_r21); const entityInput_r22 = i0.ɵɵreference(20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.openEntityDropdown(entityInput_r22)); });
|
|
380
388
|
i0.ɵɵelementEnd()()();
|
|
381
389
|
i0.ɵɵelementStart(21, "div", 84)(22, "label");
|
|
382
390
|
i0.ɵɵtext(23, "Category");
|
|
383
391
|
i0.ɵɵelementEnd();
|
|
384
392
|
i0.ɵɵelementStart(24, "select", 89);
|
|
385
|
-
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_select_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(
|
|
393
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_21_Template_select_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedCategoryId, $event) || (ctx_r2.selectedCategoryId = $event); return i0.ɵɵresetView($event); });
|
|
386
394
|
i0.ɵɵelementStart(25, "option", 90);
|
|
387
395
|
i0.ɵɵtext(26, "No category");
|
|
388
396
|
i0.ɵɵelementEnd();
|
|
389
397
|
i0.ɵɵrepeaterCreate(27, ListsMyListsResource_Conditional_21_For_28_Template, 2, 2, "option", 90, i0.ɵɵrepeaterTrackByIdentity);
|
|
390
398
|
i0.ɵɵelementEnd()()();
|
|
391
399
|
i0.ɵɵelementStart(29, "div", 91)(30, "button", 92);
|
|
392
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_30_listener() { i0.ɵɵrestoreView(
|
|
400
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.saveList()); });
|
|
393
401
|
i0.ɵɵconditionalCreate(31, ListsMyListsResource_Conditional_21_Conditional_31_Template, 1, 0, "i", 93);
|
|
394
402
|
i0.ɵɵtext(32);
|
|
395
403
|
i0.ɵɵelementEnd();
|
|
396
404
|
i0.ɵɵelementStart(33, "button", 94);
|
|
397
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_33_listener() { i0.ɵɵrestoreView(
|
|
405
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_button_click_33_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
398
406
|
i0.ɵɵtext(34, "Cancel");
|
|
399
407
|
i0.ɵɵelementEnd()()();
|
|
400
408
|
} if (rf & 2) {
|
|
@@ -424,21 +432,21 @@ function ListsMyListsResource_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
424
432
|
i0.ɵɵproperty("disabled", ctx_r2.isSaving);
|
|
425
433
|
} }
|
|
426
434
|
function ListsMyListsResource_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
427
|
-
const
|
|
435
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
428
436
|
i0.ɵɵelementStart(0, "div", 79);
|
|
429
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_22_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
437
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_22_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
430
438
|
i0.ɵɵelementEnd();
|
|
431
439
|
} }
|
|
432
440
|
function ListsMyListsResource_Conditional_23_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
433
441
|
i0.ɵɵelement(0, "i", 93);
|
|
434
442
|
} }
|
|
435
443
|
function ListsMyListsResource_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
436
|
-
const
|
|
444
|
+
const _r25 = i0.ɵɵgetCurrentView();
|
|
437
445
|
i0.ɵɵelementStart(0, "div", 19)(1, "div", 80)(2, "h3");
|
|
438
446
|
i0.ɵɵtext(3, "Delete List");
|
|
439
447
|
i0.ɵɵelementEnd();
|
|
440
448
|
i0.ɵɵelementStart(4, "button", 81);
|
|
441
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_4_listener() { i0.ɵɵrestoreView(
|
|
449
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
442
450
|
i0.ɵɵelement(5, "i", 82);
|
|
443
451
|
i0.ɵɵelementEnd()();
|
|
444
452
|
i0.ɵɵelementStart(6, "div", 83)(7, "p");
|
|
@@ -452,12 +460,12 @@ function ListsMyListsResource_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
|
452
460
|
i0.ɵɵtext(13, "This will also remove all items in the list.");
|
|
453
461
|
i0.ɵɵelementEnd()();
|
|
454
462
|
i0.ɵɵelementStart(14, "div", 91)(15, "button", 96);
|
|
455
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_15_listener() { i0.ɵɵrestoreView(
|
|
463
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteList()); });
|
|
456
464
|
i0.ɵɵconditionalCreate(16, ListsMyListsResource_Conditional_23_Conditional_16_Template, 1, 0, "i", 93);
|
|
457
465
|
i0.ɵɵtext(17);
|
|
458
466
|
i0.ɵɵelementEnd();
|
|
459
467
|
i0.ɵɵelementStart(18, "button", 97);
|
|
460
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_18_listener() { i0.ɵɵrestoreView(
|
|
468
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
461
469
|
i0.ɵɵtext(19, "Cancel");
|
|
462
470
|
i0.ɵɵelementEnd()()();
|
|
463
471
|
} if (rf & 2) {
|
|
@@ -470,15 +478,15 @@ function ListsMyListsResource_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
|
470
478
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.isDeleting ? "Deleting..." : "Delete", " ");
|
|
471
479
|
} }
|
|
472
480
|
function ListsMyListsResource_Conditional_24_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
473
|
-
const
|
|
481
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
474
482
|
i0.ɵɵelementStart(0, "div", 102);
|
|
475
|
-
i0.ɵɵlistener("mousedown", function ListsMyListsResource_Conditional_24_For_3_Template_div_mousedown_0_listener($event) { const
|
|
483
|
+
i0.ɵɵlistener("mousedown", function ListsMyListsResource_Conditional_24_For_3_Template_div_mousedown_0_listener($event) { const entity_r27 = i0.ɵɵrestoreView(_r26).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.selectEntity(entity_r27); return i0.ɵɵresetView($event.preventDefault()); });
|
|
476
484
|
i0.ɵɵtext(1);
|
|
477
485
|
i0.ɵɵelementEnd();
|
|
478
486
|
} if (rf & 2) {
|
|
479
|
-
const
|
|
487
|
+
const entity_r27 = ctx.$implicit;
|
|
480
488
|
i0.ɵɵadvance();
|
|
481
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
489
|
+
i0.ɵɵtextInterpolate1(" ", entity_r27.Name, " ");
|
|
482
490
|
} }
|
|
483
491
|
function ListsMyListsResource_Conditional_24_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
484
492
|
i0.ɵɵelementStart(0, "div", 101);
|
|
@@ -522,6 +530,19 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
522
530
|
contextMenuX = 0;
|
|
523
531
|
contextMenuY = 0;
|
|
524
532
|
selectedContextList = null;
|
|
533
|
+
/**
|
|
534
|
+
* Whether the current user may DELETE the context-menu's list — the same shared ownership rule
|
|
535
|
+
* the server enforces (owner, or a Developer/Integration user). This "My Lists" view is
|
|
536
|
+
* owner-scoped, so for the standard case it's the owner and resolves true; the gate makes it
|
|
537
|
+
* correct-by-construction (and consistent with the Browse view) rather than an unconditional button.
|
|
538
|
+
*/
|
|
539
|
+
get CanDeleteSelectedList() {
|
|
540
|
+
const list = this.selectedContextList;
|
|
541
|
+
if (!list) {
|
|
542
|
+
return false;
|
|
543
|
+
}
|
|
544
|
+
return MJListEntityExtended.UserCanDelete(list.UserID, this.ProviderToUse.CurrentUser);
|
|
545
|
+
}
|
|
525
546
|
// Create/Edit dialog
|
|
526
547
|
showCreateDialog = false;
|
|
527
548
|
editingList = null;
|
|
@@ -1027,6 +1048,12 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
1027
1048
|
return;
|
|
1028
1049
|
const listToDelete = this.listToDelete;
|
|
1029
1050
|
const listName = listToDelete.Name;
|
|
1051
|
+
// Defense-in-depth: re-check the shared ownership rule before deleting (the server is the true
|
|
1052
|
+
// enforcement point, but this fails fast with a clean message).
|
|
1053
|
+
if (!MJListEntityExtended.UserCanDelete(listToDelete.UserID, this.ProviderToUse.CurrentUser)) {
|
|
1054
|
+
this.notificationService.CreateSimpleNotification(`You don't have permission to delete "${listName}".`, 'error', 6000);
|
|
1055
|
+
return;
|
|
1056
|
+
}
|
|
1030
1057
|
this.isDeleting = true;
|
|
1031
1058
|
this.cdr.detectChanges();
|
|
1032
1059
|
try {
|
|
@@ -1131,7 +1158,7 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
1131
1158
|
i0.ɵɵconditionalCreate(15, ListsMyListsResource_Conditional_15_Template, 10, 8, "div", 14);
|
|
1132
1159
|
i0.ɵɵtemplate(16, ListsMyListsResource_ng_template_16_Template, 5, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1133
1160
|
i0.ɵɵconditionalCreate(18, ListsMyListsResource_Conditional_18_Template, 1, 0, "div", 15);
|
|
1134
|
-
i0.ɵɵconditionalCreate(19, ListsMyListsResource_Conditional_19_Template,
|
|
1161
|
+
i0.ɵɵconditionalCreate(19, ListsMyListsResource_Conditional_19_Template, 8, 5, "div", 16);
|
|
1135
1162
|
i0.ɵɵconditionalCreate(20, ListsMyListsResource_Conditional_20_Template, 1, 0, "div", 17);
|
|
1136
1163
|
i0.ɵɵconditionalCreate(21, ListsMyListsResource_Conditional_21_Template, 35, 11, "div", 18);
|
|
1137
1164
|
i0.ɵɵconditionalCreate(22, ListsMyListsResource_Conditional_22_Template, 1, 0, "div", 17);
|
|
@@ -1403,11 +1430,13 @@ export { ListsMyListsResource };
|
|
|
1403
1430
|
<i class="fa-solid fa-copy"></i>
|
|
1404
1431
|
Duplicate
|
|
1405
1432
|
</button>
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
<
|
|
1409
|
-
|
|
1410
|
-
|
|
1433
|
+
@if (CanDeleteSelectedList) {
|
|
1434
|
+
<div class="menu-divider"></div>
|
|
1435
|
+
<button class="menu-item danger" (click)="confirmDeleteList()">
|
|
1436
|
+
<i class="fa-solid fa-trash"></i>
|
|
1437
|
+
Delete
|
|
1438
|
+
</button>
|
|
1439
|
+
}
|
|
1411
1440
|
</div>
|
|
1412
1441
|
}
|
|
1413
1442
|
|
|
@@ -1541,5 +1570,5 @@ export { ListsMyListsResource };
|
|
|
1541
1570
|
type: HostListener,
|
|
1542
1571
|
args: ['document:keydown.escape']
|
|
1543
1572
|
}] }); })();
|
|
1544
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsMyListsResource, { className: "ListsMyListsResource", filePath: "src/Lists/components/lists-my-lists-resource.component.ts", lineNumber:
|
|
1573
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsMyListsResource, { className: "ListsMyListsResource", filePath: "src/Lists/components/lists-my-lists-resource.component.ts", lineNumber: 1059 }); })();
|
|
1545
1574
|
//# sourceMappingURL=lists-my-lists-resource.component.js.map
|