@rolatech/angular-inventory 19.0.0-beta.5 → 19.0.0-beta.6

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.
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { input, model, Component, ViewEncapsulation, inject } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { AngularComponentsModule, ImagePlaceholderComponent, ThumbnailComponent, BaseComponent, ToolbarComponent } from '@rolatech/angular-components';
5
- import { I as InventoryContentComponent } from './rolatech-angular-inventory-rolatech-angular-inventory-DkSuBea4.mjs';
5
+ import { I as InventoryContentComponent } from './rolatech-angular-inventory-rolatech-angular-inventory-BpR3m2TW.mjs';
6
6
  import { InventoryService, ProductService } from '@rolatech/angular-services';
7
7
  import _ from 'lodash';
8
8
  import { AngularCommonModule } from '@rolatech/angular-common';
@@ -13,12 +13,12 @@ class InventoryProductItemComponent {
13
13
  this.product = input.required();
14
14
  this.amount = model();
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryProductItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: InventoryProductItemComponent, isStandalone: true, selector: "rolatech-inventory-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, amount: { classPropertyName: "amount", publicName: "amount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { amount: "amountChange" }, ngImport: i0, template: "<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> \u6570\u91CF </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: ImagePlaceholderComponent, selector: "rolatech-image-placeholder" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryProductItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: InventoryProductItemComponent, isStandalone: true, selector: "rolatech-inventory-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, amount: { classPropertyName: "amount", publicName: "amount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { amount: "amountChange" }, ngImport: i0, template: "<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-(--rt-raised-background) h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> \u6570\u91CF </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: ImagePlaceholderComponent, selector: "rolatech-image-placeholder" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryProductItemComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryProductItemComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'rolatech-inventory-product-item', imports: [AngularCommonModule, AngularComponentsModule, ThumbnailComponent, ImagePlaceholderComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> \u6570\u91CF </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n" }]
21
+ args: [{ selector: 'rolatech-inventory-product-item', imports: [AngularCommonModule, AngularComponentsModule, ThumbnailComponent, ImagePlaceholderComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-(--rt-raised-background) h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> \u6570\u91CF </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n" }]
22
22
  }] });
23
23
 
24
24
  class InventoryProductComponent extends BaseComponent {
@@ -46,13 +46,13 @@ class InventoryProductComponent extends BaseComponent {
46
46
  },
47
47
  });
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryProductComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: InventoryProductComponent, isStandalone: true, selector: "rolatech-inventory-product", usesInheritance: true, ngImport: i0, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u5546\u54C1\u5E93\u5B58\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-[--rt-raised-background]\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: InventoryContentComponent, selector: "rolatech-inventory-content" }, { kind: "component", type: InventoryProductItemComponent, selector: "rolatech-inventory-product-item", inputs: ["product", "amount"], outputs: ["amountChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryProductComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: InventoryProductComponent, isStandalone: true, selector: "rolatech-inventory-product", usesInheritance: true, ngImport: i0, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u5546\u54C1\u5E93\u5B58\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-(--rt-raised-background)\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: InventoryContentComponent, selector: "rolatech-inventory-content" }, { kind: "component", type: InventoryProductItemComponent, selector: "rolatech-inventory-product-item", inputs: ["product", "amount"], outputs: ["amountChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryProductComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryProductComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'rolatech-inventory-product', imports: [CommonModule, ToolbarComponent, InventoryContentComponent, InventoryProductItemComponent, RouterLink], encapsulation: ViewEncapsulation.None, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u5546\u54C1\u5E93\u5B58\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-[--rt-raised-background]\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n" }]
54
+ args: [{ selector: 'rolatech-inventory-product', imports: [CommonModule, ToolbarComponent, InventoryContentComponent, InventoryProductItemComponent, RouterLink], encapsulation: ViewEncapsulation.None, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u5546\u54C1\u5E93\u5B58\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-(--rt-raised-background)\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n" }]
55
55
  }] });
56
56
 
57
57
  export { InventoryProductComponent };
58
- //# sourceMappingURL=rolatech-angular-inventory-inventory-product.component-By8MSoSE.mjs.map
58
+ //# sourceMappingURL=rolatech-angular-inventory-inventory-product.component-DY5YBxTH.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-inventory-inventory-product.component-By8MSoSE.mjs","sources":["../../../../packages/angular-inventory/src/lib/components/inventory-product-item/inventory-product-item.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-product-item/inventory-product-item.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-product/inventory-product.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-product/inventory-product.component.html"],"sourcesContent":["import { Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularComponentsModule, ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\n\nexport interface InventoryProduct {\n name: string;\n media: InventoryProductMedia[];\n}\nexport interface InventoryProductMedia {\n url: string;\n}\n\n@Component({\n selector: 'rolatech-inventory-product-item',\n imports: [AngularCommonModule, AngularComponentsModule, ThumbnailComponent, ImagePlaceholderComponent],\n templateUrl: './inventory-product-item.component.html',\n styleUrl: './inventory-product-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryProductItemComponent {\n product = input.required<InventoryProduct>();\n amount = model<any>();\n}\n","<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> 数量 </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { InventoryContentComponent } from '../../components/inventory-content/inventory-content.component';\nimport { InventoryService, ProductService } from '@rolatech/angular-services';\nimport _ from 'lodash';\nimport { InventoryProductItemComponent } from '../../components/inventory-product-item/inventory-product-item.component';\nimport { RouterLink } from '@angular/router';\n@Component({\n selector: 'rolatech-inventory-product',\n imports: [CommonModule, ToolbarComponent, InventoryContentComponent, InventoryProductItemComponent, RouterLink],\n templateUrl: './inventory-product.component.html',\n styleUrl: './inventory-product.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryProductComponent extends BaseComponent implements OnInit {\n inventoryService = inject(InventoryService);\n productService = inject(ProductService);\n products: any = [];\n ngOnInit(): void {\n this.findInventoryItem();\n }\n findInventoryItem() {\n this.inventoryService.findMyInventoryItems({}).subscribe({\n next: (res) => {\n const productIds = _.uniq(_.map(res.data, 'productId'));\n this.findProductsByIds(productIds);\n },\n });\n }\n findProductsByIds(ids: Array<string>) {\n this.productService.findByIds(ids).subscribe({\n next: (res) => {\n this.products = res.data;\n },\n });\n }\n}\n","<rolatech-inventory-content>\n <rolatech-toolbar title=\"商品库存\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-[--rt-raised-background]\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-inventory-inventory-product.component-DY5YBxTH.mjs","sources":["../../../../packages/angular-inventory/src/lib/components/inventory-product-item/inventory-product-item.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-product-item/inventory-product-item.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-product/inventory-product.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-product/inventory-product.component.html"],"sourcesContent":["import { Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularComponentsModule, ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\n\nexport interface InventoryProduct {\n name: string;\n media: InventoryProductMedia[];\n}\nexport interface InventoryProductMedia {\n url: string;\n}\n\n@Component({\n selector: 'rolatech-inventory-product-item',\n imports: [AngularCommonModule, AngularComponentsModule, ThumbnailComponent, ImagePlaceholderComponent],\n templateUrl: './inventory-product-item.component.html',\n styleUrl: './inventory-product-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryProductItemComponent {\n product = input.required<InventoryProduct>();\n amount = model<any>();\n}\n","<div class=\"flex items-center p-2 justify-between\">\n <div class=\"flex\">\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-(--rt-raised-background) h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div>{{ product().name }}</div>\n </div>\n <!-- <div>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <mat-label> 数量 </mat-label>\n <input matInput />\n </mat-form-field>\n </div> -->\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { InventoryContentComponent } from '../../components/inventory-content/inventory-content.component';\nimport { InventoryService, ProductService } from '@rolatech/angular-services';\nimport _ from 'lodash';\nimport { InventoryProductItemComponent } from '../../components/inventory-product-item/inventory-product-item.component';\nimport { RouterLink } from '@angular/router';\n@Component({\n selector: 'rolatech-inventory-product',\n imports: [CommonModule, ToolbarComponent, InventoryContentComponent, InventoryProductItemComponent, RouterLink],\n templateUrl: './inventory-product.component.html',\n styleUrl: './inventory-product.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryProductComponent extends BaseComponent implements OnInit {\n inventoryService = inject(InventoryService);\n productService = inject(ProductService);\n products: any = [];\n ngOnInit(): void {\n this.findInventoryItem();\n }\n findInventoryItem() {\n this.inventoryService.findMyInventoryItems({}).subscribe({\n next: (res) => {\n const productIds = _.uniq(_.map(res.data, 'productId'));\n this.findProductsByIds(productIds);\n },\n });\n }\n findProductsByIds(ids: Array<string>) {\n this.productService.findByIds(ids).subscribe({\n next: (res) => {\n this.products = res.data;\n },\n });\n }\n}\n","<rolatech-inventory-content>\n <rolatech-toolbar title=\"商品库存\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of products; track $index) {\n <rolatech-inventory-product-item\n class=\"block cursor-pointer hover:bg-(--rt-raised-background)\"\n [product]=\"item\"\n [routerLink]=\"['/products', item.id, 'manage', 'inventory']\"\n ></rolatech-inventory-product-item>\n }\n </div>\n</rolatech-inventory-content>\n"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@ import { Component, ViewEncapsulation } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
 
