orbiq-neural-ui-kit 1.0.39 → 1.1.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.
@@ -12225,6 +12225,24 @@ class NeuralDataTableComponent {
12225
12225
  ...(ngDevMode ? [{ debugName: "emptyStateTitle" }] : /* istanbul ignore next */ []));
12226
12226
  emptyStateDesc = input('Ajusta los filtros o realiza una búsqueda para encontrar resultados.', /* @ts-ignore */
12227
12227
  ...(ngDevMode ? [{ debugName: "emptyStateDesc" }] : /* istanbul ignore next */ []));
12228
+ // Custom Dynamic Actions
12229
+ customActions = input([], /* @ts-ignore */
12230
+ ...(ngDevMode ? [{ debugName: "customActions" }] : /* istanbul ignore next */ []));
12231
+ maxVisibleActions = input(2, /* @ts-ignore */
12232
+ ...(ngDevMode ? [{ debugName: "maxVisibleActions" }] : /* istanbul ignore next */ []));
12233
+ visibleCustomActions = computed(() => this.customActions().slice(0, this.maxVisibleActions()), /* @ts-ignore */
12234
+ ...(ngDevMode ? [{ debugName: "visibleCustomActions" }] : /* istanbul ignore next */ []));
12235
+ overflowCustomActions = computed(() => this.customActions().slice(this.maxVisibleActions()), /* @ts-ignore */
12236
+ ...(ngDevMode ? [{ debugName: "overflowCustomActions" }] : /* istanbul ignore next */ []));
12237
+ overflowDropdownOptions = computed(() => {
12238
+ return this.overflowCustomActions().map(a => ({
12239
+ value: a.id,
12240
+ label: a.label,
12241
+ icon: a.icon,
12242
+ disabled: a.disabled
12243
+ }));
12244
+ }, /* @ts-ignore */
12245
+ ...(ngDevMode ? [{ debugName: "overflowDropdownOptions" }] : /* istanbul ignore next */ []));
12228
12246
  onSearch = new EventEmitter();
12229
12247
  onPageChange = new EventEmitter();
12230
12248
  sortChange = new EventEmitter();
