@stemy/ngx-utils 13.6.16 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/ngx-utils/common-types.mjs +123 -0
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +210 -0
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +101 -0
- package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +65 -0
- package/esm2022/ngx-utils/directives/async-method.base.mjs +82 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/async-method.directive.mjs +21 -21
- package/esm2022/ngx-utils/directives/background.directive.mjs +51 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/dynamic-table-template.directive.mjs +20 -20
- package/{esm2020 → esm2022}/ngx-utils/directives/global-template.directive.mjs +30 -30
- package/esm2022/ngx-utils/directives/icon.directive.mjs +67 -0
- package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +90 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/pagination-item.directive.mjs +34 -34
- package/esm2022/ngx-utils/directives/pagination.directive.mjs +84 -0
- package/esm2022/ngx-utils/directives/resource-if.directive.mjs +50 -0
- package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +34 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/sticky.directive.mjs +55 -55
- package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-item.directive.mjs +79 -79
- package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-template.directive.mjs +20 -20
- package/{esm2020 → esm2022}/ngx-utils/ngx-utils.imports.mjs +174 -174
- package/esm2022/ngx-utils/ngx-utils.module.mjs +202 -0
- package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +25 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/entries.pipe.mjs +28 -28
- package/{esm2020 → esm2022}/ngx-utils/pipes/extra-item-properties.pipe.mjs +31 -31
- package/esm2022/ngx-utils/pipes/filter.pipe.mjs +37 -0
- package/esm2022/ngx-utils/pipes/find.pipe.mjs +29 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/format-number.pipe.mjs +21 -21
- package/{esm2020 → esm2022}/ngx-utils/pipes/get-offset.pipe.mjs +17 -17
- package/{esm2020 → esm2022}/ngx-utils/pipes/get-type.pipe.mjs +16 -16
- package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +41 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/group-by.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/ngx-utils/pipes/is-type.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/join.pipe.mjs +19 -19
- package/{esm2020 → esm2022}/ngx-utils/pipes/keys.pipe.mjs +22 -22
- package/{esm2020 → esm2022}/ngx-utils/pipes/map.pipe.mjs +29 -29
- package/{esm2020 → esm2022}/ngx-utils/pipes/max.pipe.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/pipes/min.pipe.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/pipes/pop.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/reduce.pipe.mjs +30 -30
- package/esm2022/ngx-utils/pipes/remap.pipe.mjs +32 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/replace.pipe.mjs +17 -17
- package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +24 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/round.pipe.mjs +21 -21
- package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +34 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/shift.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/split.pipe.mjs +16 -16
- package/esm2022/ngx-utils/pipes/translate.pipe.mjs +86 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/values.pipe.mjs +22 -22
- package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +78 -0
- package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +39 -0
- package/{esm2020 → esm2022}/ngx-utils/services/acl.service.mjs +84 -83
- package/esm2022/ngx-utils/services/api.service.mjs +42 -0
- package/{esm2020 → esm2022}/ngx-utils/services/auth.service.mjs +13 -13
- package/esm2022/ngx-utils/services/base-http.client.mjs +47 -0
- package/esm2022/ngx-utils/services/base-http.service.mjs +305 -0
- package/esm2022/ngx-utils/services/config.service.mjs +130 -0
- package/esm2022/ngx-utils/services/error-handler.service.mjs +49 -0
- package/{esm2020 → esm2022}/ngx-utils/services/events.service.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/services/formatter.service.mjs +49 -49
- package/esm2022/ngx-utils/services/global-template.service.mjs +37 -0
- package/esm2022/ngx-utils/services/icon.service.mjs +26 -0
- package/esm2022/ngx-utils/services/language.service.mjs +124 -0
- package/{esm2020 → esm2022}/ngx-utils/services/local-http.service.mjs +47 -47
- package/{esm2020 → esm2022}/ngx-utils/services/open-api.service.mjs +40 -40
- package/{esm2020 → esm2022}/ngx-utils/services/promise.service.mjs +55 -55
- package/esm2022/ngx-utils/services/state.service.mjs +177 -0
- package/{esm2020 → esm2022}/ngx-utils/services/static-language.service.mjs +166 -166
- package/esm2022/ngx-utils/services/storage.service.mjs +49 -0
- package/{esm2020 → esm2022}/ngx-utils/services/toaster.service.mjs +32 -32
- package/esm2022/ngx-utils/services/translated-url.serializer.mjs +73 -0
- package/esm2022/ngx-utils/services/universal.service.mjs +81 -0
- package/{esm2020 → esm2022}/ngx-utils/services/wasm.service.mjs +46 -46
- package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +40 -0
- package/esm2022/ngx-utils/utils/array.utils.mjs +107 -0
- package/esm2022/ngx-utils/utils/auth.guard.mjs +181 -0
- package/esm2022/ngx-utils/utils/cached-factory.mjs +30 -0
- package/esm2022/ngx-utils/utils/canvas.utils.mjs +388 -0
- package/esm2022/ngx-utils/utils/date.utils.mjs +29 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/file-system.mjs +24 -24
- package/esm2022/ngx-utils/utils/file.utils.mjs +90 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/generic-value.mjs +20 -20
- package/esm2022/ngx-utils/utils/geometry.mjs +132 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/initializer.mjs +20 -20
- package/esm2022/ngx-utils/utils/jsonfn.mjs +45 -0
- package/esm2022/ngx-utils/utils/loader.utils.mjs +55 -0
- package/esm2022/ngx-utils/utils/math.utils.mjs +44 -0
- package/esm2022/ngx-utils/utils/object.utils.mjs +320 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/observable.utils.mjs +63 -63
- package/esm2022/ngx-utils/utils/reflect.utils.mjs +33 -0
- package/esm2022/ngx-utils/utils/set.utils.mjs +20 -0
- package/esm2022/ngx-utils/utils/string.utils.mjs +41 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/timer.utils.mjs +51 -51
- package/esm2022/ngx-utils/utils/unique.utils.mjs +24 -0
- package/esm2022/ngx-utils/utils/vector.mjs +77 -0
- package/esm2022/ngx-utils/utils/wasi.mjs +159 -0
- package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +99 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/with-options-provider.mjs +23 -23
- package/{esm2020 → esm2022}/public_api.mjs +94 -94
- package/{esm2020 → esm2022}/stemy-ngx-utils.mjs +4 -4
- package/esm2022/tools/config.mjs +71 -0
- package/{esm2020 → esm2022}/tools/public_api.mjs +1 -1
- package/{esm2020 → esm2022}/tools/stemy-ngx-utils-tools.mjs +4 -4
- package/{fesm2020 → fesm2022}/stemy-ngx-utils-tools.mjs +71 -71
- package/{fesm2015 → fesm2022}/stemy-ngx-utils-tools.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/stemy-ngx-utils.mjs +5639 -5633
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -0
- package/{stemy-ngx-utils.d.ts → index.d.ts} +5 -5
- package/ng.mjs +5 -0
- package/ngx-utils/common-types.d.ts +378 -377
- package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +56 -55
- package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +31 -31
- package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +25 -25
- package/ngx-utils/directives/async-method.base.d.ts +19 -19
- package/ngx-utils/directives/async-method.directive.d.ts +9 -9
- package/ngx-utils/directives/background.directive.d.ts +17 -17
- package/ngx-utils/directives/dynamic-table-template.directive.d.ts +11 -11
- package/ngx-utils/directives/global-template.directive.d.ts +13 -13
- package/ngx-utils/directives/icon.directive.d.ts +23 -23
- package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +17 -17
- package/ngx-utils/directives/pagination-item.directive.d.ts +15 -15
- package/ngx-utils/directives/pagination.directive.d.ts +25 -25
- package/ngx-utils/directives/resource-if.directive.d.ts +19 -19
- package/ngx-utils/directives/sticky-class.directive.d.ts +15 -15
- package/ngx-utils/directives/sticky.directive.d.ts +19 -19
- package/ngx-utils/directives/unordered-list-item.directive.d.ts +28 -28
- package/ngx-utils/directives/unordered-list-template.directive.d.ts +11 -11
- package/ngx-utils/ngx-utils.imports.d.ts +74 -0
- package/ngx-utils/ngx-utils.module.d.ts +58 -58
- package/ngx-utils/pipes/chunk.pipe.d.ts +7 -7
- package/ngx-utils/pipes/entries.pipe.d.ts +12 -12
- package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +8 -8
- package/ngx-utils/pipes/filter.pipe.d.ts +8 -8
- package/ngx-utils/pipes/find.pipe.d.ts +8 -8
- package/ngx-utils/pipes/format-number.pipe.d.ts +10 -10
- package/ngx-utils/pipes/get-offset.pipe.d.ts +7 -7
- package/ngx-utils/pipes/get-type.pipe.d.ts +7 -7
- package/ngx-utils/pipes/global-template.pipe.d.ts +16 -16
- package/ngx-utils/pipes/group-by.pipe.d.ts +8 -8
- package/ngx-utils/pipes/is-type.pipe.d.ts +7 -7
- package/ngx-utils/pipes/join.pipe.d.ts +7 -7
- package/ngx-utils/pipes/keys.pipe.d.ts +7 -7
- package/ngx-utils/pipes/map.pipe.d.ts +8 -8
- package/ngx-utils/pipes/max.pipe.d.ts +7 -7
- package/ngx-utils/pipes/min.pipe.d.ts +7 -7
- package/ngx-utils/pipes/pop.pipe.d.ts +7 -7
- package/ngx-utils/pipes/reduce.pipe.d.ts +8 -8
- package/ngx-utils/pipes/remap.pipe.d.ts +7 -7
- package/ngx-utils/pipes/replace.pipe.d.ts +7 -7
- package/ngx-utils/pipes/reverse.pipe.d.ts +7 -7
- package/ngx-utils/pipes/round.pipe.d.ts +10 -10
- package/ngx-utils/pipes/safe-html.pipe.d.ts +10 -10
- package/ngx-utils/pipes/shift.pipe.d.ts +7 -7
- package/ngx-utils/pipes/split.pipe.d.ts +7 -7
- package/ngx-utils/pipes/translate.pipe.d.ts +19 -19
- package/ngx-utils/pipes/values.pipe.d.ts +7 -7
- package/ngx-utils/plugins/resize-event.plugin.d.ts +17 -17
- package/ngx-utils/plugins/scroll-event.plugin.d.ts +13 -13
- package/ngx-utils/services/acl.service.d.ts +14 -14
- package/ngx-utils/services/api.service.d.ts +17 -17
- package/ngx-utils/services/auth.service.d.ts +8 -8
- package/ngx-utils/services/base-http.client.d.ts +15 -15
- package/ngx-utils/services/base-http.service.d.ts +53 -53
- package/ngx-utils/services/config.service.d.ts +30 -30
- package/ngx-utils/services/error-handler.service.d.ts +13 -13
- package/ngx-utils/services/events.service.d.ts +14 -14
- package/ngx-utils/services/formatter.service.d.ts +15 -15
- package/ngx-utils/services/global-template.service.d.ts +19 -19
- package/ngx-utils/services/icon.service.d.ts +13 -13
- package/ngx-utils/services/language.service.d.ts +21 -21
- package/ngx-utils/services/local-http.service.d.ts +14 -14
- package/ngx-utils/services/open-api.service.d.ts +11 -11
- package/ngx-utils/services/promise.service.d.ts +19 -19
- package/ngx-utils/services/state.service.d.ts +49 -49
- package/ngx-utils/services/static-language.service.d.ts +46 -46
- package/ngx-utils/services/storage.service.d.ts +15 -15
- package/ngx-utils/services/toaster.service.d.ts +13 -13
- package/ngx-utils/services/translated-url.serializer.d.ts +19 -19
- package/ngx-utils/services/universal.service.d.ts +28 -28
- package/ngx-utils/services/wasm.service.d.ts +25 -25
- package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
- package/ngx-utils/utils/array.utils.d.ts +11 -11
- package/ngx-utils/utils/auth.guard.d.ts +29 -29
- package/ngx-utils/utils/cached-factory.d.ts +2 -2
- package/ngx-utils/utils/canvas.utils.d.ts +13 -13
- package/ngx-utils/utils/date.utils.d.ts +8 -8
- package/ngx-utils/utils/file-system.d.ts +16 -16
- package/ngx-utils/utils/file.utils.d.ts +14 -14
- package/ngx-utils/utils/generic-value.d.ts +8 -8
- package/ngx-utils/utils/geometry.d.ts +50 -50
- package/ngx-utils/utils/initializer.d.ts +12 -12
- package/ngx-utils/utils/jsonfn.d.ts +6 -6
- package/ngx-utils/utils/loader.utils.d.ts +7 -7
- package/ngx-utils/utils/math.utils.d.ts +8 -8
- package/ngx-utils/utils/object.utils.d.ts +35 -35
- package/ngx-utils/utils/observable.utils.d.ts +13 -13
- package/ngx-utils/utils/reflect.utils.d.ts +9 -9
- package/ngx-utils/utils/set.utils.d.ts +4 -4
- package/ngx-utils/utils/string.utils.d.ts +9 -9
- package/ngx-utils/utils/timer.utils.d.ts +6 -6
- package/ngx-utils/utils/unique.utils.d.ts +5 -5
- package/ngx-utils/utils/vector.d.ts +23 -23
- package/ngx-utils/utils/wasi.d.ts +26 -26
- package/ngx-utils/utils/wasm-worker-proxy.d.ts +17 -17
- package/ngx-utils/utils/with-options-provider.d.ts +3 -3
- package/package.json +21 -29
- package/public_api.d.ts +93 -93
- package/tools/config.d.ts +7 -7
- package/tools/{stemy-ngx-utils-tools.d.ts → index.d.ts} +5 -5
- package/tools/public_api.d.ts +1 -1
- package/esm2020/ngx-utils/common-types.mjs +0 -123
- package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +0 -207
- package/esm2020/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +0 -101
- package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +0 -65
- package/esm2020/ngx-utils/directives/async-method.base.mjs +0 -82
- package/esm2020/ngx-utils/directives/background.directive.mjs +0 -51
- package/esm2020/ngx-utils/directives/icon.directive.mjs +0 -67
- package/esm2020/ngx-utils/directives/ngx-template-outlet.directive.mjs +0 -90
- package/esm2020/ngx-utils/directives/pagination.directive.mjs +0 -84
- package/esm2020/ngx-utils/directives/resource-if.directive.mjs +0 -50
- package/esm2020/ngx-utils/directives/sticky-class.directive.mjs +0 -34
- package/esm2020/ngx-utils/ngx-utils.module.mjs +0 -204
- package/esm2020/ngx-utils/pipes/chunk.pipe.mjs +0 -25
- package/esm2020/ngx-utils/pipes/filter.pipe.mjs +0 -37
- package/esm2020/ngx-utils/pipes/find.pipe.mjs +0 -29
- package/esm2020/ngx-utils/pipes/global-template.pipe.mjs +0 -41
- package/esm2020/ngx-utils/pipes/remap.pipe.mjs +0 -32
- package/esm2020/ngx-utils/pipes/reverse.pipe.mjs +0 -24
- package/esm2020/ngx-utils/pipes/safe-html.pipe.mjs +0 -34
- package/esm2020/ngx-utils/pipes/translate.pipe.mjs +0 -86
- package/esm2020/ngx-utils/plugins/resize-event.plugin.mjs +0 -78
- package/esm2020/ngx-utils/plugins/scroll-event.plugin.mjs +0 -39
- package/esm2020/ngx-utils/services/api.service.mjs +0 -42
- package/esm2020/ngx-utils/services/base-http.client.mjs +0 -47
- package/esm2020/ngx-utils/services/base-http.service.mjs +0 -305
- package/esm2020/ngx-utils/services/config.service.mjs +0 -130
- package/esm2020/ngx-utils/services/error-handler.service.mjs +0 -49
- package/esm2020/ngx-utils/services/global-template.service.mjs +0 -37
- package/esm2020/ngx-utils/services/icon.service.mjs +0 -26
- package/esm2020/ngx-utils/services/language.service.mjs +0 -124
- package/esm2020/ngx-utils/services/state.service.mjs +0 -173
- package/esm2020/ngx-utils/services/storage.service.mjs +0 -49
- package/esm2020/ngx-utils/services/translated-url.serializer.mjs +0 -73
- package/esm2020/ngx-utils/services/universal.service.mjs +0 -81
- package/esm2020/ngx-utils/utils/ajax-request-handler.mjs +0 -40
- package/esm2020/ngx-utils/utils/array.utils.mjs +0 -107
- package/esm2020/ngx-utils/utils/auth.guard.mjs +0 -181
- package/esm2020/ngx-utils/utils/cached-factory.mjs +0 -30
- package/esm2020/ngx-utils/utils/canvas.utils.mjs +0 -388
- package/esm2020/ngx-utils/utils/date.utils.mjs +0 -29
- package/esm2020/ngx-utils/utils/file.utils.mjs +0 -90
- package/esm2020/ngx-utils/utils/geometry.mjs +0 -132
- package/esm2020/ngx-utils/utils/jsonfn.mjs +0 -45
- package/esm2020/ngx-utils/utils/loader.utils.mjs +0 -55
- package/esm2020/ngx-utils/utils/math.utils.mjs +0 -44
- package/esm2020/ngx-utils/utils/object.utils.mjs +0 -320
- package/esm2020/ngx-utils/utils/reflect.utils.mjs +0 -33
- package/esm2020/ngx-utils/utils/set.utils.mjs +0 -20
- package/esm2020/ngx-utils/utils/string.utils.mjs +0 -41
- package/esm2020/ngx-utils/utils/unique.utils.mjs +0 -24
- package/esm2020/ngx-utils/utils/vector.mjs +0 -77
- package/esm2020/ngx-utils/utils/wasi.mjs +0 -159
- package/esm2020/ngx-utils/utils/wasm-worker-proxy.mjs +0 -99
- package/esm2020/tools/config.mjs +0 -71
- package/fesm2015/stemy-ngx-utils-tools.mjs +0 -77
- package/fesm2015/stemy-ngx-utils.mjs +0 -5891
- package/fesm2015/stemy-ngx-utils.mjs.map +0 -1
- package/fesm2020/stemy-ngx-utils-tools.mjs.map +0 -1
- package/fesm2020/stemy-ngx-utils.mjs.map +0 -1
- package/tools/package.json +0 -10
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { Directive, TemplateRef, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { PaginationDirective } from "./pagination.directive";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./pagination.directive";
|
|
5
|
-
export class PaginationItemDirective {
|
|
6
|
-
constructor(pagination, viewContainer, templateRef) {
|
|
7
|
-
this.pagination = pagination;
|
|
8
|
-
this.viewContainer = viewContainer;
|
|
9
|
-
this.templateRef = templateRef;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.onRefresh = this.pagination.onRefresh.subscribe(() => this.renderView());
|
|
13
|
-
}
|
|
14
|
-
ngOnDestroy() {
|
|
15
|
-
this.onRefresh.unsubscribe();
|
|
16
|
-
}
|
|
17
|
-
renderView() {
|
|
18
|
-
this.viewContainer.clear();
|
|
19
|
-
this.pagination.items.forEach((item, ix) => {
|
|
20
|
-
item.$implicit = item;
|
|
21
|
-
item.rowIndex = ix;
|
|
22
|
-
this.viewContainer.createEmbeddedView(this.templateRef, item);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: "[paginationItem]"
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters:
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, TemplateRef, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { PaginationDirective } from "./pagination.directive";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./pagination.directive";
|
|
5
|
+
export class PaginationItemDirective {
|
|
6
|
+
constructor(pagination, viewContainer, templateRef) {
|
|
7
|
+
this.pagination = pagination;
|
|
8
|
+
this.viewContainer = viewContainer;
|
|
9
|
+
this.templateRef = templateRef;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.onRefresh = this.pagination.onRefresh.subscribe(() => this.renderView());
|
|
13
|
+
}
|
|
14
|
+
ngOnDestroy() {
|
|
15
|
+
this.onRefresh.unsubscribe();
|
|
16
|
+
}
|
|
17
|
+
renderView() {
|
|
18
|
+
this.viewContainer.clear();
|
|
19
|
+
this.pagination.items.forEach((item, ix) => {
|
|
20
|
+
item.$implicit = item;
|
|
21
|
+
item.rowIndex = ix;
|
|
22
|
+
this.viewContainer.createEmbeddedView(this.templateRef, item);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationItemDirective, deps: [{ token: i1.PaginationDirective }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PaginationItemDirective, selector: "[paginationItem]", ngImport: i0 }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationItemDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: "[paginationItem]"
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.PaginationDirective }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9wYWdpbmF0aW9uLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBSzNELE1BQU0sT0FBTyx1QkFBdUI7SUFJaEMsWUFBb0IsVUFBK0IsRUFBVSxhQUErQixFQUFVLFdBQTZCO1FBQS9HLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBRW5JLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBVSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F2QlEsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uRGlyZWN0aXZlfSBmcm9tIFwiLi9wYWdpbmF0aW9uLmRpcmVjdGl2ZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbcGFnaW5hdGlvbkl0ZW1dXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25JdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHByaXZhdGUgb25SZWZyZXNoOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlLCBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2ggPSB0aGlzLnBhZ2luYXRpb24ub25SZWZyZXNoLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlclZpZXcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2gudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlclZpZXcoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLml0ZW1zLmZvckVhY2goKGl0ZW06IGFueSwgaXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLiRpbXBsaWNpdCA9IGl0ZW07XHJcbiAgICAgICAgICAgIGl0ZW0ucm93SW5kZXggPSBpeDtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCBpdGVtKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, NgZone, Output } from "@angular/core";
|
|
2
|
+
import { PaginationItemContext } from "../common-types";
|
|
3
|
+
import { TimerUtils } from "../utils/timer.utils";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class PaginationDirective {
|
|
6
|
+
get total() {
|
|
7
|
+
return this.data ? this.data.total : 0;
|
|
8
|
+
}
|
|
9
|
+
get items() {
|
|
10
|
+
return this.data ? this.data.items : [];
|
|
11
|
+
}
|
|
12
|
+
constructor(zone) {
|
|
13
|
+
this.zone = zone;
|
|
14
|
+
this.pageChange = new EventEmitter();
|
|
15
|
+
this.onRefresh = new EventEmitter();
|
|
16
|
+
this.updateTimer = TimerUtils.createTimeout(() => this.loadData(), this.updateTime);
|
|
17
|
+
}
|
|
18
|
+
ngOnChanges(changes) {
|
|
19
|
+
if (!changes.loader && !changes.itemsPerPage && !changes.page)
|
|
20
|
+
return;
|
|
21
|
+
this.page = isNaN(this.page) || this.page < 1 ? 1 : this.page;
|
|
22
|
+
this.itemsPerPage = isNaN(this.itemsPerPage) || this.itemsPerPage < 1 ? 20 : this.itemsPerPage;
|
|
23
|
+
this.waitFor = this.waitFor || Promise.resolve(true);
|
|
24
|
+
this.refresh();
|
|
25
|
+
}
|
|
26
|
+
refresh(time) {
|
|
27
|
+
time = isNaN(time) || time <= 0 ? this.updateTime : time;
|
|
28
|
+
this.updateTimer.time = isNaN(time) || time <= 0 ? 100 : time;
|
|
29
|
+
this.waitFor.then(() => {
|
|
30
|
+
this.updateTimer.run();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
paginate(page) {
|
|
34
|
+
this.page = page;
|
|
35
|
+
this.pageChange.emit(page);
|
|
36
|
+
this.refresh();
|
|
37
|
+
}
|
|
38
|
+
loadData() {
|
|
39
|
+
if (!this.loader)
|
|
40
|
+
return;
|
|
41
|
+
this.loader(this.page, this.itemsPerPage).then(data => {
|
|
42
|
+
this.maxPage = !data || data.total <= 0 ? 1 : Math.floor((data.total - 1) / this.itemsPerPage) + 1;
|
|
43
|
+
this.data = data;
|
|
44
|
+
const baseIndex = (this.page - 1) * this.itemsPerPage;
|
|
45
|
+
const items = (data.items || []);
|
|
46
|
+
data.items = items.map((item, index) => {
|
|
47
|
+
const ix = baseIndex + index;
|
|
48
|
+
return item instanceof PaginationItemContext
|
|
49
|
+
? item
|
|
50
|
+
: new PaginationItemContext(item, items, items.length, index, ix);
|
|
51
|
+
});
|
|
52
|
+
if (this.page > this.maxPage) {
|
|
53
|
+
this.paginate(this.maxPage);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.zone.run(() => this.onRefresh.emit(this));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationDirective, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
60
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PaginationDirective, selector: "[pagination]", inputs: { loader: ["pagination", "loader"], page: "page", itemsPerPage: "itemsPerPage", updateTime: "updateTime", waitFor: "waitFor" }, outputs: { pageChange: "pageChange", onRefresh: "onRefresh" }, exportAs: ["pagination"], usesOnChanges: true, ngImport: i0 }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationDirective, decorators: [{
|
|
63
|
+
type: Directive,
|
|
64
|
+
args: [{
|
|
65
|
+
selector: "[pagination]",
|
|
66
|
+
exportAs: "pagination"
|
|
67
|
+
}]
|
|
68
|
+
}], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { loader: [{
|
|
69
|
+
type: Input,
|
|
70
|
+
args: ["pagination"]
|
|
71
|
+
}], page: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], itemsPerPage: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], updateTime: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], waitFor: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], pageChange: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], onRefresh: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBZ0QscUJBQXFCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBTWhELE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQWdCRCxZQUFvQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJ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QUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUIsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F2RVEsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSxZQUFZO2lCQUN6QjsyRUFXd0IsTUFBTTtzQkFBMUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNWLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lQYWdpbmF0aW9uRGF0YSwgSVRpbWVyLCBQYWdpbmF0aW9uRGF0YUxvYWRlciwgUGFnaW5hdGlvbkl0ZW1Db250ZXh0fSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7VGltZXJVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3RpbWVyLnV0aWxzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltwYWdpbmF0aW9uXVwiLFxyXG4gICAgZXhwb3J0QXM6IFwicGFnaW5hdGlvblwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBnZXQgdG90YWwoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLnRvdGFsIDogMDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXRlbXMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuaXRlbXMgOiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoXCJwYWdpbmF0aW9uXCIpIGxvYWRlcjogUGFnaW5hdGlvbkRhdGFMb2FkZXI7XHJcbiAgICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHVwZGF0ZVRpbWU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHdhaXRGb3I6IFByb21pc2U8YW55PjtcclxuXHJcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcbiAgICBAT3V0cHV0KCkgb25SZWZyZXNoOiBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbkRpcmVjdGl2ZT47XHJcblxyXG4gICAgbWF4UGFnZTogbnVtYmVyO1xyXG5cclxuICAgIHByaXZhdGUgZGF0YTogSVBhZ2luYXRpb25EYXRhO1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVUaW1lcjogSVRpbWVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25EaXJlY3RpdmU+KCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IFRpbWVyVXRpbHMuY3JlYXRlVGltZW91dCgoKSA9PiB0aGlzLmxvYWREYXRhKCksIHRoaXMudXBkYXRlVGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghY2hhbmdlcy5sb2FkZXIgJiYgIWNoYW5nZXMuaXRlbXNQZXJQYWdlICYmICFjaGFuZ2VzLnBhZ2UpIHJldHVybjtcclxuICAgICAgICB0aGlzLnBhZ2UgPSBpc05hTih0aGlzLnBhZ2UpIHx8IHRoaXMucGFnZSA8IDEgPyAxIDogdGhpcy5wYWdlO1xyXG4gICAgICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gaXNOYU4odGhpcy5pdGVtc1BlclBhZ2UpIHx8IHRoaXMuaXRlbXNQZXJQYWdlIDwgMSA/IDIwIDogdGhpcy5pdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgdGhpcy53YWl0Rm9yID0gdGhpcy53YWl0Rm9yIHx8IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoKHRpbWU/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aW1lID0gaXNOYU4odGltZSkgfHwgdGltZSA8PSAwID8gdGhpcy51cGRhdGVUaW1lIDogdGltZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyLnRpbWUgPSBpc05hTih0aW1lKSB8fCB0aW1lIDw9IDAgPyAxMDAgOiB0aW1lO1xyXG4gICAgICAgIHRoaXMud2FpdEZvci50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lci5ydW4oKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwYWdpbmF0ZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xyXG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZERhdGEoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxvYWRlcikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMubG9hZGVyKHRoaXMucGFnZSwgdGhpcy5pdGVtc1BlclBhZ2UpLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4UGFnZSA9ICFkYXRhIHx8IGRhdGEudG90YWwgPD0gMCA/IDEgOiBNYXRoLmZsb29yKChkYXRhLnRvdGFsIC0gMSkgLyB0aGlzLml0ZW1zUGVyUGFnZSkgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICBjb25zdCBiYXNlSW5kZXggPSAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSAoZGF0YS5pdGVtcyB8fCBbXSk7XHJcbiAgICAgICAgICAgIGRhdGEuaXRlbXMgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpeCA9IGJhc2VJbmRleCArIGluZGV4O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBQYWdpbmF0aW9uSXRlbUNvbnRleHRcclxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW1cclxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBQYWdpbmF0aW9uSXRlbUNvbnRleHQoaXRlbSwgaXRlbXMsIGl0ZW1zLmxlbmd0aCwgaW5kZXgsIGl4KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2UgPiB0aGlzLm1heFBhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGUodGhpcy5tYXhQYWdlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMub25SZWZyZXNoLmVtaXQodGhpcykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Directive, ViewContainerRef, TemplateRef, Input } from "@angular/core";
|
|
2
|
+
import { HttpClient } from "@angular/common/http";
|
|
3
|
+
import { ResourceIfContext } from "../common-types";
|
|
4
|
+
import { FileUtils } from "../utils/file.utils";
|
|
5
|
+
import { UniversalService } from "../services/universal.service";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "../services/universal.service";
|
|
9
|
+
export class ResourceIfDirective {
|
|
10
|
+
set resourceIf(resource) {
|
|
11
|
+
this.resource = resource;
|
|
12
|
+
this.renderView();
|
|
13
|
+
}
|
|
14
|
+
get resourceIf() {
|
|
15
|
+
return this.resource;
|
|
16
|
+
}
|
|
17
|
+
get url() {
|
|
18
|
+
return this.context.url;
|
|
19
|
+
}
|
|
20
|
+
constructor(http, viewContainer, templateRef, universal) {
|
|
21
|
+
this.http = http;
|
|
22
|
+
this.viewContainer = viewContainer;
|
|
23
|
+
this.templateRef = templateRef;
|
|
24
|
+
this.universal = universal;
|
|
25
|
+
this.context = new ResourceIfContext();
|
|
26
|
+
}
|
|
27
|
+
renderView() {
|
|
28
|
+
this.context = new ResourceIfContext();
|
|
29
|
+
this.context.resource = this.resource;
|
|
30
|
+
this.viewContainer.clear();
|
|
31
|
+
if (this.universal.isBrowser && this.resource) {
|
|
32
|
+
FileUtils.readDataFromUrl(this.http, this.resource).then(url => {
|
|
33
|
+
this.context.url = url;
|
|
34
|
+
this.viewContainer.createEmbeddedView(this.templateRef, this.context);
|
|
35
|
+
}, console.log);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResourceIfDirective, deps: [{ token: i1.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i2.UniversalService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ResourceIfDirective, selector: "[resourceIf]", inputs: { resourceIf: "resourceIf" }, exportAs: ["resourceIf"], ngImport: i0 }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResourceIfDirective, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{
|
|
44
|
+
selector: "[resourceIf]",
|
|
45
|
+
exportAs: "resourceIf"
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i2.UniversalService }], propDecorators: { resourceIf: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9kaXJlY3RpdmVzL3Jlc291cmNlLWlmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQU0vRCxNQUFNLE9BQU8sbUJBQW1CO0lBSzVCLElBQ0ksVUFBVSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFvQixJQUFnQixFQUFVLGFBQStCLEVBQVUsV0FBNkIsRUFBVSxTQUEyQjtRQUFySSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckosSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDOytHQWpDUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCO3VLQU9PLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBUZW1wbGF0ZVJlZiwgSW5wdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7UmVzb3VyY2VJZkNvbnRleHR9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtGaWxlVXRpbHN9IGZyb20gXCIuLi91dGlscy9maWxlLnV0aWxzXCI7XHJcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltyZXNvdXJjZUlmXVwiLFxyXG4gICAgZXhwb3J0QXM6IFwicmVzb3VyY2VJZlwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUlmRGlyZWN0aXZlIHtcclxuXHJcbiAgICBwcml2YXRlIGNvbnRleHQ6IFJlc291cmNlSWZDb250ZXh0O1xyXG4gICAgcHJpdmF0ZSByZXNvdXJjZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgcmVzb3VyY2VJZihyZXNvdXJjZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZXNvdXJjZUlmKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzb3VyY2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVybCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQudXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCBwcml2YXRlIHVuaXZlcnNhbDogVW5pdmVyc2FsU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuY29udGV4dCA9IG5ldyBSZXNvdXJjZUlmQ29udGV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyVmlldygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBuZXcgUmVzb3VyY2VJZkNvbnRleHQoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQucmVzb3VyY2UgPSB0aGlzLnJlc291cmNlO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc0Jyb3dzZXIgJiYgdGhpcy5yZXNvdXJjZSkge1xyXG4gICAgICAgICAgICBGaWxlVXRpbHMucmVhZERhdGFGcm9tVXJsKHRoaXMuaHR0cCwgdGhpcy5yZXNvdXJjZSkudGhlbih1cmwgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVybCA9IHVybDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICAgICAgfSwgY29uc29sZS5sb2cpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2 } from "@angular/core";
|
|
2
|
+
import { EventsService } from "../services/events.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../services/events.service";
|
|
5
|
+
export class StickyClassDirective {
|
|
6
|
+
constructor(events, element, renderer) {
|
|
7
|
+
this.events = events;
|
|
8
|
+
this.element = element;
|
|
9
|
+
this.renderer = renderer;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.stickyUpdated = this.events.stickyUpdated.subscribe(() => {
|
|
13
|
+
if (this.events.isSticky) {
|
|
14
|
+
this.renderer.addClass(this.element.nativeElement, this.stickyClass || "sticky-sibling");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
this.renderer.removeClass(this.element.nativeElement, this.stickyClass || "sticky-sibling");
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.stickyUpdated.unsubscribe();
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyClassDirective, deps: [{ token: i1.EventsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: StickyClassDirective, selector: "[stickyClass]", inputs: { stickyClass: "stickyClass" }, ngImport: i0 }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyClassDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: "[stickyClass]"
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { stickyClass: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9zdGlja3ktY2xhc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBS3pELE1BQU0sT0FBTyxvQkFBb0I7SUFNN0IsWUFBb0IsTUFBcUIsRUFBVSxPQUFtQixFQUFVLFFBQW1CO1FBQS9FLFdBQU0sR0FBTixNQUFNLENBQWU7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNuRyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksZ0JBQWdCLENBQUMsQ0FBQztnQkFDekYsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLENBQUM7UUFDaEcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0FyQlEsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO21JQUdZLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbc3RpY2t5Q2xhc3NdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0aWNreUNsYXNzRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIHN0aWNreUNsYXNzOiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGlja3lVcGRhdGVkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudHM6IEV2ZW50c1NlcnZpY2UsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGlja3lVcGRhdGVkID0gdGhpcy5ldmVudHMuc3RpY2t5VXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuaXNTdGlja3kpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3RpY2t5Q2xhc3MgfHwgXCJzdGlja3ktc2libGluZ1wiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLnN0aWNreUNsYXNzIHx8IFwic3RpY2t5LXNpYmxpbmdcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGlja3lVcGRhdGVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener } from "@angular/core";
|
|
2
|
-
import { TimerUtils } from "../utils/timer.utils";
|
|
3
|
-
import { EventsService } from "../services/events.service";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../services/events.service";
|
|
6
|
-
export class StickyDirective {
|
|
7
|
-
constructor(cdr, events, element) {
|
|
8
|
-
this.cdr = cdr;
|
|
9
|
-
this.events = events;
|
|
10
|
-
this.element = element;
|
|
11
|
-
this.parentElement = this.element.nativeElement.parentElement;
|
|
12
|
-
this.updateTimer = TimerUtils.createTimeout(() => {
|
|
13
|
-
this.isUpdating = false;
|
|
14
|
-
this.cdr.detectChanges();
|
|
15
|
-
this.events.updateSticky(this.isSticky);
|
|
16
|
-
}, 10);
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this.eventForwarded = this.events.eventForwarded.subscribe((e) => {
|
|
20
|
-
if (e && e.type === "scroll")
|
|
21
|
-
this.updateSticky();
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this.eventForwarded.unsubscribe();
|
|
26
|
-
}
|
|
27
|
-
updateSticky() {
|
|
28
|
-
const distanceToTop = this.parentElement.getBoundingClientRect().top;
|
|
29
|
-
this.isSticky = distanceToTop < 1;
|
|
30
|
-
this.isUpdating = true;
|
|
31
|
-
this.cdr.detectChanges();
|
|
32
|
-
this.updateTimer.run();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
-
type: Directive,
|
|
39
|
-
args: [{
|
|
40
|
-
selector: "[sticky]"
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters:
|
|
43
|
-
type: HostBinding,
|
|
44
|
-
args: ["class.sticky"]
|
|
45
|
-
}], isUpdating: [{
|
|
46
|
-
type: HostBinding,
|
|
47
|
-
args: ["class.sticky-update"]
|
|
48
|
-
}], updateSticky: [{
|
|
49
|
-
type: HostListener,
|
|
50
|
-
args: ["window:resize"]
|
|
51
|
-
}, {
|
|
52
|
-
type: HostListener,
|
|
53
|
-
args: ["window:scroll"]
|
|
54
|
-
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener } from "@angular/core";
|
|
2
|
+
import { TimerUtils } from "../utils/timer.utils";
|
|
3
|
+
import { EventsService } from "../services/events.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../services/events.service";
|
|
6
|
+
export class StickyDirective {
|
|
7
|
+
constructor(cdr, events, element) {
|
|
8
|
+
this.cdr = cdr;
|
|
9
|
+
this.events = events;
|
|
10
|
+
this.element = element;
|
|
11
|
+
this.parentElement = this.element.nativeElement.parentElement;
|
|
12
|
+
this.updateTimer = TimerUtils.createTimeout(() => {
|
|
13
|
+
this.isUpdating = false;
|
|
14
|
+
this.cdr.detectChanges();
|
|
15
|
+
this.events.updateSticky(this.isSticky);
|
|
16
|
+
}, 10);
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.eventForwarded = this.events.eventForwarded.subscribe((e) => {
|
|
20
|
+
if (e && e.type === "scroll")
|
|
21
|
+
this.updateSticky();
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.eventForwarded.unsubscribe();
|
|
26
|
+
}
|
|
27
|
+
updateSticky() {
|
|
28
|
+
const distanceToTop = this.parentElement.getBoundingClientRect().top;
|
|
29
|
+
this.isSticky = distanceToTop < 1;
|
|
30
|
+
this.isUpdating = true;
|
|
31
|
+
this.cdr.detectChanges();
|
|
32
|
+
this.updateTimer.run();
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EventsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: StickyDirective, selector: "[sticky]", host: { listeners: { "window:resize": "updateSticky()", "window:scroll": "updateSticky()" }, properties: { "class.sticky": "this.isSticky", "class.sticky-update": "this.isUpdating" } }, ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: "[sticky]"
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.EventsService }, { type: i0.ElementRef }], propDecorators: { isSticky: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ["class.sticky"]
|
|
45
|
+
}], isUpdating: [{
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ["class.sticky-update"]
|
|
48
|
+
}], updateSticky: [{
|
|
49
|
+
type: HostListener,
|
|
50
|
+
args: ["window:resize"]
|
|
51
|
+
}, {
|
|
52
|
+
type: HostListener,
|
|
53
|
+
args: ["window:scroll"]
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9zdGlja3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7OztBQUt6RCxNQUFNLE9BQU8sZUFBZTtJQVN4QixZQUFvQixHQUFzQixFQUFVLE1BQXFCLEVBQVUsT0FBbUI7UUFBbEYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNsRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFO1lBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFJRCxZQUFZO1FBQ1IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBcENRLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsVUFBVTtpQkFDdkI7MklBR2dDLFFBQVE7c0JBQXBDLFdBQVc7dUJBQUMsY0FBYztnQkFDUyxVQUFVO3NCQUE3QyxXQUFXO3VCQUFDLHFCQUFxQjtnQkEyQmxDLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxlQUFlOztzQkFDNUIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7SVRpbWVyfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7VGltZXJVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3RpbWVyLnV0aWxzXCI7XHJcbmltcG9ydCB7RXZlbnRzU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltzdGlja3ldXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0aWNreURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5zdGlja3lcIikgaXNTdGlja3k6IGJvb2xlYW47XHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5zdGlja3ktdXBkYXRlXCIpIGlzVXBkYXRpbmc6IGJvb2xlYW47XHJcbiAgICBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVyOiBJVGltZXI7XHJcbiAgICBwcml2YXRlIGV2ZW50Rm9yd2FyZGVkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGV2ZW50czogRXZlbnRzU2VydmljZSwgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgdGhpcy5wYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyID0gVGltZXJVdGlscy5jcmVhdGVUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMudXBkYXRlU3RpY2t5KHRoaXMuaXNTdGlja3kpO1xyXG4gICAgICAgIH0sIDEwKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmV2ZW50Rm9yd2FyZGVkID0gdGhpcy5ldmVudHMuZXZlbnRGb3J3YXJkZWQuc3Vic2NyaWJlKChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZSAmJiBlLnR5cGUgPT09IFwic2Nyb2xsXCIpIHRoaXMudXBkYXRlU3RpY2t5KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ldmVudEZvcndhcmRlZC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXHJcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiKVxyXG4gICAgdXBkYXRlU3RpY2t5KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlVG9Ub3AgPSB0aGlzLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG4gICAgICAgIHRoaXMuaXNTdGlja3kgPSBkaXN0YW5jZVRvVG9wIDwgMTtcclxuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyLnJ1bigpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, Renderer2, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { ObjectUtils } from "../utils/object.utils";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class UnorderedListItemDirective {
|
|
5
|
-
|
|
6
|
-
this.elementRef
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
ngOnChanges(changes) {
|
|
14
|
-
if (!this.templates || !this.defaultTemplates || !this.item)
|
|
15
|
-
return;
|
|
16
|
-
const promise = this.item.value instanceof Promise ? this.item.value : Promise.resolve(this.item.value);
|
|
17
|
-
promise.then(value => {
|
|
18
|
-
this.item.value = value;
|
|
19
|
-
this.path = ObjectUtils.isNullOrUndefined(this.path) ? "" : this.path.toString();
|
|
20
|
-
this.isArray = ObjectUtils.isArray(this.data);
|
|
21
|
-
this.isObject = ObjectUtils.isObject(this.data);
|
|
22
|
-
this.valueIsArray = ObjectUtils.isArray(this.item.value);
|
|
23
|
-
this.valueIsObject = ObjectUtils.isObject(this.item.value);
|
|
24
|
-
this.valueType = ObjectUtils.getType(this.item.value);
|
|
25
|
-
const context = this;
|
|
26
|
-
const template = this
|
|
27
|
-
.templates
|
|
28
|
-
.find(t => t.type == this.type && ObjectUtils.evaluate(t.selector, context))?.templateRef || this.defaultTemplates[this.type];
|
|
29
|
-
// Set view
|
|
30
|
-
this.viewContainer.clear();
|
|
31
|
-
this.viewContainer.createEmbeddedView(template, context);
|
|
32
|
-
// Set classes
|
|
33
|
-
if (this.type !== "item")
|
|
34
|
-
return;
|
|
35
|
-
this.item.classList = [];
|
|
36
|
-
this.isClass("is-array", this.valueIsArray);
|
|
37
|
-
this.isClass("is-object", this.valueIsObject);
|
|
38
|
-
this.isClass("is-value", !this.valueIsObject && !this.valueIsArray);
|
|
39
|
-
this.isClass(`type-${this.valueType}`);
|
|
40
|
-
this.isClass(`path-${this.path.replace(/\./g, "-")}`);
|
|
41
|
-
this.isClass(`key-${this.item.key}`);
|
|
42
|
-
}, reason => {
|
|
43
|
-
console.log("Can't handle promise rejection", reason);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
isClass(className, value = true) {
|
|
47
|
-
if (!value)
|
|
48
|
-
return;
|
|
49
|
-
this.item.classList.push(className);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
55
|
-
type: Directive,
|
|
56
|
-
args: [{
|
|
57
|
-
selector: "[unorderedListItem]"
|
|
58
|
-
}]
|
|
59
|
-
}], ctorParameters:
|
|
60
|
-
type: Input,
|
|
61
|
-
args: ["unorderedListItem"]
|
|
62
|
-
}], type: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], data: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], keyPrefix: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], listStyle: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], path: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], level: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], templates: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], defaultTemplates: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { ObjectUtils } from "../utils/object.utils";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class UnorderedListItemDirective {
|
|
5
|
+
get elem() {
|
|
6
|
+
return this.elementRef.nativeElement;
|
|
7
|
+
}
|
|
8
|
+
constructor(elementRef, renderer, viewContainer) {
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
this.renderer = renderer;
|
|
11
|
+
this.viewContainer = viewContainer;
|
|
12
|
+
}
|
|
13
|
+
ngOnChanges(changes) {
|
|
14
|
+
if (!this.templates || !this.defaultTemplates || !this.item)
|
|
15
|
+
return;
|
|
16
|
+
const promise = this.item.value instanceof Promise ? this.item.value : Promise.resolve(this.item.value);
|
|
17
|
+
promise.then(value => {
|
|
18
|
+
this.item.value = value;
|
|
19
|
+
this.path = ObjectUtils.isNullOrUndefined(this.path) ? "" : this.path.toString();
|
|
20
|
+
this.isArray = ObjectUtils.isArray(this.data);
|
|
21
|
+
this.isObject = ObjectUtils.isObject(this.data);
|
|
22
|
+
this.valueIsArray = ObjectUtils.isArray(this.item.value);
|
|
23
|
+
this.valueIsObject = ObjectUtils.isObject(this.item.value);
|
|
24
|
+
this.valueType = ObjectUtils.getType(this.item.value);
|
|
25
|
+
const context = this;
|
|
26
|
+
const template = this
|
|
27
|
+
.templates
|
|
28
|
+
.find(t => t.type == this.type && ObjectUtils.evaluate(t.selector, context))?.templateRef || this.defaultTemplates[this.type];
|
|
29
|
+
// Set view
|
|
30
|
+
this.viewContainer.clear();
|
|
31
|
+
this.viewContainer.createEmbeddedView(template, context);
|
|
32
|
+
// Set classes
|
|
33
|
+
if (this.type !== "item")
|
|
34
|
+
return;
|
|
35
|
+
this.item.classList = [];
|
|
36
|
+
this.isClass("is-array", this.valueIsArray);
|
|
37
|
+
this.isClass("is-object", this.valueIsObject);
|
|
38
|
+
this.isClass("is-value", !this.valueIsObject && !this.valueIsArray);
|
|
39
|
+
this.isClass(`type-${this.valueType}`);
|
|
40
|
+
this.isClass(`path-${this.path.replace(/\./g, "-")}`);
|
|
41
|
+
this.isClass(`key-${this.item.key}`);
|
|
42
|
+
}, reason => {
|
|
43
|
+
console.log("Can't handle promise rejection", reason);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
isClass(className, value = true) {
|
|
47
|
+
if (!value)
|
|
48
|
+
return;
|
|
49
|
+
this.item.classList.push(className);
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnorderedListItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
52
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: UnorderedListItemDirective, selector: "[unorderedListItem]", inputs: { item: ["unorderedListItem", "item"], type: "type", data: "data", keyPrefix: "keyPrefix", listStyle: "listStyle", path: "path", level: "level", templates: "templates", defaultTemplates: "defaultTemplates" }, usesOnChanges: true, ngImport: i0 }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnorderedListItemDirective, decorators: [{
|
|
55
|
+
type: Directive,
|
|
56
|
+
args: [{
|
|
57
|
+
selector: "[unorderedListItem]"
|
|
58
|
+
}]
|
|
59
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }], propDecorators: { item: [{
|
|
60
|
+
type: Input,
|
|
61
|
+
args: ["unorderedListItem"]
|
|
62
|
+
}], type: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], data: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], keyPrefix: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], listStyle: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], path: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], level: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], templates: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], defaultTemplates: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5vcmRlcmVkLWxpc3QtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQU1sRCxNQUFNLE9BQU8sMEJBQTBCO0lBa0JuQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFvQixVQUFzQixFQUFVLFFBQW1CLEVBQVUsYUFBK0I7UUFBNUYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFFaEgsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFB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QUs7dUJBQUMsbUJBQW1CO2dCQUNqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtVbm9yZGVyZWRMaXN0U3R5bGUsIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMsIFVub3JkZXJlZExpc3RUZW1wbGF0ZX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCIuLi91dGlscy9zdHJpbmcudXRpbHNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW3Vub3JkZXJlZExpc3RJdGVtXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbm9yZGVyZWRMaXN0SXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KFwidW5vcmRlcmVkTGlzdEl0ZW1cIikgaXRlbTogYW55O1xyXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gICAgQElucHV0KCkga2V5UHJlZml4OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBsaXN0U3R5bGU6IFVub3JkZXJlZExpc3RTdHlsZTtcclxuICAgIEBJbnB1dCgpIHBhdGg6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGxldmVsOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZXM6IFVub3JkZXJlZExpc3RUZW1wbGF0ZVtdO1xyXG4gICAgQElucHV0KCkgZGVmYXVsdFRlbXBsYXRlczogVW5vcmRlcmVkTGlzdFRlbXBsYXRlcztcclxuXHJcbiAgICBpc0FycmF5OiBib29sZWFuO1xyXG4gICAgaXNPYmplY3Q6IGJvb2xlYW47XHJcbiAgICB2YWx1ZUlzQXJyYXk6IGJvb2xlYW47XHJcbiAgICB2YWx1ZUlzT2JqZWN0OiBib29sZWFuO1xyXG4gICAgdmFsdWVUeXBlOiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0IGVsZW0oKTogSFRNTEVsZW1lbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudGVtcGxhdGVzIHx8ICF0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgfHwgIXRoaXMuaXRlbSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLml0ZW0udmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlID8gdGhpcy5pdGVtLnZhbHVlIDogUHJvbWlzZS5yZXNvbHZlKHRoaXMuaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgcHJvbWlzZS50aGVuKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IE9iamVjdFV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGF0aCkgPyBcIlwiIDogdGhpcy5wYXRoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNBcnJheSA9IE9iamVjdFV0aWxzLmlzQXJyYXkodGhpcy5kYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5pc09iamVjdCA9IE9iamVjdFV0aWxzLmlzT2JqZWN0KHRoaXMuZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVJc0FycmF5ID0gT2JqZWN0VXRpbHMuaXNBcnJheSh0aGlzLml0ZW0udmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlSXNPYmplY3QgPSBPYmplY3RVdGlscy5pc09iamVjdCh0aGlzLml0ZW0udmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlVHlwZSA9IE9iamVjdFV0aWxzLmdldFR5cGUodGhpcy5pdGVtLnZhbHVlKTtcclxuICAgICAgICAgICAgY29uc3QgY29udGV4dDogYW55ID0gdGhpcztcclxuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzXHJcbiAgICAgICAgICAgICAgICAudGVtcGxhdGVzXHJcbiAgICAgICAgICAgICAgICAuZmluZCh0ID0+IHQudHlwZSA9PSB0aGlzLnR5cGUgJiYgT2JqZWN0VXRpbHMuZXZhbHVhdGUodC5zZWxlY3RvciwgY29udGV4dCkpPy50ZW1wbGF0ZVJlZiB8fCB0aGlzLmRlZmF1bHRUZW1wbGF0ZXNbdGhpcy50eXBlXTtcclxuICAgICAgICAgICAgLy8gU2V0IHZpZXdcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICAvLyBTZXQgY2xhc3Nlc1xyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlICE9PSBcIml0ZW1cIikgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLml0ZW0uY2xhc3NMaXN0ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuaXNDbGFzcyhcImlzLWFycmF5XCIsIHRoaXMudmFsdWVJc0FycmF5KTtcclxuICAgICAgICAgICAgdGhpcy5pc0NsYXNzKFwiaXMtb2JqZWN0XCIsIHRoaXMudmFsdWVJc09iamVjdCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDbGFzcyhcImlzLXZhbHVlXCIsICF0aGlzLnZhbHVlSXNPYmplY3QgJiYgIXRoaXMudmFsdWVJc0FycmF5KTtcclxuICAgICAgICAgICAgdGhpcy5pc0NsYXNzKGB0eXBlLSR7dGhpcy52YWx1ZVR5cGV9YCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDbGFzcyhgcGF0aC0ke3RoaXMucGF0aC5yZXBsYWNlKC9cXC4vZywgXCItXCIpfWApO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2xhc3MoYGtleS0ke3RoaXMuaXRlbS5rZXl9YCk7XHJcbiAgICAgICAgfSwgcmVhc29uID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCBoYW5kbGUgcHJvbWlzZSByZWplY3Rpb25cIiwgcmVhc29uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcclxuICAgICAgICB0aGlzLml0ZW0uY2xhc3NMaXN0LnB1c2goY2xhc3NOYW1lKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|