@stratusjs/angular 0.9.3 → 0.10.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.
@@ -27,11 +27,20 @@ import {
27
27
  import {DomSanitizer} from '@angular/platform-browser'
28
28
  import {IconOptions, MatIconRegistry} from '@angular/material/icon'
29
29
 
30
- // RXJS
31
-
32
30
  // External Dependencies
33
31
  import {Stratus} from '@stratusjs/runtime/stratus'
34
- import _ from 'lodash'
32
+ import {
33
+ forEach,
34
+ get,
35
+ has,
36
+ head,
37
+ isArray,
38
+ isEmpty,
39
+ isObject,
40
+ isUndefined,
41
+ snakeCase,
42
+ uniqueId
43
+ } from 'lodash'
35
44
  import {keys} from 'ts-transformer-keys'
36
45
  import {cookie} from '@stratusjs/core/environment'
37
46
 
@@ -61,7 +70,7 @@ const min = !cookie('env') ? '.min' : ''
61
70
  const localDir = `${Stratus.BaseUrl}${boot.configuration.paths[`${systemDir}/*`].replace(/[^/]*$/, '').replace(/\/dist\/$/, '/src/')}`
62
71
 
63
72
  // Utility Functions
64
- const has = (object: object, path: string) => _.has(object, path) && !_.isEmpty(_.get(object, path))
73
+ const hasNotEmpty = (object: object, path: string) => has(object, path) && !isEmpty(get(object, path))
65
74
 
66
75
  // export interface Model {
67
76
  // completed: boolean;
@@ -106,8 +115,8 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
106
115
  @Input() ignorePriority: boolean
107
116
 
108
117
  // Dependencies
109
- _ = _
110
- has = has
118
+ get = get
119
+ has = hasNotEmpty
111
120
  log = console.log
112
121
  Stratus = Stratus
113
122
 
@@ -151,14 +160,14 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
151
160
  super()
152
161
 
153
162
  // Initialization
154
- this.uid = _.uniqueId(`sa_${_.snakeCase(moduleName)}_component_`)
163
+ this.uid = uniqueId(`sa_${snakeCase(moduleName)}_component_`)
155
164
  Stratus.Instances[this.uid] = this
156
165
 
157
166
  // Declare Observable with Subscriber (Only Happens Once)
158
167
  this.dataSub = new Observable(subscriber => this.dataDefer(subscriber))
159
168
 
160
169
  // SVG Icons
161
- _.forEach({
170
+ forEach({
162
171
  selector_delete: `${Stratus.BaseUrl}sitetheorycore/images/icons/actionButtons/delete.svg`,
163
172
  selector_status: `${Stratus.BaseUrl}sitetheorycore/images/icons/actionButtons/visibility.svg`,
164
173
  selector_edit: `${Stratus.BaseUrl}sitetheorycore/images/icons/actionButtons/edit.svg`
@@ -169,13 +178,13 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
169
178
  Stratus.Internals.CssLoader(`${localDir}${moduleName}/${moduleName}.component${min}.css`)
170
179
  .then(() => {
171
180
  this.styled = true
172
- this.refresh()
181
+ this.refresh().then()
173
182
  })
174
183
  .catch((err: any) => {
175
184
  console.warn('Issue detected in CSS Loader for Component:', this)
176
185
  console.error(err)
177
186
  this.styled = true
178
- this.refresh()
187
+ this.refresh().then()
179
188
  })
180
189
 
181
190
  // Hydrate Root App Inputs
@@ -197,7 +206,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
197
206
  // this.onDataChange();
198
207
  this.dataDefer(this.subscriber)
199
208
  this.prioritize()
200
- this.refresh()
209
+ this.refresh().then()
201
210
  }
202
211
  data.on('change', onDataChange)
203
212
  onDataChange()
@@ -246,7 +255,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
246
255
  moveItemInArray(models, event.previousIndex, event.currentIndex)
247
256
  if (!this.ignorePriority) {
248
257
  let priority = 0
249
- _.forEach(models, (model: any) => model.priority = priority++)
258
+ forEach(models, (model: any) => model.priority = priority++)
250
259
  }
251
260
  this.model.trigger('change')
252
261
  }
@@ -263,6 +272,10 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
263
272
  // model is not directly a model, but just a sub entity of content.version.modules
264
273
  // so we have to create a special API call to update just this one model
265
274
  // 'Content/' + model.id
275
+ let meta = {}
276
+ if (!isUndefined(this.data)) {
277
+ meta = get(this.data, 'meta.data.api')
278
+ }
266
279
  const statusOriginal = model.status
267
280
  model.status = statusOriginal === 1 ? 0 : 1
268
281
  // Create a direct XHR
@@ -271,7 +284,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
271
284
  url: '/Api/Content/' + model.id,
272
285
  data: {
273
286
  route: {},
274
- meta: {},
287
+ meta,
275
288
  payload: {
276
289
  status: model.status
277
290
  }
@@ -280,18 +293,18 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
280
293
  })
281
294
  xhr.send()
282
295
  .then((response: LooseObject | Array<LooseObject> | string) => {
283
- if (!_.isObject(response) || _.get(response, 'meta.status[0].code') !== 'SUCCESS') {
296
+ if (!isObject(response) || get(response, 'meta.status[0].code') !== 'SUCCESS') {
284
297
  console.error('error[toggleStatus]:', response)
285
298
  model.status = statusOriginal
286
- this.refresh()
299
+ this.refresh().then()
287
300
  return
288
301
  }
289
- console.log('success[toggleStatus]:', response)
302
+ // console.log('success[toggleStatus]:', response)
290
303
  })
291
304
  .catch((error: any) => {
292
305
  console.error('error[toggleStatus]:', error)
293
306
  model.status = statusOriginal
294
- this.refresh()
307
+ this.refresh().then()
295
308
  })
296
309
  return
297
310
  }
@@ -301,7 +314,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
301
314
  if (!models || !models.length) {
302
315
  console.error('unable to remove model from selection:', models)
303
316
  // Still refresh if empty
304
- this.refresh()
317
+ this.refresh().then()
305
318
  return
306
319
  }
307
320
  let index: number = models.indexOf(model)
@@ -310,9 +323,9 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
310
323
  const mirrorModels = models
311
324
  .map((m: any) => model.id === m.id ? m : null)
312
325
  .filter((m: any) => m)
313
- if (_.isArray(mirrorModels) && mirrorModels.length) {
326
+ if (isArray(mirrorModels) && mirrorModels.length) {
314
327
  index = models.indexOf(
315
- _.first(mirrorModels)
328
+ head(mirrorModels)
316
329
  )
317
330
  }
318
331
  }
@@ -365,7 +378,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
365
378
  console.log('pushed models to subscriber:', models)
366
379
  }
367
380
  /* */
368
- this.refresh()
381
+ this.refresh().then()
369
382
  // TODO: Add a returned Promise to ensure async/await can use this defer directly.
370
383
  }