@@ -12236,9 +12254,7 @@ class NeuralDataTableComponent {
12236
12254
  onFilterClick = new EventEmitter();
12237
12255
  onSortChangeClick = new EventEmitter();
12238
12256
  onSearchClick = new EventEmitter();
12239
- onMoreClick = new EventEmitter();
12240
- onImportClick = new EventEmitter();
12241
- onExportClick = new EventEmitter();
12257
+ onCustomActionClick = new EventEmitter();
12242
12258
  onNewClick = new EventEmitter();
12243
12259
  cellTemplate;
12244
12260
  isPreferencesOpen = signal(false, /* @ts-ignore */
@@ -12251,6 +12267,9 @@ class NeuralDataTableComponent {
12251
12267
  return this.allColumns().filter(col => !this.hiddenColumns().has(col.key));
12252
12268
  }, /* @ts-ignore */
12253
12269
  ...(ngDevMode ? [{ debugName: "visibleColumns" }] : /* istanbul ignore next */ []));
12270
+ onCustomActionDropdownSelect(option) {
12271
+ this.onCustomActionClick.emit(option.value);
12272
+ }
12254
12273
  isColumnVisible(key) {
12255
12274
  return !this.hiddenColumns().has(key);
12256
12275
  }
@@ -12271,7 +12290,7 @@ class NeuralDataTableComponent {
12271
12290
  this.sortChange.emit(key);
12272
12291
  }
12273
12292
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12274
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralDataTableComponent, isStandalone: true, selector: "neural-data-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, hasInfo: { classPropertyName: "hasInfo", publicName: "hasInfo", isSignal: true, isRequired: false, transformFunction: null }, newLabel: { classPropertyName: "newLabel", publicName: "newLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allColumns: { classPropertyName: "allColumns", publicName: "allColumns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: true, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTitle: { classPropertyName: "emptyStateTitle", publicName: "emptyStateTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyStateDesc: { classPropertyName: "emptyStateDesc", publicName: "emptyStateDesc", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch", onPageChange: "onPageChange", sortChange: "sortChange", onInfoClick: "onInfoClick", onHelpClick: "onHelpClick", onRefreshClick: "onRefreshClick", onViewChange: "onViewChange", onFilterClick: "onFilterClick", onSortChangeClick: "onSortChangeClick", onSearchClick: "onSearchClick", onMoreClick: "onMoreClick", onImportClick: "onImportClick", onExportClick: "onExportClick", onNewClick: "onNewClick" }, host: { properties: { "attr.title": "null" } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }], ngImport: i0, template: `
12293
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralDataTableComponent, isStandalone: true, selector: "neural-data-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, hasInfo: { classPropertyName: "hasInfo", publicName: "hasInfo", isSignal: true, isRequired: false, transformFunction: null }, newLabel: { classPropertyName: "newLabel", publicName: "newLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allColumns: { classPropertyName: "allColumns", publicName: "allColumns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: true, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTitle: { classPropertyName: "emptyStateTitle", publicName: "emptyStateTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyStateDesc: { classPropertyName: "emptyStateDesc", publicName: "emptyStateDesc", isSignal: true, isRequired: false, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleActions: { classPropertyName: "maxVisibleActions", publicName: "maxVisibleActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch", onPageChange: "onPageChange", sortChange: "sortChange", onInfoClick: "onInfoClick", onHelpClick: "onHelpClick", onRefreshClick: "onRefreshClick", onViewChange: "onViewChange", onFilterClick: "onFilterClick", onSortChangeClick: "onSortChangeClick", onSearchClick: "onSearchClick", onCustomActionClick: "onCustomActionClick", onNewClick: "onNewClick" }, host: { properties: { "attr.title": "null" } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }], ngImport: i0, template: `
12275
12294
  <div class="flex flex-col w-full h-full bg-white rounded-md border border-outline-gray-2 shadow-sm overflow-hidden">
12276
12295
 
12277
12296
  <!-- Top Header Area -->
@@ -12307,15 +12326,24 @@ class NeuralDataTableComponent {
12307
12326
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
12308
12327
  <i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
12309
12328
  </button>
12310
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Importar" (click)="onImportClick.emit()">
12311
- <i class="lucide-upload size-[18px]" style="stroke-width: 1.5px;"></i>
12312
- </button>
12313
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Exportar" (click)="onExportClick.emit()">
12314
- <i class="lucide-download size-[18px]" style="stroke-width: 1.5px;"></i>
12315
- </button>
12316
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones" (click)="onMoreClick.emit()">
12317
- <i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
12318
- </button>
12329
+
12330
+ <!-- Dynamic Custom Actions -->
12331
+ @for (action of visibleCustomActions(); track action.id) {
12332
+ <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors disabled:opacity-50"
12333
+ [title]="action.label"
12334
+ [disabled]="action.disabled"
12335
+ (click)="onCustomActionClick.emit(action.id)">
12336
+ <i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
12337
+ </button>
12338
+ }
12339
+
12340
+ @if (overflowCustomActions().length > 0) {
12341
+ <neural-dropdown [options]="overflowDropdownOptions()" (onSelect)="onCustomActionDropdownSelect($event)" [hasTriggerSlot]="true" placement="bottom-end">
12342
+ <button trigger class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones">
12343
+ <i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
12344
+ </button>
12345
+ </neural-dropdown>
12346
+ }
12319
12347
  </div>
12320
12348
 
12321
12349
  <div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
@@ -12323,7 +12351,7 @@ class NeuralDataTableComponent {
12323
12351
  <!-- Settings, Help and External Actions -->
12324
12352
  <div class="flex items-center gap-0.5">
12325
12353
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Configurar columnas" (click)="isPreferencesOpen.set(true)">
12326
- <i class="lucide-settings size-[18px]" style="stroke-width: 1.5px;"></i>
12354
+ <i class="lucide-columns size-[18px]" style="stroke-width: 1.5px;"></i>
12327
12355
  </button>
12328
12356
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Ayuda / Información" (click)="onHelpClick.emit()">
12329
12357
  <i class="lucide-help-circle size-[18px]" style="stroke-width: 1.5px;"></i>
@@ -12465,7 +12493,7 @@ class NeuralDataTableComponent {
12465
12493
  </div>
12466
12494
  </neural-dialog>
12467
12495
  </div>
12468
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NeuralButtonComponent, selector: "neural-button", inputs: ["variant", "theme", "size", "type", "disabled", "loading", "icon", "iconLeft", "iconRight", "iconOnly"], outputs: ["clicked"] }, { kind: "component", type: NeuralDialogComponent, selector: "neural-dialog", inputs: ["openModel", "title", "message", "icon", "size", "position", "paddingTop", "actions", "dismissible", "showCloseButton", "bare", "hasTitleSlot", "hasActionsSlot", "hasDefaultSlot"], outputs: ["openModelChange"] }, { kind: "component", type: NeuralSwitchComponent, selector: "neural-switch", inputs: ["valueModel", "size", "padded", "disabled", "required", "controlPosition", "icon", "label", "description", "error", "id", "hasLabelSlot", "hasDescriptionSlot"], outputs: ["valueModelChange"] }, { kind: "component", type: NeuralCheckboxComponent, selector: "neural-checkbox", inputs: ["checkedModel", "size", "padded", "indeterminate", "disabled", "required", "label", "description", "error", "id", "hasLabelSlot", "hasDescriptionSlot"], outputs: ["checkedModelChange"] }] });
12496
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NeuralButtonComponent, selector: "neural-button", inputs: ["variant", "theme", "size", "type", "disabled", "loading", "icon", "iconLeft", "iconRight", "iconOnly"], outputs: ["clicked"] }, { kind: "component", type: NeuralDialogComponent, selector: "neural-dialog", inputs: ["openModel", "title", "message", "icon", "size", "position", "paddingTop", "actions", "dismissible", "showCloseButton", "bare", "hasTitleSlot", "hasActionsSlot", "hasDefaultSlot"], outputs: ["openModelChange"] }, { kind: "component", type: NeuralSwitchComponent, selector: "neural-switch", inputs: ["valueModel", "size", "padded", "disabled", "required", "controlPosition", "icon", "label", "description", "error", "id", "hasLabelSlot", "hasDescriptionSlot"], outputs: ["valueModelChange"] }, { kind: "component", type: NeuralCheckboxComponent, selector: "neural-checkbox", inputs: ["checkedModel", "size", "padded", "indeterminate", "disabled", "required", "label", "description", "error", "id", "hasLabelSlot", "hasDescriptionSlot"], outputs: ["checkedModelChange"] }, { kind: "component", type: NeuralDropdownComponent, selector: "neural-dropdown", inputs: ["options", "side", "align", "offset", "buttonLabel", "hasTriggerSlot"] }] });
12469
12497
  }
12470
12498
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralDataTableComponent, decorators: [{
12471
12499
  type: Component,
@@ -12477,7 +12505,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12477
12505
  NeuralButtonComponent,
12478
12506
  NeuralDialogComponent,
12479
12507
  NeuralSwitchComponent,
12480
- NeuralCheckboxComponent
12508
+ NeuralCheckboxComponent,
12509
+ NeuralDropdownComponent
12481
12510
  ],
12482
12511
  host: {
12483
12512
  '[attr.title]': 'null'
@@ -12518,15 +12547,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12518
12547
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
12519
12548
  <i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
12520
12549
  </button>
12521
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Importar" (click)="onImportClick.emit()">
12522
- <i class="lucide-upload size-[18px]" style="stroke-width: 1.5px;"></i>
12523
- </button>
12524
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Exportar" (click)="onExportClick.emit()">
12525
- <i class="lucide-download size-[18px]" style="stroke-width: 1.5px;"></i>
12526
- </button>
12527
- <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones" (click)="onMoreClick.emit()">
12528
- <i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
12529
- </button>
12550
+
12551
+ <!-- Dynamic Custom Actions -->
12552
+ @for (action of visibleCustomActions(); track action.id) {
12553
+ <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors disabled:opacity-50"
12554
+ [title]="action.label"
12555
+ [disabled]="action.disabled"
12556
+ (click)="onCustomActionClick.emit(action.id)">
12557
+ <i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
12558
+ </button>
12559
+ }
12560
+
12561
+ @if (overflowCustomActions().length > 0) {
12562
+ <neural-dropdown [options]="overflowDropdownOptions()" (onSelect)="onCustomActionDropdownSelect($event)" [hasTriggerSlot]="true" placement="bottom-end">
12563
+ <button trigger class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones">
12564
+ <i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
12565
+ </button>
12566
+ </neural-dropdown>
12567
+ }
12530
12568
  </div>
12531
12569
 
12532
12570
  <div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
@@ -12534,7 +12572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12534
12572
  <!-- Settings, Help and External Actions -->
12535
12573
  <div class="flex items-center gap-0.5">
12536
12574
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Configurar columnas" (click)="isPreferencesOpen.set(true)">
12537
- <i class="lucide-settings size-[18px]" style="stroke-width: 1.5px;"></i>
12575
+ <i class="lucide-columns size-[18px]" style="stroke-width: 1.5px;"></i>
12538
12576
  </button>
12539
12577
  <button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Ayuda / Información" (click)="onHelpClick.emit()">
12540
12578
  <i class="lucide-help-circle size-[18px]" style="stroke-width: 1.5px;"></i>
@@ -12678,7 +12716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12678
12716
  </div>
12679
12717
  `
12680
12718
  }]
12681
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], hasInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasInfo", required: false }] }], newLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "newLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], allColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumns", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: true }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }], totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], emptyStateTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTitle", required: false }] }], emptyStateDesc: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateDesc", required: false }] }], onSearch: [{
12719
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], hasInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasInfo", required: false }] }], newLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "newLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], allColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumns", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: true }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }], totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], emptyStateTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTitle", required: false }] }], emptyStateDesc: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateDesc", required: false }] }], customActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "customActions", required: false }] }], maxVisibleActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleActions", required: false }] }], onSearch: [{
12682
12720
  type: Output
12683
12721
  }], onPageChange: [{
12684
12722
  type: Output
@@ -12698,11 +12736,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12698
12736
  type: Output
12699
12737
  }], onSearchClick: [{
12700
12738
  type: Output
12701
- }], onMoreClick: [{
12702
- type: Output
12703
- }], onImportClick: [{
12704
- type: Output
12705
- }], onExportClick: [{
12739
+ }], onCustomActionClick: [{
12706
12740
  type: Output
12707
12741
  }], onNewClick: [{
12708
12742
  type: Output