ngx-sfc-common 0.0.3 → 0.0.5

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 (108) hide show
  1. package/README.md +5 -5
  2. package/_ngx-sfc-common.styles.scss +26 -0
  3. package/esm2020/lib/components/button/button.component.mjs +9 -7
  4. package/esm2020/lib/components/checkmark/checkmark-type.enum.mjs +6 -0
  5. package/esm2020/lib/components/checkmark/checkmark.component.mjs +24 -9
  6. package/esm2020/lib/components/close/close.component.mjs +8 -3
  7. package/esm2020/lib/components/delimeter/delimeter.component.mjs +2 -2
  8. package/esm2020/lib/components/dots/dots.component.mjs +2 -2
  9. package/esm2020/lib/components/hamburger/hamburger.component.mjs +2 -2
  10. package/esm2020/lib/components/index.mjs +7 -2
  11. package/esm2020/lib/components/load-container/load-container.component.mjs +161 -0
  12. package/esm2020/lib/components/load-container/load-container.constants.mjs +5 -0
  13. package/esm2020/lib/components/load-container/load-container.enum.mjs +6 -0
  14. package/esm2020/lib/components/load-container/models/load-container.model.mjs +2 -0
  15. package/esm2020/lib/components/load-container/models/load-more-parameters.model.mjs +2 -0
  16. package/esm2020/lib/components/load-container/models/load-more.model.mjs +2 -0
  17. package/esm2020/lib/components/load-container/service/load-more.service.mjs +27 -0
  18. package/esm2020/lib/components/load-more-button/load-more-button.component.mjs +31 -0
  19. package/esm2020/lib/components/loader/bounce/bounce-loader.component.mjs +2 -2
  20. package/esm2020/lib/components/loader/circle/circle-loader.component.mjs +2 -2
  21. package/esm2020/lib/components/loader/service/loader.service.mjs +4 -4
  22. package/esm2020/lib/components/modal/directive/click/modal-open-on-click.directive.mjs +48 -0
  23. package/esm2020/lib/components/modal/directive/open/modal-open.directive.mjs +29 -0
  24. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +1 -1
  25. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +11 -6
  26. package/esm2020/lib/components/modal/header/default/default-modal-header.model.mjs +1 -1
  27. package/esm2020/lib/components/modal/modal.component.mjs +3 -3
  28. package/esm2020/lib/components/modal/service/modal.service.mjs +1 -1
  29. package/esm2020/lib/components/pagination/pagination.component.mjs +9 -5
  30. package/esm2020/lib/components/sorting/sorting.component.mjs +5 -4
  31. package/esm2020/lib/components/sorting/sorting.constants.mjs +4 -3
  32. package/esm2020/lib/components/sorting/sorting.model.mjs +1 -1
  33. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +11 -4
  34. package/esm2020/lib/components/toggle-switcher/toggle-switcher.model.mjs +1 -1
  35. package/esm2020/lib/constants/common.constants.mjs +2 -1
  36. package/esm2020/lib/constants/date-time.constants.mjs +3 -1
  37. package/esm2020/lib/constants/file.constants.mjs +2 -0
  38. package/esm2020/lib/constants/index.mjs +1 -1
  39. package/esm2020/lib/directives/component-size/component-size.directive.mjs +23 -10
  40. package/esm2020/lib/directives/dom-changes/dom-changes.directive.mjs +32 -0
  41. package/esm2020/lib/directives/index.mjs +4 -1
  42. package/esm2020/lib/directives/scroll-into-view/scroll-into-view.directive.mjs +29 -0
  43. package/esm2020/lib/directives/scroll-tracker/scroll-tracker.directive.mjs +39 -0
  44. package/esm2020/lib/enums/index.mjs +2 -1
  45. package/esm2020/lib/enums/sequence.enum.mjs +9 -0
  46. package/esm2020/lib/enums/sorting-direction.enum.mjs +1 -1
  47. package/esm2020/lib/enums/ui.enum.mjs +4 -1
  48. package/esm2020/lib/ngx-sfc-common.module.mjs +47 -10
  49. package/esm2020/lib/pipes/index.mjs +2 -0
  50. package/esm2020/lib/pipes/switch-multi-case/switch-multi-case.pipe.mjs +16 -0
  51. package/esm2020/lib/utils/collections.utils.mjs +30 -3
  52. package/esm2020/lib/utils/common.utils.mjs +9 -2
  53. package/esm2020/lib/utils/date-time.utils.mjs +57 -10
  54. package/esm2020/lib/utils/file.utils.mjs +4 -3
  55. package/esm2020/lib/utils/index.mjs +5 -5
  56. package/esm2020/lib/utils/ui.utils.mjs +9 -1
  57. package/esm2020/public-api.mjs +2 -1
  58. package/fesm2015/ngx-sfc-common.mjs +599 -78
  59. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  60. package/fesm2020/ngx-sfc-common.mjs +598 -78
  61. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  62. package/lib/components/button/button.component.d.ts +3 -2
  63. package/lib/components/checkmark/checkmark-type.enum.d.ts +4 -0
  64. package/lib/components/checkmark/checkmark.component.d.ts +7 -3
  65. package/lib/components/close/close.component.d.ts +1 -0
  66. package/lib/components/index.d.ts +11 -1
  67. package/lib/components/load-container/load-container.component.d.ts +49 -0
  68. package/lib/components/load-container/load-container.constants.d.ts +4 -0
  69. package/lib/components/load-container/load-container.enum.d.ts +4 -0
  70. package/lib/components/load-container/models/load-container.model.d.ts +11 -0
  71. package/lib/components/load-container/models/load-more-parameters.model.d.ts +4 -0
  72. package/lib/components/load-container/models/load-more.model.d.ts +4 -0
  73. package/lib/components/load-container/service/load-more.service.d.ts +12 -0
  74. package/lib/components/load-more-button/load-more-button.component.d.ts +12 -0
  75. package/lib/components/modal/directive/{modal-open-on-click.directive.d.ts → click/modal-open-on-click.directive.d.ts} +1 -1
  76. package/lib/components/modal/directive/open/modal-open.directive.d.ts +14 -0
  77. package/lib/components/modal/header/default/default-modal-header.component.d.ts +2 -0
  78. package/lib/components/modal/header/default/default-modal-header.model.d.ts +2 -1
  79. package/lib/components/modal/service/modal.service.d.ts +1 -1
  80. package/lib/components/pagination/pagination.component.d.ts +2 -0
  81. package/lib/components/sorting/sorting.component.d.ts +2 -1
  82. package/lib/components/sorting/sorting.constants.d.ts +2 -2
  83. package/lib/components/sorting/sorting.model.d.ts +2 -1
  84. package/lib/components/toggle-switcher/toggle-switcher.component.d.ts +2 -1
  85. package/lib/components/toggle-switcher/toggle-switcher.model.d.ts +2 -1
  86. package/lib/constants/common.constants.d.ts +1 -0
  87. package/lib/constants/date-time.constants.d.ts +2 -0
  88. package/lib/constants/file.constants.d.ts +1 -0
  89. package/lib/constants/index.d.ts +1 -0
  90. package/lib/directives/component-size/component-size.directive.d.ts +7 -2
  91. package/lib/directives/dom-changes/dom-changes.directive.d.ts +12 -0
  92. package/lib/directives/index.d.ts +3 -0
  93. package/lib/directives/scroll-into-view/scroll-into-view.directive.d.ts +7 -0
  94. package/lib/directives/scroll-tracker/scroll-tracker.directive.d.ts +11 -0
  95. package/lib/enums/index.d.ts +1 -0
  96. package/lib/enums/sequence.enum.d.ts +7 -0
  97. package/lib/enums/ui.enum.d.ts +4 -1
  98. package/lib/ngx-sfc-common.module.d.ts +28 -20
  99. package/lib/pipes/index.d.ts +1 -0
  100. package/lib/pipes/switch-multi-case/switch-multi-case.pipe.d.ts +7 -0
  101. package/lib/utils/collections.utils.d.ts +16 -2
  102. package/lib/utils/common.utils.d.ts +5 -0
  103. package/lib/utils/date-time.utils.d.ts +26 -0
  104. package/lib/utils/index.d.ts +4 -4
  105. package/lib/utils/ui.utils.d.ts +6 -0
  106. package/package.json +5 -2
  107. package/public-api.d.ts +1 -0
  108. package/esm2020/lib/components/modal/directive/modal-open-on-click.directive.mjs +0 -50