5
5
  class InventoryComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: InventoryComponent, isStandalone: true, selector: "rolatech-inventory", ngImport: i0, template: "<p>inventory works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: InventoryComponent, isStandalone: true, selector: "rolatech-inventory", ngImport: i0, template: "<p>inventory works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'rolatech-inventory', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<p>inventory works!</p>\n" }]
12
12
  }] });
13
13
 
14
14
  export { InventoryComponent };
15
- //# sourceMappingURL=rolatech-angular-inventory-inventory.component-DdAxBzLd.mjs.map
15
+ //# sourceMappingURL=rolatech-angular-inventory-inventory.component-qar8MveY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-inventory-inventory.component-DdAxBzLd.mjs","sources":["../../../../packages/angular-inventory/src/lib/pages/inventory/inventory.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory/inventory.component.html"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-inventory',\n imports: [CommonModule],\n templateUrl: './inventory.component.html',\n styleUrl: './inventory.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryComponent {}\n","<p>inventory works!</p>\n"],"names":[],"mappings":";;;;MAUa,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,2BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,YAAY,CAAC,EAGR,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"rolatech-angular-inventory-inventory.component-qar8MveY.mjs","sources":["../../../../packages/angular-inventory/src/lib/pages/inventory/inventory.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory/inventory.component.html"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-inventory',\n imports: [CommonModule],\n templateUrl: './inventory.component.html',\n styleUrl: './inventory.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryComponent {}\n","<p>inventory works!</p>\n"],"names":[],"mappings":";;;;MAUa,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,2BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,YAAY,CAAC,EAGR,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA;;;;;"}
@@ -26,10 +26,10 @@ import * as i3 from '@angular/material/select';
26
26
  import { MatSelectModule } from '@angular/material/select';
27
27
 
28
28
  class InventoryLayoutComponent {
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: InventoryLayoutComponent, isStandalone: true, selector: "rolatech-inventory-layout", ngImport: i0, template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5E93\u5B58\u8BBE\u7F6E</div>\n <a routerLink=\"./locations\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4ED3\u5E93\u8BBE\u7F6E</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u5E93\u5B58</div>\n <a routerLink=\"./products\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5546\u54C1</a>\n <!-- <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5E93\u5B58\u8BBE\u7F6E</a> -->\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], encapsulation: i0.ViewEncapsulation.None }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: InventoryLayoutComponent, isStandalone: true, selector: "rolatech-inventory-layout", ngImport: i0, template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5E93\u5B58\u8BBE\u7F6E</div>\n <a routerLink=\"./locations\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4ED3\u5E93\u8BBE\u7F6E</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u5E93\u5B58</div>\n <a routerLink=\"./products\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5546\u54C1</a>\n <!-- <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5E93\u5B58\u8BBE\u7F6E</a> -->\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], encapsulation: i0.ViewEncapsulation.None }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLayoutComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLayoutComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'rolatech-inventory-layout', imports: [CommonModule, RouterModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5E93\u5B58\u8BBE\u7F6E</div>\n <a routerLink=\"./locations\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4ED3\u5E93\u8BBE\u7F6E</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u5E93\u5B58</div>\n <a routerLink=\"./products\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5546\u54C1</a>\n <!-- <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5E93\u5B58\u8BBE\u7F6E</a> -->\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
35
35
  }] });
@@ -41,7 +41,7 @@ const inventoryRoutes = [
41
41
  children: [
42
42
  {
43
43
  path: '',
44
- loadComponent: () => import('./rolatech-angular-inventory-inventory.component-DdAxBzLd.mjs').then((c) => c.InventoryComponent),
44
+ loadComponent: () => import('./rolatech-angular-inventory-inventory.component-qar8MveY.mjs').then((c) => c.InventoryComponent),
45
45
  },
46
46
  {
47
47
  path: 'locations',
@@ -57,17 +57,17 @@ const inventoryRoutes = [
57
57
  },
58
58
  {
59
59
  path: 'products',
60
- loadComponent: () => import('./rolatech-angular-inventory-inventory-product.component-By8MSoSE.mjs').then((c) => c.InventoryProductComponent),
60
+ loadComponent: () => import('./rolatech-angular-inventory-inventory-product.component-DY5YBxTH.mjs').then((c) => c.InventoryProductComponent),
61
61
  },
62
62
  ],
63
63
  },
64
64
  ];
65
65
 
66
66
  class InventoryContentComponent {
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: InventoryContentComponent, isStandalone: true, selector: "rolatech-inventory-content", ngImport: i0, template: "<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: InventoryContentComponent, isStandalone: true, selector: "rolatech-inventory-content", ngImport: i0, template: "<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryContentComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryContentComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'rolatech-inventory-content', imports: [CommonModule], template: "<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n" }]
73
73
  }] });