371
384
 
@@ -374,7 +387,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
374
387
  return []
375
388
  }
376
389
  const models = this.model.get(this.property)
377
- if (!models || !_.isArray(models)) {
390
+ if (!models || !isArray(models)) {
378
391
  return []
379
392
  }
380
393
  return models
@@ -422,7 +435,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
422
435
  // FIXME: This is not in use due to contextual issues.
423
436
  this.prioritize()
424
437
  this.dataDefer(this.subscriber)
425
- this.refresh()
438
+ this.refresh().then()
426
439
  }
427
440
 
428
441
  prioritize() {
@@ -432,7 +445,7 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
432
445
  }
433
446
  if (!this.ignorePriority) {
434
447
  let priority = 0
435
- _.forEach(models, (model) => model.priority = priority++)
448
+ forEach(models, (model) => model.priority = priority++)
436
449
  }
437
450
  }
438
451
 
@@ -469,20 +482,20 @@ export class SelectorComponent extends RootComponent { // implements OnInit, OnC
469
482
  if (!options) {
470
483
  options = {}
471
484
  }
472
- const uid = this.svgIcons[url] = _.uniqueId('selector_svg')
485
+ const uid = this.svgIcons[url] = uniqueId('selector_svg')
473
486
  this.iconRegistry.addSvgIcon(uid, this.sanitizer.bypassSecurityTrustResourceUrl(url), options)
474
487
  return uid
475
488
  }
476
489
 
477
490
  // findImage(model: any): string {
478
- // const mime = _.get(model, 'version.images[0].mime');
491
+ // const mime = get(model, 'version.images[0].mime');
479
492
  // if (mime === undefined) {
480
493
  // return '';
481
494
  // }
482
495
  // if (mime.indexOf('image') !== -1) {
483
- // return _.get(model, 'version.images[0].src') || _.get(model, 'version.shellImages[0].src') || '';
496
+ // return get(model, 'version.images[0].src') || get(model, 'version.shellImages[0].src') || '';
484
497
  // } else if (mime.indexOf('video') !== -1) {
485
- // return _.get(model, 'version.images[0].meta.thumbnail_small') || '';
498
+ // return get(model, 'version.images[0].meta.thumbnail_small') || '';
486
499
  // }
487
500
  // return '';
488
501
  // }
@@ -94,8 +94,8 @@
94
94
 
95
95
  <!-- Content Type Icon -->
96
96
  <mat-icon aria-hidden="true"
97
- *ngIf="_.get(model, 'contentType.iconResourcePath')"
98
- [svgIcon]="getSvg(Stratus.BaseUrl + _.get(model, 'contentType.iconResourcePath')) | async">
97
+ *ngIf="get(model, 'contentType.iconResourcePath')"
98
+ [svgIcon]="getSvg(Stratus.BaseUrl + get(model, 'contentType.iconResourcePath')) | async">
99
99
  Icon
100
100
  </mat-icon>
101
101
 
@@ -1,4 +1,4 @@
1
- System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@angular/material/dialog", "rxjs/operators", "lodash", "@stratusjs/runtime/stratus", "@stratusjs/core/environment", "../core/responsive.component"], function (exports_1, context_1) {
1
+ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@angular/material/dialog", "rxjs/operators", "lodash", "@stratusjs/runtime/stratus", "@stratusjs/core/environment", "../core/responsive.component", "@stratusjs/core/misc"], function (exports_1, context_1) {
2
2
  "use strict";
3
3
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
4
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -12,7 +12,7 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
12
12
  var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  return function (target, key) { decorator(target, key, paramIndex); }
14
14
  };
15
- var core_1, forms_1, drag_drop_1, dialog_1, operators_1, lodash_1, stratus_1, environment_1, responsive_component_1, systemDir, moduleName, parentModuleName, min, localDir, TreeDialogComponent;
15
+ var core_1, forms_1, drag_drop_1, dialog_1, operators_1, lodash_1, stratus_1, environment_1, responsive_component_1, misc_1, systemDir, moduleName, parentModuleName, min, localDir, TreeDialogComponent;
16
16
  var __moduleName = context_1 && context_1.id;
17
17
  return {
18
18
  setters: [
@@ -42,6 +42,9 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
42
42
  },
43
43
  function (responsive_component_1_1) {
44
44
  responsive_component_1 = responsive_component_1_1;
45
+ },
46
+ function (misc_1_1) {
47
+ misc_1 = misc_1_1;
45
48
  }
46
49
  ],