@@ -1,6 +1,6 @@
1
- export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric } from './common.utils';
1
+ export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isChromeBrowser } from './common.utils';
2
2
  export { isNullOrEmptyString, contains, trim } from './string.utils';
3
- export { setMinutes, setHours, setDay, setYear, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual } from './date-time.utils';
3
+ export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual } from './date-time.utils';
4
4
  export { parseFileSize, getFileExtension, readAsDataURL, isImage } from './file.utils';
5
- export { getCssLikeValue, getValueFromCssLikeValue, getCalcValue, addClasses, removeClasses, rgbToHex, hexToRgb, replaceRgbOpacity } from './ui.utils';
6
- export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, updateItem, getCollectionOrEmpty } from './collections.utils';
5
+ export { getCssLikeValue, getValueFromCssLikeValue, getCalcValue, getRotateValue, addClasses, removeClasses, rgbToHex, hexToRgb, replaceRgbOpacity } from './ui.utils';
6
+ export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty } from './collections.utils';
@@ -17,6 +17,12 @@ export declare function getValueFromCssLikeValue(value: string, type?: string):
17
17
  * @returns Calc value
18
18
  */
19
19
  export declare function getCalcValue(part: number, value?: number): string;
20
+ /**
21
+ * Return CCS like rotate value
22
+ * @param value value as degrees
23
+ * @returns Rotate value
24
+ */
25
+ export declare function getRotateValue(value: number): string;
20
26
  /**
21
27
  * Add classes to HTML element
22
28
  * @param element HTML element
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-sfc-common",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Angular common(shared) library for SFC project",
5
5
  "keywords": [
6
6
  "Street Football Club",
@@ -25,7 +25,10 @@
25
25
  "license": "MIT",
26
26
  "peerDependencies": {
27
27
  "@angular/common": "^13.2.0",
28
- "@angular/core": "^13.2.0"
28
+ "@angular/core": "^13.2.0",
29
+ "@fortawesome/angular-fontawesome": "0.10.2",
30
+ "@fortawesome/fontawesome-svg-core": "^6.1.1",
31
+ "@fortawesome/free-solid-svg-icons": "^6.1.1"
29
32
  },
30
33
  "dependencies": {
31
34
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -4,4 +4,5 @@ export * from './lib/enums';
4
4
  export * from './lib/utils';
5
5
  export * from './lib/services';
6
6
  export * from './lib/directives';
7
+ export * from './lib/pipes';
7
8
  export * from './lib/components';
@@ -1,50 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { isDefined } from '../../../utils';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../service/modal.service";
5
- export class ModalOpenOnClickDirective {
6
- constructor(templateRef, viewContainer, modalService) {
7
- this.templateRef = templateRef;
8
- this.viewContainer = viewContainer;
9
- this.modalService = modalService;
10
- this.clickHandler = ((event) => {
11
- this.viewContainer.clear();
12
- this.viewContainer.createEmbeddedView(this.templateRef);
13
- this.modalService.open(event.currentTarget);
14
- }).bind(this);
15
- this.elements = [];
16
- }
17
- set modalOpenOnClick(elements) {
18
- if (!isDefined(elements))
19
- return;
20
- if (elements instanceof HTMLElement)
21
- this.elements = [elements];
22
- else
23
- this.elements = elements;
24
- this.elements.forEach(el => {
25
- el.addEventListener('click', this.clickHandler);
26
- });
27
- }
28
- ngOnInit() {
29
- this._closeSubscription = this.modalService.close$
30
- .subscribe(() => {
31
- this.viewContainer.clear();
32
- });
33
- }
34
- ngOnDestroy() {
35
- this._closeSubscription?.unsubscribe();
36
- this.elements.forEach(el => el.removeEventListener('click', this.clickHandler));
37
- }
38
- }
39
- ModalOpenOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalOpenOnClickDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Directive });
40
- ModalOpenOnClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ModalOpenOnClickDirective, selector: "[sfcModalOpenOnClick]", inputs: { modalOpenOnClick: ["sfcModalOpenOnClick", "modalOpenOnClick"] }, ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalOpenOnClickDirective, decorators: [{
42
- type: Directive,
43
- args: [{
44
- selector: '[sfcModalOpenOnClick]'
45
- }]
46
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ModalService }]; }, propDecorators: { modalOpenOnClick: [{
47
- type: Input,
48
- args: ['sfcModalOpenOnClick']
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3Blbi1vbi1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvZGlyZWN0aXZlL21vZGFsLW9wZW4tb24tY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8seUJBQXlCO0lBMkJwQyxZQUNVLFdBQTZCLEVBQzdCLGFBQStCLEVBQy9CLFlBQTBCO1FBRjFCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiNUIsaUJBQVksR0FBRyxDQUFDLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVOLGFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBUXJDLENBQUM7SUE3QkQsSUFDSSxnQkFBZ0IsQ0FBQyxRQUFxQztRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN0QixPQUFPO1FBRVQsSUFBSSxRQUFRLFlBQVksV0FBVztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3pCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWtCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDOztzSEEzQ1UseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQzs0SkFJSyxnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvbW9kYWwuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzZmNNb2RhbE9wZW5PbkNsaWNrXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsT3Blbk9uQ2xpY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgnc2ZjTW9kYWxPcGVuT25DbGljaycpXHJcbiAgc2V0IG1vZGFsT3Blbk9uQ2xpY2soZWxlbWVudHM6IEhUTUxFbGVtZW50IHwgSFRNTEVsZW1lbnRbXSkge1xyXG4gICAgaWYgKCFpc0RlZmluZWQoZWxlbWVudHMpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgaWYgKGVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXHJcbiAgICAgIHRoaXMuZWxlbWVudHMgPSBbZWxlbWVudHNdO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrSGFuZGxlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xpY2tIYW5kbGVyID0gKChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihldmVudC5jdXJyZW50VGFyZ2V0KTtcclxuICB9KS5iaW5kKHRoaXMpO1xyXG5cclxuICBwcml2YXRlIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2Nsb3NlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Nsb3NlU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2UkXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2xvc2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrSGFuZGxlcikpO1xyXG4gIH1cclxufVxyXG4iXX0=