@@ -90,12 +90,12 @@ class InventoryLocationComponent {
90
90
  addLocation(data) {
91
91
  this.inventoryService.addLocation(data);
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: InventoryLocationComponent, isStandalone: true, selector: "rolatech-inventory-location", ngImport: i0, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u4ED3\u5E93\u8BBE\u7F6E\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n \u521B\u5EFA\u4ED3\u5E93\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-[--rt-raised-background]\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: InventoryContentComponent, selector: "rolatech-inventory-content" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: InventoryLocationComponent, isStandalone: true, selector: "rolatech-inventory-location", ngImport: i0, template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u4ED3\u5E93\u8BBE\u7F6E\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n \u521B\u5EFA\u4ED3\u5E93\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-(--rt-raised-background)\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: InventoryContentComponent, selector: "rolatech-inventory-content" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationComponent, decorators: [{
97
97
  type: Component,
98
- args: [{ selector: 'rolatech-inventory-location', imports: [CommonModule, ToolbarComponent, InventoryContentComponent, RouterLink, MatButtonModule, MatIcon], template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u4ED3\u5E93\u8BBE\u7F6E\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n \u521B\u5EFA\u4ED3\u5E93\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-[--rt-raised-background]\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n" }]
98
+ args: [{ selector: 'rolatech-inventory-location', imports: [CommonModule, ToolbarComponent, InventoryContentComponent, RouterLink, MatButtonModule, MatIcon], template: "<rolatech-inventory-content>\n <rolatech-toolbar title=\"\u4ED3\u5E93\u8BBE\u7F6E\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n \u521B\u5EFA\u4ED3\u5E93\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-(--rt-raised-background)\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n" }]
99
99
  }] });
100
100
 
101
101
  var inventoryLocation_component = /*#__PURE__*/Object.freeze({
@@ -175,10 +175,10 @@ class InventoryLocationMapComponent {
175
175
  this.dialogRef.close();
176
176
  }
177
177
  selectionChange(event) { }
178
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationMapComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: InventoryLocationMapComponent, isStandalone: true, selector: "rolatech-inventory-location-map", ngImport: i0, template: "@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>\u57CE\u5E02</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-[--rt-raised-background]\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>\u786E\u5B9A</button>\n</div>\n", styles: ["mat-form-field{width:100%;margin-bottom:-1.25em}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
178
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationMapComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
179
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: InventoryLocationMapComponent, isStandalone: true, selector: "rolatech-inventory-location-map", ngImport: i0, template: "@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>\u57CE\u5E02</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-(--rt-raised-background)\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>\u786E\u5B9A</button>\n</div>\n", styles: ["mat-form-field{width:100%;margin-bottom:-1.25em}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationMapComponent, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationMapComponent, decorators: [{
182
182
  type: Component,
183
183
  args: [{ selector: 'rolatech-inventory-location-map', imports: [
184
184
  MatDialogTitle,
@@ -192,7 +192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
192
192
  MatDialogActions,
193
193
  MatButtonModule,
194
194
  MatDialogClose,
195
- ], template: "@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>\u57CE\u5E02</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-[--rt-raised-background]\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>\u786E\u5B9A</button>\n</div>\n", styles: ["mat-form-field{width:100%;margin-bottom:-1.25em}\n"] }]
195
+ ], template: "@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>\u57CE\u5E02</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-(--rt-raised-background)\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>\u786E\u5B9A</button>\n</div>\n", styles: ["mat-form-field{width:100%;margin-bottom:-1.25em}\n"] }]
196
196
  }], ctorParameters: () => [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
197
197
  type: Inject,
198
198
  args: [MAT_DIALOG_DATA]
@@ -232,10 +232,10 @@ class InventoryLocationItemComponent {
232
232
  onDelete() {
233
233
  this.delete.emit(this.location());
234
234
  }
235
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: InventoryLocationItemComponent, isStandalone: true, selector: "rolatech-inventory-location-item", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { save: "save", delete: "delete" }, ngImport: i0, template: "<div class=\"mb-8\">\n <div class=\"flex flex-col\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4ED3\u5E93\u540D\u79F0 </mat-label>\n <input matInput [(ngModel)]=\"location().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8054\u7CFB\u4EBA </mat-label>\n <input matInput [(ngModel)]=\"location().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </mat-label>\n <input matInput [(ngModel)]=\"location().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"\u4F4D\u7F6E\u4FE1\u606F\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\">\u4F4D\u7F6E\u9009\u62E9</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u7701\u4EFD </mat-label>\n <input matInput [(ngModel)]=\"location().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u57CE\u5E02 </mat-label>\n <input matInput [(ngModel)]=\"location().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u533A/\u53BF </mat-label>\n <input matInput [(ngModel)]=\"location().district\" name=\"district\" required disabled />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5730\u5740 </mat-label>\n <input matInput [(ngModel)]=\"location().street\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BE6\u7EC6 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <button mat-button (click)=\"onDelete()\">\u5220\u9664</button>\n <button mat-flat-button type=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: TitleComponent, selector: "rolatech-title", inputs: ["title", "subtitle", "large"] }], encapsulation: i0.ViewEncapsulation.None }); }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.4", type: InventoryLocationItemComponent, isStandalone: true, selector: "rolatech-inventory-location-item", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { save: "save", delete: "delete" }, ngImport: i0, template: "<div class=\"mb-8\">\n <div class=\"flex flex-col\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4ED3\u5E93\u540D\u79F0 </mat-label>\n <input matInput [(ngModel)]=\"location().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8054\u7CFB\u4EBA </mat-label>\n <input matInput [(ngModel)]=\"location().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </mat-label>\n <input matInput [(ngModel)]=\"location().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"\u4F4D\u7F6E\u4FE1\u606F\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\">\u4F4D\u7F6E\u9009\u62E9</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u7701\u4EFD </mat-label>\n <input matInput [(ngModel)]=\"location().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u57CE\u5E02 </mat-label>\n <input matInput [(ngModel)]=\"location().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u533A/\u53BF </mat-label>\n <input matInput [(ngModel)]=\"location().district\" name=\"district\" required disabled />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5730\u5740 </mat-label>\n <input matInput [(ngModel)]=\"location().street\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BE6\u7EC6 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <button mat-button (click)=\"onDelete()\">\u5220\u9664</button>\n <button mat-flat-button type=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: TitleComponent, selector: "rolatech-title", inputs: ["title", "subtitle", "large"] }], encapsulation: i0.ViewEncapsulation.None }); }
237
237
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationItemComponent, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationItemComponent, decorators: [{
239
239
  type: Component,
240
240
  args: [{ selector: 'rolatech-inventory-location-item', imports: [
241
241
  MatFormFieldModule,
@@ -291,10 +291,10 @@ class InventoryLocationDetailComponent extends BaseComponent {
291
291
  },
292
292
  });
293
293
  }
294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: InventoryLocationDetailComponent, isStandalone: true, selector: "rolatech-inventory-location-detail", usesInheritance: true, ngImport: i0, template: "<rolatech-toolbar title=\"\u4ED3\u5E93\u8BE6\u60C5\" back> </rolatech-toolbar>\n@if (location) {\n <div class=\"px-3\">\n <rolatech-inventory-location-item\n [location]=\"location\"\n (save)=\"onLocationSave($event)\"\n (delete)=\"onLocationDetele($event)\"\n ></rolatech-inventory-location-item>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: InventoryLocationItemComponent, selector: "rolatech-inventory-location-item", inputs: ["location"], outputs: ["save", "delete"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }], encapsulation: i0.ViewEncapsulation.None }); }
294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: InventoryLocationDetailComponent, isStandalone: true, selector: "rolatech-inventory-location-detail", usesInheritance: true, ngImport: i0, template: "<rolatech-toolbar title=\"\u4ED3\u5E93\u8BE6\u60C5\" back> </rolatech-toolbar>\n@if (location) {\n <div class=\"px-3\">\n <rolatech-inventory-location-item\n [location]=\"location\"\n (save)=\"onLocationSave($event)\"\n (delete)=\"onLocationDetele($event)\"\n ></rolatech-inventory-location-item>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: InventoryLocationItemComponent, selector: "rolatech-inventory-location-item", inputs: ["location"], outputs: ["save", "delete"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }], encapsulation: i0.ViewEncapsulation.None }); }
296
296
  }
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationDetailComponent, decorators: [{
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationDetailComponent, decorators: [{
298
298
  type: Component,
299
299
  args: [{ selector: 'rolatech-inventory-location-detail', imports: [CommonModule, InventoryLocationItemComponent, ToolbarComponent], encapsulation: ViewEncapsulation.None, template: "<rolatech-toolbar title=\"\u4ED3\u5E93\u8BE6\u60C5\" back> </rolatech-toolbar>\n@if (location) {\n <div class=\"px-3\">\n <rolatech-inventory-location-item\n [location]=\"location\"\n (save)=\"onLocationSave($event)\"\n (delete)=\"onLocationDetele($event)\"\n ></rolatech-inventory-location-item>\n </div>\n}\n" }]
300
300
  }] });
@@ -340,10 +340,10 @@ class InventoryLocationAddComponent extends BaseComponent {
340
340
  },
341
341
  });
342
342
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationAddComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
344
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: InventoryLocationAddComponent, isStandalone: true, selector: "rolatech-inventory-location-add", usesInheritance: true, ngImport: i0, template: "<rolatech-toolbar title=\"\u521B\u5EFA\u4ED3\u5E93\" back> </rolatech-toolbar>\n<div class=\"px-3 h-full\">\n <div class=\"w-full\">\n <div class=\"w-2/3 flex flex-col\">\n <form #locationForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4ED3\u5E93\u540D\u79F0 </mat-label>\n <input matInput [(ngModel)]=\"location.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8054\u7CFB\u4EBA </mat-label>\n <input matInput [(ngModel)]=\"location.contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </mat-label>\n <input matInput [(ngModel)]=\"location.phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <h2>\u4F4D\u7F6E\u4FE1\u606F</h2>\n <button mat-stroked-button (click)=\"selectLocation()\">\u4F4D\u7F6E\u9009\u62E9</button>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u7701\u4EFD </mat-label>\n <input matInput [(ngModel)]=\"location.province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u57CE\u5E02 </mat-label>\n <input matInput [(ngModel)]=\"location.city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u533A/\u53BF </mat-label>\n <input matInput [(ngModel)]=\"location.district\" name=\"county\" required disabled />\n </mat-form-field>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label> \u8857\u9053 </mat-label>\n <input\n matInput\n [(ngModel)]=\"location.town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5730\u5740 </mat-label>\n <input matInput [(ngModel)]=\"location.detail\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BE6\u7EC6 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location.detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n <div class=\"py-3\">\n <button mat-flat-button (click)=\"add()\">\u4FDD\u5B58</button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TextFieldModule }], encapsulation: i0.ViewEncapsulation.None }); }
343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationAddComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
344
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: InventoryLocationAddComponent, isStandalone: true, selector: "rolatech-inventory-location-add", usesInheritance: true, ngImport: i0, template: "<rolatech-toolbar title=\"\u521B\u5EFA\u4ED3\u5E93\" back> </rolatech-toolbar>\n<div class=\"px-3 h-full\">\n <div class=\"w-full\">\n <div class=\"w-2/3 flex flex-col\">\n <form #locationForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4ED3\u5E93\u540D\u79F0 </mat-label>\n <input matInput [(ngModel)]=\"location.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8054\u7CFB\u4EBA </mat-label>\n <input matInput [(ngModel)]=\"location.contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </mat-label>\n <input matInput [(ngModel)]=\"location.phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <h2>\u4F4D\u7F6E\u4FE1\u606F</h2>\n <button mat-stroked-button (click)=\"selectLocation()\">\u4F4D\u7F6E\u9009\u62E9</button>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u7701\u4EFD </mat-label>\n <input matInput [(ngModel)]=\"location.province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u57CE\u5E02 </mat-label>\n <input matInput [(ngModel)]=\"location.city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u533A/\u53BF </mat-label>\n <input matInput [(ngModel)]=\"location.district\" name=\"county\" required disabled />\n </mat-form-field>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label> \u8857\u9053 </mat-label>\n <input\n matInput\n [(ngModel)]=\"location.town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5730\u5740 </mat-label>\n <input matInput [(ngModel)]=\"location.detail\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BE6\u7EC6 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location.detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n <div class=\"py-3\">\n <button mat-flat-button (click)=\"add()\">\u4FDD\u5B58</button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TextFieldModule }], encapsulation: i0.ViewEncapsulation.None }); }
345
345
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: InventoryLocationAddComponent, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InventoryLocationAddComponent, decorators: [{
347
347
  type: Component,
348
348
  args: [{ selector: 'rolatech-inventory-location-add', imports: [ToolbarComponent, FormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, TextFieldModule], encapsulation: ViewEncapsulation.None, template: "<rolatech-toolbar title=\"\u521B\u5EFA\u4ED3\u5E93\" back> </rolatech-toolbar>\n<div class=\"px-3 h-full\">\n <div class=\"w-full\">\n <div class=\"w-2/3 flex flex-col\">\n <form #locationForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4ED3\u5E93\u540D\u79F0 </mat-label>\n <input matInput [(ngModel)]=\"location.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8054\u7CFB\u4EBA </mat-label>\n <input matInput [(ngModel)]=\"location.contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </mat-label>\n <input matInput [(ngModel)]=\"location.phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <h2>\u4F4D\u7F6E\u4FE1\u606F</h2>\n <button mat-stroked-button (click)=\"selectLocation()\">\u4F4D\u7F6E\u9009\u62E9</button>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u7701\u4EFD </mat-label>\n <input matInput [(ngModel)]=\"location.province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u57CE\u5E02 </mat-label>\n <input matInput [(ngModel)]=\"location.city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u533A/\u53BF </mat-label>\n <input matInput [(ngModel)]=\"location.district\" name=\"county\" required disabled />\n </mat-form-field>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label> \u8857\u9053 </mat-label>\n <input\n matInput\n [(ngModel)]=\"location.town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5730\u5740 </mat-label>\n <input matInput [(ngModel)]=\"location.detail\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BE6\u7EC6 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location.detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n <div class=\"py-3\">\n <button mat-flat-button (click)=\"add()\">\u4FDD\u5B58</button>\n </div>\n </div>\n</div>\n" }]
349
349
  }] });
