@vendure/admin-ui 2.0.0-next.12 → 2.0.0-next.15

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 (113) hide show
  1. package/core/common/version.d.ts +1 -1
  2. package/core/public_api.d.ts +11 -1
  3. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -1
  4. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +31 -0
  5. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +34 -0
  6. package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
  7. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +5 -5
  8. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +1 -1
  9. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +12 -0
  10. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  11. package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  12. package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  13. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +1 -1
  14. package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  15. package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  16. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +7 -3
  17. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -2
  18. package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +21 -0
  19. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +6 -2
  20. package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +30 -0
  21. package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +22 -0
  22. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +5 -17
  23. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +2 -1
  24. package/core/shared/shared.module.d.ts +33 -30
  25. package/esm2020/catalog/components/assets/assets.component.mjs +1 -1
  26. package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +1 -1
  27. package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +2 -2
  28. package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +1 -1
  29. package/esm2020/catalog/components/facet-list/facet-list.component.mjs +1 -1
  30. package/esm2020/catalog/components/product-list/product-list.component.mjs +1 -1
  31. package/esm2020/catalog/components/product-variants-editor/product-variants-editor.component.mjs +1 -1
  32. package/esm2020/core/common/version.mjs +2 -2
  33. package/esm2020/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
  34. package/esm2020/core/components/user-menu/user-menu.component.mjs +1 -1
  35. package/esm2020/core/public_api.mjs +12 -2
  36. package/esm2020/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +1 -1
  37. package/esm2020/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
  38. package/esm2020/core/shared/components/dropdown/dropdown-menu.component.mjs +25 -22
  39. package/esm2020/core/shared/components/dropdown/dropdown-trigger.directive.mjs +1 -1
  40. package/esm2020/core/shared/components/entity-info/entity-info.component.mjs +1 -1
  41. package/esm2020/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +1 -1
  42. package/esm2020/core/shared/components/language-selector/language-selector.component.mjs +1 -1
  43. package/esm2020/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +3 -3
  44. package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
  45. package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +46 -0
  46. package/esm2020/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +57 -0
  47. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +4 -4
  48. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +22 -1
  49. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
  50. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +73 -18
  51. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
  52. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +100 -0
  53. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
  54. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +166 -0
  55. package/esm2020/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +47 -18
  56. package/esm2020/core/shared/components/rich-text-editor/prosemirror/types.mjs +1 -1
  57. package/esm2020/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
  58. package/esm2020/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +22 -10
  59. package/esm2020/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +1 -1
  60. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +57 -0
  61. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +63 -0
  62. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +48 -83
  63. package/esm2020/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +3 -1
  64. package/esm2020/core/shared/shared.module.mjs +15 -3
  65. package/esm2020/customer/components/address-card/address-card.component.mjs +1 -1
  66. package/esm2020/customer/components/customer-group-list/customer-group-list.component.mjs +1 -1
  67. package/esm2020/customer/components/customer-history/customer-history.component.mjs +1 -1
  68. package/esm2020/customer/components/customer-list/customer-list.component.mjs +1 -1
  69. package/esm2020/dashboard/components/dashboard/dashboard.component.mjs +1 -1
  70. package/esm2020/marketing/components/promotion-detail/promotion-detail.component.mjs +1 -1
  71. package/esm2020/marketing/components/promotion-list/promotion-list.component.mjs +1 -1
  72. package/esm2020/order/components/fulfillment-card/fulfillment-card.component.mjs +1 -1
  73. package/esm2020/order/components/line-fulfillment/line-fulfillment.component.mjs +1 -1
  74. package/esm2020/order/components/order-detail/order-detail.component.mjs +1 -1
  75. package/esm2020/order/components/order-history/order-history.component.mjs +1 -1
  76. package/esm2020/order/components/order-payment-card/order-payment-card.component.mjs +1 -1
  77. package/esm2020/order/components/order-table/order-table.component.mjs +1 -1
  78. package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +1 -1
  79. package/esm2020/settings/components/administrator-list/administrator-list.component.mjs +1 -1
  80. package/esm2020/settings/components/channel-list/channel-list.component.mjs +1 -1
  81. package/esm2020/settings/components/country-list/country-list.component.mjs +1 -1
  82. package/esm2020/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
  83. package/esm2020/settings/components/payment-method-list/payment-method-list.component.mjs +1 -1
  84. package/esm2020/settings/components/role-list/role-list.component.mjs +1 -1
  85. package/esm2020/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +1 -1
  86. package/esm2020/settings/components/shipping-method-list/shipping-method-list.component.mjs +1 -1
  87. package/esm2020/settings/components/tax-category-list/tax-category-list.component.mjs +1 -1
  88. package/esm2020/settings/components/tax-rate-list/tax-rate-list.component.mjs +1 -1
  89. package/esm2020/settings/components/zone-list/zone-list.component.mjs +1 -1
  90. package/esm2020/system/components/job-list/job-list.component.mjs +1 -1
  91. package/fesm2015/vendure-admin-ui-catalog.mjs +7 -7
  92. package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
  93. package/fesm2015/vendure-admin-ui-core.mjs +1012 -193
  94. package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
  95. package/fesm2015/vendure-admin-ui-customer.mjs +4 -4
  96. package/fesm2015/vendure-admin-ui-dashboard.mjs +1 -1
  97. package/fesm2015/vendure-admin-ui-marketing.mjs +2 -2
  98. package/fesm2015/vendure-admin-ui-order.mjs +7 -7
  99. package/fesm2015/vendure-admin-ui-settings.mjs +11 -11
  100. package/fesm2015/vendure-admin-ui-system.mjs +1 -1
  101. package/fesm2020/vendure-admin-ui-catalog.mjs +7 -7
  102. package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
  103. package/fesm2020/vendure-admin-ui-core.mjs +1005 -193
  104. package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
  105. package/fesm2020/vendure-admin-ui-customer.mjs +4 -4
  106. package/fesm2020/vendure-admin-ui-dashboard.mjs +1 -1
  107. package/fesm2020/vendure-admin-ui-marketing.mjs +2 -2
  108. package/fesm2020/vendure-admin-ui-order.mjs +7 -7
  109. package/fesm2020/vendure-admin-ui-settings.mjs +11 -11
  110. package/fesm2020/vendure-admin-ui-system.mjs +1 -1
  111. package/package.json +13 -12
  112. package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
  113. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/images.mjs +0 -36