47
50
  execute: function () {
@@ -61,17 +64,22 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
61
64
  this.isInitialized = false;
62
65
  this.isDestroyed = false;
63
66
  this.isStyled = false;
64
- this._ = lodash_1.default;
67
+ this.get = lodash_1.get;
65
68
  this.Stratus = stratus_1.Stratus;
66
69
  this.apiBase = '/Api/Content';
67
70
  this.isSingleContentLoading = false;
68
71
  this.limit = 20;
69
72
  this.isContentLoading = false;
70
73
  this.isContentLoaded = false;
71
- this.basicContentQueryAttributes = 'options[isContent]=null&options[isCollection]=null&options[showRoutable]=true&options[showRouting]=true';
74
+ this.basicContentQueryAttributesObject = {
75
+ isContent: true,
76
+ isCollection: null,
77
+ showRoutable: true,
78
+ showRouting: true
79
+ };
72
80
  }
73
81
  ngOnInit() {
74
- this.uid = lodash_1.default.uniqueId(`sa_${lodash_1.default.snakeCase(moduleName)}_component_`);
82
+ this.uid = lodash_1.uniqueId(`sa_${lodash_1.snakeCase(moduleName)}_component_`);
75
83
  stratus_1.Stratus.Instances[this.uid] = this;
76
84
  stratus_1.Stratus.Internals.CssLoader(`${localDir}/${parentModuleName}/${moduleName}.component${min}.css`)
77
85
  .then(() => {
@@ -94,7 +102,7 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
94
102
  .get('contentSelectorInput')
95
103
  .valueChanges
96
104
  .pipe(operators_1.debounceTime(300), operators_1.tap(() => this.isContentLoading = true), operators_1.switchMap((value) => {
97
- if (lodash_1.default.isString(value)) {
105
+ if (lodash_1.isString(value)) {
98
106
  this.lastContentSelectorQuery = this.getQueryUrl(value);
99
107
  }
100
108
  else {
@@ -118,11 +126,11 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
118
126
  .get(this.getQueryUrl(null, this.data.content.id))
119
127
  .pipe(operators_1.finalize(() => this.isSingleContentLoading = false))
120
128
  .subscribe((response) => {
121
- if (!response.ok || response.status !== 200 || lodash_1.default.isEmpty(response.body)) {
129
+ if (!response.ok || response.status !== 200 || lodash_1.isEmpty(response.body)) {
122
130
  return null;
123
131
  }
124
- const payload = lodash_1.default.get(response.body, 'payload') || response.body;
125
- if (lodash_1.default.isEmpty(payload) || Array.isArray(payload) || !lodash_1.default.isObject(payload)) {
132
+ const payload = lodash_1.get(response.body, 'payload') || response.body;
133
+ if (lodash_1.isEmpty(payload) || Array.isArray(payload) || !lodash_1.isObject(payload)) {
126
134
  return null;
127
135
  }
128
136
  this.contentEntity = payload;
@@ -130,7 +138,7 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
130
138
  this.dialogContentForm
131
139
  .get('contentSelectorInput')
132
140
  .patchValue(this.contentEntity);
133
- this.refresh();
141
+ this.refresh().then();
134
142
  return this.contentEntity;
135
143
  });
136
144
  }
@@ -155,19 +163,19 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
155
163
  if (!content) {
156
164
  return;
157
165
  }
158
- const routing = lodash_1.default.get(content, 'routing[0].url');
159
- const routingText = !lodash_1.default.isUndefined(routing) ? ` (/${routing})` : ' (No route!)';
160
- const contentId = lodash_1.default.get(content, 'id');
161
- const contentIdText = !lodash_1.default.isUndefined(contentId) ? `Content: ${contentId}` : null;
162
- return (lodash_1.default.get(content, 'version.title') || contentIdText) + routingText;
166
+ const routing = lodash_1.get(content, 'routing[0].url');
167
+ const routingText = !lodash_1.isUndefined(routing) ? ` (/${routing})` : ' (No route!)';
168
+ const contentId = lodash_1.get(content, 'id');
169
+ const contentIdText = !lodash_1.isUndefined(contentId) ? `Content: ${contentId}` : null;
170
+ return (lodash_1.get(content, 'version.title') || contentIdText) + routingText;
163
171
  }
164
172
  handleContent(response) {
165
- if (!response.ok || response.status !== 200 || lodash_1.default.isEmpty(response.body)) {
173
+ if (!response.ok || response.status !== 200 || lodash_1.isEmpty(response.body)) {
166
174
  this.filteredContent = [];
167
175
  return this.filteredContent;
168
176
  }
169
- const payload = lodash_1.default.get(response.body, 'payload') || response.body;
170
- if (lodash_1.default.isEmpty(payload) || !Array.isArray(payload)) {
177
+ const payload = lodash_1.get(response.body, 'payload') || response.body;
178
+ if (lodash_1.isEmpty(payload) || !Array.isArray(payload)) {
171
179
  this.filteredContent = [];
172
180
  return this.filteredContent;
173
181
  }
@@ -200,9 +208,10 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
200
208
  return this.tree.getSvg(url, options);
201
209
  }
202
210
  getQueryUrl(query, id) {
203
- query = (!lodash_1.default.isString(query) || lodash_1.default.isEmpty(query)) ? '' : query;
204
- id = !lodash_1.default.isString(id) && !lodash_1.default.isNumber(id) ? '' : `/${id}`;
205
- return `${this.apiBase}${id}?limit=${this.limit}&${this.basicContentQueryAttributes}&q=${query}`;
211
+ const fullApiOptions = { options: lodash_1.assignIn(this.basicContentQueryAttributesObject, this.data.api) };
212
+ query = (!lodash_1.isString(query) || lodash_1.isEmpty(query)) ? '' : query;
213
+ id = !lodash_1.isString(id) && !lodash_1.isNumber(id) ? '' : `/${id}`;
214
+ return `${this.apiBase}${id}?limit=${this.limit}&${misc_1.serializeUrlParams(fullApiOptions)}&q=${query}`;
206
215
  }
207
216
  selectedOnTop(list, selected) {
208
217
  if (!list || !list.length) {
@@ -211,7 +220,7 @@ System.register(["@angular/core", "@angular/forms", "@angular/cdk/drag-drop", "@
211
220
  if (!selected || !selected.id) {
212
221
  return list;
213
222
  }
214
- const orderedList = lodash_1.default.clone(list);
223
+ const orderedList = lodash_1.clone(list);
215
224
  const index = list.findIndex((v) => v.id === selected.id);
216
225
  if (index === -1) {
217
226
  orderedList.unshift(selected);
@@ -1 +1 @@
1
- {"version":3,"sources":["tree-dialog.component.ts"],"names":[],"mappings":"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","file":"tree-dialog.component.js"}
1
+ {"version":3,"sources":["tree-dialog.component.ts"],"names":[],"mappings":"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","file":"tree-dialog.component.js"}
@@ -1 +1 @@
1
- <h1 mat-dialog-title>Menu Link Editor</h1><div class="tree-dialog-content" *ngIf="isInitialized" mat-dialog-content><mat-form-field class="form-field"><input #nameInput matInput type="text" placeholder="Name" [(ngModel)]="data.name"></mat-form-field><h4><label id="link-type-label">Link Type:</label></h4><mat-radio-group class="radio-group" aria-labelledby="link-type-label" [(ngModel)]="data.target"><mat-radio-button class="radio-button" value="content">Website Page</mat-radio-button><mat-radio-button class="radio-button" value="url">Custom Link</mat-radio-button></mat-radio-group><form class="dialog-form" [formGroup]="dialogContentForm"><ng-container *ngIf="data.target == 'content'"><mat-form-field class="form-field"><input matInput placeholder="Link Content" aria-label="Link Content" [matAutocomplete]="auto" formControlName="contentSelectorInput"></mat-form-field><mat-autocomplete autoActiveFirstOption #auto="matAutocomplete" [displayWith]="displayContentText"><mat-option *ngIf="isContentLoading" class="is-loading"><mat-progress-bar mode="indeterminate"></mat-progress-bar></mat-option><ng-container *ngIf="!isContentLoading"><mat-option *ngFor="let model of filteredContent" [value]="model"><mat-icon aria-hidden="true" *ngIf="_.get(model, 'contentType.iconResourcePath')" [svgIcon]="getSvg(Stratus.BaseUrl + _.get(model, 'contentType.iconResourcePath')) | async">Icon</mat-icon>{{(model && model.version) ? model.version.title : 'Untitled'}} <small *ngIf="model.routing && model.routing.length">{{'/' + model.routing[0].url}}</small></mat-option></ng-container></mat-autocomplete></ng-container></form><mat-form-field class="form-field" [style.width.px]="320" *ngIf="data.target == 'url'"><input matInput type="text" placeholder="URL" [(ngModel)]="data.url"> <a mat-button *ngIf="data.url" matSuffix mat-icon-button aria-label="Clear" (click)="data.url=''"><mat-icon>close</mat-icon></a></mat-form-field><mat-checkbox [(ngModel)]="browserTarget" (change)="onBrowserTargetChange($event)">Open in new window</mat-checkbox><h4>Actions:</h4><a mat-button class="svg-grey" (click)="destroy()"><mat-icon svgIcon="tree_delete" aria-hidden="false" aria-label="Delete Item">Delete</mat-icon></a><a mat-button class="svg-grey" [class.visibility-off]="data.model.get('status') === 0" (click)="toggleStatus()"><mat-icon svgIcon="tree_visibility" aria-hidden="false" aria-label="Toggle Visibility">Visibility</mat-icon></a><a mat-button class="svg-grey" [disabled]="!data.id" (click)="addChild()"><mat-icon svgIcon="tree_add" aria-hidden="false" aria-label="Add Child">Add Child</mat-icon></a><mat-divider></mat-divider></div><div mat-dialog-actions><a mat-button (click)="onCancelClick()">Cancel </a><a mat-button [mat-dialog-close]="data" cdkFocusInitial>Ok</a></div>
1
+ <h1 mat-dialog-title>Menu Link Editor</h1><div class="tree-dialog-content" *ngIf="isInitialized" mat-dialog-content><mat-form-field class="form-field"><input #nameInput matInput type="text" placeholder="Name" [(ngModel)]="data.name"></mat-form-field><h4><label id="link-type-label">Link Type:</label></h4><mat-radio-group class="radio-group" aria-labelledby="link-type-label" [(ngModel)]="data.target"><mat-radio-button class="radio-button" value="content">Website Page</mat-radio-button><mat-radio-button class="radio-button" value="url">Custom Link</mat-radio-button></mat-radio-group><form class="dialog-form" [formGroup]="dialogContentForm"><ng-container *ngIf="data.target == 'content'"><mat-form-field class="form-field"><input matInput placeholder="Link Content" aria-label="Link Content" [matAutocomplete]="auto" formControlName="contentSelectorInput"></mat-form-field><mat-autocomplete autoActiveFirstOption #auto="matAutocomplete" [displayWith]="displayContentText"><mat-option *ngIf="isContentLoading" class="is-loading"><mat-progress-bar mode="indeterminate"></mat-progress-bar></mat-option><ng-container *ngIf="!isContentLoading"><mat-option *ngFor="let model of filteredContent" [value]="model"><mat-icon aria-hidden="true" *ngIf="get(model, 'contentType.iconResourcePath')" [svgIcon]="getSvg(Stratus.BaseUrl + get(model, 'contentType.iconResourcePath')) | async">Icon</mat-icon>{{(model && model.version) ? model.version.title : 'Untitled'}} <small *ngIf="model.routing && model.routing.length">{{'/' + model.routing[0].url}}</small></mat-option></ng-container></mat-autocomplete></ng-container></form><mat-form-field class="form-field" [style.width.px]="320" *ngIf="data.target == 'url'"><input matInput type="text" placeholder="URL" [(ngModel)]="data.url"> <a mat-button *ngIf="data.url" matSuffix mat-icon-button aria-label="Clear" (click)="data.url=''"><mat-icon>close</mat-icon></a></mat-form-field><mat-checkbox [(ngModel)]="browserTarget" (change)="onBrowserTargetChange($event)">Open in new window</mat-checkbox><h4>Actions:</h4><a mat-button class="svg-grey" (click)="destroy()"><mat-icon svgIcon="tree_delete" aria-hidden="false" aria-label="Delete Item">Delete</mat-icon></a><a mat-button class="svg-grey" [class.visibility-off]="data.model.get('status') === 0" (click)="toggleStatus()"><mat-icon svgIcon="tree_visibility" aria-hidden="false" aria-label="Toggle Visibility">Visibility</mat-icon></a><a mat-button class="svg-grey" [disabled]="!data.id" (click)="addChild()"><mat-icon svgIcon="tree_add" aria-hidden="false" aria-label="Add Child">Add Child</mat-icon></a><mat-divider></mat-divider></div><div mat-dialog-actions><a mat-button (click)="onCancelClick()">Cancel </a><a mat-button [mat-dialog-close]="data" cdkFocusInitial>Ok</a></div>
@@ -1 +1 @@
1
- System.register(["@angular/core","@angular/forms","@angular/cdk/drag-drop","@angular/material/dialog","rxjs/operators","lodash","@stratusjs/runtime/stratus","@stratusjs/core/environment","../core/responsive.component"],function(t,e){"use strict";var n,i,s,o,r,a,l,d,u,h,c,f,g,p,y=this&&this.__decorate||function(t,e,n,i){var s,o=arguments.length,r=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,n,r):s(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},C=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},b=this&&this.__param||function(t,e){return function(n,i){e(n,i,t)}};e&&e.id;return{setters:[function(t){n=t},function(t){i=t},function(t){s=t},function(t){o=t},function(t){r=t},function(t){a=t},function(t){l=t},function(t){d=t},function(t){u=t}],execute:function(){"@stratusjs/angular",h="tree-dialog",c="tree",f=d.cookie("env")?"":".min",g=`${l.Stratus.BaseUrl}${boot.configuration.paths["@stratusjs/angular/*"].replace(/[^/]*$/,"").replace(/\/dist\/$/,"/src/")}`,p=class extends u.ResponsiveComponent{constructor(t,e,n,i){super(),this.dialogRef=t,this.data=e,this.fb=n,this.ref=i,this.title=h+"_component",this.isInitialized=!1,this.isDestroyed=!1,this.isStyled=!1,this._=a.default,this.Stratus=l.Stratus,this.apiBase="/Api/Content",this.isSingleContentLoading=!1,this.limit=20,this.isContentLoading=!1,this.isContentLoaded=!1,this.basicContentQueryAttributes="options[isContent]=null&options[isCollection]=null&options[showRoutable]=true&options[showRouting]=true"}ngOnInit(){this.uid=a.default.uniqueId(`sa_${a.default.snakeCase(h)}_component_`),l.Stratus.Instances[this.uid]=this,l.Stratus.Internals.CssLoader(`${g}/${c}/${h}.component${f}.css`).then(()=>{this.isStyled=!0}).catch(t=>{console.warn("Issue detected in CSS Loader for Component:",this),console.error(t),this.isStyled=!0}),this.tree=this.data.tree,this.treeNode=this.data.treeNode,this.browserTarget=null!==this.data.browserTarget,this.backend=this.data.backend,this.iconRegistry=this.data.iconRegistry,this.dialogContentForm=this.fb.group({contentSelectorInput:this.data.content||null}),this.dialogContentForm.get("contentSelectorInput").valueChanges.pipe(r.debounceTime(300),r.tap(()=>this.isContentLoading=!0),r.switchMap(t=>(a.default.isString(t)?this.lastContentSelectorQuery=this.getQueryUrl(t):(this.data.content=t,this.data.url=null),this.backend.get(this.lastContentSelectorQuery||this.getQueryUrl()).pipe(r.finalize(()=>{this.isContentLoading=!1,this.isContentLoaded=!0}))))).subscribe(t=>this.handleContent(t)),this.backend.get(this.getQueryUrl()).pipe(r.finalize(()=>this.isContentLoading=!1)).subscribe(t=>this.handleContent(t)),this.data.content&&this.data.content.id&&(this.isSingleContentLoading=!0,this.backend.get(this.getQueryUrl(null,this.data.content.id)).pipe(r.finalize(()=>this.isSingleContentLoading=!1)).subscribe(t=>{if(!t.ok||200!==t.status||a.default.isEmpty(t.body))return null;const e=a.default.get(t.body,"payload")||t.body;return a.default.isEmpty(e)||Array.isArray(e)||!a.default.isObject(e)?null:(this.contentEntity=e,this.isSingleContentLoading=!1,this.dialogContentForm.get("contentSelectorInput").patchValue(this.contentEntity),this.refresh(),this.contentEntity)})),this.isInitialized=!0}ngOnDestroy(){this.isDestroyed=!0}refresh(){return this.isDestroyed?new Promise(t=>t()):super.refresh()}onCancelClick(){this.dialogRef.close()}onBrowserTargetChange(t){this.data.browserTarget=t.checked?"_blank":null}displayContentText(t){if(!t)return;const e=a.default.get(t,"routing[0].url"),n=a.default.isUndefined(e)?" (No route!)":` (/${e})`,i=a.default.get(t,"id"),s=a.default.isUndefined(i)?null:`Content: ${i}`;return(a.default.get(t,"version.title")||s)+n}handleContent(t){if(!t.ok||200!==t.status||a.default.isEmpty(t.body))return this.filteredContent=[],this.filteredContent;const e=a.default.get(t.body,"payload")||t.body;return a.default.isEmpty(e)||!Array.isArray(e)?(this.filteredContent=[],this.filteredContent):(this.filteredContent=e,this.filteredContent)}destroy(){this.treeNode.destroy().afterClosed().subscribe(t=>{t&&this.onCancelClick()})}toggleStatus(){this.treeNode.toggleStatus()}addChild(){this.treeNode.addChild()}isSelected(t){return!!this.data.content&&this.data.content.id===t.id}getSvg(t,e){return this.tree.getSvg(t,e)}getQueryUrl(t,e){return t=!a.default.isString(t)||a.default.isEmpty(t)?"":t,e=a.default.isString(e)||a.default.isNumber(e)?`/${e}`:"",`${this.apiBase}${e}?limit=${this.limit}&${this.basicContentQueryAttributes}&q=${t}`}selectedOnTop(t,e){if(!t||!t.length)return t;if(!e||!e.id)return t;const n=a.default.clone(t),i=t.findIndex(t=>t.id===e.id);return-1===i?(n.unshift(e),n):(s.moveItemInArray(n,i,0),n)}},p=y([n.Component({selector:`sa-${h}`,templateUrl:`${g}/${c}/${h}.component${f}.html`}),b(1,n.Inject(o.MAT_DIALOG_DATA)),C("design:paramtypes",[o.MatDialogRef,Object,i.FormBuilder,n.ChangeDetectorRef])],p),t("TreeDialogComponent",p)}}});
1
+ System.register(["@angular/core","@angular/forms","@angular/cdk/drag-drop","@angular/material/dialog","rxjs/operators","lodash","@stratusjs/runtime/stratus","@stratusjs/core/environment","../core/responsive.component","@stratusjs/core/misc"],function(t,e){"use strict";var n,i,s,o,r,a,l,d,h,c,u,g,f,p,y,C=this&&this.__decorate||function(t,e,n,i){var s,o=arguments.length,r=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,n,r):s(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},b=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},m=this&&this.__param||function(t,e){return function(n,i){e(n,i,t)}};e&&e.id;return{setters:[function(t){n=t},function(t){i=t},function(t){s=t},function(t){o=t},function(t){r=t},function(t){a=t},function(t){l=t},function(t){d=t},function(t){h=t},function(t){c=t}],execute:function(){"@stratusjs/angular",u="tree-dialog",g="tree",f=d.cookie("env")?"":".min",p=`${l.Stratus.BaseUrl}${boot.configuration.paths["@stratusjs/angular/*"].replace(/[^/]*$/,"").replace(/\/dist\/$/,"/src/")}`,y=class extends h.ResponsiveComponent{constructor(t,e,n,i){super(),this.dialogRef=t,this.data=e,this.fb=n,this.ref=i,this.title=u+"_component",this.isInitialized=!1,this.isDestroyed=!1,this.isStyled=!1,this.get=a.get,this.Stratus=l.Stratus,this.apiBase="/Api/Content",this.isSingleContentLoading=!1,this.limit=20,this.isContentLoading=!1,this.isContentLoaded=!1,this.basicContentQueryAttributesObject={isContent:!0,isCollection:null,showRoutable:!0,showRouting:!0}}ngOnInit(){this.uid=a.uniqueId(`sa_${a.snakeCase(u)}_component_`),l.Stratus.Instances[this.uid]=this,l.Stratus.Internals.CssLoader(`${p}/${g}/${u}.component${f}.css`).then(()=>{this.isStyled=!0}).catch(t=>{console.warn("Issue detected in CSS Loader for Component:",this),console.error(t),this.isStyled=!0}),this.tree=this.data.tree,this.treeNode=this.data.treeNode,this.browserTarget=null!==this.data.browserTarget,this.backend=this.data.backend,this.iconRegistry=this.data.iconRegistry,this.dialogContentForm=this.fb.group({contentSelectorInput:this.data.content||null}),this.dialogContentForm.get("contentSelectorInput").valueChanges.pipe(r.debounceTime(300),r.tap(()=>this.isContentLoading=!0),r.switchMap(t=>(a.isString(t)?this.lastContentSelectorQuery=this.getQueryUrl(t):(this.data.content=t,this.data.url=null),this.backend.get(this.lastContentSelectorQuery||this.getQueryUrl()).pipe(r.finalize(()=>{this.isContentLoading=!1,this.isContentLoaded=!0}))))).subscribe(t=>this.handleContent(t)),this.backend.get(this.getQueryUrl()).pipe(r.finalize(()=>this.isContentLoading=!1)).subscribe(t=>this.handleContent(t)),this.data.content&&this.data.content.id&&(this.isSingleContentLoading=!0,this.backend.get(this.getQueryUrl(null,this.data.content.id)).pipe(r.finalize(()=>this.isSingleContentLoading=!1)).subscribe(t=>{if(!t.ok||200!==t.status||a.isEmpty(t.body))return null;const e=a.get(t.body,"payload")||t.body;return a.isEmpty(e)||Array.isArray(e)||!a.isObject(e)?null:(this.contentEntity=e,this.isSingleContentLoading=!1,this.dialogContentForm.get("contentSelectorInput").patchValue(this.contentEntity),this.refresh().then(),this.contentEntity)})),this.isInitialized=!0}ngOnDestroy(){this.isDestroyed=!0}refresh(){return this.isDestroyed?new Promise(t=>t()):super.refresh()}onCancelClick(){this.dialogRef.close()}onBrowserTargetChange(t){this.data.browserTarget=t.checked?"_blank":null}displayContentText(t){if(!t)return;const e=a.get(t,"routing[0].url"),n=a.isUndefined(e)?" (No route!)":` (/${e})`,i=a.get(t,"id"),s=a.isUndefined(i)?null:`Content: ${i}`;return(a.get(t,"version.title")||s)+n}handleContent(t){if(!t.ok||200!==t.status||a.isEmpty(t.body))return this.filteredContent=[],this.filteredContent;const e=a.get(t.body,"payload")||t.body;return a.isEmpty(e)||!Array.isArray(e)?(this.filteredContent=[],this.filteredContent):(this.filteredContent=e,this.filteredContent)}destroy(){this.treeNode.destroy().afterClosed().subscribe(t=>{t&&this.onCancelClick()})}toggleStatus(){this.treeNode.toggleStatus()}addChild(){this.treeNode.addChild()}isSelected(t){return!!this.data.content&&this.data.content.id===t.id}getSvg(t,e){return this.tree.getSvg(t,e)}getQueryUrl(t,e){const n={options:a.assignIn(this.basicContentQueryAttributesObject,this.data.api)};return t=!a.isString(t)||a.isEmpty(t)?"":t,e=a.isString(e)||a.isNumber(e)?`/${e}`:"",`${this.apiBase}${e}?limit=${this.limit}&${c.serializeUrlParams(n)}&q=${t}`}selectedOnTop(t,e){if(!t||!t.length)return t;if(!e||!e.id)return t;const n=a.clone(t),i=t.findIndex(t=>t.id===e.id);return-1===i?(n.unshift(e),n):(s.moveItemInArray(n,i,0),n)}},y=C([n.Component({selector:`sa-${u}`,templateUrl:`${p}/${g}/${u}.component${f}.html`}),m(1,n.Inject(o.MAT_DIALOG_DATA)),b("design:paramtypes",[o.MatDialogRef,Object,i.FormBuilder,n.ChangeDetectorRef])],y),t("TreeDialogComponent",y)}}});
@@ -39,7 +39,18 @@ import {
39
39
  } from 'rxjs/operators'
40
40
 
41
41
  // External
42
- import _ from 'lodash'
42
+ import {
43
+ assignIn,
44
+ clone,
45
+ get,
46
+ isEmpty,
47
+ isObject,
48
+ isNumber,
49
+ isString,
50
+ isUndefined,
51
+ snakeCase,
52
+ uniqueId
53
+ } from 'lodash'
43
54
  import {Stratus} from '@stratusjs/runtime/stratus'
44
55
  import {cookie} from '@stratusjs/core/environment'
45
56
 
@@ -67,6 +78,7 @@ import {
67
78
  import {
68
79
  ResponsiveComponent
69
80
  } from '../core/responsive.component'
81
+ import {serializeUrlParams} from '@stratusjs/core/misc'
70
82
 
71
83
  // Data Types
72
84
  export interface DialogData {
@@ -80,6 +92,7 @@ export interface DialogData {
80
92
  level: string
81
93
  content: any
82
94
  url: string
95
+ api: object
83
96
  model: Model
84
97
  collection: Collection
85
98
  parent: any
@@ -116,7 +129,8 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
116
129
  isStyled = false
117
130
 
118
131
  // Dependencies
119
- _ = _
132
+ // _ = _
133
+ get = get
120
134
  Stratus = Stratus
121
135
 
122
136
  // Root Component
@@ -142,7 +156,15 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
142
156
  isContentLoading = false
143
157
  isContentLoaded = false
144
158
  lastContentSelectorQuery: string
159
+ /*
145
160
  basicContentQueryAttributes = 'options[isContent]=null&options[isCollection]=null&options[showRoutable]=true&options[showRouting]=true'
161
+ */
162
+ basicContentQueryAttributesObject: LooseObject = {
163
+ isContent:true,
164
+ isCollection: null,
165
+ showRoutable: true,
166
+ showRouting: true
167
+ }
146
168
  contentEntity: ContentEntity
147
169
 
148
170
  // Normalized Data
@@ -170,7 +192,7 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
170
192
  // TODO: Consider making the Custom Link field the default
171
193
  ngOnInit() {
172
194
  // Initialization
173
- this.uid = _.uniqueId(`sa_${_.snakeCase(moduleName)}_component_`)
195
+ this.uid = uniqueId(`sa_${snakeCase(moduleName)}_component_`)
174
196
  Stratus.Instances[this.uid] = this
175
197
 
176
198
  // TODO: Assess & Possibly Remove when the System.js ecosystem is complete
@@ -218,7 +240,7 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
218
240
  debounceTime(300),
219
241
  tap(() => this.isContentLoading = true),
220
242
  switchMap((value: any) => {
221
- if (_.isString(value)) {
243
+ if (isString(value)) {
222
244
  this.lastContentSelectorQuery = this.getQueryUrl(value)
223
245
  } else {
224
246
  // console.log('switchMap value is not a string:', value)
@@ -264,11 +286,11 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
264
286
  finalize(() => this.isSingleContentLoading = false),
265
287
  )
266
288
  .subscribe((response: HttpResponse<Convoy<ContentEntity>>) => {
267
- if (!response.ok || response.status !== 200 || _.isEmpty(response.body)) {
289
+ if (!response.ok || response.status !== 200 || isEmpty(response.body)) {
268
290
  return null
269
291
  }
270
- const payload = _.get(response.body, 'payload') || response.body
271
- if (_.isEmpty(payload) || Array.isArray(payload) || !_.isObject(payload)) {
292
+ const payload = get(response.body, 'payload') || response.body
293
+ if (isEmpty(payload) || Array.isArray(payload) || !isObject(payload)) {
272
294
  return null
273
295
  }
274
296
  // @ts-ignore
@@ -277,7 +299,7 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
277
299
  this.dialogContentForm
278
300
  .get('contentSelectorInput')
279
301
  .patchValue(this.contentEntity)
280
- this.refresh()
302
+ this.refresh().then()
281
303
  return this.contentEntity
282
304
  })
283
305
  }
@@ -294,7 +316,7 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
294
316
  // debounceTime(300),
295
317
  // tap(() => this.isParentLoading = true),
296
318
  // switchMap(value => {
297
- // if (_.isString(value)) {
319
+ // if (isString(value)) {
298
320
  // this.lastParentSelectorQuery = `/Api/MenuLink?q=${value}`
299
321
  // } else {
300
322
  // this.data.nestParent = value
@@ -307,11 +329,11 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
307
329
  // )
308
330
  // )
309
331
  // .subscribe(response => {
310
- // if (!response.ok || response.status !== 200 || _.isEmpty(response.body)) {
332
+ // if (!response.ok || response.status !== 200 || isEmpty(response.body)) {
311
333
  // return this.filteredParentOptions = []
312
334
  // }
313
- // const payload = _.get(response.body, 'payload') || response.body
314
- // if (_.isEmpty(payload) || !Array.isArray(payload)) {
335
+ // const payload = get(response.body, 'payload') || response.body
336
+ // if (isEmpty(payload) || !Array.isArray(payload)) {
315
337
  // return this.filteredParentOptions = []
316
338
  // }
317
339
  // return this.filteredParentOptions = payload
@@ -353,31 +375,31 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
353
375
  return
354
376
  }
355
377
  // Routing Display
356
- const routing = _.get(content, 'routing[0].url')
357
- const routingText = !_.isUndefined(routing) ? ` (/${routing})` : ' (No route!)'
378
+ const routing = get(content, 'routing[0].url')
379
+ const routingText = !isUndefined(routing) ? ` (/${routing})` : ' (No route!)'
358
380
  // ContentId Fallback
359
- const contentId = _.get(content, 'id')
360
- const contentIdText = !_.isUndefined(contentId) ? `Content: ${contentId}` : null
381
+ const contentId = get(content, 'id')
382
+ const contentIdText = !isUndefined(contentId) ? `Content: ${contentId}` : null
361
383
  // Return Version Title or Fallback Text
362
- return (_.get(content, 'version.title') || contentIdText) + routingText
384
+ return (get(content, 'version.title') || contentIdText) + routingText
363
385
  }
364
386
 
365
387
  // displayName(option: any) {
366
388
  // if (option) {
367
- // return _.get(option, 'name')
389
+ // return get(option, 'name')
368
390
  // }
369
391
  // }
370
392
 
371
393
  private handleContent(response: HttpResponse<Convoy<ContentEntity>>) {
372
- if (!response.ok || response.status !== 200 || _.isEmpty(response.body)) {
394
+ if (!response.ok || response.status !== 200 || isEmpty(response.body)) {
373
395
  this.filteredContent = []
374
396
  // FIXME: We have to go in this roundabout way to force changes to be detected since the
375
397
  // Dialog Sub-Components don't seem to have the right timing for ngOnInit
376
398
  // this.refresh()
377
399
  return this.filteredContent
378
400
  }
379
- const payload = _.get(response.body, 'payload') || response.body
380
- if (_.isEmpty(payload) || !Array.isArray(payload)) {
401
+ const payload = get(response.body, 'payload') || response.body
402
+ if (isEmpty(payload) || !Array.isArray(payload)) {
381
403
  this.filteredContent = []
382
404
  // FIXME: We have to go in this roundabout way to force changes to be detected since the
383
405
  // Dialog Sub-Components don't seem to have the right timing for ngOnInit
@@ -423,9 +445,10 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
423
445
  }
424
446
 
425
447
  getQueryUrl(query?: string, id?: string|number): string {
426
- query = (!_.isString(query) || _.isEmpty(query)) ? '' : query
427
- id = !_.isString(id) && !_.isNumber(id) ? '' : `/${id}`
428
- return `${this.apiBase}${id}?limit=${this.limit}&${this.basicContentQueryAttributes}&q=${query}`
448
+ const fullApiOptions = { options: assignIn(this.basicContentQueryAttributesObject, this.data.api)}
449
+ query = (!isString(query) || isEmpty(query)) ? '' : query
450
+ id = !isString(id) && !isNumber(id) ? '' : `/${id}`
451
+ return `${this.apiBase}${id}?limit=${this.limit}&${serializeUrlParams(fullApiOptions)}&q=${query}`
429
452
  }
430
453
 
431
454
  selectedOnTop(list?: Array<ContentEntity>, selected?: ContentEntity): Array<ContentEntity> {
@@ -435,7 +458,7 @@ export class TreeDialogComponent extends ResponsiveComponent implements OnInit,
435
458
  if (!selected || !selected.id) {
436
459
  return list
437
460
  }
438
- const orderedList = _.clone(list)
461
+ const orderedList = clone(list)
439
462
  const index = list.findIndex((v) => v.id === selected.id)
440
463
  if (index === -1) {
441
464
  // If Selected is not present, inject as first element