@@ -358,4 +358,4 @@ var inventoryLocationAdd_component = /*#__PURE__*/Object.freeze({
358
358
  */
359
359
 
360
360
  export { InventoryContentComponent as I, InventoryLocationComponent as a, InventoryLocationDetailComponent as b, InventoryLocationAddComponent as c, inventoryRoutes as i };
361
- //# sourceMappingURL=rolatech-angular-inventory-rolatech-angular-inventory-DkSuBea4.mjs.map
361
+ //# sourceMappingURL=rolatech-angular-inventory-rolatech-angular-inventory-BpR3m2TW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolatech-angular-inventory-rolatech-angular-inventory-BpR3m2TW.mjs","sources":["../../../../packages/angular-inventory/src/lib/components/inventory-layout/inventory-layout.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-layout/inventory-layout.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory.routes.ts","../../../../packages/angular-inventory/src/lib/components/inventory-content/inventory-content.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-content/inventory-content.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location/inventory-location.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location/inventory-location.component.html","../../../../packages/angular-inventory/src/lib/components/inventory-location-map/inventory-location-map.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-location-map/inventory-location-map.component.html","../../../../packages/angular-inventory/src/lib/components/inventory-location-item/inventory-location-item.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-location-item/inventory-location-item.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location-detail/inventory-location-detail.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location-detail/inventory-location-detail.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location-add/inventory-location-add.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location-add/inventory-location-add.component.html","../../../../packages/angular-inventory/src/rolatech-angular-inventory.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'rolatech-inventory-layout',\n imports: [CommonModule, RouterModule],\n templateUrl: './inventory-layout.component.html',\n styleUrl: './inventory-layout.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLayoutComponent {}\n","<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">库存设置</div>\n <a routerLink=\"./locations\" routerLinkActive=\"manage-active\" class=\"p-2\">仓库设置</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">商品库存</div>\n <a routerLink=\"./products\" routerLinkActive=\"manage-active\" class=\"p-2\">商品</a>\n <!-- <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">库存设置</a> -->\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Routes } from '@angular/router';\nimport { InventoryLayoutComponent } from '../components/inventory-layout/inventory-layout.component';\n\nexport const inventoryRoutes: Routes = [\n {\n path: '',\n component: InventoryLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./inventory/inventory.component').then((c) => c.InventoryComponent),\n },\n {\n path: 'locations',\n loadComponent: () =>\n import('./inventory-location/inventory-location.component').then((c) => c.InventoryLocationComponent),\n },\n {\n path: 'locations/add',\n loadComponent: () =>\n import('./inventory-location-add/inventory-location-add.component').then((c) => c.InventoryLocationAddComponent),\n },\n {\n path: 'locations/:id',\n loadComponent: () =>\n import('./inventory-location-detail/inventory-location-detail.component').then(\n (c) => c.InventoryLocationDetailComponent,\n ),\n },\n {\n path: 'products',\n loadComponent: () => import('./inventory-product/inventory-product.component').then((c) => c.InventoryProductComponent),\n },\n ],\n },\n];\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-inventory-content',\n imports: [CommonModule],\n templateUrl: './inventory-content.component.html',\n styleUrl: './inventory-content.component.scss',\n})\nexport class InventoryContentComponent {}\n","<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport { InventoryContentComponent } from '../../components/inventory-content/inventory-content.component';\nimport { InventoryService } from '@rolatech/angular-services';\nimport { Location } from '../../interfaces/inventory-location';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-inventory-location',\n imports: [CommonModule, ToolbarComponent, InventoryContentComponent, RouterLink, MatButtonModule, MatIcon],\n templateUrl: './inventory-location.component.html',\n styleUrl: './inventory-location.component.scss',\n})\nexport class InventoryLocationComponent implements OnInit {\n inventoryService = inject(InventoryService);\n locations: Location[] = [];\n\n ngOnInit(): void {\n this.findLocations();\n }\n findLocations() {\n this.inventoryService.findLocations({}).subscribe({\n next: (res) => {\n this.locations = res.data;\n },\n });\n }\n addLocation(data) {\n this.inventoryService.addLocation(data);\n }\n}\n","<rolatech-inventory-content>\n <rolatech-toolbar title=\"仓库设置\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n 创建仓库\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y divide-(--rt-10-percent-layer)\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-(--rt-raised-background)\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport {\n MatDialogRef,\n MAT_DIALOG_DATA,\n MatDialogActions,\n MatDialogClose,\n MatDialogContent,\n MatDialogTitle,\n} from '@angular/material/dialog';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\ndeclare global {\n interface Window {\n qq: any;\n TMap: any;\n }\n}\n\n@Component({\n selector: 'rolatech-inventory-location-map',\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n MatOptionModule,\n MatInputModule,\n MatIconModule,\n MatDialogActions,\n MatButtonModule,\n MatDialogClose,\n ],\n templateUrl: './inventory-location-map.component.html',\n styleUrl: './inventory-location-map.component.scss',\n})\nexport class InventoryLocationMapComponent implements OnInit {\n map: any;\n markers: any;\n lists: any;\n infoWindowList = Array(10);\n selectedLocation: any;\n cities: string[] = ['北京', '上海'];\n region = '北京';\n constructor(\n public dialogRef: MatDialogRef<InventoryLocationMapComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {}\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n const map = new window.TMap.Map(document.getElementById('map-container'), {\n // 地图的中心地理坐标。\n center: new window.TMap.LatLng(40.0402718, 116.2735831),\n resizeEnable: true,\n zoom: 14,\n });\n const markers = new window.TMap.MultiMarker({\n map: map,\n geometries: [],\n });\n this.map = map;\n this.markers = markers;\n }\n onSearchChange(event: any) {\n const value = event.target.value;\n const suggest = new window.TMap.service.Suggestion({\n pageSize: 15, // 返回结果每页条目数\n region: this.region, // 限制城市范围\n regionFix: true, // 搜索无结果时是否固定在当前城市\n });\n if (value) {\n suggest\n .getSuggestions({ keyword: value, location: this.map.getCenter() })\n .then((result: any) => {\n this.lists = result.data;\n })\n .catch((error: any) => {});\n }\n }\n setLocation(index: any) {\n this.infoWindowList.forEach((infoWindow) => {\n infoWindow.close();\n });\n this.infoWindowList.length = 0;\n const item = this.lists[index];\n this.selectedLocation = item;\n this.lists = [];\n this.markers.setGeometries([]);\n this.markers.updateGeometries([\n {\n id: '0', // 点标注数据数组\n position: item.location,\n },\n ]);\n\n const infoWindow = new window.TMap.InfoWindow({\n map: this.map,\n position: item.location,\n content: `<h3>${item.title}</h3><p>地址:${item.address}</p>`,\n offset: { x: 0, y: -50 },\n });\n this.infoWindowList.push(infoWindow);\n this.map.setCenter(item.location);\n this.markers.on('click', (e: any) => {\n this.infoWindowList[Number(e.geometry.id)].open();\n });\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n selectionChange(event: any) {}\n}\n","@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>城市</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"输入关键字搜索\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-(--rt-raised-background)\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>确定</button>\n</div>\n","import { Component, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TitleComponent } from '@rolatech/angular-components';\nimport { Location } from '../../interfaces/inventory-location';\nimport { InventoryLocationMapComponent } from '../inventory-location-map/inventory-location-map.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'rolatech-inventory-location-item',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n MatButtonModule,\n TextFieldModule,\n MatDividerModule,\n TitleComponent,\n ],\n templateUrl: './inventory-location-item.component.html',\n styleUrl: './inventory-location-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationItemComponent {\n location = input.required<Location>();\n dialog = inject(MatDialog);\n save = output<Location>();\n delete = output<Location>();\n\n selectLocation() {\n const dialogRef = this.dialog.open(InventoryLocationMapComponent, {\n width: '90%',\n data: {\n title: '选择位置',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const address = result.address;\n const { lat, lng } = result.location;\n this.location().detail = address;\n this.location().latitude = lat;\n this.location().longitude = lng;\n this.location().province = result.province;\n this.location().city = result.city;\n this.location().district = result.district;\n this.location().detail = result.title;\n }\n });\n }\n onSave() {\n this.save.emit(this.location());\n }\n onDelete() {\n this.delete.emit(this.location());\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 仓库名称 </mat-label>\n <input matInput [(ngModel)]=\"location().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 联系人 </mat-label>\n <input matInput [(ngModel)]=\"location().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 手机号 </mat-label>\n <input matInput [(ngModel)]=\"location().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"位置信息\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\">位置选择</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 省份 </mat-label>\n <input matInput [(ngModel)]=\"location().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 城市 </mat-label>\n <input matInput [(ngModel)]=\"location().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 区/县 </mat-label>\n <input matInput [(ngModel)]=\"location().district\" name=\"district\" required disabled />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> 地址 </mat-label>\n <input matInput [(ngModel)]=\"location().street\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 详细 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <button mat-button (click)=\"onDelete()\">删除</button>\n <button mat-flat-button type=\"primary\" (click)=\"onSave()\">保存</button>\n </div>\n </div>\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InventoryLocationItemComponent } from '../../components/inventory-location-item/inventory-location-item.component';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { Location } from '../../interfaces/inventory-location';\nimport { InventoryService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-inventory-location-detail',\n imports: [CommonModule, InventoryLocationItemComponent, ToolbarComponent],\n templateUrl: './inventory-location-detail.component.html',\n styleUrl: './inventory-location-detail.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationDetailComponent extends BaseComponent implements OnInit {\n inventoryService = inject(InventoryService);\n location!: Location;\n\n ngOnInit(): void {\n this.get();\n }\n get() {\n this.inventoryService.getLocation(this.id).subscribe({\n next: (res) => {\n this.location = res.data;\n },\n });\n }\n onLocationSave(e) {\n this.inventoryService.updateLocation(e.id, e).subscribe({\n next: (res) => {\n this.snackBarService.open('保存成功');\n },\n });\n }\n onLocationDetele(location: any) {\n const options = {\n title: '确定删除吗',\n message: `这会删除仓库, 确定吗?`,\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.inventoryService.deleteLocation(location.id).subscribe({\n next: (res) => {\n this.snackBarService.open('删除成功');\n this.navigation.back();\n },\n });\n }\n },\n });\n }\n}\n","<rolatech-toolbar title=\"仓库详情\" back> </rolatech-toolbar>\n@if (location) {\n <div class=\"px-3\">\n <rolatech-inventory-location-item\n [location]=\"location\"\n (save)=\"onLocationSave($event)\"\n (delete)=\"onLocationDetele($event)\"\n ></rolatech-inventory-location-item>\n </div>\n}\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { InventoryService } from '@rolatech/angular-services';\nimport { InventoryLocationMapComponent } from '../../components/inventory-location-map/inventory-location-map.component';\n\n@Component({\n selector: 'rolatech-inventory-location-add',\n imports: [ToolbarComponent, FormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, TextFieldModule],\n templateUrl: './inventory-location-add.component.html',\n styleUrl: './inventory-location-add.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationAddComponent extends BaseComponent {\n inventoryService = inject(InventoryService);\n\n location: any = {};\n\n selectLocation() {\n const dialogRef = this.dialog.open(InventoryLocationMapComponent, {\n width: '90%',\n data: {\n title: '选择位置',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const address = result.address;\n const { lat, lng } = result.location;\n this.location.detail = address;\n this.location.latitude = lat;\n this.location.longitude = lng;\n this.location.province = result.province;\n this.location.city = result.city;\n this.location.district = result.district;\n }\n });\n }\n\n add() {\n const data = {\n ...this.location,\n };\n\n this.inventoryService.addLocation(data).subscribe({\n next: (res) => {\n this.snackBarService.open('添加成功');\n },\n });\n }\n}\n","<rolatech-toolbar title=\"创建仓库\" back> </rolatech-toolbar>\n<div class=\"px-3 h-full\">\n <div class=\"w-full\">\n <div class=\"w-2/3 flex flex-col\">\n <form #locationForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 仓库名称 </mat-label>\n <input matInput [(ngModel)]=\"location.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 联系人 </mat-label>\n <input matInput [(ngModel)]=\"location.contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 手机号 </mat-label>\n <input matInput [(ngModel)]=\"location.phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <h2>位置信息</h2>\n <button mat-stroked-button (click)=\"selectLocation()\">位置选择</button>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> 省份 </mat-label>\n <input matInput [(ngModel)]=\"location.province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 城市 </mat-label>\n <input matInput [(ngModel)]=\"location.city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 区/县 </mat-label>\n <input matInput [(ngModel)]=\"location.district\" name=\"county\" required disabled />\n </mat-form-field>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label> 街道 </mat-label>\n <input\n matInput\n [(ngModel)]=\"location.town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label> 地址 </mat-label>\n <input matInput [(ngModel)]=\"location.detail\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 详细 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location.detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n <div class=\"py-3\">\n <button mat-flat-button (click)=\"add()\">保存</button>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i8","i2","i3","i4","i1"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { c as InventoryLocationAddComponent, a as InventoryLocationComponent, b as InventoryLocationDetailComponent, i as inventoryRoutes } from './rolatech-angular-inventory-rolatech-angular-inventory-DkSuBea4.mjs';
1
+ export { c as InventoryLocationAddComponent, a as InventoryLocationComponent, b as InventoryLocationDetailComponent, i as inventoryRoutes } from './rolatech-angular-inventory-rolatech-angular-inventory-BpR3m2TW.mjs';
2
2
  //# sourceMappingURL=rolatech-angular-inventory.mjs.map
package/package.json CHANGED
@@ -35,5 +35,5 @@
35
35
  },
36
36
  "module": "fesm2022/rolatech-angular-inventory.mjs",
37
37
  "typings": "index.d.ts",
38
- "version": "19.0.0-beta.5"
38
+ "version": "19.0.0-beta.6"
39
39
  }
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.left-\[30px\]{left:30px}.right-0{right:0}.top-0{top:0}.top-\[30px\]{top:30px}.z-20{z-index:20}.z-30{z-index:30}.z-\[9999\]{z-index:9999}.-m-1{margin:-.25rem}.m-3{margin:.75rem}.m-auto{margin:auto}.-mt-4{margin-top:-1rem}.mb-2{margin-bottom:.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[40px\]{margin-left:40px}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\[6px\]{margin-top:6px}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-4{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-0{height:0}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-24{height:6rem}.h-4{height:1rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[190px\]{height:190px}.h-full{height:100%}.max-h-\[320px\]{max-height:320px}.min-h-11{min-height:2.75rem}.min-h-\[320px\]{min-height:320px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-\[190px\]{width:190px}.w-full{width:100%}.min-w-24{min-width:6rem}.min-w-\[256px\]{min-width:256px}.min-w-\[320px\]{min-width:320px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-\[--rt-border-color\]{border-color:var(--rt-border-color)}.bg-\[--rt-10-percent-layer\]{background-color:var(--rt-10-percent-layer)}.bg-\[--rt-base-background\]{background-color:var(--rt-base-background)}.bg-\[--rt-brand-color\]{background-color:var(--rt-brand-color)}.bg-\[--rt-raised-background\]{background-color:var(--rt-raised-background)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-3{padding-bottom:.75rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-thin{font-weight:100}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-none{line-height:1}.text-\[--rt-brand-color\]{color:var(--rt-brand-color)}.text-\[--rt-text-primary\]{color:var(--rt-text-primary)}.text-\[--rt-text-secondary\]{color:var(--rt-text-secondary)}.text-transparent{color:transparent}.underline{text-decoration-line:underline}.opacity-75{opacity:.75}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-4{outline-width:4px}.outline-transparent{outline-color:transparent}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}html{line-height:normal}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:bg-\[--rt-10-percent-layer\]:hover{background-color:var(--rt-10-percent-layer)}.hover\:bg-\[--rt-base-background\]:hover{background-color:var(--rt-base-background)}.hover\:bg-\[--rt-raised-background\]:hover{background-color:var(--rt-raised-background)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:outline-\[--rt-raised-background\]:hover{outline-color:var(--rt-raised-background)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:w-1\/3{width:33.333333%}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:line-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md\:block{display:block}.md\:flex{display:flex}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/4{width:25%}.md\:w-full{width:100%}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:gap-10{gap:2.5rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:w-1\/6{width:16.666667%}}@media (min-width:1280px){.xl\:max-w-\[1024px\]{max-width:1024px}}@media (min-width:1536px){.\32xl\:max-w-\[1280px\]{max-width:1280px}}
1
+ @use "tailwindcss";html{line-height:normal}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-inventory-rolatech-angular-inventory-DkSuBea4.mjs","sources":["../../../../packages/angular-inventory/src/lib/components/inventory-layout/inventory-layout.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-layout/inventory-layout.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory.routes.ts","../../../../packages/angular-inventory/src/lib/components/inventory-content/inventory-content.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-content/inventory-content.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location/inventory-location.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location/inventory-location.component.html","../../../../packages/angular-inventory/src/lib/components/inventory-location-map/inventory-location-map.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-location-map/inventory-location-map.component.html","../../../../packages/angular-inventory/src/lib/components/inventory-location-item/inventory-location-item.component.ts","../../../../packages/angular-inventory/src/lib/components/inventory-location-item/inventory-location-item.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location-detail/inventory-location-detail.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location-detail/inventory-location-detail.component.html","../../../../packages/angular-inventory/src/lib/pages/inventory-location-add/inventory-location-add.component.ts","../../../../packages/angular-inventory/src/lib/pages/inventory-location-add/inventory-location-add.component.html","../../../../packages/angular-inventory/src/rolatech-angular-inventory.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'rolatech-inventory-layout',\n imports: [CommonModule, RouterModule],\n templateUrl: './inventory-layout.component.html',\n styleUrl: './inventory-layout.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLayoutComponent {}\n","<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">库存设置</div>\n <a routerLink=\"./locations\" routerLinkActive=\"manage-active\" class=\"p-2\">仓库设置</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">商品库存</div>\n <a routerLink=\"./products\" routerLinkActive=\"manage-active\" class=\"p-2\">商品</a>\n <!-- <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">库存设置</a> -->\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Routes } from '@angular/router';\nimport { InventoryLayoutComponent } from '../components/inventory-layout/inventory-layout.component';\n\nexport const inventoryRoutes: Routes = [\n {\n path: '',\n component: InventoryLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./inventory/inventory.component').then((c) => c.InventoryComponent),\n },\n {\n path: 'locations',\n loadComponent: () =>\n import('./inventory-location/inventory-location.component').then((c) => c.InventoryLocationComponent),\n },\n {\n path: 'locations/add',\n loadComponent: () =>\n import('./inventory-location-add/inventory-location-add.component').then((c) => c.InventoryLocationAddComponent),\n },\n {\n path: 'locations/:id',\n loadComponent: () =>\n import('./inventory-location-detail/inventory-location-detail.component').then(\n (c) => c.InventoryLocationDetailComponent,\n ),\n },\n {\n path: 'products',\n loadComponent: () => import('./inventory-product/inventory-product.component').then((c) => c.InventoryProductComponent),\n },\n ],\n },\n];\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-inventory-content',\n imports: [CommonModule],\n templateUrl: './inventory-content.component.html',\n styleUrl: './inventory-content.component.scss',\n})\nexport class InventoryContentComponent {}\n","<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport { InventoryContentComponent } from '../../components/inventory-content/inventory-content.component';\nimport { InventoryService } from '@rolatech/angular-services';\nimport { Location } from '../../interfaces/inventory-location';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-inventory-location',\n imports: [CommonModule, ToolbarComponent, InventoryContentComponent, RouterLink, MatButtonModule, MatIcon],\n templateUrl: './inventory-location.component.html',\n styleUrl: './inventory-location.component.scss',\n})\nexport class InventoryLocationComponent implements OnInit {\n inventoryService = inject(InventoryService);\n locations: Location[] = [];\n\n ngOnInit(): void {\n this.findLocations();\n }\n findLocations() {\n this.inventoryService.findLocations({}).subscribe({\n next: (res) => {\n this.locations = res.data;\n },\n });\n }\n addLocation(data) {\n this.inventoryService.addLocation(data);\n }\n}\n","<rolatech-inventory-content>\n <rolatech-toolbar title=\"仓库设置\" class=\"hidden md:block\" divider>\n <div class=\"flex items-center gap-2\">\n <button mat-stroked-button routerLink=\"./add\">\n <mat-icon>add</mat-icon>\n 创建仓库\n </button>\n </div>\n </rolatech-toolbar>\n <div class=\"divide-y\">\n @for (item of locations; track $index) {\n <div [routerLink]=\"item.id\" class=\"flex items-center px-2 h-11 hover:cursor-pointer hover:bg-[--rt-raised-background]\">\n <div class=\"font-bold\">{{ item.name }}</div>\n <div></div>\n </div>\n }\n </div>\n</rolatech-inventory-content>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport {\n MatDialogRef,\n MAT_DIALOG_DATA,\n MatDialogActions,\n MatDialogClose,\n MatDialogContent,\n MatDialogTitle,\n} from '@angular/material/dialog';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\ndeclare global {\n interface Window {\n qq: any;\n TMap: any;\n }\n}\n\n@Component({\n selector: 'rolatech-inventory-location-map',\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n MatOptionModule,\n MatInputModule,\n MatIconModule,\n MatDialogActions,\n MatButtonModule,\n MatDialogClose,\n ],\n templateUrl: './inventory-location-map.component.html',\n styleUrl: './inventory-location-map.component.scss',\n})\nexport class InventoryLocationMapComponent implements OnInit {\n map: any;\n markers: any;\n lists: any;\n infoWindowList = Array(10);\n selectedLocation: any;\n cities: string[] = ['北京', '上海'];\n region = '北京';\n constructor(\n public dialogRef: MatDialogRef<InventoryLocationMapComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {}\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n const map = new window.TMap.Map(document.getElementById('map-container'), {\n // 地图的中心地理坐标。\n center: new window.TMap.LatLng(40.0402718, 116.2735831),\n resizeEnable: true,\n zoom: 14,\n });\n const markers = new window.TMap.MultiMarker({\n map: map,\n geometries: [],\n });\n this.map = map;\n this.markers = markers;\n }\n onSearchChange(event: any) {\n const value = event.target.value;\n const suggest = new window.TMap.service.Suggestion({\n pageSize: 15, // 返回结果每页条目数\n region: this.region, // 限制城市范围\n regionFix: true, // 搜索无结果时是否固定在当前城市\n });\n if (value) {\n suggest\n .getSuggestions({ keyword: value, location: this.map.getCenter() })\n .then((result: any) => {\n this.lists = result.data;\n })\n .catch((error: any) => {});\n }\n }\n setLocation(index: any) {\n this.infoWindowList.forEach((infoWindow) => {\n infoWindow.close();\n });\n this.infoWindowList.length = 0;\n const item = this.lists[index];\n this.selectedLocation = item;\n this.lists = [];\n this.markers.setGeometries([]);\n this.markers.updateGeometries([\n {\n id: '0', // 点标注数据数组\n position: item.location,\n },\n ]);\n\n const infoWindow = new window.TMap.InfoWindow({\n map: this.map,\n position: item.location,\n content: `<h3>${item.title}</h3><p>地址:${item.address}</p>`,\n offset: { x: 0, y: -50 },\n });\n this.infoWindowList.push(infoWindow);\n this.map.setCenter(item.location);\n this.markers.on('click', (e: any) => {\n this.infoWindowList[Number(e.geometry.id)].open();\n });\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n selectionChange(event: any) {}\n}\n","@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n <div class=\"h-full\">\n <div class=\"relative h-full\">\n <div id=\"map-container\" class=\"h-full\"></div>\n <div class=\"absolute bg-white z-[9999] top-[30px] left-[30px]\">\n <div class=\"flex gap-3 px-3 pt-3\">\n <mat-form-field appearance=\"fill\" [style.width.px]=\"180\">\n <mat-label>城市</mat-label>\n <mat-select #select=\"matSelect\" [(ngModel)]=\"region\" (selectionChange)=\"selectionChange($event)\">\n @for (city of cities; track city) {\n <mat-option [value]=\"city\">\n {{ city }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input matInput placeholder=\"输入关键字搜索\" (input)=\"onSearchChange($event)\" />\n </mat-form-field>\n </div>\n <div class=\"max-h-[320px] overflow-scroll pb-3 bg-white\">\n @for (item of lists; track item; let index = $index) {\n <div (click)=\"setLocation(index)\" class=\"cursor-pointer\">\n <div class=\"p-3 flex items-center gap-2 hover:bg-[--rt-raised-background]\">\n <mat-icon fontIcon=\"location_on\"></mat-icon>\n <div class=\"text-sm font-thin\">{{ item.title }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n <button mat-flat-button [mat-dialog-close]=\"selectedLocation\" cdkFocusInitial>确定</button>\n</div>\n","import { Component, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TitleComponent } from '@rolatech/angular-components';\nimport { Location } from '../../interfaces/inventory-location';\nimport { InventoryLocationMapComponent } from '../inventory-location-map/inventory-location-map.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'rolatech-inventory-location-item',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n MatButtonModule,\n TextFieldModule,\n MatDividerModule,\n TitleComponent,\n ],\n templateUrl: './inventory-location-item.component.html',\n styleUrl: './inventory-location-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationItemComponent {\n location = input.required<Location>();\n dialog = inject(MatDialog);\n save = output<Location>();\n delete = output<Location>();\n\n selectLocation() {\n const dialogRef = this.dialog.open(InventoryLocationMapComponent, {\n width: '90%',\n data: {\n title: '选择位置',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const address = result.address;\n const { lat, lng } = result.location;\n this.location().detail = address;\n this.location().latitude = lat;\n this.location().longitude = lng;\n this.location().province = result.province;\n this.location().city = result.city;\n this.location().district = result.district;\n this.location().detail = result.title;\n }\n });\n }\n onSave() {\n this.save.emit(this.location());\n }\n onDelete() {\n this.delete.emit(this.location());\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 仓库名称 </mat-label>\n <input matInput [(ngModel)]=\"location().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 联系人 </mat-label>\n <input matInput [(ngModel)]=\"location().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 手机号 </mat-label>\n <input matInput [(ngModel)]=\"location().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"位置信息\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\">位置选择</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 省份 </mat-label>\n <input matInput [(ngModel)]=\"location().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 城市 </mat-label>\n <input matInput [(ngModel)]=\"location().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 区/县 </mat-label>\n <input matInput [(ngModel)]=\"location().district\" name=\"district\" required disabled />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> 地址 </mat-label>\n <input matInput [(ngModel)]=\"location().street\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 详细 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <button mat-button (click)=\"onDelete()\">删除</button>\n <button mat-flat-button type=\"primary\" (click)=\"onSave()\">保存</button>\n </div>\n </div>\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InventoryLocationItemComponent } from '../../components/inventory-location-item/inventory-location-item.component';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { Location } from '../../interfaces/inventory-location';\nimport { InventoryService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-inventory-location-detail',\n imports: [CommonModule, InventoryLocationItemComponent, ToolbarComponent],\n templateUrl: './inventory-location-detail.component.html',\n styleUrl: './inventory-location-detail.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationDetailComponent extends BaseComponent implements OnInit {\n inventoryService = inject(InventoryService);\n location!: Location;\n\n ngOnInit(): void {\n this.get();\n }\n get() {\n this.inventoryService.getLocation(this.id).subscribe({\n next: (res) => {\n this.location = res.data;\n },\n });\n }\n onLocationSave(e) {\n this.inventoryService.updateLocation(e.id, e).subscribe({\n next: (res) => {\n this.snackBarService.open('保存成功');\n },\n });\n }\n onLocationDetele(location: any) {\n const options = {\n title: '确定删除吗',\n message: `这会删除仓库, 确定吗?`,\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.inventoryService.deleteLocation(location.id).subscribe({\n next: (res) => {\n this.snackBarService.open('删除成功');\n this.navigation.back();\n },\n });\n }\n },\n });\n }\n}\n","<rolatech-toolbar title=\"仓库详情\" back> </rolatech-toolbar>\n@if (location) {\n <div class=\"px-3\">\n <rolatech-inventory-location-item\n [location]=\"location\"\n (save)=\"onLocationSave($event)\"\n (delete)=\"onLocationDetele($event)\"\n ></rolatech-inventory-location-item>\n </div>\n}\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { InventoryService } from '@rolatech/angular-services';\nimport { InventoryLocationMapComponent } from '../../components/inventory-location-map/inventory-location-map.component';\n\n@Component({\n selector: 'rolatech-inventory-location-add',\n imports: [ToolbarComponent, FormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, TextFieldModule],\n templateUrl: './inventory-location-add.component.html',\n styleUrl: './inventory-location-add.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class InventoryLocationAddComponent extends BaseComponent {\n inventoryService = inject(InventoryService);\n\n location: any = {};\n\n selectLocation() {\n const dialogRef = this.dialog.open(InventoryLocationMapComponent, {\n width: '90%',\n data: {\n title: '选择位置',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const address = result.address;\n const { lat, lng } = result.location;\n this.location.detail = address;\n this.location.latitude = lat;\n this.location.longitude = lng;\n this.location.province = result.province;\n this.location.city = result.city;\n this.location.district = result.district;\n }\n });\n }\n\n add() {\n const data = {\n ...this.location,\n };\n\n this.inventoryService.addLocation(data).subscribe({\n next: (res) => {\n this.snackBarService.open('添加成功');\n },\n });\n }\n}\n","<rolatech-toolbar title=\"创建仓库\" back> </rolatech-toolbar>\n<div class=\"px-3 h-full\">\n <div class=\"w-full\">\n <div class=\"w-2/3 flex flex-col\">\n <form #locationForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 仓库名称 </mat-label>\n <input matInput [(ngModel)]=\"location.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 联系人 </mat-label>\n <input matInput [(ngModel)]=\"location.contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 手机号 </mat-label>\n <input matInput [(ngModel)]=\"location.phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <h2>位置信息</h2>\n <button mat-stroked-button (click)=\"selectLocation()\">位置选择</button>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label> 省份 </mat-label>\n <input matInput [(ngModel)]=\"location.province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 城市 </mat-label>\n <input matInput [(ngModel)]=\"location.city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 区/县 </mat-label>\n <input matInput [(ngModel)]=\"location.district\" name=\"county\" required disabled />\n </mat-form-field>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label> 街道 </mat-label>\n <input\n matInput\n [(ngModel)]=\"location.town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label> 地址 </mat-label>\n <input matInput [(ngModel)]=\"location.detail\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 详细 </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"location.detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n <div class=\"py-3\">\n <button mat-flat-button (click)=\"add()\">保存</button>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i8","i2","i3","i4","i1"],"mappings":"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"}