@@ -122,7 +122,7 @@ class JobListComponent extends BaseListComponent {
122
122
  }
123
123
  }
124
124
  JobListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: JobListComponent, deps: [{ token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }, { token: i2$1.Router }, { token: i2$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
125
- JobListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: JobListComponent, selector: "vdr-job-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <clr-checkbox-container>\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [formControl]=\"liveUpdate\" name=\"live-update\"/>\r\n <label>{{ 'common.live-update' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [formControl]=\"hideSettled\"\r\n name=\"hide-settled\"\r\n (change)=\"refresh()\"\r\n />\r\n <label>{{ 'system.hide-settled-jobs' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </clr-checkbox-container>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <ng-select\r\n [addTag]=\"false\"\r\n [items]=\"queues$ | async\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"false\"\r\n [markFirst]=\"false\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"name\"\r\n [formControl]=\"queueFilter\"\r\n (change)=\"refresh()\"\r\n >\r\n <ng-template ng-label-tmp ng-option-tmp let-item=\"item\">\r\n <ng-container *ngIf=\"item.name === 'all'; else others\">\r\n {{ 'system.all-job-queues' | translate }}\r\n </ng-container>\r\n <ng-template #others>\r\n <vdr-chip [colorFrom]=\"item.name\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n </ng-template>\r\n </ng-select>\r\n <vdr-action-bar-items locationId=\"job-list\"></vdr-action-bar-items>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-queue-name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.created-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-duration' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-result' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-job=\"item\">\r\n <td class=\"left align-middle\">\r\n <vdr-entity-info [entity]=\"job\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"job.data\">\r\n <button\r\n class=\"btn btn-link btn-icon\"\r\n vdrDropdownTrigger\r\n [title]=\"'system.job-data' | translate\"\r\n >\r\n <clr-icon shape=\"details\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.data\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-chip [colorFrom]=\"job.queueName\">{{ job.queueName }}</vdr-chip>\r\n </td>\r\n\r\n <td class=\"left align-middle\">{{ job.createdAt | timeAgo }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-job-state-label [job]=\"job\"></vdr-job-state-label>\r\n <div *ngIf=\"job.state === 'FAILED'\" class=\"retry-info\">\r\n after {{ job.attempts }} attempts\r\n </div>\r\n <div *ngIf=\"job.state === 'RUNNING' || job.state === 'RETRYING'\" class=\"retry-info\">\r\n attempting {{ job.attempts + 1 }} of {{ job.retries }}\r\n </div>\r\n </td>\r\n <td class=\"left align-middle\">{{ job.duration | duration }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"hasResult(job)\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"details\"></clr-icon>\r\n {{ 'system.job-result' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.result\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-dropdown *ngIf=\"job.error\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"exclamation-circle\"></clr-icon>\r\n {{ 'system.job-error' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n {{ job.error }}\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown *ngIf=\"!job.isSettled && job.state !== 'FAILED'\">\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"cancelJob(job.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteSystem'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"ban\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [".result-detail{margin:0 12px}.retry-info{margin-left:6px;color:var(--color-grey-400)}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i3.ClrCheckboxContainer, selector: "clr-checkbox-container,clr-toggle-container", inputs: ["clrInline"] }, { type: i3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "allSelected", "isRowSelectedFn", "emptyStateLabel"], outputs: ["allSelectChange", "rowSelectChange", "pageChange", "itemsPerPageChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }, { type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { type: JobStateLabelComponent, selector: "vdr-job-state-label", inputs: ["job"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { type: i4$1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i4$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "translate": i4.TranslatePipe, "async": i2.AsyncPipe, "timeAgo": i1.TimeAgoPipe, "duration": i1.DurationPipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
+ JobListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: JobListComponent, selector: "vdr-job-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <clr-checkbox-container>\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [formControl]=\"liveUpdate\" name=\"live-update\"/>\r\n <label>{{ 'common.live-update' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [formControl]=\"hideSettled\"\r\n name=\"hide-settled\"\r\n (change)=\"refresh()\"\r\n />\r\n <label>{{ 'system.hide-settled-jobs' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </clr-checkbox-container>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <ng-select\r\n [addTag]=\"false\"\r\n [items]=\"queues$ | async\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"false\"\r\n [markFirst]=\"false\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"name\"\r\n [formControl]=\"queueFilter\"\r\n (change)=\"refresh()\"\r\n >\r\n <ng-template ng-label-tmp ng-option-tmp let-item=\"item\">\r\n <ng-container *ngIf=\"item.name === 'all'; else others\">\r\n {{ 'system.all-job-queues' | translate }}\r\n </ng-container>\r\n <ng-template #others>\r\n <vdr-chip [colorFrom]=\"item.name\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n </ng-template>\r\n </ng-select>\r\n <vdr-action-bar-items locationId=\"job-list\"></vdr-action-bar-items>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-queue-name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.created-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-duration' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-result' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-job=\"item\">\r\n <td class=\"left align-middle\">\r\n <vdr-entity-info [entity]=\"job\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"job.data\">\r\n <button\r\n class=\"btn btn-link btn-icon\"\r\n vdrDropdownTrigger\r\n [title]=\"'system.job-data' | translate\"\r\n >\r\n <clr-icon shape=\"details\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.data\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-chip [colorFrom]=\"job.queueName\">{{ job.queueName }}</vdr-chip>\r\n </td>\r\n\r\n <td class=\"left align-middle\">{{ job.createdAt | timeAgo }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-job-state-label [job]=\"job\"></vdr-job-state-label>\r\n <div *ngIf=\"job.state === 'FAILED'\" class=\"retry-info\">\r\n after {{ job.attempts }} attempts\r\n </div>\r\n <div *ngIf=\"job.state === 'RUNNING' || job.state === 'RETRYING'\" class=\"retry-info\">\r\n attempting {{ job.attempts + 1 }} of {{ job.retries }}\r\n </div>\r\n </td>\r\n <td class=\"left align-middle\">{{ job.duration | duration }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"hasResult(job)\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"details\"></clr-icon>\r\n {{ 'system.job-result' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.result\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-dropdown *ngIf=\"job.error\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"exclamation-circle\"></clr-icon>\r\n {{ 'system.job-error' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n {{ job.error }}\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown *ngIf=\"!job.isSettled && job.state !== 'FAILED'\">\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"cancelJob(job.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteSystem'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"ban\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [".result-detail{margin:0 12px}.retry-info{margin-left:6px;color:var(--color-grey-400)}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i3.ClrCheckboxContainer, selector: "clr-checkbox-container,clr-toggle-container", inputs: ["clrInline"] }, { type: i3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "allSelected", "isRowSelectedFn", "emptyStateLabel"], outputs: ["allSelectChange", "rowSelectChange", "pageChange", "itemsPerPageChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { type: JobStateLabelComponent, selector: "vdr-job-state-label", inputs: ["job"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { type: i4$1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i4$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "translate": i4.TranslatePipe, "async": i2.AsyncPipe, "timeAgo": i1.TimeAgoPipe, "duration": i1.DurationPipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: JobListComponent, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: 'vdr-job-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <clr-checkbox-container>\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [formControl]=\"liveUpdate\" name=\"live-update\"/>\r\n <label>{{ 'common.live-update' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [formControl]=\"hideSettled\"\r\n name=\"hide-settled\"\r\n (change)=\"refresh()\"\r\n />\r\n <label>{{ 'system.hide-settled-jobs' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </clr-checkbox-container>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <ng-select\r\n [addTag]=\"false\"\r\n [items]=\"queues$ | async\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"false\"\r\n [markFirst]=\"false\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"name\"\r\n [formControl]=\"queueFilter\"\r\n (change)=\"refresh()\"\r\n >\r\n <ng-template ng-label-tmp ng-option-tmp let-item=\"item\">\r\n <ng-container *ngIf=\"item.name === 'all'; else others\">\r\n {{ 'system.all-job-queues' | translate }}\r\n </ng-container>\r\n <ng-template #others>\r\n <vdr-chip [colorFrom]=\"item.name\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n </ng-template>\r\n </ng-select>\r\n <vdr-action-bar-items locationId=\"job-list\"></vdr-action-bar-items>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-queue-name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.created-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-duration' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'system.job-result' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-job=\"item\">\r\n <td class=\"left align-middle\">\r\n <vdr-entity-info [entity]=\"job\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"job.data\">\r\n <button\r\n class=\"btn btn-link btn-icon\"\r\n vdrDropdownTrigger\r\n [title]=\"'system.job-data' | translate\"\r\n >\r\n <clr-icon shape=\"details\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.data\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-chip [colorFrom]=\"job.queueName\">{{ job.queueName }}</vdr-chip>\r\n </td>\r\n\r\n <td class=\"left align-middle\">{{ job.createdAt | timeAgo }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-job-state-label [job]=\"job\"></vdr-job-state-label>\r\n <div *ngIf=\"job.state === 'FAILED'\" class=\"retry-info\">\r\n after {{ job.attempts }} attempts\r\n </div>\r\n <div *ngIf=\"job.state === 'RUNNING' || job.state === 'RETRYING'\" class=\"retry-info\">\r\n attempting {{ job.attempts + 1 }} of {{ job.retries }}\r\n </div>\r\n </td>\r\n <td class=\"left align-middle\">{{ job.duration | duration }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-dropdown *ngIf=\"hasResult(job)\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"details\"></clr-icon>\r\n {{ 'system.job-result' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n <vdr-object-tree [value]=\"job.result\"></vdr-object-tree>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <vdr-dropdown *ngIf=\"job.error\">\r\n <button class=\"btn btn-link btn-sm details-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"exclamation-circle\"></clr-icon>\r\n {{ 'system.job-error' | translate }}\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"result-detail\">\r\n {{ job.error }}\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown *ngIf=\"!job.isSettled && job.state !== 'FAILED'\">\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"cancelJob(job.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteSystem'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"ban\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [".result-detail{margin:0 12px}.retry-info{margin-left:6px;color:var(--color-grey-400)}\n"] }]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/admin-ui",
3
- "version": "2.0.0-next.12",
3
+ "version": "2.0.0-next.15",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "@angular/animations": "13.2.3",
@@ -22,7 +22,7 @@
22
22
  "@ng-select/ng-select": "^8.1.1",
23
23
  "@ngx-translate/core": "^14.0.0",
24
24
  "@ngx-translate/http-loader": "^7.0.0",
25
- "@vendure/common": "^2.0.0-next.12",
25
+ "@vendure/common": "^2.0.0-next.15",
26
26
  "@webcomponents/custom-elements": "^1.4.3",
27
27
  "apollo-angular": "^3.0.0",
28
28
  "apollo-upload-client": "^17.0.0",
@@ -33,16 +33,17 @@
33
33
  "messageformat": "2.3.0",
34
34
  "ngx-pagination": "^5.1.1",
35
35
  "ngx-translate-messageformat-compiler": "^5.0.1",
36
- "prosemirror-commands": "^1.2.1",
37
- "prosemirror-dropcursor": "^1.4.0",
38
- "prosemirror-gapcursor": "^1.2.1",
39
- "prosemirror-history": "^1.2.0",
40
- "prosemirror-inputrules": "^1.1.3",
41
- "prosemirror-keymap": "^1.1.5",
42
- "prosemirror-menu": "^1.1.4",
43
- "prosemirror-schema-basic": "^1.1.2",
44
- "prosemirror-schema-list": "^1.1.6",
45
- "prosemirror-state": "^1.3.4",
36
+ "prosemirror-commands": "^1.3.0",
37
+ "prosemirror-dropcursor": "^1.6.0",
38
+ "prosemirror-gapcursor": "^1.3.1",
39
+ "prosemirror-history": "^1.3.0",
40
+ "prosemirror-inputrules": "^1.2.0",
41
+ "prosemirror-keymap": "^1.2.0",
42
+ "prosemirror-menu": "^1.2.1",
43
+ "prosemirror-schema-basic": "^1.2.0",
44
+ "prosemirror-schema-list": "^1.2.1",
45
+ "prosemirror-state": "^1.4.1",
46
+ "prosemirror-tables": "^1.2.5",
46
47
  "rxjs": "^7.5.4",
47
48
  "tslib": "^2.1.0",
48
49
  "zone.js": "~0.11.4"
@@ -1,4 +0,0 @@
1
- import { MenuItem } from 'prosemirror-menu';
2
- import { NodeType } from 'prosemirror-model';
3
- import { ModalService } from '../../../../../providers/modal/modal.service';
4
- export declare function insertImageItem(nodeType: NodeType, modalService: ModalService): MenuItem<any>;
@@ -1,36 +0,0 @@
1
- import { MenuItem } from 'prosemirror-menu';
2
- import { NodeSelection } from 'prosemirror-state';
3
- import { ExternalImageDialogComponent, } from '../../external-image-dialog/external-image-dialog.component';
4
- import { canInsert } from './menu-common';
5
- export function insertImageItem(nodeType, modalService) {
6
- return new MenuItem({
7
- title: 'Insert image',
8
- label: 'Image',
9
- class: '',
10
- css: '',
11
- enable(state) {
12
- return canInsert(state, nodeType);
13
- },
14
- run(state, _, view) {
15
- let attrs;
16
- if (state.selection instanceof NodeSelection && state.selection.node.type === nodeType) {
17
- attrs = state.selection.node.attrs;
18
- }
19
- modalService
20
- .fromComponent(ExternalImageDialogComponent, {
21
- closable: true,
22
- locals: {
23
- existing: attrs,
24
- },
25
- })
26
- .subscribe(result => {
27
- if (result) {
28
- // tslint:disable-next-line:no-non-null-assertion
29
- view.dispatch(view.state.tr.replaceSelectionWith(nodeType.createAndFill(result)));
30
- }
31
- view.focus();
32
- });
33
- },
34
- });
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3Byb3NlbWlycm9yL21lbnUvaW1hZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0QsT0FBTyxFQUVILDRCQUE0QixHQUMvQixNQUFNLDZEQUE2RCxDQUFDO0FBRXJFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFrQixFQUFFLFlBQTBCO0lBQzFFLE9BQU8sSUFBSSxRQUFRLENBQUM7UUFDaEIsS0FBSyxFQUFFLGNBQWM7UUFDckIsS0FBSyxFQUFFLE9BQU87UUFDZCxLQUFLLEVBQUUsRUFBRTtRQUNULEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxDQUFDLEtBQWtCO1lBQ3JCLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsR0FBRyxDQUFDLEtBQWtCLEVBQUUsQ0FBQyxFQUFFLElBQWdCO1lBQ3ZDLElBQUksS0FBcUMsQ0FBQztZQUMxQyxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksYUFBYSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3BGLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUEyQixDQUFDO2FBQzVEO1lBQ0QsWUFBWTtpQkFDUCxhQUFhLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ3pDLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE1BQU0sRUFBRTtvQkFDSixRQUFRLEVBQUUsS0FBSztpQkFDbEI7YUFDSixDQUFDO2lCQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsaURBQWlEO29CQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN0RjtnQkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XHJcbmltcG9ydCB7IE5vZGVUeXBlIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xyXG5pbXBvcnQgeyBFZGl0b3JTdGF0ZSwgTm9kZVNlbGVjdGlvbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXh0ZXJuYWxJbWFnZUF0dHJzLFxyXG4gICAgRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCxcclxufSBmcm9tICcuLi8uLi9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBjYW5JbnNlcnQgfSBmcm9tICcuL21lbnUtY29tbW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRJbWFnZUl0ZW0obm9kZVR5cGU6IE5vZGVUeXBlLCBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xyXG4gICAgcmV0dXJuIG5ldyBNZW51SXRlbSh7XHJcbiAgICAgICAgdGl0bGU6ICdJbnNlcnQgaW1hZ2UnLFxyXG4gICAgICAgIGxhYmVsOiAnSW1hZ2UnLFxyXG4gICAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgICBjc3M6ICcnLFxyXG4gICAgICAgIGVuYWJsZShzdGF0ZTogRWRpdG9yU3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNhbkluc2VydChzdGF0ZSwgbm9kZVR5cGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcnVuKHN0YXRlOiBFZGl0b3JTdGF0ZSwgXywgdmlldzogRWRpdG9yVmlldykge1xyXG4gICAgICAgICAgICBsZXQgYXR0cnM6IEV4dGVybmFsSW1hZ2VBdHRycyB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgaWYgKHN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIE5vZGVTZWxlY3Rpb24gJiYgc3RhdGUuc2VsZWN0aW9uLm5vZGUudHlwZSA9PT0gbm9kZVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGF0dHJzID0gc3RhdGUuc2VsZWN0aW9uLm5vZGUuYXR0cnMgYXMgRXh0ZXJuYWxJbWFnZUF0dHJzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAgICAgLmZyb21Db21wb25lbnQoRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZzogYXR0cnMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZGlzcGF0Y2godmlldy5zdGF0ZS50ci5yZXBsYWNlU2VsZWN0aW9uV2l0aChub2RlVHlwZS5jcmVhdGVBbmRGaWxsKHJlc3VsdCkhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxufVxyXG4iXX0=