{"version":3,"file":"main.js","mappings":"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;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;;;;;;;;;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;;;;;;;;;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;;;;;;;;;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,iFAAsE;AAC1H,kCAAkC,mBAAO,CAAC,0EAA+D;AACzG;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;;;;;;;;;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,iFAAsE;AAC1H,kCAAkC,mBAAO,CAAC,0EAA+D;AACzG;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;;;;;;;;;;;ACPA;AACA,4CAA4C,mBAAO,CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,oJAAoJ,MAAM,UAAU,UAAU,WAAW,KAAK,KAAK,WAAW,UAAU,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,WAAW,WAAW,WAAW,UAAU,KAAK,KAAK,WAAW,KAAK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CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,OAAO,oLAAoL,WAAW,MAAM,KAAK,WAAW,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,WAAW,WAAW,MAAM,KAAK,WAAW,UAAU,MAAM,KAAK,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,MAAM,KAAK,WAAW,MAAM,oDAAoD,YAAY,MAAM,KAAK,WAAW,UAAU,MAAM,KAAK,WAAW,WAAW,MAAM,KAAK,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,KAAK,MAAM,WAAW,MAAM,KAAK,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,UAAU,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,MAAM,MAAM,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,UAAU,WAAW,MAAM,KAAK,UAAU,WAAW,WAAW,UAAU,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,UAAU,MAAM,KAAK,YAAY,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,MAAM,KAAK,qBAAqB,MAAM,WAAW,KAAK,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,MAAM,WAAW,KAAK,UAAU,UAAU,UAAU,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,MAAM,KAAK,WAAW,UAAU,WAAW,MAAM,OAAO,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,MAAM,KAAK,UAAU,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,WAAW,WAAW,WAAW,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,MAAM,KAAK,WAAW,WAAW,UAAU,WAAW,W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BAA4B,2BAA2B,6BAA6B,4BAA4B,+BAA+B,kCAAkC,KAAK,2BAA2B,8DAA8D,wBAAwB,4BAA4B,2BAA2B,6BAA6B,4BAA4B,+BAA+B,kCAAkC,KAAK,+CAA+C,eAAe,wBAAwB,2CAA2C,SAAS,sBAAsB,yCAAyC,SAAS,KAAK,8BAA8B,sBAAsB,kCAAkC,qBAAqB,2BAA2B,gDAAgD,KAAK,yBAAyB,sBAAsB,4BAA4B,KAAK,2BAA2B,qCAAqC,wBAAwB,yBAAyB,2BAA2B,6BAA6B,4BAA4B,+BAA+B,2BAA2B,uBAAuB,KAAK,WAAW,uCAAuC,8BAA8B,KAAK,yBAAyB,6CAA6C,OAAO,sBAAsB,6BAA6B,2BAA2B,OAAO,sBAAsB,2BAA2B,oBAAoB,eAAe,kBAAkB,qBAAqB,qBAAqB,oBAAoB,OAAO,oCAAoC,4BAA4B,KAAK,mBAAmB,gCAAgC,8BAA8B,0BAA0B,KAAK,uBAAuB;AAClva;AACA;;;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/common/custom-directives/stop-propagation.ts","./src/app/components/common/sem-base/sem-base.component.ts","./src/app/components/common/sem-navigation/sem-navigation.component.ts","./src/app/components/containers/container-wrapper/container-wrapper/container-wrapper.component.ts","./src/app/components/containers/notification-center/notification-center/notification-center.component.ts","./src/app/components/containers/sem-dashboard-container/sem-dashboard-container.component.ts","./src/app/components/containers/sem-not-found/sem-not-found.component.ts","./src/app/components/containers/workflow-center/workflow-center.component.ts","./src/app/components/controls/charts/graphs/sem-d3-directional-graph/sem-d3-directional-graph.component.ts","./src/app/components/controls/charts/graphs/sem-line-graph/sem-line-graph.component.ts","./src/app/components/controls/charts/sem-table-chart/sem-table-chart.component.ts","./src/app/components/controls/content-controls/sem-gallery-control/sem-gallery-control.component.ts","./src/app/components/controls/content-controls/sem-last-added-records/sem-last-added-records.component.ts","./src/app/components/controls/content-controls/sem-last-edited-data/sem-last-edited-data.component.ts","./src/app/components/controls/content-controls/sem-quick-actions/sem-quick-actions.component.ts","./src/app/components/controls/content-controls/sem-table-presentation/sem-table-presentation.component.ts","./src/app/components/controls/dialogs/sem-compare-dialog/sem-compare-dialog.component.ts","./src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component.ts","./src/app/components/controls/dialogs/sem-dialog/sem-dialog.component.ts","./src/app/components/controls/dialogs/sem-file-explorer-dialog/sem-file-explorer-dialog.component.ts","./src/app/components/controls/dialogs/sem-generate-dialog/sem-generate-dialog.component.ts","./src/app/components/controls/dialogs/sem-grid-display-fields-dialog/sem-grid-display-fields-dialog.component.ts","./src/app/components/controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component.ts","./src/app/components/controls/dialogs/sem-query-builder-dialog/sem-query-builder-dialog.component.ts","./src/app/components/controls/dialogs/sem-search-fields-dialog/sem-search-fields-dialog.component.ts","./src/app/components/controls/dialogs/sem-treeview-dialog/sem-treeview-dialog.component.ts","./src/app/components/controls/dialogs/sem-user-profile-dialog/sem-user-profile-dialog.component.ts","./src/app/components/controls/dialogs/sem-version-dialog/sem-version-dialog.component.ts","./src/app/components/controls/sem-bound-label/sem-bount-label.component.ts","./src/app/components/controls/sem-bound-tab-control/sem-bound-tab-content/sem-bound-tab-content.component.ts","./src/app/components/controls/sem-bound-tab-control/sem-bound-tab-control.component.ts","./src/app/components/controls/sem-button/sem-button.component.ts","./src/app/components/controls/sem-chat-bot/sem-chat-bot.component.ts","./src/app/components/controls/sem-check-box/sem-check-box.component.ts","./src/app/components/controls/sem-control/sem-control.component.ts","./src/app/components/controls/sem-data-grid/sem-data-grid.component.ts","./src/app/components/controls/sem-date-picker/sem-date-picker.component.ts","./src/app/components/controls/sem-dynamic-search-field/sem-dynamic-search-field.component.ts","./src/app/components/controls/sem-edit-mode-btn/sem-edit-mode-btn.component.ts","./src/app/components/controls/sem-facets/sem-facets.component.ts","./src/app/components/controls/sem-file-explorer/sem-file-explorer.component.ts","./src/app/components/controls/sem-file-picker/sem-file-picker.component.ts","./src/app/components/controls/sem-file-upload/sem-file-upload.component.ts","./src/app/components/controls/sem-geo-map/sem-geo-map.component.ts","./src/app/components/controls/sem-graph-bar/sem-graph-bar.component.ts","./src/app/components/controls/sem-graph-donut/sem-graph-donut.component.ts","./src/app/components/controls/sem-graph-histogram/sem-graph-histogram.component.ts","./src/app/components/controls/sem-graph-pie/sem-graph-pie.component.ts","./src/app/components/controls/sem-graph/sem-graph.component.ts","./src/app/components/controls/sem-group-repeater/sem-group-repeater.component.ts","./src/app/components/controls/sem-image-viewer/sem-image-viewer.component.ts","./src/app/components/controls/sem-list/sem-list.component.ts","./src/app/components/controls/sem-many-to-one-control/sem-many-to-one-control.component.ts","./src/app/components/controls/sem-multi-fields/sem-multi-fields.component.ts","./src/app/components/controls/sem-multiple-select/sem-multiple-select.component.ts","./src/app/components/controls/sem-one-to-many-container/one-to-many-section/one-to-many-section.component.ts","./src/app/components/controls/sem-one-to-many-container/sem-one-to-many-container.component.ts","./src/app/components/controls/sem-query-builder/query-arrow-icon.directive.ts","./src/app/components/controls/sem-query-builder/query-builder.component.ts","./src/app/components/controls/sem-query-builder/query-button-group.directive.ts","./src/app/components/controls/sem-query-builder/query-empty-warning.directive.ts","./src/app/components/controls/sem-query-builder/query-entity.directive.ts","./src/app/components/controls/sem-query-builder/query-field.directive.ts","./src/app/components/controls/sem-query-builder/query-input.directive.ts","./src/app/components/controls/sem-query-builder/query-operator.directive.ts","./src/app/components/controls/sem-query-builder/query-remove-button.directive.ts","./src/app/components/controls/sem-query-builder/query-switch-group.directive.ts","./src/app/components/controls/sem-query/sem-query.component.ts","./src/app/components/controls/sem-radio-button/sem-radio-button.component.ts","./src/app/components/controls/sem-regex-input/sem-regex-input.component.ts","./src/app/components/controls/sem-report-generator/sem-report-generator.component.ts","./src/app/components/controls/sem-rich-text-editor/sem-rich-text-editor.component.ts","./src/app/components/controls/sem-search-bar/sem-search-bar.component.ts","./src/app/components/controls/sem-search/sem-search.component.ts","./src/app/components/controls/sem-select/sem-select.component.ts","./src/app/components/controls/sem-table-data-control/sem-table-data.component.ts","./src/app/components/controls/sem-text-area/sem-text-area.component.ts","./src/app/components/controls/sem-text-box/sem-text-box.component.ts","./src/app/components/controls/sem-text-input/sem-text-input.component.ts","./src/app/components/controls/sem-time-picker/sem-time-picker.component.ts","./src/app/components/controls/shared/sem-dynamic-control/sem-dynamic-control.component.ts","./src/app/components/controls/shared/value-accessor/value-accessor-base.ts","./src/app/components/login-views/login-v1/login.component.ts","./src/app/components/login-views/login-v2/login-v2.component.ts","./src/app/components/login-views/login-v3/login-v3.component.ts","./src/app/directives/disable-control/disable-control.directive.ts","./src/app/directives/draggable/make-draggable.directive.ts","./src/app/directives/draggable/make-dropable.directive.ts","./src/app/directives/formLoadEvent/form-load-event.directive.ts","./src/app/directives/images-path.directive.ts","./src/app/directives/pre-submit/pre-form-submit.directive.ts","./src/app/directives/validators/form-read-only.directive.ts","./src/app/directives/validators/sem-min-max.directive.ts","./src/app/directives/validators/sem-required.directive.ts","./src/app/models/bulk-action/bulk-action-model.ts","./src/app/models/chat/ChatItem.ts","./src/app/models/file-upload/file-data-rights.ts","./src/app/models/file-upload/file-data.ts","./src/app/models/navigation/navigation-node-model.ts","./src/app/models/navigation/navigation-request-model.ts","./src/app/models/navigation/state-model.ts","./src/app/models/oauth/semToken.ts","./src/app/models/request/request-model.ts","./src/app/models/root-model.ts","./src/app/models/search/facet-group.model.ts","./src/app/models/search/facet-projection-wrapper.model.ts","./src/app/models/search/facet-view.model.ts","./src/app/models/search/facet.model.ts","./src/app/models/search/pagination.model.ts","./src/app/models/search/sort-field.model.ts","./src/app/models/search/user-search-setting-model.ts","./src/app/models/search/user-search-setting-property-model.ts","./src/app/models/serializing/navigation-node-serializer.ts","./src/app/navigation/components/sem-breadcrumbs/sem-breadcrumbs.component.ts","./src/app/navigation/components/sem-header-menu/sem-header-menu.component.ts","./src/app/navigation/components/sem-left-menu-item/sem-left-menu-item.component.ts","./src/app/navigation/components/sem-left-menu/sem-left-menu.component.ts","./src/app/navigation/modules/sem-navigation/sem-navigation.module.ts","./src/app/navigation/pipes/menu-type-pipe.ts","./src/app/platform-redirect/platform-redirect.component.ts","./src/app/server-errors.interceptor.ts","./src/app/services/actions-service/actions.service.ts","./src/app/services/dynamic-fields/dynamic-fields-manager.service.ts","./src/app/services/dynamic-routes-loader/route-navigation.service.ts","./src/app/services/export/export.service.ts","./src/app/services/file-upload-service/file-upload.service.ts","./src/app/services/file-upload-standalone/file-upload-standalone.service.ts","./src/app/services/form-service/form.service.ts","./src/app/services/guards/auth/auth-guard.service.ts","./src/app/services/loader-service/loader-service.service.ts","./src/app/services/local-storage-service/local-storage.service.ts","./src/app/services/metamodel/metamodel-provider.service.ts","./src/app/services/parameter-forms-service/parameter-forms.service.ts","./src/app/services/rest-provider/rest-provider.service.ts","./src/app/services/search/search.service.ts","./src/app/services/translations-provider/translations-provider.service.ts","./src/app/services/user/user-provider.service.ts","./src/app/services/utility/utility.service.ts","./src/app/services/versioning/entity-version-service.service.ts","./src/app/services/window-ref.service.ts","./src/app/shared/components/sem-dynamic/sem-dynamic.component.ts","./src/app/shared/components/sem-loader/sem-loader.component.ts","./src/app/shared/helpers/custom-url-serializer.ts","./src/app/shared/helpers/dynamic-loading-util.ts","./src/app/shared/helpers/file-util.ts","./src/app/shared/helpers/moment-utc-adapter.ts","./src/app/shared/helpers/pipes/limit-to.pipe.ts","./src/app/shared/helpers/pipes/sem-date-format-pipe.pipe.ts","./src/app/shared/helpers/pipes/sem-dom-pipe.pipe.ts","./src/app/shared/helpers/sem-http-utility.ts","./src/app/shared/helpers/util.ts","./src/app/shared/modules/sem-shared/sem-shared.module.ts","./src/environments/environment.ts","./src/main.ts","./src/app/app.component.css","./src/app/components/common/sem-base/sem-base.component.css","./src/app/components/common/sem-navigation/sem-navigation.component.css","./src/app/components/containers/container-wrapper/container-wrapper/container-wrapper.component.css","./src/app/components/containers/notification-center/notification-center/notification-center.component.css","./src/app/components/containers/sem-dashboard-container/sem-dashboard-container.component.css","./src/app/components/containers/sem-not-found/sem-not-found.component.css","./src/app/components/containers/workflow-center/workflow-center.component.css","./src/app/components/controls/charts/graphs/sem-d3-directional-graph/sem-d3-directional-graph.component.css","./src/app/components/controls/charts/graphs/sem-line-graph/sem-line-graph.component.css","./src/app/components/controls/charts/sem-table-chart/sem-table-chart.component.css","./src/app/components/controls/content-controls/sem-gallery-control/sem-gallery-control.component.css","./src/app/components/controls/content-controls/sem-last-added-records/sem-last-added-records.component.css","./src/app/components/controls/content-controls/sem-last-edited-data/sem-last-edited-data.component.css","./src/app/components/controls/content-controls/sem-quick-actions/sem-quick-actions.component.css","./src/app/components/controls/content-controls/sem-table-presentation/sem-table-presentation.component.css","./src/app/components/controls/dialogs/sem-compare-dialog/sem-compare-dialog.component.css","./src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component.css","./src/app/components/controls/dialogs/sem-dialog/sem-dialog.component.css","./src/app/components/controls/dialogs/sem-file-explorer-dialog/sem-file-explorer-dialog.component.css","./src/app/components/controls/dialogs/sem-generate-dialog/sem-generate-dialog.component.css","./src/app/components/controls/dialogs/sem-grid-display-fields-dialog/sem-grid-display-fields-dialog.component.css","./src/app/components/controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component.css","./src/app/components/controls/dialogs/sem-query-builder-dialog/sem-query-builder-dialog.component.css","./src/app/components/controls/dialogs/sem-search-fields-dialog/sem-search-fields-dialog.component.css","./src/app/components/controls/dialogs/sem-treeview-dialog/sem-treeview-dialog.component.css","./src/app/components/controls/dialogs/sem-user-profile-dialog/sem-user-profile-dialog.component.css","./src/app/components/controls/dialogs/sem-version-dialog/sem-version-dialog.component.css","./src/app/components/controls/sem-bound-label/sem-bound-label.component.css","./src/app/components/controls/sem-bound-tab-control/sem-bound-tab-content/sem-bound-tab-content.component.css","./src/app/components/controls/sem-bound-tab-control/sem-bound-tab-control.component.css","./src/app/components/controls/sem-button/sem-button.component.css","./src/app/components/controls/sem-chat-bot/sem-chat-bot.component.css","./src/app/components/controls/sem-check-box/sem-check-box.component.css","./src/app/components/controls/sem-control/sem-control.component.css","./src/app/components/controls/sem-data-grid/sem-data-grid.component.css","./src/app/components/controls/sem-date-picker/sem-date-picker.component.css","./src/app/components/controls/sem-dynamic-search-field/sem-dynamic-search-field.component.css","./src/app/components/controls/sem-edit-mode-btn/sem-edit-mode-btn.component.css","./src/app/components/controls/sem-facets/sem-facets.component.css","./src/app/components/controls/sem-file-explorer/sem-file-explorer.component.css","./src/app/components/controls/sem-file-picker/sem-file-picker.component.css","./src/app/components/controls/sem-file-upload/sem-file-upload.component.css","./src/app/components/controls/sem-geo-map/sem-geo-map.component.css","./src/app/components/controls/sem-graph-bar/sem-graph-bar.component.css","./src/app/components/controls/sem-graph-donut/sem-graph-donut.component.css","./src/app/components/controls/sem-graph-histogram/sem-graph-histogram.component.css","./src/app/components/controls/sem-graph-pie/sem-graph-pie.component.css","./src/app/components/controls/sem-graph/sem-graph.component.css","./src/app/components/controls/sem-group-repeater/sem-group-repeater.component.css","./src/app/components/controls/sem-image-viewer/sem-image-viewer.component.css","./src/app/components/controls/sem-list/sem-list.component.css","./src/app/components/controls/sem-many-to-one-control/sem-many-to-one-control.component.css","./src/app/components/controls/sem-multi-fields/sem-multi-fields.component.css","./src/app/components/controls/sem-multiple-select/sem-multiple-select.component.css","./src/app/components/controls/sem-one-to-many-container/one-to-many-section/one-to-many-section.component.css","./src/app/components/controls/sem-one-to-many-container/sem-one-to-many-container.component.css","./src/app/components/controls/sem-query/sem-query.component.css","./src/app/components/controls/sem-radio-button/sem-radio-button.component.css","./src/app/components/controls/sem-regex-input/sem-regex-input.component.css","./src/app/components/controls/sem-report-generator/sem-report-generator.component.css","./src/app/components/controls/sem-rich-text-editor/sem-rich-text-editor.component.css","./src/app/components/controls/sem-search-bar/sem-search-bar.component.css","./src/app/components/controls/sem-search/sem-search.component.css","./src/app/components/controls/sem-select/sem-select.component.css","./src/app/components/controls/sem-table-data-control/sem-table-data.component.css","./src/app/components/controls/sem-text-area/sem-text-area.component.css","./src/app/components/controls/sem-text-box/sem-text-box.component.css","./src/app/components/controls/sem-text-input/sem-text-input.component.css","./src/app/components/controls/sem-time-picker/sem-time-picker.component.css","./src/app/components/controls/shared/sem-dynamic-control/sem-dynamic-control.component.css","./src/app/components/controls/shared/value-accessor/value-accessor.css","./src/app/components/login-views/login-v1/login.component.css","./src/app/components/login-views/login-v2/login-v2.component.css","./src/app/navigation/components/sem-breadcrumbs/sem-breadcrumbs.component.css","./src/app/navigation/components/sem-header-menu/sem-header-menu.component.css","./src/app/navigation/components/sem-left-menu-item/sem-left-menu-item.component.css","./src/app/navigation/components/sem-left-menu/sem-left-menu.component.css","./src/app/platform-redirect/platform-redirect.component.css","./src/app/shared/components/sem-dynamic/sem-dynamic.component.css","./src/app/shared/components/sem-loader/sem-loader.component.css","./src/app/components/controls/sem-query-builder/query-builder.component.scss","./src/app/components/login-views/login-v3/login-v3.component.scss","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|canvas","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|fs","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|http","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|https","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|url","ignored|C:\\Projekti\\TFS\\WGNETCORE_BRD\\Frontend\\ngWebGalis\\node_modules\\pdfjs-dist\\build|zlib"],"sourcesContent":["import { Component, ViewChild, OnInit, NgModule, Compiler, Input, Injector, QueryList, ViewChildren, inject } from '@angular/core';\r\nimport { SemLeftMenuComponent } from '../app/navigation/components/sem-left-menu/sem-left-menu.component';\r\nimport { RestProviderService } from './services/rest-provider/rest-provider.service';\r\nimport { NavigationNodeSerializer } from './models/serializing/navigation-node-serializer';\r\nimport { NavigationRequestModel } from './models/navigation/navigation-request-model';\r\nimport { RequestModel } from './models/request/request-model';\r\nimport { RouterModule, Routes, Router, RouterLink, ActivatedRoute } from '@angular/router';\r\nimport { SemSharedModule } from './shared/modules/sem-shared/sem-shared.module';\r\nimport { FormsModule } from '../../node_modules/@angular/forms';\r\nimport { HttpClient, HttpClientModule } from '../../node_modules/@angular/common/http';\r\nimport { Http } from '../../node_modules/@angular/http';\r\nimport { SemDynamicComponent, ResponseStatus } from './shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { CommonModule } from '../../node_modules/@angular/common';\r\nimport { SemLoaderComponent } from './shared/components/sem-loader/sem-loader.component';\r\nimport { DynamicLoadingUtil } from './shared/helpers/dynamic-loading-util';\r\nimport { SemBaseComponent } from './components/common/sem-base/sem-base.component';\r\nimport { DynamicFieldsManagerService } from './services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { UtilityService } from './services/utility/utility.service';\r\nimport { FormService } from './services/form-service/form.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\n\r\n\r\n\r\nexport class AppComponent extends SemBaseComponent {\r\n menuOpened: boolean = false;\r\n @ViewChild(SemLeftMenuComponent, { read: SemLeftMenuComponent, static:true }) leftMenu: SemLeftMenuComponent;\r\n @Input() rootLoader: any;\r\n masterPage: string;\r\n masterPageUrl: string;\r\n @ViewChildren(SemLoaderComponent) childrenComponent: any;\r\n\r\n \r\n constructor(private rp: RestProviderService,injector: Injector, activatedRoute: ActivatedRoute) {\r\n super(injector, injector.get(Router), activatedRoute,injector.get(DynamicFieldsManagerService),injector.get(UtilityService),injector.get(FormService));\r\n }\r\n\r\n ngOnInit() {\r\n /*if(this.rp.currentUser==null){\r\n this.router.navigate(['account/login']);\r\n }else{\r\n //this.router.navigate(['cms/dashboard']);\r\n this.injector.get(UtilityService).processNavigationUrl(\"cms/dashboard\");\r\n }*/\r\n }\r\n\r\n ngAfterViewInit() {\r\n //console.log(\"LOADER\");\r\n //console.log(this.rootLoader);\r\n\r\n if (typeof this.childrenComponent.first != \"undefined\") {\r\n DynamicLoadingUtil.loader = this.childrenComponent.first;\r\n }\r\n\r\n }\r\n\r\n isMenuOpened() {\r\n return this.leftMenu.opened;\r\n }\r\n\r\n sidebarChanged(event) {\r\n this.sidebarMenuOpened = event;\r\n }\r\n\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, Injector, APP_INITIALIZER, Injectable, Component, Compiler, ErrorHandler } from '@angular/core';\r\nimport { RouteNavigationService, configServiceFactory } from './services/dynamic-routes-loader/route-navigation.service';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HttpClient, HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SemNavigationModule } from '../app/navigation/modules/sem-navigation/sem-navigation.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule, UrlSerializer } from '@angular/router';\r\nimport { SemDynamicComponent } from './shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { CustomUrlSerializer } from './shared/helpers/custom-url-serializer';\r\nimport { SemLoaderComponent } from './shared/components/sem-loader/sem-loader.component';\r\nimport { SemDateFormatPipePipe } from './shared/helpers/pipes/sem-date-format-pipe.pipe';\r\nimport { SemDashboardContainerComponent } from './components/containers/sem-dashboard-container/sem-dashboard-container.component';\r\nimport { NavigationRequestModel } from './models/navigation/navigation-request-model';\r\nimport { ErrorsHandler } from './errorshandler';\r\nimport { ServerErrorsInterceptor } from './server-errors.interceptor';\r\nimport { SemNotFoundComponent } from './components/containers/sem-not-found/sem-not-found.component';\r\nimport { SemConfirmDialogComponent } from './components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { SemSearchFieldsDialogComponent } from './components/controls/dialogs/sem-search-fields-dialog/sem-search-fields-dialog.component';\r\nimport { SemGridDisplayFieldsDialogComponent } from './components/controls/dialogs/sem-grid-display-fields-dialog/sem-grid-display-fields-dialog.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { WindowRefService } from './services/window-ref.service';\r\nimport { NotificationCenterComponent } from './components/containers/notification-center/notification-center/notification-center.component';\r\nimport { ContainerWrapperComponent } from './components/containers/container-wrapper/container-wrapper/container-wrapper.component';\r\nimport { SemSharedModule } from './shared/modules/sem-shared/sem-shared.module';\r\n//import { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { SemVersionDialogComponent } from './components/controls/dialogs/sem-version-dialog/sem-version-dialog.component';\r\nimport { SemParameterDialogComponent } from './components/controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\nimport { AuthGuardService } from './services/guards/auth/auth-guard.service';\r\nimport { SemCompareDialogComponent } from './components/controls/dialogs/sem-compare-dialog/sem-compare-dialog.component';\r\nimport { SemActionComponent } from './components/controls/sem-action/sem-action.component';\r\nimport { WorkflowCenterComponent } from './components/containers/workflow-center/workflow-center.component';\r\nimport { SemUserProfileDialogComponent } from './components/controls/dialogs/sem-user-profile-dialog/sem-user-profile-dialog.component';\r\nimport { SemMinMaxDirective } from './directives/validators/sem-min-max.directive';\r\nimport { LoginComponent } from './components/login-views/login-v1/login.component';\r\nimport { LoginV2Component } from './components/login-views/login-v2/login-v2.component';\r\nimport { PlatformRedirectComponent } from './platform-redirect/platform-redirect.component';\r\nimport { environment } from '../environments/environment';\r\nimport { LoginV3Component } from './components/login-views/login-v3/login-v3.component';\r\nimport { SemFileExplorerDialogComponent } from './components/controls/dialogs/sem-file-explorer-dialog/sem-file-explorer-dialog.component';\r\nimport {NgxPhotoEditorModule} from \"ngx-photo-editor\";\r\nimport { UserProfileCenterComponent } from './components/containers/user-profile-center/user-profile-center.component';\r\n//import { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n SemDynamicComponent,\r\n SemDateFormatPipePipe,\r\n SemDashboardContainerComponent,\r\n SemNotFoundComponent,\r\n SemConfirmDialogComponent,\r\n SemConfirmDialogComponent,\r\n SemSearchFieldsDialogComponent,\r\n SemGridDisplayFieldsDialogComponent,\r\n NotificationCenterComponent,\r\n ContainerWrapperComponent,\r\n SemVersionDialogComponent,\r\n SemParameterDialogComponent,\r\n SemCompareDialogComponent,\r\n WorkflowCenterComponent,\r\n SemUserProfileDialogComponent,\r\n SemMinMaxDirective,\r\n LoginComponent,\r\n LoginV2Component,\r\n PlatformRedirectComponent,\r\n LoginV3Component,\r\n SemFileExplorerDialogComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n CommonModule,\r\n MatDialogModule,\r\n DragDropModule,\r\n SemNavigationModule,\r\n //MatTooltipModule,\r\n SemSharedModule,\r\n NgxPhotoEditorModule,\r\n RouterModule.forRoot([\r\n { path: '', redirectTo: 'account/login', pathMatch: 'full' },\r\n {\r\n path: \"\",\r\n component: AppComponent,\r\n data: {\r\n breadcrumb: 'main'\r\n }\r\n },\r\n {\r\n path: \"platform\",\r\n component: PlatformRedirectComponent\r\n },\r\n {\r\n path: \"account/login\",\r\n component: environment.loginComponent,\r\n data: { breadcrumb: 'login' }\r\n }, \r\n {\r\n path: \"cms\",\r\n component: ContainerWrapperComponent,\r\n data: { \r\n breadcrumb: 'main' \r\n },\r\n children: [\r\n {\r\n path: 'notificationcenter',\r\n component: NotificationCenterComponent,\r\n canActivate: [AuthGuardService],\r\n data: {\r\n breadcrumb: 'galis_js_ActionCenter'\r\n },\r\n },\r\n {\r\n path: 'workflowcenter',\r\n component: WorkflowCenterComponent,\r\n canActivate: [AuthGuardService],\r\n data: {\r\n breadcrumb: 'galis_js_ActionCenter'\r\n },\r\n },\r\n /*{\r\n path: \"user-profile\",\r\n canActivate: [AuthGuardService],\r\n component: UserProfileCenterComponent,\r\n data: {\r\n breadcrumb: 'galis_js_UserProfileCenter' \r\n }\r\n },*/\r\n ]\r\n }\r\n ], { onSameUrlNavigation: 'reload' }\r\n )\r\n ],\r\n providers: [RouteNavigationService, SemLoaderComponent, SemDateFormatPipePipe, WindowRefService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configServiceFactory,\r\n deps: [Injector, RouteNavigationService], multi: true\r\n },\r\n {\r\n provide: UrlSerializer,\r\n useClass: CustomUrlSerializer\r\n },\r\n NavigationRequestModel,\r\n /*{\r\n provide: ErrorHandler,\r\n useClass: ErrorsHandler,\r\n },*/\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ServerErrorsInterceptor,\r\n multi: true\r\n }\r\n ],\r\n exports: [\r\n SemConfirmDialogComponent,\r\n SemSearchFieldsDialogComponent,\r\n //MatTooltipModule,\r\n SemGridDisplayFieldsDialogComponent,\r\n DragDropModule,\r\n SemSharedModule,\r\n NgxPhotoEditorModule,\r\n SemParameterDialogComponent,\r\n SemCompareDialogComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import {\r\n Directive, HostListener\r\n } from \"@angular/core\";\r\n \r\n @Directive({\r\n selector: \"[stop-click-propagation]\"\r\n })\r\n export class StopClickPropagation\r\n {\r\n @HostListener(\"click\", [\"$event\"])\r\n public onClick(event: any): void\r\n {\r\n event.stopPropagation(); \r\n }\r\n }","import { RouteNavigationService } from '../../../services/dynamic-routes-loader/route-navigation.service';\r\nimport { Component, OnInit, Injector, ViewChild, ElementRef, ComponentRef, Input } from '@angular/core';\r\nimport { NavigationNodeModel } from '../../../models/navigation/navigation-node-model';\r\nimport { NavigationRequestModel } from '../../../models/navigation/navigation-request-model';\r\nimport { NavigationResponseModel } from '../../../models/navigation/navigation-response-model';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { Observable, config } from \"rxjs\";\r\nimport { map, filter } from 'rxjs/operators';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '../../../../../node_modules/@angular/router';\r\nimport { SemLoaderComponent } from '../../../shared/components/sem-loader/sem-loader.component';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-sem-base',\r\n templateUrl: './sem-base.component.html',\r\n styleUrls: ['./sem-base.component.css']\r\n})\r\nexport class SemBaseComponent implements OnInit {\r\n\r\n loading: boolean = false;\r\n sidebarMenuOpened: boolean = false;\r\n breadcrumbs: any;\r\n @Input() mainFormGroup: FormGroup;\r\n\r\n constructor(public injector: Injector, public router: Router, public activatedRoute: ActivatedRoute, public dfms: DynamicFieldsManagerService,\r\n public utility : UtilityService, public formService:FormService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public get dynamicRoutesLoader(): RouteNavigationService { //this creates router property on your service.\r\n return this.injector.get(RouteNavigationService);\r\n }\r\n\r\n \r\n\r\n evaluateAction(source) {\r\n eval(source);\r\n }\r\n\r\n evaluateCondition(source) {\r\n return eval(source);\r\n }\r\n\r\n evaluateConditionForHiding(source, model) {\r\n\r\n if (typeof (model) != \"undefined\") {\r\n if (typeof (source) != \"undefined\" && source != null) {\r\n\r\n if (source.length > 0) {\r\n let res = eval(source);\r\n\r\n if (typeof res != \"undefined\" && res != null && res.length != 0 && res != false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n\r\n modelChanged(model){\r\n //console.log(\"Model changed, base component: \", model);\r\n }\r\n}\r\n","import { Component, OnInit, Injector, ChangeDetectorRef, inject } from '@angular/core';\r\nimport { SemBaseComponent } from '../sem-base/sem-base.component';\r\nimport { NavigationNodeModel } from '../../../models/navigation/navigation-node-model';\r\nimport { NavigationRequestModel } from '../../../models/navigation/navigation-request-model';\r\nimport { NavigationResponseModel } from '../../../models/navigation/navigation-response-model';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { Router, ActivatedRoute } from '../../../../../node_modules/@angular/router';\r\nimport { RouteNavigationService } from '../../../services/dynamic-routes-loader/route-navigation.service';\r\nimport { SemDynamicComponent } from '../../../shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { Location } from '../../../../../node_modules/@angular/common';\r\nimport { SemDateFormatPipePipe } from '../../../shared/helpers/pipes/sem-date-format-pipe.pipe';\r\nimport { FileUploadService } from 'src/app/services/file-upload-service/file-upload.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ExportService } from 'src/app/services/export/export.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { LoaderServiceService } from 'src/app/services/loader-service/loader-service.service';\r\nimport { LocalStorageService } from '../../../services/local-storage-service/local-storage.service';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\nimport { FileUploadStandaloneService } from '../../../services/file-upload-standalone/file-upload-standalone.service';\r\n\r\ndeclare var navigationPreFunctions: any;\r\ndeclare var navigationPostFunctions: any;\r\n\r\n@Component({\r\n selector: 'app-sem-navigation',\r\n templateUrl: './sem-navigation.component.html',\r\n styleUrls: ['./sem-navigation.component.css']\r\n})\r\nexport class SemNavigationComponent extends SemDynamicComponent implements OnInit {\r\n\r\n restProvider: RestProviderService;\r\n url: string;\r\n model: RequestModel;\r\n request: NavigationRequestModel;\r\n result: NavigationResponseModel[];\r\n\r\n constructor(public injector: Injector, public router: Router, public changeDet: ChangeDetectorRef) {\r\n super(\r\n injector,\r\n injector.get(RestProviderService),\r\n injector.get(RequestModel), \r\n injector.get(Router), \r\n injector.get(ActivatedRoute), \r\n injector.get(Location), \r\n injector.get(SemDateFormatPipePipe), \r\n injector.get(FileUploadService),\r\n injector.get(MatDialog),\r\n injector.get(ExportService),\r\n injector.get(SearchService),\r\n injector.get(TranslationsProviderService),\r\n injector.get(ChangeDetectorRef),\r\n injector.get(LoaderServiceService),\r\n injector.get(ActionsService),\r\n injector.get(LocalStorageService),\r\n injector.get(FormService),\r\n injector.get(FileUploadStandaloneService));\r\n this.restProvider = injector.get(RestProviderService);\r\n this.model = injector.get(RequestModel);\r\n this.request = injector.get(NavigationRequestModel);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n preJS(item: any, functionName: string) {\r\n if (typeof navigationPreFunctions[functionName] != \"undefined\") {\r\n let preResult = navigationPreFunctions[functionName](item);\r\n\r\n if (typeof preResult != \"undefined\" && preResult != null) {\r\n\r\n //return apiCall(preResult);\r\n\r\n }\r\n\r\n }\r\n\r\n return null;\r\n\r\n }\r\n\r\n postJS(item: any, functionName: string) {\r\n if (typeof navigationPostFunctions[functionName] != \"undefined\") {\r\n let postResult = navigationPostFunctions[functionName](item);\r\n\r\n if (typeof postResult != \"undefined\" && postResult != null) {\r\n\r\n //return this.apiCall(postResult);\r\n\r\n }\r\n\r\n }\r\n\r\n return null;\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Injector, ChangeDetectorRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { RouteNavigationService } from 'src/app/services/dynamic-routes-loader/route-navigation.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { SemBaseComponent } from 'src/app/components/common/sem-base/sem-base.component';\r\n\r\n@Component({\r\n selector: 'app-container-wrapper',\r\n templateUrl: './container-wrapper.component.html',\r\n styleUrls: ['./container-wrapper.component.css']\r\n})\r\nexport class ContainerWrapperComponent extends SemBaseComponent implements OnInit {\r\n\r\n super(){\r\n \r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onTextChange(value){\r\n\r\n }\r\n\r\n sidebarChanged(event) {\r\n this.sidebarMenuOpened = event;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ContainerWrapperComponent } from '../../container-wrapper/container-wrapper/container-wrapper.component';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { SemDynamicComponent } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { SemDynamicControlComponent } from 'src/app/components/controls/shared/sem-dynamic-control/sem-dynamic-control.component';\r\nimport { type } from 'os';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { parse } from 'querystring';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport * as moment from 'moment';\r\nimport { SemSearchComponent } from 'src/app/components/controls/sem-search/sem-search.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { NavigationRequestModel } from '../../../../models/navigation/navigation-request-model';\r\nimport { UserSearchSettingModel } from '../../../../models/search/user-search-setting-model';\r\nimport { NavigationNodeSerializer } from '../../../../models/serializing/navigation-node-serializer';\r\nimport { NavigationResponseModel } from '../../../../models/navigation/navigation-response-model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SemParameterDialogComponent } from '../../../controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SortFieldModel } from 'src/app/models/search/sort-field.model';\r\nimport { HttpResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-notification-center',\r\n templateUrl: './notification-center.component.html',\r\n styleUrls: ['./notification-center.component.css']\r\n})\r\nexport class NotificationCenterComponent extends ContainerWrapperComponent implements OnInit, OnDestroy {\r\n\r\n ngOnDestroy(): void {\r\n this.paginationSubs.unsubscribe();\r\n }\r\n\r\n super() { }\r\n\r\n acceptDD: boolean = false;\r\n\r\n items: any[] = [];\r\n paging: Number[] = [];\r\n currentItem: any = null;\r\n currentTaskOutcome: any = null;\r\n selectedItems: any[] = null;\r\n today = new Date();\r\n time = new Date();\r\n showButtons: boolean = true;\r\n currentPage: Number = 1;\r\n currentPageSize: Number = 5;\r\n public restService: RestProviderService = null;\r\n public changeDetection: ChangeDetectorRef = null;\r\n public actionsService: ActionsService = null;\r\n public translationService: TranslationsProviderService = null;\r\n paginationSubs: Subscription;\r\n numberOfPagesValue: any;\r\n formActions: any[] = [];\r\n totalItems: number = 0;\r\n previousPage = 0;\r\n nextPage = 0;\r\n totalPages = 1;\r\n pages: any[] = [];\r\n itemsLoaded: boolean = true;\r\n searchService = this.injector.get(SearchService); \r\n private alreadyOpened: any[] = [];\r\n dialog: any = null;\r\n private checkboxAllItemsChecked: boolean = false;\r\n private checkedBulkItemStatus: any = {};\r\n private checkedBulkItems: any = [];\r\n searchPerformedSubs = null;\r\n private sortingFlags: any = []\r\n private currentSortFields: any = []\r\n private taskModelName = \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\";\r\n\r\n @ViewChild(\"dynComp\", { read: SemDynamicControlComponent }) dynComp: SemDynamicControlComponent;\r\n @ViewChild(\"searchBar\", { read: SemSearchComponent }) searchComponent: SemSearchComponent;\r\n\r\n \r\n\r\n ngOnInit() { \r\n \r\n this.refreshTime();\r\n setInterval(this.refreshTime, 10000);\r\n this.numberOfPagesValue = 10;\r\n\r\n this.translationService = this.injector.get(TranslationsProviderService);\r\n this.restService = this.injector.get(RestProviderService);\r\n this.changeDetection = this.injector.get(ChangeDetectorRef);\r\n this.actionsService = this.injector.get(ActionsService);\r\n this.items = [];\r\n //this.loadItems();\r\n\r\n var searchService = this.injector.get(SearchService);\r\n this.dialog = this.injector.get(MatDialog);\r\n\r\n this.paginationSubs = searchService.currentPagination.subscribe(value => {\r\n\r\n if (value != null && typeof value != \"undefined\") {\r\n\r\n this.totalItems = value.totalCount;\r\n this.pages = [];\r\n\r\n // convert to int \r\n let totalCountNumber = value.totalCount;\r\n let currentPage = value.page;\r\n\r\n if (totalCountNumber == 0) {\r\n this.pages.push({ \"Number\": 1, \"Active\": true });\r\n } else {\r\n\r\n var ps: number = + searchService.pageSize;\r\n let pageNum = (totalCountNumber + ps - 1) / ps;\r\n pageNum = Math.floor(pageNum);\r\n\r\n let from = 0;\r\n let to = pageNum;\r\n this.totalPages = pageNum;\r\n\r\n from = currentPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n\r\n to = from + 5;\r\n\r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n\r\n this.previousPage = currentPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n\r\n this.nextPage = currentPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n\r\n for (let i = from; i < to; i++) {\r\n\r\n let active = false;\r\n if (i == currentPage) {\r\n active = true;\r\n }\r\n\r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n\r\n }\r\n }); \r\n\r\n this.searchPerformedSubs = this.searchService.currentSearchExecuted.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\" && value != null) {\r\n // if search was performed\r\n // clear all checked document ids for bulk action\r\n this.checkedBulkItems = [];\r\n this.checkedBulkItemStatus = {};\r\n }\r\n });\r\n\r\n let UserSearchSetting = new UserSearchSettingModel;\r\n UserSearchSetting.View = { \"Id\": 1 };\r\n UserSearchSetting.ModelName = this.taskModelName;\r\n\r\n this.loadFormActions(\"top-list-action\", UserSearchSetting);\r\n\r\n\r\n this.sortingFlags[\"DateCreated\"] = {\"ShowSort\":false, \"SortingUsed\":false, \"SortDirection\":0};\r\n this.sortingFlags[\"DueDate\"] = {\"ShowSort\":false, \"SortingUsed\":false, \"SortDirection\":0};\r\n this.sortingFlags[\"Complete\"] = {\"ShowSort\":false, \"SortingUsed\":false, \"SortDirection\":0};\r\n }\r\n\r\n \r\n checkboxBulkCheckAllItems() {\r\n\r\n // change to reverse value\r\n this.checkboxAllItemsChecked = !this.checkboxAllItemsChecked;\r\n var items = this.searchComponent?.model?.Models\r\n\r\n if (items != null && typeof items != \"undefined\") {\r\n for (var i = 0; i < items.length; i++) {\r\n this.checkboxBulkItemClicked(items[i], true, this.checkboxAllItemsChecked, false);\r\n }\r\n } \r\n }\r\n\r\n checkboxBulkItemClicked(object, allCheckedFunction: boolean = false, allItemsChecked: boolean = false, oneItemClick: boolean = true) {\r\n\r\n if (typeof object != \"undefined\" && object != null) {\r\n var documentId = this.resolvePropertyBinding(object, \"Id\");\r\n var modelName = \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\";\r\n var index = this.checkedBulkItems.findIndex(x => x.Id == documentId);\r\n\r\n // check if already in\r\n if (index >= 0) {\r\n \r\n // if all checked, but this already checked, dont remove\r\n if(!allCheckedFunction || !allItemsChecked){\r\n // user unchecked\r\n // remove from \r\n this.checkedBulkItems.splice(index, 1);\r\n this.checkedBulkItemStatus[documentId] = false;\r\n } \r\n } else {\r\n \r\n if(!allItemsChecked){\r\n if(oneItemClick){\r\n this.checkedBulkItems.push({ \"Id\": documentId, \"ApplicationModelName\": modelName });\r\n this.checkedBulkItemStatus[documentId] = true; \r\n }\r\n }else{\r\n // user checked\r\n // add\r\n this.checkedBulkItems.push({ \"Id\": documentId, \"ApplicationModelName\": modelName });\r\n this.checkedBulkItemStatus[documentId] = true;\r\n } \r\n }\r\n // save current checked bulk items\r\n this.searchService.setCurrentCheckedBulkDocuments(this.checkedBulkItems);\r\n }\r\n }\r\n\r\n getCondition(action) {\r\n try {\r\n if (action.NavigationNodeRule) {\r\n if (action.NavigationNodeRule.Condition != null && typeof action.NavigationNodeRule.Condition != \"undefined\" && action.NavigationNodeRule.Condition.length > 0) {\r\n return eval(action.NavigationNodeRule.Condition);\r\n }\r\n }\r\n\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n // this method is for purposes of action with children (but in some cases children are hiden based on condition and in that case action is shown without children - that action is useless in that case, so we dont need to show it)\r\n getActionFilteredChildrenCount(action){ \r\n\r\n let children = 0;\r\n\r\n if(action.Children == null || typeof action.Children == \"undefined\"){\r\n children = 0;\r\n }else{\r\n children = action.Children.length;\r\n }\r\n\r\n // if action is only set as parent and has no children then return 0\r\n if(action.IsOnlyParent == true && children == 0){\r\n return 0;\r\n }\r\n\r\n // if action has no children show on UI\r\n if(children < 1){\r\n return 1;\r\n }\r\n\r\n // if action has children show on UI only if at least on children can be shown (based on children condition)\r\n if(action.Children != null && typeof action.Children != \"undefined\" && action.Children.length > 0){\r\n for(var i = 0; i < action.Children.length; i++){\r\n var child = action.Children[i];\r\n if(child != null && typeof child != \"undefined\"){\r\n var show = this.getCondition(child);\r\n if(show == true){ \r\n return 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n getFilteredChildren(children) {\r\n\r\n var newFiltered = [];\r\n if (children != null && typeof children != \"undefined\") {\r\n for (var i = 0; i < children.length; i++) {\r\n var show = this.getCondition(children[i]);\r\n if (show) {\r\n newFiltered.push(children[i]);\r\n }\r\n }\r\n }\r\n\r\n return newFiltered;\r\n }\r\n\r\n getActionBody(action) {\r\n\r\n let actionService = this.injector.get(ActionsService);\r\n\r\n if (action.NavigationNodeRule) {\r\n //eval(action.NavigationNodeRule.ActionBody);\r\n // if form actions has parameter form linked then we should first show popup with parameter form\r\n if (action.NavigationNodeRule.FormAction.ParameterForm != null && typeof action.NavigationNodeRule.FormAction.ParameterForm != \"undefined\" && action.NavigationNodeRule.FormAction.ParameterForm.Id > 0) {\r\n var reportId = null;\r\n if(action.NavigationNodeRule.FormAction.ParameterForm.Report != null && typeof action.NavigationNodeRule.FormAction.ParameterForm.Report != \"undefined\" ){\r\n reportId = action.NavigationNodeRule.FormAction.ParameterForm.Report.Id;\r\n }\r\n\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: {\r\n parameterFormId: action.NavigationNodeRule.FormAction.ParameterForm.Id,\r\n reportId: reportId,\r\n customHeaderTitle: action.NavigationNodeRule.FormAction.ParameterForm.CustomHeaderTitle,\r\n customCssClass: action.NavigationNodeRule.FormAction.ParameterForm.CustomCssClass \r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n // only call action if parameter popup was confirmed (not cancled - close button)\r\n if (returnData.Canceled == false) {\r\n var inputParametersModel = returnData[\"Model\"];\r\n actionService.callAction(action.NavigationNodeRule.FormAction, {}, null, null, this, action.BulkAction, inputParametersModel, action.NavigationNodeRule.FormAction.OnlyClientLogic, false, action.BulkExport, action.NavigationNodeRule.FormAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n });\r\n } else {\r\n // just call action without parameters form popup\r\n actionService.callAction(action.NavigationNodeRule.FormAction, {}, null, null, this, action.BulkAction, null, action.NavigationNodeRule.FormAction.OnlyClientLogic, false, action.BulkExport, action.NavigationNodeRule.FormAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n sortDropDownClick(name, event) {\r\n event.stopPropagation();\r\n if (this.sortingFlags[name][\"ShowSort\"]) {\r\n this.sortingFlags[name][\"ShowSort\"] = false;\r\n } else {\r\n this.sortingFlags[name][\"ShowSort\"] = true;\r\n }\r\n return false;\r\n }\r\n\r\n setColumnSorting(name, direction, event) {\r\n event.stopPropagation();\r\n this.sortingFlags[name][\"SortingUsed\"] = true;\r\n this.sortingFlags[name][\"SortDirection\"] = direction;\r\n // hide \r\n this.sortingFlags[name][\"ShowSort\"] = false;\r\n\r\n\r\n // add to current sort field if doesn't already exists\r\n // if exists just update sort direction\r\n let index = this.currentSortFields.findIndex(x => x.FieldName == name);\r\n if (index >= 0) {\r\n // if new direction is same as current then ignore it\r\n if (this.currentSortFields[index].SortDirection != direction) {\r\n this.currentSortFields[index].SortDirection = direction;\r\n // update observable\r\n this.searchService.changeSortFields(this.currentSortFields);\r\n }\r\n } else {\r\n this.currentSortFields.push(new SortFieldModel(direction, name, this.taskModelName));\r\n this.searchService.changeSortFields(this.currentSortFields);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n loadFormActions(context, userSearchSetting: UserSearchSettingModel) {\r\n\r\n let request = new NavigationRequestModel;\r\n let rModel = new RequestModel\r\n\r\n rModel.url = \"/api/navigation/getNodes\";\r\n request.context = context;\r\n request.depth = 0;\r\n request.rootNode = null;\r\n\r\n if (typeof userSearchSetting != \"undefined\" && userSearchSetting != null) {\r\n request.UserSearchSetting = userSearchSetting;\r\n }\r\n\r\n request.dynamicFormId = parseInt(\"3389-List\".split(\"-\")[0]);\r\n\r\n rModel.data = request;\r\n\r\n this.restService.serializer = new NavigationNodeSerializer;\r\n\r\n this.restService.getDataPOST(rModel).subscribe(\r\n data => {\r\n this.formActions = data; \r\n },\r\n error => {\r\n console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n } \r\n\r\n changeNumberOfPages(event) {\r\n\r\n this.searchService.changePageSize(event.target.value);\r\n this.numberOfPagesValue = event.target.value; \r\n }\r\n \r\n refreshTime() {\r\n var targetTime = new Date();\r\n var n = targetTime.getTimezoneOffset();\r\n var timezone = n / -60;\r\n var tzDifference = timezone * 60 + targetTime.getTimezoneOffset();\r\n var currentItem = new Date(targetTime.getTime() + tzDifference * 60 * 1000);\r\n if(currentItem != null && typeof currentItem != \"undefined\"){\r\n let minutes = currentItem.getMinutes();\r\n let timeString = \"\";\r\n if(minutes < 10){\r\n timeString = currentItem.getHours() + \":0\"+minutes;\r\n }else{\r\n timeString = currentItem.getHours() + \":\" + minutes;\r\n }\r\n\r\n \t\r\n if(document.getElementById(\"time\") != null){\t\r\n document.getElementById(\"time\").innerHTML = timeString;\t\r\n } \r\n }\r\n }\r\n\r\n pageChanged(pageNum) {\r\n this.searchService.changeSearchPage(pageNum);\r\n }\r\n\r\n toLastPage() {\r\n if (this.totalPages < 1) {\r\n this.totalPages = 1;\r\n }\r\n this.searchService.changeSearchPage(this.totalPages);\r\n }\r\n\r\n toFirstPage() {\r\n this.searchService.changeSearchPage(1);\r\n } \r\n\r\n checkIfTaskHasFile(task){\r\n\r\n if(task && task.TaskFiles && task.TaskFiles.length > 0){\r\n return true;\r\n }\r\n\r\n return false;\r\n } \r\n\r\n checkIfOpened(task) {\r\n var index = this.alreadyOpened.findIndex(x => x == task.Id);\r\n if (index >= 0) {\r\n return true;\r\n }\r\n\r\n if(task.FirstOpenDate != null && typeof task.FirstOpenDate != \"undefined\"){\r\n return true;\r\n }\r\n\r\n if (task.CanOpenIfComplete == null || typeof task.CanOpenIfComplete == \"undefined\" && task.CanOpenIfComplete == false) {\r\n if (task.Complete) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n accept() {\r\n this.acceptDD = !this.acceptDD;\r\n this.changeDetection.detectChanges();\r\n\r\n this.restService.getDataGET(\"api/task/gettask/\" + this.currentItem[\"Id\"]).subscribe(data => {\r\n this.currentItem = JSON.parse(data);\r\n if (typeof this.currentItem[\"TaskOutcomes\"] != \"undefined\" && this.currentItem[\"TaskOutcomes\"]) {\r\n if (this.currentItem[\"TaskOutcomes\"].length == 1) {\r\n this.currentTaskOutcome = this.currentItem[\"TaskOutcomes\"][0];\r\n this.executeOutcome(this.currentTaskOutcome);\r\n }\r\n }\r\n }, error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n executeOutcome(outcome) {\r\n this.currentTaskOutcome = outcome;\r\n\r\n if (typeof (this.dynComp.cmpRef) != \"undefined\" && this.dynComp.cmpRef != null) {\r\n if (typeof (this.dynComp.cmpRef.instance) != \"undefined\" && this.dynComp.cmpRef.instance != null) {\r\n let cModel = this.dynComp.cmpRef.instance.model;\r\n this.dynComp.model = this.dynComp.cmpRef.instance.model;\r\n if (typeof outcome[\"Action\"] != \"undefined\" && outcome[\"Action\"] != null) {\r\n this.actionsService.callAction(outcome[\"Action\"], cModel, null, this.actionExecuted.bind(this), this, false, null, outcome.Action.OnlyClientLogic, true);\r\n } else {\r\n this.actionExecuted(null, null);\r\n }\r\n } else {\r\n this.actionExecuted(null, null);\r\n }\r\n } else {\r\n if (typeof outcome[\"Action\"] != \"undefined\" && outcome[\"Action\"] != null) {\r\n var preJS = outcome[\"Action\"][\"PreJS\"];\r\n if (typeof preJS != \"undefined\" && preJS) {\r\n if (preJS.length > 0) {\r\n eval(preJS);\r\n }\r\n }\r\n }\r\n this.actionExecuted(null, null);\r\n }\r\n } \r\n\r\n checkIfCurrentClick(task){\r\n if(this.currentItem != null && typeof this.currentItem != \"undefined\"){\r\n if(this.currentItem.Id == task.Id){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private currentClickedTaskId: number = 0;\t\r\n itemSelectedInTable(obj, event) {\t\r\n //console.log(\"Item selected: \", item.srcElement[\"checked\"]);\t\r\n let item = event.currentTarget.cells[0].children[0]; \t\r\n this.resetCBs(); \t\r\n if (!this.checkIfOpened(obj.Id)) {\t\r\n this.restService.getDataGET(\"api/task/opened/\" + obj.Id, \"application/json\").subscribe(data => {\t\r\n this.alreadyOpened.push(obj.Id);\t\r\n });\t\r\n }\t\r\n this.currentItem = null;\t\r\n this.currentTaskOutcome = null;\t\r\n this.changeDetection.detectChanges();\t\r\n if (this.currentClickedTaskId != obj.Id) {\t\r\n this.currentItem = obj;\t\r\n this.currentClickedTaskId = obj.Id;\t\r\n }else if(this.currentClickedTaskId == obj.Id){\t\r\n // set to 0 if clicked twice in a row\t\r\n // because if clicked for 3rd time then it will show again\t\r\n this.currentClickedTaskId = 0;\t\r\n }\t\r\n if (this.currentItem != null && typeof this.currentItem != \"undefined\" && this.currentItem.ShowMessageOnly) {\t\r\n this.showButtons = false;\t\r\n } else {\t\r\n this.showButtons = true;\t\r\n }\t\r\n }\r\n\r\n closePopup(){\r\n\r\n this.currentItem = null;\r\n this.currentTaskOutcome = null;\r\n this.resetCBs();\r\n\r\n }\r\n\r\n resetCBs() {\r\n let table = document.getElementsByClassName(\"sem-noti-check-box\");\r\n\r\n for (var i = 0; i < table.length; i++) {\r\n table[i][\"checked\"] = false;\r\n }\r\n }\r\n\r\n checkDateCreated(task) {\r\n if (task != null && typeof task != \"undefined\" && task.DateCreated != null && typeof task.DateCreated != \"undefined\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n checkDueDate(task) {\r\n if (task != null && typeof task != \"undefined\" && task.DueDate != null && typeof task.DueDate != \"undefined\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n actionExecuted(model, error) {\r\n if (error != null && typeof (error) != \"undefined\") {\r\n return;\r\n }\r\n\r\n if (typeof (model) != \"undefined\" && model != null) {\r\n\r\n var rModel = model[\"Model\"];\r\n\r\n if (rModel != null && typeof rModel != \"undefined\") {\r\n rModel[\"SerializationObjectFormLink\"] = this.dynComp.model[\"SerializationObjectFormLink\"];\r\n this.dynComp.model = rModel;\r\n this.dynComp.cmpRef.instance.model = this.dynComp.model;\r\n this.currentItem[\"EntityID\"] = rModel[\"Id\"];\r\n }\r\n }\r\n\r\n this.currentItem[\"Complete\"] = true;\r\n this.currentItem[\"Result\"] = this.currentTaskOutcome[\"OutcomeText\"];\r\n\r\n let entityId = this.currentItem[\"EntityID\"];\r\n\r\n if (entityId == 0) {\r\n entityId = null;\r\n }\r\n\r\n var fModel = new RequestModel;\r\n fModel.data =\r\n {\r\n TaskId: this.currentItem[\"TaskID\"],\r\n Result: this.currentItem[\"Result\"],\r\n Completed: this.currentItem[\"Complete\"],\r\n EntityID: entityId\r\n };\r\n fModel.url = \"api/task\";\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.restService.getDataPOST(fModel).subscribe(data => {\r\n //console.log(\"Task saved \", data);\r\n setTimeout(() => {\r\n },1000);\r\n \r\n DynamicLoadingUtil.loader.showLoader = false;\r\n // hide task popup buttons after task is completed\r\n this.showButtons = false;\r\n //this.loadItems();\r\n\r\n this.searchComponent.searchProjection = [\"Id\", \"Title\", \"Description\", \"DueDate\", \"DateCreated\", \"Complete\", \"Result\", \"TaskFiles\", \"TaskOutcomes\"];\r\n this.searchComponent.performSearch(true);\r\n\r\n for (var i = 0; i < this.searchComponent.model.Models.length; i++) {\r\n if (this.searchComponent.model.Models[\"Id\"] == this.currentItem[\"Id\"]) {\r\n this.searchComponent.model.Models[\"Complete\"] = true;\r\n }\r\n }\r\n\r\n this.currentItem = null;\r\n }, error => {\r\n //console.log(\"Error while saving task: \", error);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n }\r\n\r\n decline() {\r\n this.currentItem = null;\r\n this.currentTaskOutcome = null;\r\n }\r\n\r\n //downloadTaskFile(task) {\r\n\r\n // //if (task != null && typeof task != \"undefined\") {\r\n // // var model: RequestModel = new RequestModel;\r\n // // model.url = \"api/files/get/processedresultexcel/\"+task.Id;\r\n\r\n // // this.restService.getDataPOST(model).subscribe(data => {\r\n // // const linkSource = `data:${data[\"MimeType\"]};base64,${data[\"Content\"]}`;\r\n // // const downloadLink = document.createElement('a');\r\n // // document.body.appendChild(downloadLink);\r\n // // downloadLink.href = linkSource;\r\n // // downloadLink.target = '_self';\r\n // // downloadLink.download = data[\"FileName\"];\r\n // // downloadLink.click();\r\n // // });\r\n // //}\r\n\r\n // if (task != null && typeof task != \"undefined\") {\r\n\r\n // var filename;\r\n\r\n // if (task.TaskFiles != null && task.TaskFiles.length > 0) {\r\n // filename = task.TaskFiles[0].FileName;\r\n // }\r\n\r\n // //DynamicLoadingUtil.loader.showLoader = true;\r\n \r\n // let url = \"api/files/taskfile/\" + task.Id;\r\n // this.restService.downloadFile(url, filename);\r\n // //this.restService.getDataGET(url, \"blob\").subscribe((data: Blob) => { \r\n\r\n // // const downloadLink = document.createElement('a');\r\n // // downloadLink.href = window.URL.createObjectURL(data);\r\n // // downloadLink.download = filename;\r\n // // downloadLink.click();\r\n // // window.URL.revokeObjectURL(downloadLink.href);\r\n // // downloadLink.remove();\r\n\r\n\r\n // // DynamicLoadingUtil.loader.showLoader = false;\r\n // //}, error => {\r\n // // DynamicLoadingUtil.loader.showLoader = false;\r\n // //});\r\n\r\n // }\r\n\r\n //}\r\n\r\n async downloadTaskFile(task) {\r\n\r\n if (task != null && typeof task != \"undefined\") {\r\n\r\n var filename;\r\n\r\n if (task.TaskFiles != null && task.TaskFiles.length > 0) {\r\n filename = task.TaskFiles[0].FileName;\r\n }\r\n \r\n let url = \"api/files/taskfile/\" + task.Id;\r\n\r\n this.restService.fileDownload(url).subscribe(async (event) => {\r\n let data = event as HttpResponse;\r\n\r\n const downloadedFile = new Blob([data.body as BlobPart], {\r\n type: data.body?.type\r\n });\r\n \r\n if (downloadedFile.type != \"\") {\r\n const a = document.createElement('a');\r\n a.setAttribute('style', 'display:none;');\r\n document.body.appendChild(a);\r\n a.download = filename;\r\n a.href = URL.createObjectURL(downloadedFile);\r\n a.target = '_blank';\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n });\r\n } \r\n\r\n }\r\n}\r\n","import { Component, OnInit, Input, Injector, Output } from '@angular/core';\r\nimport { Http } from '../../../../../node_modules/@angular/http';\r\nimport { HttpClient } from '../../../../../node_modules/@types/selenium-webdriver/http';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { Router, ActivatedRoute } from '../../../../../node_modules/@angular/router';\r\nimport { DomSanitizer } from '../../../../../node_modules/@angular/platform-browser';\r\nimport { EventEmitter } from 'events';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-sem-dashboard-container',\r\n templateUrl: './sem-dashboard-container.component.html',\r\n styleUrls: ['./sem-dashboard-container.component.css']\r\n})\r\nexport class SemDashboardContainerComponent extends SemBaseComponent implements OnInit {\r\n\r\n private myTemplate: any = \"\";\r\n @Input() url: string; \r\n\r\n public translationService = null;\r\n private searchService = null;\r\n\r\n upcomingTransfers: any[] = [];\r\n courtJudgements: any[] = [];\r\n offenderProfiles: any[] = [];\r\n searchTerm: string;\r\n\r\n private searchServiceSubscriber = null;\r\n private defaultCJISearchQuery = \"{\\\"Projection\\\":[\\\"Id\\\",\\\"Title\\\"],\\\"TreeQuery\\\":{\\\"Type\\\":\\\"FieldValue\\\",\\\"FieldName\\\":\\\"*\\\",\\\"FieldValue\\\":\\\"*\\\"},\\\"ClassTypes\\\":[\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.CourtJudgementInformationModel\\\"],\\\"Page\\\":\\\"1\\\",\\\"PageSize\\\":5,\\\"RepositoryName\\\":\\\"lucene\\\",\\\"UseCache\\\":false,\\\"SortFields\\\":[{\\\"Direction\\\":1,\\\"FieldName\\\":\\\"LastChangeDate\\\",\\\"RootClassName\\\":\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.CourtJudgementInformationModel\\\"}]}\"\r\n private defaultOffendersSearchQuery = \"{\\\"Projection\\\":[\\\"Id\\\",\\\"Person.Title\\\"],\\\"TreeQuery\\\":{\\\"Type\\\":\\\"FieldValue\\\",\\\"FieldName\\\":\\\"*\\\",\\\"FieldValue\\\":\\\"*\\\"},\\\"ClassTypes\\\":[\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.OffenderProfileModel\\\"],\\\"Page\\\":\\\"1\\\",\\\"PageSize\\\":10,\\\"RepositoryName\\\":\\\"lucene\\\",\\\"UseCache\\\":false,\\\"SortFields\\\":[{\\\"Direction\\\":1,\\\"FieldName\\\":\\\"LastChangeDate\\\",\\\"RootClassName\\\":\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.OffenderProfileModel\\\"}]}\"\r\n private defaultTransfersSearchQuery = \"{\\\"Projection\\\":[\\\"Id\\\",\\\"Title\\\"],\\\"TreeQuery\\\":{\\\"Type\\\":\\\"FieldValue\\\",\\\"FieldName\\\":\\\"*\\\",\\\"FieldValue\\\":\\\"*\\\"},\\\"ClassTypes\\\":[\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Probation.OffenderTransferModel\\\"],\\\"Page\\\":\\\"1\\\",\\\"PageSize\\\":5,\\\"RepositoryName\\\":\\\"lucene\\\",\\\"UseCache\\\":false,\\\"SortFields\\\":[{\\\"Direction\\\":1,\\\"FieldName\\\":\\\"LastChangeDate\\\",\\\"RootClassName\\\":\\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Probation.OffenderTransferModel\\\"}]}\"\r\n\r\n constructor(public http: RestProviderService, private _injector: Injector, private _sanitizer: DomSanitizer, activatedRoute: ActivatedRoute, translationService: TranslationsProviderService, searchService: SearchService, formService:FormService) {\r\n super(_injector, _injector.get(Router), activatedRoute,_injector.get(DynamicFieldsManagerService),_injector.get(UtilityService),_injector.get(FormService));\r\n \r\n this.searchService = searchService;\r\n this.translationService = translationService;\r\n \r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n if (this.http.currentUser != \"undefined\" && this.http.currentUser != null) {\r\n if (this.http.currentUser[\"Username\"] != \"anonymous\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n /* http.getDataGET(\"templates/UZ_DashboardTemplate\").subscribe((html: any) => {\r\n this.myTemplate = _sanitizer.bypassSecurityTrustHtml(html);\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n }, error => { console.log(error); }); */\r\n } else {\r\n window.location.href = \"/account/login?returnUrl=/cms/dashboard\";\r\n }\r\n }\r\n else {\r\n window.location.href = \"/account/login?returnUrl=/cms/dashboard\";\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.sidebarMenuOpened = true; \r\n \r\n this.searchServiceSubscriber = this.searchService.performSearch(JSON.parse(this.defaultOffendersSearchQuery), null).subscribe(data => { \r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.offenderProfiles.push({\r\n\r\n \"Id\":data[\"Models\"][i].Model.Id,\r\n \"Title\": data[\"Models\"][i].Model.Person.Title\r\n }); \r\n } \r\n }, error => { \r\n });\r\n\r\n\r\n this.searchServiceSubscriber = this.searchService.performSearch(JSON.parse(this.defaultCJISearchQuery), null).subscribe(data => { \r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.courtJudgements.push({\r\n\r\n \"Id\":data[\"Models\"][i].Model.Id,\r\n \"Title\": data[\"Models\"][i].Model.Title\r\n }); \r\n } \r\n }, error => { \r\n });\r\n\r\n this.searchServiceSubscriber = this.searchService.performSearch(JSON.parse(this.defaultTransfersSearchQuery), null).subscribe(data => { \r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.upcomingTransfers.push({\r\n\r\n \"Id\":data[\"Models\"][i].Model.Id,\r\n \"Title\": data[\"Models\"][i].Model.Title\r\n }); \r\n } \r\n }, error => { \r\n });\r\n\r\n }\r\n\r\n isMenuOpened() { }\r\n\r\n \r\n\r\n navigate(url: string) {\r\n this.utility.processNavigationUrl(url);\r\n } \r\n\r\n navigateToDetails(url:string, item: any){\r\n let detailsUrl = url + item[\"Id\"];\r\n this.utility.processNavigationUrl(detailsUrl);\r\n }\r\n\r\n sidebarChanged(event) {\r\n this.sidebarMenuOpened = event;\r\n }\r\n\r\n dashboardSearch(event){ \r\n let urlsearch = \"cms/ppmscis/list?model=Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.CourtJudgementInformationModel&url=cms/probation/courtjudgementinformation&view=1&search=\" + event.target.value + \"*\";\r\n this.utility.processNavigationUrl(urlsearch);\r\n }\r\n\r\n goToSearch(){\r\n if(typeof this.searchTerm == \"undefined\"){\r\n this.searchTerm = \"\";\r\n }\r\n let urlsearch = \"cms/ppmscis/list?model=Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.CourtJudgementInformationModel&url=cms/probation/courtjudgementinformation&view=1&search=\" + this.searchTerm+\"*\";\r\n this.utility.processNavigationUrl(urlsearch);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sem-not-found',\r\n templateUrl: './sem-not-found.component.html',\r\n styleUrls: ['./sem-not-found.component.css']\r\n})\r\nexport class SemNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { SemDynamicComponent } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { SemDynamicControlComponent } from 'src/app/components/controls/shared/sem-dynamic-control/sem-dynamic-control.component';\r\nimport { type } from 'os';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { parse } from 'querystring';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { ContainerWrapperComponent } from '../container-wrapper/container-wrapper/container-wrapper.component';\r\n\r\n@Component({\r\n selector: 'app-notification-center',\r\n templateUrl: './workflow-center.component.html',\r\n styleUrls: ['./workflow-center.component.css']\r\n})\r\nexport class WorkflowCenterComponent extends ContainerWrapperComponent implements OnInit {\r\n\r\n super() { }\r\n\r\n acceptDD: boolean = false;\r\n\r\n items: any[] = [];\r\n paging: Number[] = [];\r\n currentItem: any = null;\r\n currentTaskOutcome: any = null;\r\n selectedItems: any[] = null;\r\n today = new Date();\r\n showButtons: boolean = true;\r\n currentPage: Number = 1;\r\n currentPageSize: number = 5;\r\n public restService:RestProviderService = null;\r\n public changeDetection:ChangeDetectorRef = null;\r\n public actionsService:ActionsService = null;\r\n public translationService:TranslationsProviderService = null;\r\n\r\n private alreadyOpened: any[] = [];\r\n\r\n @ViewChild(\"dynComp\", { read: SemDynamicControlComponent }) dynComp: SemDynamicControlComponent;\r\n\r\n ngOnInit() {\r\n this.translationService = this.injector.get(TranslationsProviderService);\r\n this.restService = this.injector.get(RestProviderService);\r\n this.changeDetection = this.injector.get(ChangeDetectorRef);\r\n this.actionsService = this.injector.get(ActionsService);\r\n\r\n this.items = [];\r\n this.loadItems();\r\n }\r\n\r\n loadItems(page = 1) {\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n var fModel = new RequestModel;\r\n fModel.data = JSON.parse(\"{\\\"Page\\\":\" + page + \",\\\"PageSize\\\":\" + this.currentPageSize + \"}\");\r\n fModel.url = \"api/task/getAllTasks\";\r\n\r\n this.restService.getDataPOST(fModel).subscribe(\r\n async data => {\r\n\r\n this.items = [];\r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n var objres = await this.restService.getDataGET(\"api/data/form/5483-Probation2ProbationForm/\" + data[\"Models\"][i][\"Model\"][\"EntityID\"]).toPromise();\r\n var obj = data[\"Models\"][i][\"Model\"];\r\n obj[\"Entity\"] = JSON.parse(objres)[\"Model\"];\r\n this.items.push(obj);\r\n }\r\n\r\n if (parseInt(data[\"TotalCount\"]) > this.currentPageSize) {\r\n this.paging = [];\r\n for (var i = 0; i < Math.ceil(parseInt(data[\"TotalCount\"]) / 5); i++) {\r\n this.paging.push(i + 1);\r\n }\r\n }\r\n\r\n if (this.items != null && typeof this.items != \"undefined\") {\r\n for (var i = 0; i < this.items.length; i++) {\r\n if (this.items[i].FirstOpenDate != null && typeof this.items[i].FirstOpenDate != \"undefined\") {\r\n this.alreadyOpened.push(this.items[i].Id);\r\n }\r\n }\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n },\r\n error => {\r\n console.log(\"Error retrieving tasks\", error);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n );\r\n }\r\n\r\n checkIfOpened(task) {\r\n var index = this.alreadyOpened.findIndex(x => x == task.Id);\r\n if (index >= 0) {\r\n return true;\r\n }\r\n \r\n if(task.CanOpenIfComplete == null || typeof task.CanOpenIfComplete == \"undefined\" && task.CanOpenIfComplete == false){\r\n if(task.Complete){\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n accept() {\r\n this.acceptDD = !this.acceptDD;\r\n this.changeDetection.detectChanges();\r\n\r\n if (this.currentItem[\"TaskOutcomes\"].length == 1) {\r\n this.currentTaskOutcome = this.currentItem[\"TaskOutcomes\"][0];\r\n this.executeOutcome(this.currentTaskOutcome);\r\n }\r\n\r\n } \r\n\r\n executeOutcome(outcome) {\r\n this.currentTaskOutcome = outcome;\r\n\r\n if (typeof (this.dynComp.cmpRef) != \"undefined\" && this.dynComp.cmpRef != null) {\r\n if (typeof (this.dynComp.cmpRef.instance) != \"undefined\" && this.dynComp.cmpRef.instance != null) {\r\n let cModel = this.dynComp.cmpRef.instance.model;\r\n this.dynComp.model = this.dynComp.cmpRef.instance.model;\r\n if (typeof outcome[\"Action\"] != \"undefined\" && outcome[\"Action\"] != null) {\r\n this.actionsService.callAction(outcome[\"Action\"], cModel, null, this.actionExecuted.bind(this), this, false, null, outcome.Action.OnlyClientLogic,true);\r\n } else {\r\n this.actionExecuted(null, null);\r\n }\r\n } else {\r\n this.actionExecuted(null, null);\r\n }\r\n } else {\r\n this.actionExecuted(null, null);\r\n }\r\n }\r\n\r\n itemSelected(item: Event, obj) {\r\n //console.log(\"Item selected: \", item.srcElement[\"checked\"]);\r\n\r\n // if not opened yet\r\n if (item.srcElement[\"checked\"] && !this.checkIfOpened(obj.Id)) {\r\n this.restService.getDataGET(\"api/task/opened/\" + obj.Id, \"application/json\").subscribe(data => {\r\n this.alreadyOpened.push(obj.Id); \r\n });\r\n }\r\n\r\n this.currentItem = null;\r\n this.currentTaskOutcome = null;\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n if (item.srcElement[\"checked\"]) {\r\n this.currentItem = obj; \r\n }\r\n\r\n if(this.currentItem != null && typeof this.currentItem != \"undefined\" && this.currentItem.ShowMessageOnly){\r\n this.showButtons = false;\r\n }else{\r\n this.showButtons = true; \r\n }\r\n\r\n }\r\n\r\n checkDateCreated(task){\r\n if(task != null && typeof task != \"undefined\" && task.DateCreated != null && typeof task.DateCreated != \"undefined\"){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n checkDueDate(task){\r\n if(task != null && typeof task != \"undefined\" && task.DueDate != null && typeof task.DueDate != \"undefined\"){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n actionExecuted(model, error) {\r\n if (error != null && typeof (error) != \"undefined\") {\r\n return;\r\n }\r\n\r\n if (typeof (model) != \"undefined\" && model != null) {\r\n\r\n var rModel = model[\"Model\"];\r\n\r\n if (rModel != null && typeof rModel != \"undefined\") {\r\n rModel[\"SerializationObjectFormLink\"] = this.dynComp.model[\"SerializationObjectFormLink\"];\r\n this.dynComp.model = rModel;\r\n this.dynComp.cmpRef.instance.model = this.dynComp.model;\r\n this.currentItem[\"EntityID\"] = rModel[\"Id\"];\r\n }\r\n }\r\n\r\n this.currentItem[\"Complete\"] = true;\r\n this.currentItem[\"Result\"] = this.currentTaskOutcome[\"OutcomeText\"];\r\n\r\n let entityId = this.currentItem[\"EntityID\"];\r\n\r\n if (entityId == 0) {\r\n entityId = null;\r\n }\r\n\r\n var fModel = new RequestModel;\r\n fModel.data =\r\n {\r\n TaskId: this.currentItem[\"TaskID\"],\r\n Result: this.currentItem[\"Result\"],\r\n Completed: this.currentItem[\"Complete\"],\r\n EntityID: entityId\r\n };\r\n fModel.url = \"api/task\";\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.restService.getDataPOST(fModel).subscribe(data => {\r\n //console.log(\"Task saved \", data);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n // hide task popup buttons after task is completed\r\n this.showButtons = false;\r\n this.loadItems();\r\n this.currentItem = null;\r\n }, error => {\r\n console.log(\"Error while saving task: \", error);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n }\r\n\r\n decline() {\r\n this.currentItem = null;\r\n this.currentTaskOutcome = null;\r\n }\r\n\r\n loadItemsPage(page) {\r\n this.currentPage = page;\r\n this.loadItems(page);\r\n }\r\n\r\n downloadTaskFile(task){\r\n \r\n if(task != null && typeof task != \"undefined\"){ \r\n var model: RequestModel = new RequestModel;\r\n model.url = \"api/result/get/processedresultexcel/\"+task.Id; \r\n \r\n this.restService.getDataPOST(model).subscribe(data => {\r\n const linkSource = `data:${data[\"MimeType\"]};base64,${data[\"Content\"]}`;\r\n\t\t const downloadLink = document.createElement('a');\r\n\t\t document.body.appendChild(downloadLink);\r\n\t\t downloadLink.href = linkSource;\r\n\t\t downloadLink.target = '_self';\r\n\t\t downloadLink.download = data[\"FileName\"];\r\n\t\t downloadLink.click(); \r\n });\r\n } \r\n } \r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport { SemControlComponent } from '../../../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../../../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-d3-directional-graph',\r\n templateUrl: './sem-d3-directional-graph.component.html',\r\n styleUrls: ['./sem-d3-directional-graph.component.css']\r\n})\r\nexport class SemD3DirectionalGraphComponent extends SemControlComponent implements OnInit {\r\n\r\n\r\n path: any;\r\n circle: any;\r\n drag: any;\r\n settings:any;\r\n @Input() apiUrl;\r\n @Input() title;\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n ngAfterContentInit(): void {\r\n // get the data\r\n\r\n this.restProviderService.getDataGET(this.apiUrl).subscribe((data:any)=>{\r\n\r\n data = JSON.parse(data);\r\n //data = data.slice(0,100);\r\n var csvnodes: any[] = [];\r\n var index = 0;\r\n\r\n // Compute the distinct nodes from the links.\r\n data.forEach((link: any) => {\r\n var existsSource = false;\r\n var existsTarget = false;\r\n\r\n csvnodes.forEach((element: any) => {\r\n if (element[\"id\"] == link.source) {\r\n existsSource = true;\r\n }\r\n if (element[\"id\"] == link.target) {\r\n existsTarget = true;\r\n }\r\n });\r\n\r\n if (!existsSource) {\r\n csvnodes.push({ id: link.source });\r\n }\r\n\r\n if (!existsTarget) {\r\n csvnodes.push({ id: link.target });\r\n }\r\n\r\n index++;\r\n\r\n });\r\n\r\n var width = document.querySelectorAll(\".directional-graph-container\")[0].clientWidth - 100,\r\n height = 800;\r\n\r\n\r\n var charge_force = d3.forceManyBody()\r\n .strength(-100);\r\n\r\n var center_force = d3.forceCenter(width / 2, height / 2);\r\n\r\n var simulation = d3.forceSimulation()\r\n .nodes(csvnodes)\r\n .force('link', d3.forceLink(data).id((d: any) => d.id).distance(220))\r\n .force('charge', d3.forceManyBody().strength(-250))\r\n .force('x', d3.forceX(width / 2))\r\n .force('y', d3.forceY(height / 2))\r\n .on('tick', () => this.tick());\r\n\r\n\r\n var svg = d3.select(\".graph-wrapper\").append(\"svg\")\r\n .attr(\"width\", width)\r\n .attr(\"height\", height);\r\n\r\n // build the arrow.\r\n svg.append(\"svg:defs\").selectAll(\"marker\")\r\n .data([\"end\"]) // Different link/path types can be defined here\r\n .enter().append(\"svg:marker\") // This section adds in the arrows\r\n .attr(\"id\", String)\r\n .attr(\"viewBox\", \"0 -5 10 10\")\r\n .attr(\"refX\", 15)\r\n .attr(\"refY\", -1.5)\r\n .attr(\"markerWidth\", 6)\r\n .attr(\"markerHeight\", 6)\r\n .attr(\"orient\", \"auto\")\r\n .append(\"svg:path\")\r\n .attr(\"d\", \"M0,-5L10,0L0,5\");\r\n\r\n // add the links and the arrows\r\n this.path = svg.append(\"svg:g\").selectAll(\"path\")\r\n .data(data)\r\n .enter().append(\"svg:path\")\r\n // .attr(\"class\", function(d) { return \"link \" + d.type; })\r\n .attr(\"class\", \"link\")\r\n .attr(\"marker-end\", \"url(#end)\");\r\n\r\n\r\n // init D3 drag support\r\n this.drag = d3.drag()\r\n .on('start', (event: any, d: any) => {\r\n \r\n //if (!event.active) simulation.alphaTarget(0.3).restart;\r\n simulation.alphaTarget(0).restart();\r\n simulation.alphaTarget(0.3).restart;\r\n d.x = d.x;\r\n d.y = d.y;\r\n })\r\n .on('drag', (event: any, d: any) => {\r\n d.x = event.x;\r\n d.y = event.y;\r\n })\r\n .on('end', (event: any, d: any) => {\r\n simulation.alphaTarget(0).restart();\r\n });\r\n\r\n // define the nodes\r\n this.circle = svg.selectAll(\".node\")\r\n .data(csvnodes)\r\n .enter().append(\"g\")\r\n .attr(\"class\", \"node\")\r\n .call(this.drag);\r\n\r\n // add the nodes\r\n this.circle.append(\"circle\")\r\n .attr(\"r\", 5);\r\n\r\n // add the text \r\n this.circle.append(\"text\")\r\n .attr(\"x\", 12)\r\n .attr(\"dy\", \".35em\")\r\n .text((d: any) => { return d.id; });\r\n\r\n //simulation.alphaTarget(0.3).restart();\r\n simulation.alphaTarget(0).restart();\r\n\r\n })\r\n\r\n }\r\n\r\n dragstarted() {\r\n }\r\n dragged(d: any) {\r\n }\r\n dragended(d: any) {\r\n }\r\n\r\n // update force layout (called automatically each iteration)\r\n tick() {\r\n // draw directed edges with proper padding from node centers\r\n this.path.attr('d', (d: any) => {\r\n const deltaX = d.target.x - d.source.x;\r\n const deltaY = d.target.y - d.source.y;\r\n const dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\r\n const normX = deltaX / dist;\r\n const normY = deltaY / dist;\r\n const sourcePadding = d.left ? 17 : 12;\r\n const targetPadding = d.right ? 17 : 12;\r\n const sourceX = d.source.x + (sourcePadding * normX);\r\n const sourceY = d.source.y + (sourcePadding * normY);\r\n const targetX = d.target.x - (targetPadding * normX);\r\n const targetY = d.target.y - (targetPadding * normY);\r\n\r\n //return `M${sourceX},${sourceY}L${targetX},${targetY}`;\r\n return \"M\" +\r\n d.source.x + \",\" +\r\n d.source.y + \"A\" +\r\n dist + \",\" + dist + \" 0 0,1 \" +\r\n d.target.x + \",\" +\r\n d.target.y;\r\n });\r\n\r\n this.circle.attr('transform', (d: any) => `translate(${d.x},${d.y})`);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { SemControlComponent } from '../../../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'sem-graph-pie',\r\n templateUrl: './sem-line-graph.component.html',\r\n styleUrls: ['./sem-line-graph.component.css']\r\n})\r\nexport class SemLineGraphComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(\"chartContainer\", { read: ElementRef, static: true }) element: ElementRef;\r\n\r\n @Input() settings: any;\r\n @Input() valuesName: string = \"...\";\r\n\r\n multi: any[] = [\r\n {\r\n \"name\": this.valuesName,\r\n \"series\": [/*\r\n {\r\n \"name\": \"2017\",\r\n \"value\": 30\r\n },\r\n {\r\n \"name\": \"2018\",\r\n \"value\": 40\r\n },\r\n {\r\n \"name\": \"2019\",\r\n \"value\": 100\r\n },\r\n {\r\n \"name\": \"2020\",\r\n \"value\": 60\r\n },\r\n {\r\n \"name\": \"2021\",\r\n \"value\": 220\r\n }\r\n */]\r\n }\r\n ];\r\n\r\n view: any[] = [400, 320];\r\n\r\n // options\r\n legend: boolean = false;\r\n showLabels: boolean = false;\r\n animations: boolean = true;\r\n xAxis: boolean = true;\r\n yAxis: boolean = true;\r\n showYAxisLabel: boolean = false;\r\n showXAxisLabel: boolean = false;\r\n xAxisLabel: string = 'Year';\r\n yAxisLabel: string = 'Population';\r\n timeline: boolean = true;\r\n loading: boolean = true;\r\n\r\n results: any = [\r\n {\r\n \"name\": \"\",\r\n \"series\": [\r\n ]\r\n }\r\n ];\r\n\r\n colorScheme = {\r\n domain: ['#cc922f', '#447695']\r\n };\r\n\r\n super() {\r\n //Object.assign(this, { this.multi });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n \r\n ngOnInit() {\r\n this.setViewSize();\r\n\r\n if (typeof this.settings[\"GraphValueTitle\"] != \"undefined\" && this.settings[\"GraphValueTitle\"]) {\r\n this.results[0].name = this.settings[\"GraphValueTitle\"];\r\n }\r\n\r\n if (typeof this.settings[\"ApiMethodType\"] == \"undefined\" || this.settings[\"ApiMethodType\"] == 0 || this.settings[\"ApiMethodType\"] == 2) {\r\n let model = new RequestModel();\r\n model.data = {};\r\n model.url = this.settings[\"Endpoint\"];\r\n this.restProviderService.getDataPOST(model).subscribe(data => {\r\n this.results[0].series = data;\r\n this.multi = this.results;\r\n this.loading = false;\r\n });\r\n } else {\r\n this.restProviderService.getDataGET(this.settings[\"Endpoint\"]).subscribe((data: any) => {\r\n this.results[0].series = JSON.parse(data);\r\n this.multi = this.results;\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n /*onResize(event) {\r\n this.setViewSize();\r\n }*/\r\n\r\n setViewSize() {\r\n this.view[0] = this.control.nativeElement.parentElement.clientWidth - 135;\r\n this.view[1] = this.control.nativeElement.parentElement.clientHeight - 165;\r\n }\r\n\r\n onSelect(data): void {\r\n console.log('Item clicked', JSON.parse(JSON.stringify(data)));\r\n }\r\n\r\n onActivate(data): void {\r\n console.log('Activate', JSON.parse(JSON.stringify(data)));\r\n }\r\n\r\n onDeactivate(data): void {\r\n console.log('Deactivate', JSON.parse(JSON.stringify(data)));\r\n }\r\n}\r\n","import { AfterViewInit, OnInit, Component, Input } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { SemControlComponent } from \"../../sem-control/sem-control.component\";\r\nimport { RequestModel } from \"src/app/models/request/request-model\";\r\n\r\n@Component({\r\n selector: 'sem-table-chart',\r\n templateUrl: './sem-table-chart.component.html',\r\n styleUrls: ['./sem-table-chart.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemTableGridComponent, multi: true }\r\n ]\r\n})\r\n\r\nexport class SemTableGridComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @Input() apiUrl: string;\r\n\r\n p: number = 1;\r\n itemsLoaded: boolean = false;\r\n tableData: any = [];\r\n totals: any = [];\r\n totalCountAll: number = 0;\r\n pageSize = 10;\r\n curPage = 1;\r\n pages: any = [];\r\n previousPage = 0;\r\n nextPage = 0;\r\n @Input() totalSum: string = \"\";\r\n footerColSpan: number = 0;\r\n @Input() hidePagination: any;\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n\r\n if (this.apiUrl != null && typeof this.apiUrl != \"undefined\" && this.apiUrl.length > 0) {\r\n\r\n this.getData(1);\r\n }\r\n }\r\n\r\n getData(pageNum) {\r\n\r\n this.tableData = { \"Items\": [], \"Columns\": [] };\r\n this.totals = [];\r\n this.totalCountAll = 0;\r\n\r\n\r\n let requestModel = new RequestModel;\r\n requestModel.url = this.apiUrl;\r\n requestModel.data = pageNum;\r\n requestModel.contentType = \"application/json\";\r\n requestModel.responseType = \"application/json\"\r\n\r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n this.tableData = data;\r\n\r\n \r\n if (this.tableData != null && this.tableData.Totals != null && this.tableData.Totals.KeyValue != null) {\r\n\r\n let totalKeyValue = this.tableData.Totals.KeyValue;\r\n\r\n this.totalCountAll = totalKeyValue[\"TotalCount\"];\r\n \r\n for (var i = 0; i < this.tableData.Columns.length; i++) {\r\n let binding = this.tableData.Columns[i][\"Binding\"];\r\n \r\n if (totalKeyValue[binding] != null) {\r\n this.totals.push(totalKeyValue[binding]);\r\n }\r\n }\r\n \r\n this.itemsLoaded = true;\r\n\r\n if(this.hidePagination == false || typeof this.hidePagination == \"undefined\"){\r\n this.calculatePagination();\r\n\r\n this.footerColSpan = this.tableData.Columns.length;\r\n \r\n if (this.totalSum != \"False\") {\r\n this.footerColSpan++;\r\n }\r\n } \r\n }\r\n });\r\n }, error => {\r\n //console.log(\"error table chart\");\r\n });\r\n }\r\n\r\n showPagination()\r\n {\r\n if(this.hidePagination == true){\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n calculatePagination() {\r\n this.pages = [];\r\n let pageNum = this.numberOfPages();\r\n let from = 0;\r\n let to = pageNum;\r\n\r\n from = this.curPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n\r\n to = from + 5;\r\n\r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n\r\n this.previousPage = this.curPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n\r\n this.nextPage = this.curPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n\r\n for (let i = from; i < to; i++) {\r\n\r\n let active = false;\r\n if (i == this.curPage) {\r\n active = true;\r\n }\r\n\r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n\r\n\r\n pageChanged(pageNum) {\r\n this.curPage = pageNum;\r\n this.getData(this.curPage);\r\n }\r\n\r\n toLastPage() {\r\n let pageNum = this.numberOfPages();\r\n this.curPage = pageNum;\r\n this.getData(pageNum);\r\n }\r\n\r\n toFirstPage() {\r\n this.curPage = 1;\r\n this.getData(1);\r\n }\r\n\r\n\r\n numberOfPages() {\r\n if (this.tableData != null && typeof this.tableData != \"undefined\" && this.tableData.Items != null && typeof this.tableData.Items != \"undefined\") {\r\n return Math.ceil(this.tableData.TotalCount / this.pageSize);\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GalleryModel } from '../../../../models/gallery-model/galleryModel';\r\nimport { RequestModel } from '../../../../models/request/request-model';\r\nimport { ActionsService } from '../../../../services/actions-service/actions.service';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-gallery-control',\r\n templateUrl: './sem-gallery-control.component.html',\r\n styleUrls: ['./sem-gallery-control.component.css']\r\n})\r\nexport class SemGalleryControlComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() apiUrl:string = \"\";\r\n @Input() pagesize:any = 10;\r\n @Input() bindings:string[] = [];\r\n @Input() data:GalleryModel[] = [];\r\n\r\n super() { }\r\n \r\n ngOnInit() {\r\n this.sidebarMenuOpened = true;\r\n this.actionsService = this.injector.get(ActionsService);\r\n this.restProviderService = this.injector.get(RestProviderService);\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n let reqModel:RequestModel = {\r\n url: this.apiUrl,\r\n data: {Envelope:{\"PageSize\":this.pagesize,\"Bindings\":this.bindings}},\r\n contentType: '',\r\n responseType: '',\r\n etag: null\r\n };\r\n\r\n this.restProviderService.getDataPOST(reqModel).subscribe((data:any)=>{\r\n this.data = data;\r\n },error=>{\r\n\r\n });\r\n }\r\n\r\n itemClick(gridItem){\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'sem-last-added-records',\r\n templateUrl: './sem-last-added-records.component.html',\r\n styleUrls: ['./sem-last-added-records.component.css']\r\n})\r\nexport class SemLastAddedRecordsComponent extends SemControlComponent implements OnInit {\r\n\r\n lastRecordValue:any = null;\r\n\r\n super() { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n this.restProviderService.getDataGET(\"api/galisdocument/getlastdocument\").subscribe((data:any)=>{\r\n this.lastRecordValue = JSON.parse(data);\r\n this.loading = false;\r\n },error=>{\r\n console.log(\"Error retrieving last record\",error);\r\n this.loading = false;\r\n })\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\n\r\n\r\n@Component({\r\n selector: 'sem-last-edited-data',\r\n templateUrl: './sem-last-edited-data.component.html',\r\n styleUrls: ['./sem-last-edited-data.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemLastEditedDataComponent, multi: true }\r\n ]\r\n})\r\nexport class SemLastEditedDataComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() settings: any;\r\n\r\n private myTemplate: any = \"\";\r\n @Input() url: string;\r\n searchResults: any[] = [];\r\n searchTerm: string;\r\n\r\n private searchServiceSubscriber = null;\r\n\r\n super() {\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n if (this.restProviderService.currentUser != \"undefined\" && this.restProviderService.currentUser != null) {\r\n if (this.restProviderService.currentUser[\"Username\"] != \"anonymous\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n } else {\r\n window.location.href = \"/account/login?returnUrl=/cms/dashboard\";\r\n }\r\n }\r\n else {\r\n window.location.href = \"/account/login?returnUrl=/cms/dashboard\";\r\n }\r\n\r\n //console.log(\"Last updated control settings: \", this.settings);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.settings[\"PerformDirectAPICall\"]) {\r\n this.restProviderService.getDataGET(this.settings[\"DirectAPICallUrl\"]).subscribe(\r\n data => {\r\n //console.log(\"Retrieved tasks on dashboard: \", data);\r\n let models = JSON.parse(data);\r\n for (var i = 0; i < models.length; i++) {\r\n this.searchResults.push({\r\n\r\n \"Id\": models[i].Id,\r\n \"Title\": models[i].Title,\r\n \"Date\": models[i].DueDate\r\n\r\n });\r\n }\r\n },\r\n error => {\r\n //console.log(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n else if (this.settings[\"PerformPOSTAPICall\"]) {\r\n var fModel = new RequestModel;\r\n fModel.data = JSON.parse(\"{\\\"Page\\\":\" + 1 + \",\\\"PageSize\\\":\" + 5 + \"}\");\r\n fModel.url = this.settings[\"DirectAPICallUrl\"];\r\n\r\n this.restProviderService.getDataPOST(fModel).subscribe(\r\n data => {\r\n\r\n this.modifyForFrontEnd(data);\r\n\r\n },\r\n error => {\r\n //console.log(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n } else {\r\n let queryModel = JSON.parse(this.settings.Query.replace(/'/g, '\"'));\r\n this.searchServiceSubscriber = this.searchService.performSearch(queryModel, null, null, null).subscribe(data => {\r\n this.modifyForFrontEnd(data);\r\n }, error => {\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n modifyForFrontEnd(data:any){\r\n\r\n let propsToBeShown = this.settings[\"PropertiesToBeShownOnFrontEnd\"];\r\n if (!(typeof propsToBeShown != \"undefined\" && propsToBeShown && propsToBeShown.length > 0)) {\r\n propsToBeShown = [{Name:\"Title\",DataType:\"string\"}, {Name:\"LastChangeDate\",DataType:\"datetime\"}];\r\n }\r\n\r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n\r\n let resItem = {};\r\n\r\n for (var j = 0; j < propsToBeShown.length; j++) {\r\n resItem[propsToBeShown[j][\"Name\"]] = this.dfms.getValue(data[\"Models\"][i][\"Model\"], propsToBeShown[j][\"Name\"]);\r\n }\r\n\r\n resItem[\"OriginalObject\"] = data[\"Models\"][i][\"Model\"];\r\n\r\n this.searchResults.push(resItem);\r\n }\r\n\r\n this.sidebarMenuOpened = true;\r\n this.changeDetection.detectChanges();\r\n\r\n }\r\n\r\n isMenuOpened() { }\r\n\r\n\r\n\r\n navigate(item: any, url: string) {\r\n\r\n if (url.includes(\"processNavigationUrl\")) {\r\n eval(url);\r\n } else {\r\n this.utility.processNavigationUrl(url,item);\r\n }\r\n\r\n }\r\n\r\n navigateToDetails(dataItem: any) {\r\n\r\n let url = this.settings[\"Url\"];\r\n\r\n if (url.includes(\"processNavigationUrl\")) {\r\n eval(url);\r\n } else {\r\n let detailsUrl = url + dataItem[\"Id\"];\r\n this.utility.processNavigationUrl(detailsUrl);\r\n }\r\n\r\n }\r\n\r\n sidebarChanged(event) {\r\n this.sidebarMenuOpened = event;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, AfterViewChecked } from '@angular/core';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ActionsService } from '../../../../services/actions-service/actions.service';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { SemParameterDialogComponent } from '../../dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { HeroHighlightModel } from '../../../../models/control-models/hero-highlight-model';\r\n\r\n@Component({\r\n selector: 'sem-quick-actions',\r\n templateUrl: './sem-quick-actions.component.html',\r\n styleUrls: ['./sem-quick-actions.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemQuickActionsComponent, multi: true }\r\n ]\r\n})\r\nexport class SemQuickActionsComponent extends ValueAccessorBase implements OnInit, AfterViewInit, AfterViewChecked {\r\n\r\n ngAfterViewChecked() {\r\n }\r\n\r\n @Input() settings: any;\r\n\r\n private restService: RestProviderService;\r\n public qaValue: number | null = null;\r\n public actionCalled = false;\r\n public actionPostResponseTitleValue: string = null;\r\n public showLoaderAction: boolean = false;\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n this.sidebarMenuOpened = true;\r\n this.actionsService = this.injector.get(ActionsService);\r\n this.restService = this.injector.get(RestProviderService);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let test = this.settings;\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.settings?.Actions[0]) {\r\n if (this.settings?.[\"QuickActionType\"] == 1) {\r\n this.callAction(this.settings?.Actions[0]);\r\n }\r\n }\r\n } \r\n\r\n callAction(action) {\r\n if (!this.actionCalled) {\r\n this.actionCalled = true;\r\n if (this.settings) {\r\n if (this.settings.Actions[0]) {\r\n if (this.settings.Actions[0][\"ActionType\"]?.toLowerCase() == \"post\") {\r\n let rModel = new RequestModel;\r\n rModel.url = this.settings.Actions[0][\"ActionName\"];\r\n rModel.data = {\"Envelope\":this.settings.Actions[0][\"Body\"]};\r\n\r\n this.restProviderService.getDataPOST(rModel).subscribe((data: number) => {\r\n\r\n console.log(\"Quick Action result: \", data);\r\n this.qaValue = data;\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n });\r\n\r\n }\r\n // new way of visualization - ask nino for wiki\r\n else if (this.settings.Actions[0][\"ActionType\"]?.toLowerCase() == \"post-new\") {\r\n let rModel = new RequestModel;\r\n rModel.url = this.settings.Actions[0][\"ActionName\"];\r\n rModel.data = { \"Envelope\": this.settings.Actions[0][\"Body\"] };\r\n\r\n this.restProviderService.getDataPOST(rModel).subscribe((data: HeroHighlightModel) => {\r\n\r\n console.log(\"Quick Action result: \", data);\r\n this.qaValue = data.Number;\r\n this.actionPostResponseTitleValue = data.Title;\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n });\r\n } else if (this.settings.Actions[0][\"ActionType\"]?.toLowerCase() == \"get\") {\r\n this.restProviderService.getDataGET(this.settings.Actions[0][\"ActionName\"]).subscribe((data: any) => {\r\n\r\n console.log(\"Quick Action result: \", data);\r\n this.qaValue = data;\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n getActionTitle(actionTitle: string) {\r\n\r\n if (actionTitle != null && actionTitle !== undefined && actionTitle.length > 0) {\r\n return this.translationsService.translate(actionTitle);\r\n } else {\r\n return this.actionPostResponseTitleValue;\r\n }\r\n }\r\n\r\n actionClick(url: string, action: any) {\r\n if (action != null && typeof action != \"undefined\") {\r\n if (action.ActionName != null && typeof action.ActionName != \"undefined\") {\r\n\r\n this.showLoaderAction = true;\r\n this.restService.getDataGET(\"api/actions/\" + action.ActionName, \"application/json\").subscribe(data => {\r\n\r\n let formAction = JSON.parse(data);\r\n\r\n\r\n //eval(action.NavigationNodeRule.ActionBody);\r\n // if form actions has parameter form linked then we should first show popup with parameter form\r\n if (formAction.ParameterForm != null && typeof formAction.ParameterForm != \"undefined\" && formAction.ParameterForm.Id > 0) {\r\n var reportId = null;\r\n if (formAction.ParameterForm.Report != null && typeof formAction.ParameterForm.Report != \"undefined\") {\r\n reportId = formAction.ParameterForm.Report.Id;\r\n }\r\n\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: {\r\n parameterFormId: formAction.ParameterForm.Id,\r\n reportId: reportId,\r\n customHeaderTitle: formAction.ParameterForm.CustomHeaderTitle,\r\n customCssClass: formAction.ParameterForm.CustomCssClass\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n // only call action if parameter popup was confirmed (not cancled - close button)\r\n if (returnData.Canceled == false) {\r\n var inputParametersModel = returnData[\"Model\"];\r\n this.actionsService.callAction(formAction, this.model, null, null, this, false, inputParametersModel,\r\n formAction.OnlyClientLogic, false, false, formAction.SkipBulkActionApiMethod);\r\n this.showLoaderAction = false;\r\n }\r\n }\r\n });\r\n } else {\r\n // just call action without parameters form popup\r\n this.actionsService.callAction(formAction, this.model, null, null, this, false, null,\r\n formAction.OnlyClientLogic, false, false, formAction.SkipBulkActionApiMethod);\r\n this.showLoaderAction = false;\r\n }\r\n\r\n\r\n }, error => {\r\n console.log(error);\r\n });\r\n } else {\r\n this.utility.processNavigationUrl(url);\r\n }\r\n }\r\n }\r\n\r\n navigate(url){\r\n this.utility.processNavigationUrl(url);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-table-presentation',\r\n templateUrl: './sem-table-presentation.component.html',\r\n styleUrls: ['./sem-table-presentation.component.css']\r\n})\r\nexport class SemTablePresentationComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() settings: any = null;\r\n @Input() result: any = null;\r\n\r\n variable: string = \"\";\r\n\r\n super() { }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n if (this.settings) {\r\n this.restProviderService.getData(this.settings[\"ApiUrl\"]).subscribe(data => {\r\n this.result = data;\r\n },\r\n error => {\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { SemManyToOneControlComponent } from '../../sem-many-to-one-control/sem-many-to-one-control.component';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\n\r\ninterface HierarchyObject {\r\n name: string;\r\n id?: Number;\r\n parentId?: Number;\r\n children?: HierarchyObject[];\r\n}\r\n\r\nconst TREE_DATA: HierarchyObject[] = [\r\n {\r\n name: 'Kovina',\r\n children: [\r\n { name: 'Železo' },\r\n { name: 'Jeklo' },\r\n { name: 'Baker' },\r\n ]\r\n }, {\r\n name: 'Les',\r\n children: [\r\n {\r\n name: 'Iglavci',\r\n children: [\r\n { name: 'Smreka' },\r\n { name: 'Jelka' },\r\n ]\r\n }, {\r\n name: 'Listavci',\r\n children: [\r\n { name: 'Lipa' },\r\n { name: 'Bukev' },\r\n ]\r\n },\r\n ]\r\n },\r\n];\r\n\r\n@Component({\r\n selector: 'app-sem-compare-dialog',\r\n templateUrl: './sem-compare-dialog.component.html',\r\n styleUrls: ['./sem-compare-dialog.component.css']\r\n})\r\nexport class SemCompareDialogComponent implements OnInit {\r\n\r\n treeControl = new NestedTreeControl(node => node.children);\r\n dataSource = new MatTreeNestedDataSource();\r\n treeControlRemoved = new NestedTreeControl(node => node.children);\r\n dataSourceRemoved = new MatTreeNestedDataSource();\r\n treeControlMod = new NestedTreeControl(node => node.children);\r\n dataSourceMod = new MatTreeNestedDataSource();\r\n\r\n entityModel: string;\r\n propName: string;\r\n linkWithExistingData: string;\r\n title: string;\r\n flatTreeData: HierarchyObject[] = [];\r\n flatTreeDataRemoved: HierarchyObject[] = [];\r\n flatTreeDataMod: HierarchyObject[] = [];\r\n\r\n loading: boolean = false;\r\n\r\n defaultSearchQueryString: string = \"{\\\"MainQuery\\\":null,\\\"FieldQueries\\\":{},\\\"FacetQueries\\\": {},\\\"RequestedFacets\\\": null,\\\"Projection\\\": [],\\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" },\\\"ClassTypes\\\": [],\\\"Page\\\": \\\"1\\\",\\\"PageSize\\\": \\\"500\\\",\\\"RepositoryName\\\": \\\"lucene\\\",\\\"Form\\\": null,\\\"UseCache\\\": false}\";\r\n mainSearchQuery: any;\r\n\r\n models: any[] = [];\r\n simpleProps: any[] = [];\r\n selectedPage: number;\r\n isModified: boolean = false;\r\n\r\n private searchServiceSubscriber: any = null;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n private restProvider: RestProviderService,\r\n public searchService: SearchService,\r\n public translationService: TranslationsProviderService) {\r\n\r\n }\r\n\r\n hasChild = (_: number, node: HierarchyObject) => !!node.children && node.children.length > 0;\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (typeof this.searchServiceSubscriber != \"undefined\" && this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.models = this.dialogData[\"items\"]; \r\n let modified = false;\r\n\r\n this.models.forEach(element => {\r\n\r\n var a = {} as HierarchyObject;\r\n if (element[\"NewValue\"] && typeof element[\"NewValue\"] === 'object' && (element[\"Type\"] == 1 || element[\"Type\"] == 2)) {\r\n a.name = element[\"NewValue\"][\"Rank\"][\"TitleWithAgeCategory\"];\r\n let obj = { name: element[\"NewValue\"][\"Discipline\"][\"TitleWithGender\"] };\r\n a.children = [obj];\r\n modified = true;\r\n } else if (element[\"OldValue\"] && typeof element[\"OldValue\"] === 'object' && element[\"Type\"] == 3) {\r\n a.name = element[\"OldValue\"][\"Rank\"][\"TitleWithAgeCategory\"] + \" ; \" + element[\"OldValue\"][\"Discipline\"][\"TitleWithGender\"];\r\n\r\n let childs = [];\r\n\r\n if (typeof element[\"Children\"] != \"undefined\" && element[\"Children\"]) {\r\n element[\"Children\"].forEach(child => {\r\n let cChild = { name: this.translationService.translate(child[\"Name\"]) + \": prejšnja vrednost \" + child[\"OldValue\"] + \", nova vrednost \" + child[\"NewValue\"] };\r\n childs.push(cChild);\r\n });\r\n }\r\n\r\n a.children = childs;\r\n modified = true;\r\n } else if (element[\"OldValue\"] && element[\"NewValue\"] && typeof element[\"OldValue\"] !== 'object' && element[\"Type\"] == 3) {\r\n this.simpleProps.push(element);\r\n }\r\n\r\n if (element[\"Type\"] == 2) {\r\n this.flatTreeData.push(a);\r\n } else if (element[\"Type\"] == 1) {\r\n this.flatTreeDataRemoved.push(a);\r\n } else if (element[\"Type\"] == 3) {\r\n this.flatTreeDataMod.push(a);\r\n }\r\n\r\n /*if(element.Parent != undefined || element.Parent != null){\r\n a.parentId = element.Parent.Id;\r\n }*/\r\n\r\n });\r\n\r\n // if only simple props then modified is false\r\n this.isModified = modified;\r\n\r\n /*this.flatTreeData.forEach(elItem =>{\r\n elItem.children = this.flatTreeData.filter(filt => filt.parentId == elItem.id);\r\n })\r\n\r\n let filteredRoots: HierarchyObject[] = this.flatTreeData.filter(ft => ft.parentId == null || ft.parentId == undefined)\r\n*/\r\n\r\n /*filteredRoots.forEach(elementRoot => {\r\n \r\n let childs: HierarchyObject[] = this.flatTreeData.filter(ft => ft.parentId == elementRoot.id);\r\n if(childs != null && childs != undefined){\r\n elementRoot.children = childs;\r\n }\r\n\r\n this.treeData.push(elementRoot);\r\n });*/\r\n /*this.treeData = this.flatTreeData;\r\n*/\r\n\r\n this.dataSource.data = this.flatTreeData;\r\n this.treeControl.dataNodes = this.flatTreeData;\r\n this.dataSourceRemoved.data = this.flatTreeDataRemoved;\r\n this.treeControlRemoved.dataNodes = this.flatTreeDataRemoved;\r\n this.dataSourceMod.data = this.flatTreeDataMod;\r\n this.treeControlMod.dataNodes = this.flatTreeDataMod;\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.treeControl.expandAll();\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n linkClicked(data) {\r\n }\r\n\r\n confirm(){\r\n this.dialogRef.close({\"IsModified\":this.isModified});\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, ChangeDetectorRef, AfterViewInit } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SemManyToOneControlComponent } from '../../sem-many-to-one-control/sem-many-to-one-control.component';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../../models/request/request-model';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\n\r\n@Component({\r\n selector: 'app-sem-confirm-dialog',\r\n templateUrl: './sem-confirm-dialog.component.html',\r\n styleUrls: ['./sem-confirm-dialog.component.css']\r\n})\r\nexport class SemConfirmDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public dialogData: any, public tps:TranslationsProviderService ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n cancel(){\r\n this.dialogRef.close(false);\r\n }\r\n\r\n confirm(){\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n","import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SemManyToOneControlComponent } from '../../sem-many-to-one-control/sem-many-to-one-control.component';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../../models/request/request-model';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { SemTextBoxComponent } from '../../sem-text-box/sem-text-box.component';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { DragScrollComponent } from 'ngx-drag-scroll';\r\nimport { Component, OnInit, AfterViewInit, ChangeDetectorRef, Inject, ViewChild, ContentChild } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { threadId } from 'worker_threads';\r\nimport { SemImageViewerComponent } from '../../sem-image-viewer/sem-image-viewer.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-sem-dialog',\r\n templateUrl: './sem-dialog.component.html',\r\n styleUrls: ['./sem-dialog.component.css']\r\n})\r\nexport class SemDialogComponent implements OnInit, AfterViewInit {\r\n\r\n entityModel: string;\r\n propName: string;\r\n linkWithExistingData: string;\r\n title: string;\r\n\r\n loading: boolean = false;\r\n pageSize: number = 5;\r\n findTheRecord: string;\r\n enterRecordId: string;\r\n resultsFound: string;\r\n recordName: string;\r\n idNumber: string;\r\n dateOfCreaton: string;\r\n link: string;\r\n searchFields: any[] = [];\r\n displayFields: any[] = [];\r\n additionalSearchFilter;\r\n vsaPoljaSearchValue: string = null;\r\n popupSearchValue: string = \"\";\r\n tooltipTextPoVseh: string = null;\r\n repositories: string = null;\r\n defaultSearchQueryString: string = \"{\\\"MainQuery\\\":null,\\\"FieldQueries\\\":{},\\\"FacetQueries\\\": {},\\\"RequestedFacets\\\": null,\\\"Projection\\\": [],\\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" },\\\"ClassTypes\\\": [],\\\"Page\\\": \\\"1\\\",\\\"PageSize\\\":\" + this.pageSize + \",\\\"RepositoryName\\\": \\\"\\\",\\\"Form\\\": null,\\\"UseCache\\\": false}\";\r\n mainSearchQuery: any; \r\n\r\n models: any[] = [];\r\n modelsToDisplay: any[] = [];\r\n loaded: boolean = false;\r\n\r\n selectedPage: number;\r\n searchValues: object = {};\r\n currentFormModel: any = null;\r\n errorMessage: any = null;\r\n\r\n // used if searchFields is populated\r\n private customORQuery: any = null;\r\n\r\n private searchResult: any = null;\r\n\r\n private searchServiceSubscriber: any = null;\r\n\r\n //@ContentChild('nav',{static:true} ) ds!: DragScrollComponent;\r\n ds: any;\r\n\r\n totalItems: number = 0;\r\n previousPage = 0;\r\n nextPage = 0;\r\n totalPages = 1;\r\n pages: any[] = [];\r\n\r\n\r\n @ViewChild('nav')\r\n set pane(v: DragScrollComponent) {\r\n setTimeout(() => { this.ds = v; }, 0);\r\n }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n private restProvider: RestProviderService,\r\n private changeDet: ChangeDetectorRef,\r\n public searchService: SearchService,\r\n public formActionService: ActionsService,\r\n public translationService: TranslationsProviderService,\r\n public dfms: DynamicFieldsManagerService) {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (typeof this.searchServiceSubscriber != \"undefined\" && this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.mainSearchQuery = JSON.parse(this.defaultSearchQueryString);\r\n\r\n if (this.dialogData[\"tooltipTextPoVseh\"] != null && typeof this.dialogData[\"tooltipTextPoVseh\"] != \"undefined\" && this.dialogData[\"tooltipTextPoVseh\"].length > 0) {\r\n this.tooltipTextPoVseh = this.dialogData[\"tooltipTextPoVseh\"];\r\n }\r\n\r\n if (this.dialogData[\"repositories\"] != null && typeof this.dialogData[\"repositories\"] != \"undefined\" && this.dialogData[\"repositories\"].length > 0) {\r\n this.repositories = this.dialogData[\"repositories\"];\r\n }\r\n\r\n // fields that are displayed in table\r\n this.displayFields = this.dialogData[\"displayFields\"];\r\n if (this.displayFields == null || typeof this.displayFields == \"undefined\" || this.displayFields.length == 0) {\r\n // set default\r\n this.displayFields = [];\r\n this.displayFields.push({ \"Title\": this.translationService.translate(\"Title\"), \"PropertyName\": \"Title\", \"Type\": \"Text\" });\r\n }\r\n\r\n this.searchFields = this.dialogData[\"searchFields\"];\r\n this.additionalSearchFilter = this.dialogData[\"additionalSearchFilter\"];\r\n this.currentFormModel = this.dialogData[\"model\"];\r\n\r\n this.setSearchFields();\r\n\r\n // based on display fields set projection on query\r\n if (this.mainSearchQuery != null && typeof this.mainSearchQuery != \"undefined\") {\r\n\r\n let displayFieldsForProjection = [];\r\n\r\n for (var i = 0; i < this.displayFields.length; i++) {\r\n displayFieldsForProjection.push(this.displayFields[i].PropertyName);\r\n }\r\n\r\n this.mainSearchQuery[\"Projection\"] = Object.assign([], displayFieldsForProjection);\r\n // always add \"Id\" to projection\r\n this.mainSearchQuery.Projection.push(\"Id\");\r\n this.mainSearchQuery.Projection.push(\"SourceRepository\");\r\n this.mainSearchQuery.Projection.push(\"RepositoryId\");\r\n }\r\n\r\n this.linkWithExistingData = this.translationService.translations[\"WebGalis_LinkWithExistingData\"];\r\n\r\n this.title = this.translationService.translate(this.dialogData[\"title\"]);\r\n this.entityModel = this.dialogData[\"entityModel\"];\r\n this.propName = this.dialogData[\"propName\"];\r\n\r\n this.findTheRecord = this.translationService.translations[\"WebGalis_FindTheRecord\"];\r\n this.enterRecordId = this.translationService.translations[\"WebGalis_EnterRecordId\"];\r\n //this.resultsFound = TRANSLATIONS[\"WebGalis_ResultsFound\"];\r\n this.recordName = this.translationService.translations[\"WebGalis_RecordName\"];\r\n this.idNumber = this.translationService.translations[\"WebGalis_IDNumber\"];\r\n this.dateOfCreaton = this.translationService.translations[\"WebGalis_DateOfCreation\"];\r\n this.link = this.translationService.translations[\"WebGalis_Link\"];\r\n }\r\n\r\n showDataItemTooltiptext(dataItem) {\r\n \r\n if (dataItem !== null && dataItem !== undefined\r\n && dataItem.TooltipText !== null\r\n && dataItem.TooltipText !== undefined && dataItem.TooltipText.length > 0) {\r\n\r\n return true;\r\n\r\n }\r\n\r\n return false;\r\n }\r\n\r\n setSearchFields() {\r\n this.errorMessage = null;\r\n // if searchFields are present then tree query is changed (not * anymore)\r\n // it will search for all those fields that are in searchFields (OR between)\r\n if (this.searchFields != null || typeof this.searchFields != \"undefined\") {\r\n if (this.searchFields.length > 0) {\r\n\r\n this.customORQuery = JSON.parse(\"{\\\"Type\\\": \\\"AND\\\", \\\"SubQueries\\\": []}\");\r\n\r\n for (let i = 0; i < this.searchFields.length; i++) {\r\n let field = null;\r\n\r\n if (this.searchFields[i].Type == 'Date') {\r\n\r\n field = {\r\n \"Type\": \"FieldRange\",\r\n \"FieldName\": this.searchFields[i].PropertyName\r\n }\r\n\r\n if (this.searchValues[this.searchFields[i].PropertyName + \"From\"] != \"undefined\" && this.searchValues[this.searchFields[i].PropertyName + \"From\"] != \"\" && this.searchValues[this.searchFields[i].PropertyName + \"From\"] != null) {\r\n //var date = new Date(this.searchValues[this.searchFields[i].PropertyName + \"From\"]);\r\n\r\n field[\"FieldValueFrom\"] = this.searchValues[this.searchFields[i].PropertyName + \"From\"];\r\n\r\n //field[\"FieldValueFrom\"] = new Date(date.setDate(date.getDate() - 1)).toISOString();\r\n //field[\"FieldValueTo\"] = new Date(date.setDate(date.getDate() + 2)).toISOString();\r\n } else {\r\n field[\"FieldValueFrom\"] = \"*\";\r\n //field[\"FieldValueTo\"] = \"*\";\r\n }\r\n\r\n if (this.searchValues[this.searchFields[i].PropertyName + \"To\"] != \"undefined\" && this.searchValues[this.searchFields[i].PropertyName + \"To\"] != \"\" && this.searchValues[this.searchFields[i].PropertyName + \"To\"] != null) {\r\n field[\"FieldValueTo\"] = this.searchValues[this.searchFields[i].PropertyName + \"To\"];\r\n } else {\r\n field[\"FieldValueTo\"] = \"*\";\r\n }\r\n\r\n } else if (this.searchFields[i].Type == 'CB') {\r\n\r\n field = {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": this.searchFields[i].PropertyName,\r\n \"FieldValue\": \"*\"\r\n }\r\n\r\n if (this.searchValues[this.searchFields[i].PropertyName] == true) {\r\n field.FieldValue = 1;\r\n } else if (this.searchValues[this.searchFields[i].PropertyName] == false) {\r\n field.FieldValue = 0;\r\n }\r\n\r\n } else {\r\n\r\n field = {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": this.searchFields[i].PropertyName,\r\n \"FieldValue\": \"*\"\r\n }\r\n\r\n if (this.searchValues[this.searchFields[i].PropertyName] != \"undefined\" && this.searchValues[this.searchFields[i].PropertyName] != null && this.searchValues[this.searchFields[i].PropertyName] != \"\") {\r\n field.FieldValue = this.searchValues[this.searchFields[i].PropertyName] + \"*\";\r\n }\r\n\r\n }\r\n\r\n this.customORQuery.SubQueries.push(\r\n field\r\n );\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (typeof (this.entityModel) == \"undefined\" || !this.entityModel) {\r\n this.entityModel = this.dialogData[\"entityModel\"];\r\n }\r\n\r\n this.mainSearchQuery[\"ClassTypes\"].push(this.entityModel);\r\n this.performLinkedDataSearch(1);\r\n }\r\n\r\n onKeydown(event) {\r\n event.preventDefault();\r\n this.selectedPage = 1;\r\n this.search(1);\r\n }\r\n\r\n performLinkedDataSearch(page) {\r\n this.errorMessage = null;\r\n this.selectedPage = page;\r\n this.models = [];\r\n this.loading = true;\r\n\r\n\r\n if (this.customORQuery != null) {\r\n this.mainSearchQuery[\"TreeQuery\"] = this.customORQuery;\r\n }\r\n\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n\r\n if (this.additionalSearchFilter != null && typeof this.additionalSearchFilter != \"undefined\" && this.additionalSearchFilter.length > 0) {\r\n try {\r\n if (this.currentFormModel != null && typeof this.currentFormModel != \"undefined\") {\r\n // interpolate\r\n let compiled = _.template(this.additionalSearchFilter);\r\n let compiledSearchQuery = compiled(this.currentFormModel);\r\n if (compiledSearchQuery != null && typeof compiledSearchQuery != \"undefined\") {\r\n let interpolateMainSearchQueryObject = JSON.parse(compiledSearchQuery);\r\n\r\n let currentTreeQuery = this.mainSearchQuery[\"TreeQuery\"];\r\n let newMainTreeQuery = { \"Type\": \"AND\", \"SubQueries\": [] };\r\n newMainTreeQuery.SubQueries.push(interpolateMainSearchQueryObject);\r\n newMainTreeQuery.SubQueries.push(currentTreeQuery);\r\n this.mainSearchQuery[\"TreeQuery\"] = newMainTreeQuery;\r\n }\r\n }\r\n } catch {\r\n }\r\n }\r\n\r\n if (this.vsaPoljaSearchValue != null && typeof this.vsaPoljaSearchValue != \"undefined\" && this.vsaPoljaSearchValue.length > 0) {\r\n let currentTreeQuery = this.mainSearchQuery[\"TreeQuery\"];\r\n let newMainTreeQuery = { \"Type\": \"AND\", \"SubQueries\": [] };\r\n newMainTreeQuery.SubQueries.push({\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": \"*\",\r\n \"FieldValue\": this.vsaPoljaSearchValue\r\n });\r\n newMainTreeQuery.SubQueries.push(currentTreeQuery);\r\n this.mainSearchQuery[\"TreeQuery\"] = newMainTreeQuery;\r\n }\r\n\r\n this.mainSearchQuery[\"Page\"] = page;\r\n\r\n if (this.repositories != null) {\r\n this.mainSearchQuery.RepositoryName = this.repositories;\r\n } else {\r\n // make lucene default if nothing is defined (as it should be) \r\n this.mainSearchQuery.RepositoryName = \"lucene\";\r\n }\r\n\r\n if (this.dialogData.projection) {\r\n\r\n this.dialogData.projection.forEach(element => {\r\n this.mainSearchQuery[\"Projection\"].push(element);\r\n });\r\n\r\n }\r\n\r\n\r\n this.searchServiceSubscriber = this.searchService.performSearch(this.mainSearchQuery, null, null, null).subscribe(data => {\r\n\r\n if (data[\"Models\"].length == 0) {\r\n this.resultsFound = this.translationService.translations[\"WebGalis_NoResults\"];\r\n this.loaded = false;\r\n } else {\r\n this.resultsFound = this.translationService.translations[\"WebGalis_ResultsFound\"];\r\n }\r\n\r\n //this.numberOfPages = [];\r\n //var pages = Math.ceil(data[\"TotalCount\"] / 5);\r\n //this.numberOfPages = Array.apply(null, { length: pages + 1 }).map(Number.call, Number);\r\n //this.numberOfPages = this.numberOfPages.splice(1, pages + 1);\r\n\r\n\r\n\r\n this.pages = [];\r\n\r\n // convert to int \r\n let totalCountNumber = Math.ceil(data[\"TotalCount\"]);\r\n let currentPage = page;\r\n\r\n if (totalCountNumber == 0) {\r\n this.pages.push({ \"Number\": 1, \"Active\": true });\r\n } else {\r\n\r\n var ps: number = +this.pageSize;\r\n let pageNum = (totalCountNumber + ps - 1) / ps;\r\n pageNum = Math.floor(pageNum);\r\n\r\n let from = 0;\r\n let to = pageNum;\r\n this.totalPages = pageNum;\r\n\r\n from = currentPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n\r\n to = from + 5;\r\n\r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n\r\n this.previousPage = currentPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n\r\n this.nextPage = currentPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n\r\n for (let i = from; i < to; i++) {\r\n\r\n let active = false;\r\n if (i == currentPage) {\r\n active = true;\r\n }\r\n\r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n\r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.models.push(data[\"Models\"][i][\"Model\"]);\r\n }\r\n\r\n this.modelsToDisplay = this.models;\r\n\r\n this.loading = false;\r\n this.loaded = true;\r\n\r\n }, error => {\r\n //console.log(error);\r\n this.loading = false;\r\n this.resultsFound = this.translationService.translations[\"WebGalis_NoResults\"];\r\n });\r\n }\r\n\r\n linkClicked(data) {\r\n\r\n this.errorMessage = null;\r\n this.loading = true;\r\n this.evalSelectedOption(data);\r\n\r\n }\r\n\r\n formActionResult(data: any, error: any, context: any) {\r\n if (data) {\r\n context.dialogRef.close(context.searchResult);\r\n } else {\r\n let splited = context.dialogData.onValueSelectValidation.split(\":\");\r\n context.errorMessage = context.translationService.translate(splited[2]);\r\n }\r\n }\r\n\r\n evalSelectedOption(data) {\r\n var url = \"\";\r\n\r\n if (this.propName.length == 0) {\r\n this.propName = \"_\";\r\n }\r\n\r\n if (data[\"Id\"] > 0) {\r\n url = \"api/data/relatedentity/\" + this.dialogData[\"formName\"] + \"/\" + this.propName + \"/\" + this.entityModel + \"/\" + data[\"Id\"];\r\n } else {\r\n //relatedentity/external/{formInfo}/{propName}/{sourcerepository}/{repositoryid}\r\n url = \"api/data/relatedentity/external/\" + this.dialogData[\"formName\"] + \"/\" + this.dialogData[\"propName\"] + \"/\" + data[\"SourceRepository\"] + \"/\" + data[\"RepositoryId\"];\r\n }\r\n\r\n this.restProvider.getDataGET(url).subscribe(data => {\r\n let jsonData = JSON.parse(data);\r\n this.searchResult = jsonData[\"Model\"];\r\n\r\n if (this.dialogData.onValueSelectValidation.length > 0) {\r\n if (this.dialogData.onValueSelectValidation.includes(\"formAction\")) {\r\n let splited = this.dialogData.onValueSelectValidation.split(\":\");\r\n this.formActionService.executeAction(this.formActionService.getAction(splited[1]), {}, jsonData[\"Model\"], this.formActionResult, null, this, null);\r\n }\r\n } else {\r\n this.dialogRef.close(jsonData[\"Model\"]);\r\n }\r\n\r\n this.loading = false;\r\n }, error => { this.loading = false; });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n search(page) {\r\n this.errorMessage = null;\r\n this.setSearchFields();\r\n this.loaded = false;\r\n\r\n if (page == null || typeof page == \"undefined\") {\r\n page = 1;\r\n }\r\n\r\n if (this.popupSearchValue != \"\" && this.popupSearchValue != \"*\") {\r\n\r\n // if customORTreeQuery is not null, replace all fieldvalues with current search value\r\n if (this.customORQuery == null) {\r\n this.mainSearchQuery[\"TreeQuery\"][\"FieldValue\"] = this.popupSearchValue + \"*\";\r\n } else {\r\n this.mainSearchQuery[\"TreeQuery\"] = this.handleORTreeQuery(this.customORQuery, this.popupSearchValue);\r\n }\r\n }\r\n else {\r\n if (this.customORQuery == null) {\r\n this.mainSearchQuery[\"TreeQuery\"][\"FieldValue\"] = \"*\";\r\n } else {\r\n this.mainSearchQuery[\"TreeQuery\"] = this.customORQuery;//this.handleORTreeQuery(this.customORQuery, \"*\");\r\n }\r\n }\r\n\r\n this.performLinkedDataSearch(page);\r\n }\r\n\r\n private handleORTreeQuery(ORTreeQuery: any, popupSearchVal: string) {\r\n\r\n if (ORTreeQuery != null && typeof ORTreeQuery != \"undefined\") {\r\n for (let i = 0; i < ORTreeQuery.SubQueries.length; i++) {\r\n ORTreeQuery.SubQueries[i].FieldValue = popupSearchVal+\"*\";\r\n }\r\n }\r\n return ORTreeQuery;\r\n }\r\n\r\n pageChanged(number) {\r\n\r\n this.errorMessage = null;\r\n this.loaded = false;\r\n this.selectedPage = number;\r\n this.search(number);\r\n }\r\n\r\n toLastPage() {\r\n this.errorMessage = null;\r\n this.loaded = false;\r\n\r\n if (this.totalPages < 1) {\r\n this.totalPages = 1;\r\n }\r\n\r\n this.selectedPage = this.totalPages;\r\n this.search(this.selectedPage);\r\n }\r\n\r\n toFirstPage() {\r\n this.errorMessage = null;\r\n this.loaded = false;\r\n this.selectedPage = 1;\r\n this.search(1);\r\n } \r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n return this.dfms.getValue(object, propertyPath);\r\n }\r\n\r\n getProp(prop) {\r\n try {\r\n return this.searchValues[prop];\r\n } catch (e) {\r\n return \"\";\r\n }\r\n }\r\n\r\n setProp(prop, value) {\r\n try {\r\n this.searchValues[prop] = value;\r\n } catch (e) {\r\n }\r\n }\r\n\r\n imageClick(imageComponent:SemImageViewerComponent){\r\n this.dialogRef.close(imageComponent.fileObj);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DynamicFieldsManagerService } from '../../../../services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { SearchService } from '../../../../services/search/search.service';\r\nimport { TranslationsProviderService } from '../../../../services/translations-provider/translations-provider.service';\r\nimport { SemGenerateDialogComponent } from '../sem-generate-dialog/sem-generate-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-sem-file-explorer-dialog',\r\n templateUrl: './sem-file-explorer-dialog.component.html',\r\n styleUrls: ['./sem-file-explorer-dialog.component.css']\r\n})\r\nexport class SemFileExplorerDialogComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n private restProvider: RestProviderService,\r\n private changeDet: ChangeDetectorRef,\r\n public translationService: TranslationsProviderService,\r\n public dfms: DynamicFieldsManagerService,\r\n public translationsService: TranslationsProviderService,\r\n public searchService: SearchService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, ChangeDetectorRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { DatePipe } from '@angular/common';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\n\r\n@Component({\r\n selector: 'app-sem-generate-dialog',\r\n templateUrl: './sem-generate-dialog.component.html',\r\n styleUrls: ['./sem-generate-dialog.component.css']\r\n})\r\nexport class SemGenerateDialogComponent implements OnInit {\r\n\r\n parameterData: any = [];\r\n form: any;\r\n model: any = {};\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n private restProvider: RestProviderService,\r\n private changeDet: ChangeDetectorRef,\r\n public translationService: TranslationsProviderService,\r\n public dfms: DynamicFieldsManagerService,\r\n public translationsService: TranslationsProviderService,\r\n public searchService: SearchService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.form = this.dialogData[\"form\"];\r\n if (typeof this.dialogData[\"reportId\"] != \"undefined\" && this.dialogData[\"reportId\"]) {\r\n let model = new RequestModel;\r\n model.url = \"api/report/parameters\";\r\n model.data = { ReportId: this.dialogData[\"reportId\"] };\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.restProvider.getDataPOST(model).subscribe(data => {\r\n //console.log(\"Parameter data : \", data);\r\n this.parameterData = data;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }, error => {\r\n //console.log(\"Error retrieving parameter data\", error);\r\n });\r\n }\r\n }\r\n\r\n getProp(prop, expression) {\r\n let value = \"\";\r\n\r\n if (expression) {\r\n let midValue = eval(expression);\r\n //let midValue = new Function(expression).call(this);\r\n value = midValue;\r\n }\r\n else {\r\n value = this.dfms.getValue(this.model, prop);\r\n //this.form.controls[prop + this.sectionId].setValue(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n setProp(prop, value) {\r\n this.dfms.assign(this.model, prop, value, true);\r\n //this.form.controls[prop + this.sectionId].setValue(value);\r\n }\r\n\r\n print() {\r\n //console.log(\"Model: \", this.model);\r\n }\r\n\r\n async generate() {\r\n\r\n let apiModel = {};\r\n for (var i = 0; i < Object.keys(this.model).length; i++) {\r\n apiModel[Object.keys(this.model)[i]] = { \"StringValue\": this.model[Object.keys(this.model)[i]] };\r\n }\r\n\r\n //We moved retrieving of values from auto parameters to server side report generation method. Leaving it in, cause you never know :D\r\n /*for(var i = 0;i(fModel).subscribe(data => {\r\n //console.log(data);\r\n\r\n const linkSource = 'data:application/pdf;base64,' + data[\"Data\"];\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = datePipe.transform(Date.now(), \"dd_MM_yyyy_hh_mm_ss\") + \"_report.pdf\";\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n }, error => {\r\n //console.log(error);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n }\r\n}\r\n","import { OnInit, AfterViewInit, Component, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SemDataGridComponent } from \"../../sem-data-grid/sem-data-grid.component\";\r\nimport { TranslationsProviderService } from \"src/app/services/translations-provider/translations-provider.service\";\r\nimport { MetaModelService } from \"src/app/services/metamodel/metamodel-provider.service\";\r\nimport { UserService } from \"src/app/services/user/user-provider.service\";\r\nimport { UserSearchSettingModel } from \"src/app/models/search/user-search-setting-model\";\r\nimport { DataGridSortingFlag } from \"src/app/models/datagrid/data-grid-column-sorting-flag\";\r\nimport { UserSearchSettingPropertyModel } from \"src/app/models/search/user-search-setting-property-model\";\r\nimport { ProjectionFacetWrapperModel } from \"src/app/models/search/facet-projection-wrapper.model\";\r\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from \"@angular/cdk/drag-drop\";\r\nimport { DynamicLoadingUtil } from \"src/app/shared/helpers/dynamic-loading-util\";\r\nimport { SearchService } from \"src/app/services/search/search.service\";\r\n\r\n\r\n@Component({\r\n selector: 'sem-grid-display-fields-dialog',\r\n templateUrl: './sem-grid-display-fields-dialog.component.html',\r\n styleUrls: ['./sem-grid-display-fields-dialog.component.css']\r\n})\r\nexport class SemGridDisplayFieldsDialogComponent implements OnInit, AfterViewInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public translationsService: TranslationsProviderService,\r\n public metaModelService: MetaModelService,\r\n public userService: UserService,\r\n public searchService: SearchService) {\r\n }\r\n\r\n\r\n selectedGridField: any = null;\r\n gridAvailibleFields: any = [];\r\n gridViewFields: any = [];\r\n gridAddedFields: any = [];\r\n gridOriginalFieldsList: any = [];\r\n gridOriginalAddedFielsList: any = [];\r\n userGridSettings: UserSearchSettingModel = null;\r\n modelName: string = null;\r\n placeHolder: string = null;\r\n gridSettings: any = null;\r\n originalGridColumnSettings: any = null;\r\n helperColumnFlags: any = [];\r\n metamodelGridFields;\r\n gridFieldModified:boolean = false;\r\n\r\n ngOnInit() {\r\n\r\n this.gridAvailibleFields = this.dialogData[\"gridAvailibleFields\"];\r\n\r\n /*if(this.dialogData.type.includes(\"grid\")){\r\n this.gridAvailibleFields = this.gridAvailibleFields.concat(this.dialogData[\"gridAddedFields\"]);\r\n this.gridViewFields = this.dialogData[\"gridAddedFields\"];\r\n }else{\r\n this.gridAddedFields = this.dialogData[\"gridAddedFields\"];\r\n }*/\r\n\r\n /*if(this.dialogData.type.includes(\"grid\")){\r\n this.gridAddedFields = this.dialogData[\"gridAddedFields\"].filter(x => x.FieldType == 3);\r\n }else{\r\n this.gridAddedFields = this.dialogData[\"gridAddedFields\"].filter(x => x.FieldType == 2);\r\n }*/\r\n\r\n //this.gridAddedFields = this.dialogData.userGridSettings.SearchFields;\r\n this.gridAddedFields = this.dialogData[\"gridAddedFields\"];\r\n\r\n this.gridOriginalFieldsList = this.dialogData[\"gridOriginalFieldsList\"];\r\n this.gridOriginalAddedFielsList = this.dialogData[\"gridOriginalAddedFielsList\"];\r\n this.userGridSettings = this.dialogData[\"userGridSettings\"];\r\n this.modelName = this.dialogData[\"modelName\"];\r\n this.gridSettings = this.dialogData[\"gridSettings\"];\r\n this.originalGridColumnSettings = this.dialogData[\"originalGridColumnSettings\"];\r\n this.helperColumnFlags = this.dialogData[\"helperColumnFlags\"];\r\n this.placeHolder = this.dialogData[\"placeHolder\"];\r\n this.metamodelGridFields = this.dialogData[\"metamodelGridFields\"];\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n removeAssign(){\r\n this.gridAddedFields = [];\r\n this.gridViewFields = [];\r\n this.gridFieldModified = true;\r\n }\r\n\r\n listItemClick(event, newValue) {\r\n this.selectedGridField = newValue;\r\n }\r\n\r\n addGridField() {\r\n\r\n if(this.dialogData.type.includes(\"grid\")){\r\n if(this.gridAddedFields.length > 3){\r\n return;\r\n }\r\n }\r\n\r\n if (typeof this.selectedGridField != \"undefined\" && this.selectedGridField != null) {\r\n // remove from array of availibleFields\r\n let index = this.gridAvailibleFields.findIndex(x => x.Name == this.selectedGridField.Name);\r\n if (index >= 0) {\r\n \r\n if(this.dialogData.type == \"list\"){\r\n this.selectedGridField.FieldType = 2;\r\n this.gridAvailibleFields.splice(index, 1);\r\n }else{\r\n this.selectedGridField.FieldType = 4;\r\n }\r\n\r\n // add to array of added fields\r\n this.gridAddedFields.push(this.selectedGridField);\r\n\r\n if (this.gridOriginalFieldsList != null && typeof this.gridOriginalFieldsList != \"undefined\") {\r\n // find selected in original and remove\r\n let i = this.gridOriginalFieldsList.findIndex(x => x.Name == this.selectedGridField.Name);\r\n if (i >= 0) {\r\n this.gridOriginalFieldsList.splice(i, 1);\r\n }\r\n }\r\n\r\n // selectedGridField is next availible grid field\r\n let newSelectedItem = this.gridAvailibleFields[index - 1];\r\n if (newSelectedItem < 0) {\r\n newSelectedItem = 0;\r\n }\r\n\r\n if (newSelectedItem != null && typeof newSelectedItem != \"undefined\") {\r\n this.selectedGridField = newSelectedItem;\r\n } else {\r\n // get first if at least one field is present\r\n if (this.gridAvailibleFields.length > 0) {\r\n this.selectedGridField = this.gridAvailibleFields[0];\r\n } else {\r\n this.selectedGridField = null;\r\n }\r\n }\r\n }\r\n this.gridFieldModified = true;\r\n }\r\n }\r\n\r\n removeAddedGridField() {\r\n if (typeof this.selectedGridField != \"undefined\" && this.selectedGridField != null) {\r\n // remove from array of addedFields\r\n let index = this.gridAddedFields.findIndex(x => x.Name == this.selectedGridField.Name);\r\n if (index >= 0) {\r\n this.gridAddedFields.splice(index, 1);\r\n // add to array of availibleFields\r\n this.gridAvailibleFields.unshift(this.selectedGridField);\r\n // add to array of original av fields, since when adding we also removed from originalfieldslist\r\n this.gridOriginalFieldsList.unshift(this.selectedGridField);\r\n this.selectedGridField = null;\r\n }\r\n\r\n // selectedGridField is next availible grid field\r\n let newSelectedItem = this.gridAddedFields[index - 1];\r\n if (newSelectedItem < 0) {\r\n newSelectedItem = 0;\r\n }\r\n\r\n if (newSelectedItem != null && typeof newSelectedItem != \"undefined\") {\r\n this.selectedGridField = newSelectedItem;\r\n } else {\r\n // get first if at least one field is present\r\n if (this.gridAddedFields.length > 0) {\r\n this.selectedGridField = this.gridAddedFields[0];\r\n } else {\r\n this.selectedGridField = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n fieldSearch(searchValue: string) {\r\n if (typeof searchValue != \"undefined\" && searchValue.trim() != \"\") {\r\n let lowerCaseSearchValue = searchValue.toLocaleLowerCase();\r\n let filteredItems = this.gridAvailibleFields.filter(x => x.Translation.toLocaleLowerCase().includes(lowerCaseSearchValue));\r\n this.gridAvailibleFields = filteredItems;\r\n } else {\r\n this.gridAvailibleFields = this.gridOriginalFieldsList.map(x => Object.assign({}, x));\r\n }\r\n }\r\n\r\n\r\n restoreGridSettings() {\r\n\r\n // return all addedFields to availible\r\n //for (let item in this.gridAddedFields) {\r\n //this.gridAvailibleFields.push(item);\r\n //}\r\n\r\n // clear\r\n //this.gridAddedFields = [];\r\n //this.gridOriginalAddedFielsList = [];\r\n this.saveUserAdditionalGridFields(true);\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(this.gridAddedFields, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n cancelGridSettings() {\r\n this.gridAddedFields = this.gridOriginalAddedFielsList.map(x => Object.assign({}, x));\r\n this.gridAvailibleFields = this.gridOriginalFieldsList.map(x => Object.assign({}, x));\r\n\r\n // close dialog and send data back \r\n var returnData = {\r\n \"gridAvailibleFields\": this.gridAvailibleFields,\r\n \"gridAddedFields\": this.gridAddedFields,\r\n \"gridOriginalFieldsList\": this.gridOriginalFieldsList,\r\n \"gridOriginalAddedFielsList\": this.gridOriginalAddedFielsList,\r\n \"userGridSettings\": this.userGridSettings,\r\n \"gridSettings\": this.gridSettings,\r\n \"originalGridColumnSettings\": this.originalGridColumnSettings,\r\n \"helperColumnFlags\": this.helperColumnFlags\r\n }\r\n\r\n this.dialogRef.close(returnData);\r\n\r\n }\r\n\r\n addAllowed(){\r\n if(this.dialogData.type.includes(\"grid\")){\r\n if(this.gridAddedFields.length > 3){\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n saveUserAdditionalGridFields(restore: boolean) {\r\n\r\n if (this.userGridSettings == null || typeof this.userGridSettings == \"undefined\") {\r\n this.userGridSettings = new UserSearchSettingModel;\r\n this.userGridSettings.ModelName = this.modelName;\r\n this.userGridSettings.SearchPlaceHolderTitle = this.placeHolder;\r\n }\r\n\r\n\r\n this.userGridSettings.SearchFields = [];\r\n for (let field of this.gridAddedFields) {\r\n\r\n var searchField = new UserSearchSettingPropertyModel;\r\n var userSearchSet = new UserSearchSettingModel;\r\n\r\n searchField.PropertyPath = field[\"Name\"];\r\n userSearchSet.Id = this.userGridSettings.Id;\r\n searchField.UserSearchSetting = userSearchSet;\r\n\r\n if(this.dialogData.type.includes(\"grid\")){\r\n searchField.FieldType = 4;\r\n }else{\r\n searchField.FieldType = 2;\r\n }\r\n\r\n this.userGridSettings.SearchFields.push(searchField);\r\n }\r\n\r\n if ((this.userGridSettings.View == null || typeof this.userGridSettings.View == \"undefined\") && this.dialogData[\"viewId\"] != null && typeof this.dialogData[\"viewId\"] != \"undefined\") {\r\n this.userGridSettings.View =\r\n {\r\n \"Id\": this.dialogData[\"viewId\"]\r\n }\r\n }\r\n\r\n\r\n this.userGridSettings.CustomPageSize = this.searchService.pageSize;\r\n let helperColumnFlagsTemp: DataGridSortingFlag = {};\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.userService.saveUserSettings(this.userGridSettings, true, restore).subscribe(data => {\r\n\r\n this.userGridSettings = data;\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n\r\n if (restore) {\r\n\r\n this.gridAddedFields = [];\r\n for (let i = 0; i < this.userGridSettings?.SearchFields?.length; i++) {\r\n\r\n if (this.userGridSettings.SearchFields[i].FieldType != 1) {\r\n // find saved field in metamodelGridFields\r\n let index = this.metamodelGridFields.findIndex(x => x.Name == this.userGridSettings.SearchFields[i].PropertyPath);\r\n\r\n let headerText = this.userGridSettings.SearchFields[i].PropertyPath;\r\n let binding = this.userGridSettings.SearchFields[i].PropertyPath;\r\n let isImageControl = false;\r\n let isSortable = false;\r\n let isDateTime = false;\r\n let isBoolean = false;\r\n\r\n if (index >= 0) {\r\n\r\n headerText = this.metamodelGridFields[index][\"Translation\"];\r\n binding = this.metamodelGridFields[index][\"Name\"];\r\n isImageControl = this.metamodelGridFields[index][\"IsImageControl\"];\r\n isSortable = this.metamodelGridFields[index][\"IsSortable\"];\r\n isDateTime = this.metamodelGridFields[index][\"IsDateTime\"];\r\n isBoolean = this.metamodelGridFields[index][\"IsCheckBox\"];\r\n\r\n // also add into addedFields\r\n this.gridAddedFields.push(this.metamodelGridFields[index]);\r\n }\r\n\r\n this.helperColumnFlags[binding] = {\r\n \"IsSortable\": isSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n }\r\n }\r\n\r\n this.gridOriginalAddedFielsList = this.gridAddedFields.map(x => Object.assign({}, x));\r\n\r\n }\r\n\r\n if (this.gridAddedFields != null && this.gridAddedFields.length > 0) {\r\n let savedColumns = [];\r\n\r\n\r\n // update grid header columns with saved grid fields(fieldtype = 2)\r\n for (let item of this.gridAddedFields) {\r\n savedColumns.push(\r\n {\r\n \"HeaderText\": item[\"Translation\"],\r\n \"BindingField\": item[\"Name\"],\r\n \"Width\": 30,\r\n \"IsImageControl\": item[\"IsImageControl\"],\r\n \"IsDateTime\": item[\"IsDateTime\"],\r\n \"IsBoolean\": item[\"IsCheckBox\"]\r\n });\r\n\r\n helperColumnFlagsTemp[item[\"Name\"]] = {\r\n \"IsSortable\": item[\"IsSortable\"],\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n\r\n }\r\n\r\n this.gridSettings.Columns = savedColumns.map(x => Object.assign({}, x));\r\n } else {\r\n this.gridSettings.Columns = this.originalGridColumnSettings.map(x => Object.assign({}, x));\r\n }\r\n\r\n\r\n /*this.gridAvailibleFields = this.dialogData[\"gridAvailibleFields\"];\r\n this.gridAddedFields = this.dialogData[\"gridAddedFields\"];\r\n this.gridOriginalFieldsList = this.dialogData[\"gridOriginalFieldsList\"];\r\n this.gridOriginalAddedFielsList = this.dialogData[\"gridOriginalAddedFielsList\"];\r\n this.userGridSettings = this.dialogData[\"userGridSettings\"];\r\n this.modelName = this.dialogData[\"modelName\"];\r\n this.gridSettings = this.dialogData[\"gridSettings\"];\r\n this.originalGridColumnSettings = this.dialogData[\"originalGridColumnSettings\"];*/\r\n\r\n\r\n // new grid settings (columns) saved\r\n // need to change projection for search \r\n let newProjection = this.gridSettings.Columns.map(x => x.BindingField);\r\n\r\n\r\n if (helperColumnFlagsTemp != null && typeof helperColumnFlagsTemp != \"undefined\") {\r\n for (let key in helperColumnFlagsTemp) {\r\n\r\n if (this.helperColumnFlags[key] != null && typeof this.helperColumnFlags[key] != \"undefined\") {\r\n\r\n this.helperColumnFlags[key].IsSortable = helperColumnFlagsTemp[key].IsSortable;\r\n this.helperColumnFlags[key].ShowSort = false;\r\n this.helperColumnFlags[key].SortingUsed = false;\r\n } else {\r\n this.helperColumnFlags[key] = {\r\n \"IsSortable\": helperColumnFlagsTemp[key].IsSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n }\r\n }\r\n }\r\n\r\n // save is successfull\r\n // close dialog and send data back \r\n var returnData = {\r\n \"gridAvailibleFields\": this.gridAvailibleFields,\r\n \"gridAddedFields\": this.gridAddedFields,\r\n \"gridOriginalFieldsList\": this.gridOriginalFieldsList,\r\n \"gridOriginalAddedFielsList\": this.gridOriginalAddedFielsList,\r\n \"userGridSettings\": this.userGridSettings,\r\n \"gridSettings\": this.gridSettings,\r\n \"originalGridColumnSettings\": this.originalGridColumnSettings,\r\n \"newProjection\": newProjection,\r\n \"helperColumnFlags\": this.helperColumnFlags,\r\n \"restore\": restore\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.dialogRef.close(returnData);\r\n\r\n }, error => {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n });\r\n\r\n }\r\n\r\n translate(key: string) {\r\n return this.translationsService.translate(key);\r\n }\r\n\r\n doubleClickAdd() {\r\n if (this.selectedGridField != null && typeof this.selectedGridField != \"undefined\") {\r\n this.addGridField();\r\n }\r\n }\r\n\r\n doubleClickRemove() {\r\n if (this.selectedGridField != null && typeof this.selectedGridField != \"undefined\") {\r\n this.removeAddedGridField();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ParameterFormsService } from \"src/app/services/parameter-forms-service/parameter-forms.service\";\r\nimport { SearchService } from \"src/app/services/search/search.service\";\r\nimport { TranslationsProviderService } from \"src/app/services/translations-provider/translations-provider.service\";\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'sem-parameter-dialog',\r\n templateUrl: './sem-parameter-dialog.component.html',\r\n styleUrls: ['./sem-parameter-dialog.component.css']\r\n})\r\nexport class SemParameterDialogComponent implements OnInit {\r\n \r\n constructor( \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public parameterFormsService: ParameterFormsService,\r\n public translationsService: TranslationsProviderService,\r\n public searchService: SearchService,\r\n private restProvider: RestProviderService) {\r\n }\r\n\r\n closingParameterFormSubscription: any;\r\n paramsFormUrl: string;\r\n isReportInUse: boolean|null = false;\r\n reportId: any;\r\n reportParameters: any = [];\r\n model: any = {};\r\n customHeaderTitle: string = null;\r\n customHeaderTitlePresent: boolean = false;\r\n customCssClass: string = null;\r\n\r\n ngOnDestroy() : void {\r\n this.parameterFormsService.closeParameterFormDialog(undefined);\r\n if (typeof this.closingParameterFormSubscription != \"undefined\" && this.closingParameterFormSubscription != null) {\r\n this.closingParameterFormSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void { \r\n this.paramsFormUrl = \"/_/params/\" + this.dialogData[\"parameterFormId\"];\r\n this.reportId = this.dialogData[\"reportId\"];\r\n \r\n this.customCssClass = this.dialogData[\"customCssClass\"];\r\n this.customHeaderTitle = this.dialogData[\"customHeaderTitle\"];\r\n if(this.customHeaderTitle != null && typeof this.customHeaderTitle != \"undefined\" && this.customHeaderTitle != \"\"){\r\n this.customHeaderTitlePresent = true;\r\n }\r\n\r\n this.isReportInUse = (typeof this.reportId != \"undefined\" && this.reportId != null) ? true : false; \r\n \r\n this.closingParameterFormSubscription = this.parameterFormsService.currentCloseDialog.subscribe(value => {\r\n if(typeof value != \"undefined\" && value != null){ \r\n this.dialogRef.close({\r\n \"Canceled\": value,\r\n \"Model\": this.parameterFormsService.getParameterFormModel()\r\n }) \r\n } \r\n });\r\n\r\n if(this.isReportInUse)\r\n {\r\n let model = new RequestModel;\r\n model.url = \"api/report/parameters\";\r\n model.data = { ReportId: this.reportId };\r\n\r\n this.restProvider.getDataPOST(model).subscribe(data => {\r\n console.log(\"Parameter data : \", data);\r\n this.reportParameters = data;\r\n }, error => {\r\n console.log(\"Error retrieving parameter data\", error);\r\n });\r\n }\r\n}\r\n \r\n confirmParameterDialog() { \r\n \r\n let apiModel = {};\r\n for (var i = 0; i < Object.keys(this.model).length; i++) {\r\n apiModel[Object.keys(this.model)[i]] = { \"StringValue\": this.model[Object.keys(this.model)[i]] };\r\n }\r\n\r\n var query = {\r\n \"ReportId\": this.reportId,\r\n \"Query\": {\r\n \"MainQuery\": null,\r\n \"FieldQueries\": null,\r\n \"TreeQuery\": {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": \"Id\",\r\n \"FieldValue\": \"1\",\r\n \"Path\": null,\r\n \"Exclude\": false,\r\n \"Subqueries\": null,\r\n \"BoostFactor\": null,\r\n \"Negate\": false\r\n },\r\n \"Facets\": null,\r\n \"Projection\": [],\r\n \"RequestedFacets\": null,\r\n \"Page\": 1,\r\n \"PageSize\": 100,\r\n \"ClassType\": null,\r\n \"ClassTypes\": [],\r\n \"SortFields\": null,\r\n \"UseCache\": true,\r\n \"RepositoryName\": \"lucene\",\r\n \"ParseMode\": 0,\r\n \"IncludeParents\": false\r\n },\r\n \"ResultType\": 0,\r\n \"DocumentId\": \"1\",\r\n \"FileName\": \"report_\" + Date.now().toString(),\r\n \"Parameters\": apiModel,\r\n \"GlobalConfig\": {\r\n \"DateFormat\": \"dd. MM. yyyy\"\r\n }\r\n\r\n }\r\n\r\n var fModel = new RequestModel;\r\n fModel.data = query;\r\n\r\n fModel.contentType = \"application/json\";\r\n fModel.responseType = \"application/octet-stream;base64 \";\r\n fModel.url = \"api/report/generate\";\r\n var datePipe = new DatePipe('en-US');\r\n\r\n this.restProvider.getDataPOST(fModel).subscribe(data => {\r\n //console.log(data);\r\n\r\n const linkSource = 'data:application/pdf;base64,' + data[\"Data\"];\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = datePipe.transform(Date.now(), \"dd_MM_yyyy_hh_mm_ss\") + \"_report.pdf\";\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n //DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n }, error => {\r\n //console.log(error);\r\n //DynamicLoadingUtil.loader.showLoader = false;\r\n }); \r\n\r\n this.parameterFormsService.closeParameterFormDialog(false); \r\n }\r\n\r\n cancelParameterDialog() { \r\n //this.parameterFormsService.setParameterFormModel({});\r\n this.parameterFormsService.closeParameterFormDialog(true);\r\n }\r\n}\r\n","import { Component, OnInit, Inject, AfterViewInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslationsProviderService } from '../../../../services/translations-provider/translations-provider.service';\r\nimport { QueryBuilderConfig } from '../../sem-query-builder/query-builder.interfaces';\r\nimport { SemSearchComponent } from '../../sem-search/sem-search.component';\r\n\r\n\r\n@Component({\r\n selector: 'sem-query-builder-dialog',\r\n templateUrl: './sem-query-builder-dialog.component.html',\r\n styleUrls: ['./sem-query-builder-dialog.component.css']\r\n})\r\nexport class SemQueryBuilderDialogComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public translationsService: TranslationsProviderService) {\r\n }\r\n\r\n private queryBConfig: QueryBuilderConfig = {\r\n fields: {}\r\n }\r\n private queryBuilderModel: any = null; \r\n\r\n ngOnInit() {\r\n \r\n this.queryBConfig = this.dialogData[\"queryBuilderConfig\"];\r\n this.queryBuilderModel = this.dialogData[\"queryBuilderModel\"];\r\n\r\n if (this.queryBuilderModel === null\r\n || this.queryBuilderModel === undefined\r\n || this.queryBuilderModel.rules === null\r\n || this.queryBuilderModel.rules === undefined\r\n || this.queryBuilderModel.rules.length < 1) {\r\n\r\n this.queryBuilderModel = this.getDefaultQueryBuilderModel();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n translate(key)\r\n {\r\n return this.translationsService.translate(key);\r\n }\r\n\r\n applyQueryBuilder()\r\n {\r\n const returnData = {\r\n \"queryBuilderModel\": this.queryBuilderModel \r\n }\r\n\r\n this.dialogRef.close(returnData);\r\n }\r\n\r\n resetQueryBuilder()\r\n {\r\n this.queryBuilderModel = this.getDefaultQueryBuilderModel();\r\n }\r\n\r\n getDefaultQueryBuilderModel()\r\n {\r\n\r\n // galisweb task #5719, when adding default no field is selected\r\n\r\n let obj = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n\r\n obj.rules.push({ \"field\": undefined, \"operator\": undefined, \"value\": undefined });\r\n\r\n //if (this.queryBConfig && this.queryBConfig.fields) {\r\n\r\n // let propName = null;\r\n // for (const key in this.queryBConfig.fields) {\r\n // propName = key;\r\n // break;\r\n // }\r\n\r\n\r\n // // add first field so default wont be empty\r\n // const fieldObj = this.queryBConfig.fields[propName];\r\n // if (fieldObj) {\r\n // obj.rules.push({ \"field\": propName, \"operator\": fieldObj.operators[0], \"value\": undefined });\r\n // }\r\n //}\r\n\r\n return obj;\r\n }\r\n\r\n closeQueryBuilder(){\r\n this.dialogRef.close(null);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, ChangeDetectorRef, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { MetaModelService } from 'src/app/services/metamodel/metamodel-provider.service';\r\nimport { UserService } from 'src/app/services/user/user-provider.service';\r\nimport { SemSearchComponent } from '../../sem-search/sem-search.component';\r\nimport { UserSearchSettingModel } from 'src/app/models/search/user-search-setting-model';\r\nimport { UserSearchSettingPropertyModel } from 'src/app/models/search/user-search-setting-property-model';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { CdkConnectedOverlay } from '@angular/cdk/overlay';\r\nimport { first } from 'rxjs/operators';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\n\r\n\r\n@Component({\r\n selector: 'sem-search-fields-dialog',\r\n templateUrl: './sem-search-fields-dialog.component.html',\r\n styleUrls: ['./sem-search-fields-dialog.component.css']\r\n})\r\nexport class SemSearchFieldsDialogComponent implements OnInit, AfterViewInit {\r\n \r\n\r\nconstructor( \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any, \r\n public translationsService: TranslationsProviderService, \r\n public metaModelService: MetaModelService,\r\n public userService: UserService,\r\n public searchService: SearchService) { \r\n }\r\n\r\n availibleFields: any = [];\r\n addedFields: any = [];\r\n originalFieldsList: any = [];\r\n originalAddedFielsList: any = [];\r\n userSearchSettings: UserSearchSettingModel;\r\n\r\n private modelName: string;\r\n private viewId: string;\r\n private customViewFilter: any;\r\n private enableFacets: any;\r\n private quickViewEnabled: any; \r\n private selectedItem: any;\r\n private quickViewFormName: any; \r\n private onlyLastNodeNames:any;\r\n private showItemNumber: boolean;\r\n private showActionsColumn: boolean;\r\n private searchPlaceHolder: string;\r\n private metamodelSearchFields;\r\n\r\n ngOnInit() {\r\n this.availibleFields = this.dialogData[\"availibleFields\"];\r\n this.addedFields = this.dialogData[\"addedFields\"];\r\n this.originalFieldsList = this.dialogData[\"originalFieldsList\"];\r\n this.originalAddedFielsList = this.dialogData[\"originalAddedFieldsList\"];\r\n this.userSearchSettings = this.dialogData[\"userSearchSettings\"];\r\n this.modelName = this.dialogData[\"modelName\"];\r\n this.viewId = this.dialogData[\"viewId\"];\r\n this.enableFacets = this.dialogData[\"enableFacets\"];\r\n this.quickViewEnabled = this.dialogData[\"quickViewEnabled\"];\r\n this.customViewFilter = this.dialogData[\"customViewFilter\"]\r\n this.onlyLastNodeNames = this.dialogData[\"onlyLastNodeNames\"];\r\n this.showItemNumber = this.dialogData[\"showItemNumber\"]\r\n this.showActionsColumn = this.dialogData[\"showActionsColumn\"];\r\n this.quickViewFormName = this.dialogData[\"quickViewFormName\"];\r\n this.searchPlaceHolder = this.dialogData[\"searchPlaceHolder\"]; \r\n this.metamodelSearchFields = this.dialogData[\"metamodelSearchFields\"];\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n \r\n }\r\n\r\n removeAddedSearchField() {\r\n if (typeof this.selectedItem != \"undefined\" && this.selectedItem != null) {\r\n // remove from array of addedFields\r\n let index = this.addedFields.findIndex(x => x.Name == this.selectedItem.Name);\r\n if (index >= 0) {\r\n this.addedFields.splice(index, 1);\r\n // add to array of availibleFields\r\n this.availibleFields.unshift(this.selectedItem);\r\n this.originalFieldsList.unshift(this.selectedItem);\r\n this.selectedItem = null;\r\n }\r\n\r\n\r\n // selectedGridField is next availible grid field\r\n let newSelectedItem = this.addedFields[index - 1];\r\n if(newSelectedItem < 0){\r\n newSelectedItem = 0;\r\n }\r\n \r\n if(newSelectedItem != null && typeof newSelectedItem != \"undefined\"){\r\n this.selectedItem = newSelectedItem;\r\n }else{\r\n // get first if at least one field is present\r\n if(this.addedFields.length > 0){ \r\n this.selectedItem = this.addedFields[0];\r\n }else{\r\n this.selectedItem = null;\r\n } \r\n } \r\n }\r\n }\r\n\r\n listItemClick(event, newValue) {\r\n this.selectedItem = newValue;\r\n }\r\n\r\n addSearchField() {\r\n if (typeof this.selectedItem != \"undefined\" && this.selectedItem != null) {\r\n // remove from array of availibleFields\r\n let index = this.availibleFields.findIndex(x => x.Name == this.selectedItem.Name);\r\n if (index >= 0) {\r\n //this.originalFieldsList = this.availibleFields.map(x => Object.assign({}, x));\r\n this.availibleFields.splice(index, 1);\r\n // add to array of added fields\r\n this.addedFields.push(this.selectedItem);\r\n\r\n if (this.originalFieldsList != null && typeof this.originalFieldsList != \"undefined\") {\r\n // find selected in original and remove\r\n let i = this.originalFieldsList.findIndex(x => x.Name == this.selectedItem.Name);\r\n if (i >= 0) {\r\n this.originalFieldsList.splice(i, 1);\r\n }\r\n }\r\n\r\n \r\n // selectedGridField is next availible grid field\r\n let newSelectedItem = this.availibleFields[index - 1];\r\n if(newSelectedItem < 0){\r\n newSelectedItem = 0;\r\n }\r\n\r\n if(newSelectedItem != null && typeof newSelectedItem != \"undefined\"){\r\n this.selectedItem = newSelectedItem;\r\n }else{\r\n // get first if at least one field is present\r\n if(this.availibleFields.length > 0){ \r\n this.selectedItem = this.availibleFields[0];\r\n }else{\r\n this.selectedItem = null;\r\n } \r\n } \r\n\r\n\r\n }\r\n }\r\n }\r\n\r\n fieldSearch(searchValue: string) {\r\n if (typeof searchValue != \"undefined\" && searchValue.trim() != \"\") {\r\n this.availibleFields = this.originalFieldsList.map(x => Object.assign({}, x));\r\n let lowerCaseSearchValue = searchValue.toLocaleLowerCase();\r\n let filteredItems = this.availibleFields.filter(x => x.Translation.toLocaleLowerCase().includes(lowerCaseSearchValue));\r\n this.availibleFields = filteredItems;\r\n } \r\n /*else {\r\n this.availibleFields = this.originalFieldsList.map(x => Object.assign({}, x));\r\n }*/\r\n }\r\n\r\n restoreSearchSettings() {\r\n\r\n // return all addedFields to availible\r\n //for (let item in this.addedFields) {\r\n //this.availibleFields.push(item);\r\n //}\r\n\r\n // clear\r\n //this.addedFields = [];\r\n //this.originalAddedFielsList = [];\r\n\r\n this.saveUserAdditionalSearchFields(true);\r\n } \r\n\r\n saveUserAdditionalSearchFields(restore: boolean) {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n let userSearchSettingId = 0;\r\n let version = null;\r\n if (this.userSearchSettings != null || typeof this.userSearchSettings != \"undefined\") {\r\n userSearchSettingId = this.userSearchSettings?.Id;\r\n version = this.userSearchSettings?.Version;\r\n }\r\n\r\n this.userSearchSettings = new UserSearchSettingModel;\r\n this.userSearchSettings.Id = userSearchSettingId;\r\n this.userSearchSettings.Version = version;\r\n this.userSearchSettings.ModelName = this.modelName;\r\n this.userSearchSettings.EnableFacets = this.enableFacets;\r\n this.userSearchSettings.QuickViewEnabled = this.quickViewEnabled;\r\n this.userSearchSettings.OnlyLastNodeNames = this.onlyLastNodeNames;\r\n this.userSearchSettings.ShowItemNumber = this.showItemNumber;\r\n this.userSearchSettings.ShowActionsColumn = this.showActionsColumn;\r\n this.userSearchSettings.SearchPlaceHolderTitle = this.searchPlaceHolder;\r\n this.userSearchSettings.CustomPageSize = this.searchService.pageSize;\r\n this.userSearchSettings.QuickViewFormName = this.quickViewFormName;\r\n this.userSearchSettings.LayoutName = this.userService.currentLayout;\r\n \r\n let customViewFilterString = null;\r\n if(this.customViewFilter != null && typeof this.customViewFilter != \"undefined\"){\r\n customViewFilterString = JSON.stringify(this.customViewFilter);\r\n }\r\n this.userSearchSettings.FilterQuery = customViewFilterString;\r\n this.userSearchSettings.View = { \"Id\": this.viewId}; \r\n \r\n\r\n this.userSearchSettings.SearchFields = [];\r\n for (let field of this.addedFields) {\r\n\r\n var searchField = new UserSearchSettingPropertyModel;\r\n var userSearchSet = new UserSearchSettingModel;\r\n\r\n searchField.PropertyPath = field[\"Name\"];\r\n userSearchSet.Id = this.userSearchSettings.Id;\r\n searchField.UserSearchSetting = userSearchSet;\r\n searchField.FieldType = 1;\r\n this.userSearchSettings.SearchFields.push(searchField);\r\n }\r\n\r\n this.userService.saveUserSettings(this.userSearchSettings, false, restore).subscribe(data => {\r\n \r\n this.userSearchSettings = data;\r\n if(data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\"){ \r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"]; \r\n } \r\n\r\n if(restore){\r\n this.addedFields = [];\r\n // go through saved fields\r\n for (let i = 0; i < this.userSearchSettings?.SearchFields.length; i++) {\r\n\r\n if(this.userSearchSettings.SearchFields[i].FieldType == 1){\r\n // find saved field in metamodelSearchFields\r\n let index = this.metamodelSearchFields.findIndex(x => x.Name == this.userSearchSettings.SearchFields[i].PropertyPath);\r\n if (index >= 0) {\r\n // if property found add field\r\n this.metamodelSearchFields[index][\"SearchValue\"] = \"\";\r\n this.metamodelSearchFields[index][\"SearchValueFrom\"] = \"\";\r\n this.metamodelSearchFields[index][\"SearchValueTo\"] = \"\";\r\n this.metamodelSearchFields[index][\"CheckBoxState\"] = \"novalue\"; \r\n // also add into addedFields\r\n this.addedFields.push(this.metamodelSearchFields[index]);\r\n }\r\n } \r\n } \r\n \r\n this.originalAddedFielsList = this.addedFields.map(x => Object.assign({}, x));\r\n\r\n } \r\n \r\n this.availibleFields = [];\r\n this.originalFieldsList = [];\r\n // go through all fields\r\n for (let i = 0; i < this.metamodelSearchFields.length; i++) {\r\n // check if exists in addedFields\r\n let index = this.addedFields.findIndex(x => x.Name == this.metamodelSearchFields[i].Name);\r\n\r\n if (index < 0) {\r\n // if doesnt exists add to availible fields \r\n this.availibleFields.push(this.metamodelSearchFields[i]);\r\n this.originalFieldsList.push(this.metamodelSearchFields[i]);\r\n }\r\n }\r\n\r\n \r\n // save is successfull\r\n // close dialog and send data back \r\n var returnData = {\r\n \"modelAdditionalSearchFields\": this.addedFields.map(x => Object.assign({}, x)),\r\n \"availibleFields\": this.availibleFields,\r\n \"addedFields\": this.addedFields,\r\n \"originalFieldsList\": this.originalFieldsList,\r\n \"originalAddedFieldsList\": this.originalAddedFielsList,\r\n \"userSearchSettings\": this.userSearchSettings,\r\n \"placeHolder\":this.searchPlaceHolder,\r\n \"restore\": restore\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.dialogRef.close(returnData);\r\n \r\n }, error => { \r\n DynamicLoadingUtil.loader.showLoader = false;\r\n \r\n }); \r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n //var correntprevious = event.container.data.findIndex(row => row === event.item.data);\r\n //var prev = event.previousIndex;\r\n //moveItemInArray(this.addedFields, event.previousIndex, 1);\r\n moveItemInArray(this.addedFields, event.previousIndex, event.currentIndex);\r\n\r\n }\r\n\r\n cancelSearchSettings() {\r\n this.addedFields = this.originalAddedFielsList.map(x => Object.assign({}, x));\r\n this.availibleFields = this.originalFieldsList.map(x => Object.assign({}, x)); \r\n \r\n var returnData = {\r\n \"modelAdditionalSearchFields\": this.addedFields.map(x => Object.assign({}, x)),\r\n \"availibleFields\": this.availibleFields,\r\n \"addedFields\": this.addedFields,\r\n \"originalFieldsList\": this.originalFieldsList,\r\n \"originalAddedFieldsList\": this.originalAddedFielsList,\r\n \"userSearchSettings\": this.userSearchSettings,\r\n \"placeHolder\":this.userSearchSettings.SearchPlaceHolderTitle\r\n\r\n }\r\n\r\n this.dialogRef.close(returnData);\r\n\r\n } \r\n\r\n translate(key: string){\r\n return this.translationsService.translate(key);\r\n }\r\n\r\n doubleClickAdd(){\r\n if(this.selectedItem != null && typeof this.selectedItem != \"undefined\"){\r\n this.addSearchField();\r\n } \r\n }\r\n\r\n doubleClickRemove(){\r\n if(this.selectedItem != null && typeof this.selectedItem != \"undefined\"){\r\n this.removeAddedSearchField();\r\n } \r\n }\r\n\r\n}\r\n","import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SemManyToOneControlComponent } from '../../sem-many-to-one-control/sem-many-to-one-control.component';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { Component, OnInit, Inject, AfterViewInit } from '@angular/core';\r\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\r\nimport { RestProviderService } from '../../../../services/rest-provider/rest-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\n\r\n\r\n/**\r\n * Food data with nested structure.\r\n * Each node has a name and an optional list of children.\r\n */\r\ninterface HierarchyObject {\r\n name: string;\r\n id?: Number;\r\n parentId?: Number;\r\n children?: HierarchyObject[];\r\n dirty: boolean;\r\n}\r\n\r\n/**\r\n * @title Tree with nested nodes\r\n */\r\n@Component({\r\n selector: 'app-sem-treeview-dialog',\r\n templateUrl: './sem-treeview-dialog.component.html',\r\n styleUrls: ['./sem-treeview-dialog.component.css']\r\n})\r\nexport class SemTreeviewDialogComponent implements OnInit, AfterViewInit {\r\n\r\n treeControl = new NestedTreeControl(node => node.children);\r\n dataSource = new MatTreeNestedDataSource();\r\n\r\n entityModel: string;\r\n propName: string;\r\n linkWithExistingData: string;\r\n title: string;\r\n flatTreeData: HierarchyObject[] = [];\r\n treeData: HierarchyObject[] = [];\r\n\r\n loading: boolean = false;\r\n\r\n defaultSearchQueryString: string = \"{\\\"MainQuery\\\":null,\\\"FieldQueries\\\":{},\\\"FacetQueries\\\": {},\\\"RequestedFacets\\\": null,\\\"Projection\\\": [],\\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" },\\\"ClassTypes\\\": [],\\\"Page\\\": \\\"1\\\",\\\"PageSize\\\": \\\"1000\\\",\\\"RepositoryName\\\": \\\"lucene\\\",\\\"Form\\\": null,\\\"UseCache\\\": false, \\\"IncludeParents\\\": false}\";\r\n mainSearchQuery: any;\r\n\r\n models: any[] = [];\r\n selectedPage: number;\r\n\r\n searchTerm: string = \"\";\r\n\r\n private searchServiceSubscriber: any = null;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n private restProvider: RestProviderService,\r\n public searchService: SearchService,\r\n public translationsService: TranslationsProviderService) {\r\n\r\n }\r\n\r\n hasChild = (_: number, node: HierarchyObject) => !!node.children && node.children.length > 0;\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (typeof this.searchServiceSubscriber != \"undefined\" && this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.mainSearchQuery = JSON.parse(this.defaultSearchQueryString);\r\n\r\n // based on display fields set projection on query\r\n if (this.mainSearchQuery != null && typeof this.mainSearchQuery != \"undefined\") {\r\n\r\n let displayFieldsForProjection = [];\r\n\r\n /*for (var i = 0; i < this.displayFields.length; i++) {\r\n displayFieldsForProjection.push(this.displayFields[i].PropertyName);\r\n }*/\r\n\r\n this.mainSearchQuery[\"Projection\"] = Object.assign([], displayFieldsForProjection);\r\n // always add \"Id\" to projection\r\n this.mainSearchQuery.Projection.push(\"Id\");\r\n this.mainSearchQuery.Projection.push(\"SourceRepository\");\r\n this.mainSearchQuery.Projection.push(\"RepositoryId\");\r\n this.mainSearchQuery.Projection.push(\"Parent.Id\");\r\n this.mainSearchQuery.Projection.push(\"Title\");\r\n }\r\n\r\n this.linkWithExistingData = this.translationsService.translations[\"WebGalis_LinkWithExistingData\"];\r\n this.entityModel = this.dialogData[\"entityModel\"];\r\n this.propName = this.dialogData[\"propName\"];\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.mainSearchQuery[\"ClassTypes\"].push(this.entityModel);\r\n this.performDataSearch(1, null);\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onEnter() {\r\n this.performDataSearch(1, this.searchTerm);\r\n }\r\n\r\n performDataSearch(page, searchString) {\r\n\r\n this.models = [];\r\n this.treeData = [];\r\n this.flatTreeData = [];\r\n\r\n this.loading = true;\r\n\r\n if (this.dialogData[\"customApiUrl\"]) {\r\n\r\n this.restProvider.getDataGET(this.dialogData[\"customApiUrl\"] + \"/\" + this.dialogData[\"entityModel\"]).subscribe((data: any) => {\r\n this.models = JSON.parse(data);\r\n\r\n if (this.models && this.models.length > 0) {\r\n //Not the best option\r\n if (searchString && searchString.length > 0) {\r\n\r\n if (typeof this.models[0].Value != \"undefined\") {\r\n this.models = this.models.filter(az => az.Value.Title.toLowerCase().indexOf(searchString.toLowerCase()) > -1);\r\n\r\n this.models.sort((a, b) => {\r\n if (a.Value.Title < b.Value.Title) { return -1; }\r\n if (a.Value.Title > b.Value.Title) { return 1; }\r\n return 0;\r\n });\r\n\r\n } else {\r\n this.models = this.models.filter(az => az.Title.toLowerCase().indexOf(searchString.toLowerCase()) > -1);\r\n\r\n this.models.sort((a, b)=>{\r\n if(a.Title < b.Title) { return -1; }\r\n if(a.Title > b.Title) { return 1; }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n this.loadData(searchString);\r\n }\r\n\r\n });\r\n\r\n } else {\r\n\r\n this.flatTreeData = [];\r\n this.selectedPage = page;\r\n this.models = [];\r\n this.loading = true;\r\n this.mainSearchQuery.IncludeParents = true;\r\n this.mainSearchQuery.TreeQuery.FieldName = \"*\";\r\n\r\n if (searchString != null) {\r\n this.mainSearchQuery.IncludeParents = true;\r\n this.mainSearchQuery.TreeQuery.FieldName = \"Title\";\r\n if (searchString.includes(\"*\")) {\r\n this.mainSearchQuery.TreeQuery.FieldValue = searchString;\r\n }\r\n else {\r\n this.mainSearchQuery.TreeQuery.FieldValue = searchString + \"*\";\r\n }\r\n }\r\n\r\n this.searchServiceSubscriber = this.searchService.performSearch(this.mainSearchQuery, null, null, null).subscribe(data => {\r\n\r\n\r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.models.push(data[\"Models\"][i][\"Model\"]);\r\n }\r\n\r\n this.loadData(searchString);\r\n\r\n }, error => {\r\n //console.log(error);\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n loadData(searchString) {\r\n\r\n this.models.forEach(element => {\r\n var a = {} as HierarchyObject;\r\n if (typeof element.Value != \"undefined\") {\r\n a.name = element.Value.Title;\r\n a.id = element.Value.Id;\r\n } else {\r\n a.name = element.Title;\r\n a.id = element.Id;\r\n }\r\n\r\n //(foo === null || foo === undefined)\r\n if (element.Parent != undefined || element.Parent != null) {\r\n\r\n a.parentId = element.Parent.Id;\r\n }\r\n a.dirty = false;\r\n\r\n this.flatTreeData.push(a);\r\n\r\n });\r\n\r\n this.flatTreeData.forEach(elItem => {\r\n let filteredArr = this.flatTreeData.filter(filt => filt.parentId == elItem.id);\r\n elItem.children = filteredArr;\r\n if (searchString != null) {\r\n this.markDirty(filteredArr);\r\n }\r\n })\r\n\r\n let filteredRoots: HierarchyObject[] = this.flatTreeData.filter(ft => ft.parentId == null || ft.parentId == undefined)\r\n\r\n /*filteredRoots.forEach(elementRoot => {\r\n \r\n let childs: HierarchyObject[] = this.flatTreeData.filter(ft => ft.parentId == elementRoot.id);\r\n if(childs != null && childs != undefined){\r\n elementRoot.children = childs;\r\n }\r\n\r\n this.treeData.push(elementRoot);\r\n });*/\r\n if (filteredRoots.length > 0) {\r\n this.treeData = filteredRoots;\r\n }\r\n else {\r\n this.treeData = this.flatTreeData.filter(az => az.dirty == false);\r\n }\r\n\r\n this.treeData.sort((a, b)=>{\r\n if(a.name < b.name) { return -1; }\r\n if(a.name > b.name) { return 1; }\r\n return 0;\r\n });\r\n\r\n this.dataSource.data = this.treeData;\r\n this.treeControl.dataNodes = this.treeData;\r\n this.loading = false;\r\n this.treeControl.collapseAll();\r\n }\r\n\r\n markDirty(filteredTreeArray: HierarchyObject[]) {\r\n filteredTreeArray.forEach(element => {\r\n var a = this.flatTreeData.filter(ft => ft.id == element.id)[0];\r\n if (a != undefined) {\r\n a.dirty = true;\r\n }\r\n });\r\n }\r\n\r\n\r\n linkClicked(data) {\r\n this.loading = true;\r\n\r\n var url = \"\";\r\n\r\n if (data.id > 0 || data.id != undefined) {\r\n url = \"api/data/relatedentity/\" + this.dialogData[\"formName\"] + \"/\" + this.propName + \"/\" + this.entityModel + \"/\" + data.id;\r\n } else {\r\n //relatedentity/external/{formInfo}/{propName}/{sourcerepository}/{repositoryid}\r\n url = \"api/data/relatedentity/external/\" + this.dialogData[\"formName\"] + \"/\" + this.dialogData[\"propName\"] + \"/\" + data[\"SourceRepository\"] + \"/\" + data[\"RepositoryId\"];\r\n }\r\n\r\n this.restProvider.getDataGET(url).subscribe(data => {\r\n let jsonData = JSON.parse(data);\r\n this.dialogRef.close(jsonData[\"Model\"]);\r\n\r\n this.loading = false;\r\n }, error => { this.loading = false; });\r\n\r\n }\r\n\r\n searchString() {\r\n alert(\"Search Fired!\");\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { MetaModelService } from 'src/app/services/metamodel/metamodel-provider.service';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { UserService } from 'src/app/services/user/user-provider.service';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { SemSearchComponent } from '../../sem-search/sem-search.component';\r\n\r\nexport class UserModel {\r\n\r\n public OldPassword: string = \"\";\r\n public NewPassword: string = \"\";\r\n public NewPasswordRepeat: string = \"\";\r\n public UserName: string = \"\";\r\n public Email: string = \"\";\r\n public Name: string = \"\";\r\n public Surname: string = \"\";\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'app-sem-user-profile-dialog',\r\n templateUrl: './sem-user-profile-dialog.component.html',\r\n styleUrls: ['./sem-user-profile-dialog.component.css']\r\n})\r\nexport class SemUserProfileDialogComponent implements OnInit {\r\n\r\n public userModel: UserModel = new UserModel();\r\n public statusMessage: string = \"\";\r\n public initials:string = \"\";\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public translationsService: TranslationsProviderService,\r\n public metaModelService: MetaModelService,\r\n public userService: UserService,\r\n public searchService: SearchService,\r\n public restClient: RestProviderService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n var user = this.restClient.currentUser;\r\n\r\n this.userModel.Email = this.restClient.currentUser.Email;\r\n this.userModel.Name = this.restClient.currentUser.Name;\r\n this.userModel.Surname = this.restClient.currentUser.Surname;\r\n\r\n this.getInitials();\r\n }\r\n\r\n changePass() {\r\n var requestModel = new RequestModel();\r\n requestModel.url = \"api/user/change/pass\";\r\n this.userModel.UserName = this.restClient.currentUser.Username;\r\n requestModel.data = this.userModel;\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n var response = this.restClient.getDataPOST(requestModel).subscribe(data => {\r\n\r\n this.statusMessage = data[\"Message\"];\r\n setTimeout(() => { this.statusMessage = \"\"; }, 3000);\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n\r\n }, error => {\r\n this.statusMessage = \"Prišlo je do napake, prosim poskusite znova\";\r\n setTimeout(() => { this.statusMessage = \"\"; }, 3000);\r\n console.log(\"Error updating profile:\", error);\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n });\r\n }\r\n\r\n changeInfo() {\r\n var requestModel = new RequestModel();\r\n requestModel.url = \"api/user/change/info\";\r\n this.userModel.UserName = this.restClient.currentUser.Username;\r\n requestModel.data = this.userModel;\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n var response = this.restClient.getDataPOST(requestModel).subscribe(data => {\r\n\r\n this.statusMessage = data[\"Message\"];\r\n setTimeout(() => { this.statusMessage = \"\"; }, 3000);\r\n\r\n this.restClient.currentUser.Email = this.userModel.Email;\r\n this.restClient.currentUser.Name = this.userModel.Name;\r\n this.restClient.currentUser.Surname = this.userModel.Surname;\r\n this.restClient.currentUser.FullName = data[\"FullName\"];\r\n this.getInitials();\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n\r\n }, error => {\r\n this.statusMessage = \"Prišlo je do napake, prosim poskusite znova\";\r\n setTimeout(() => { this.statusMessage = \"\"; }, 3000);\r\n console.log(\"Error updating profile:\", error);\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n });\r\n }\r\n\r\n logout(){\r\n this.userService.logout();\r\n }\r\n\r\n tabChanged(tab){\r\n this.statusMessage = \"\";\r\n }\r\n\r\n getInitials(){\r\n this.initials = \"\";\r\n\r\n if(this.restClient.currentUser.Name && this.restClient.currentUser.Name.length > 0){\r\n this.initials += this.restClient.currentUser.Name[0];\r\n }\r\n if(this.restClient.currentUser.Surname && this.restClient.currentUser.Surname.length > 0){\r\n this.initials += this.restClient.currentUser.Surname[0];\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { EntityVersionService } from 'src/app/services/versioning/entity-version-service.service';\r\nimport { EntityVersionModel } from 'src/app/models/versioning/entity-version-model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-sem-version-dialog',\r\n templateUrl: './sem-version-dialog.component.html',\r\n styleUrls: ['./sem-version-dialog.component.css']\r\n})\r\nexport class SemVersionDialogComponent implements OnInit {\r\n\r\n \r\n versions:EntityVersionModel[];\r\n selectedVersion:EntityVersionModel = null;\r\n comparationResult:any = null;\r\n comparisionLoading:boolean = false;\r\n restoringVersion:boolean=false;\r\n\r\n\r\n constructor(private entityVersionService:EntityVersionService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public dialogData: any) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loadVersions(this.dialogData.DomainModelTypeFullName, this.dialogData.EntityId);\r\n }\r\n\r\n loadVersions(type:string, id:number){\r\n this.entityVersionService.loadVersions(type, id).subscribe(d=>{\r\n this.versions = d;\r\n }, \r\n error =>{\r\n\r\n });\r\n }\r\n\r\n compareSelected(){\r\n\r\n this.comparisionLoading = true;\r\n this.entityVersionService.comapre(this.selectedVersion.Id).subscribe(d=>{\r\n this.comparationResult = d;\r\n this.comparisionLoading = false;\r\n }, error =>{\r\n\r\n });\r\n }\r\n\r\n setSelectedVersion(version, event){\r\n if(event.target.checked){\r\n this.selectedVersion = version;\r\n this.compareSelected();\r\n }else{\r\n this.selectedVersion = null;\r\n }\r\n }\r\n\r\n formatDate(date:string){\r\n var d = new Date(date);\r\n\r\n var dd = d.getDate();\r\n\r\n var mm = d.getMonth()+1; \r\n var yyyy = d.getFullYear();\r\n\r\n var hh = d.getHours();\r\n var mm = d.getMinutes();\r\n\r\n return dd+\".\"+mm+\".\"+yyyy+ \" \"+hh+\":\"+mm+\":\"+d.getSeconds();\r\n }\r\n\r\n closeVersionDialog(){\r\n this.dialogRef.close();\r\n }\r\n\r\n restoreToVersion(){\r\n this.restoringVersion = true;\r\n\r\n this.entityVersionService.restore(this.selectedVersion.Id).subscribe(d=>{\r\n this.restoringVersion = false;\r\n window.location.reload();\r\n }, error =>{\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input, AfterContentInit } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'sem-bound-label',\r\n templateUrl: './sem-bound-label.component.html',\r\n styleUrls: ['./sem-bound-label.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemBoundLabelComponent, multi: true }\r\n ]\r\n})\r\nexport class SemBoundLabelComponent extends SemControlComponent implements OnInit, AfterContentInit {\r\n\r\n @Input() binding: string = null;\r\n @Input() arrayDisplayBinding: string = null;\r\n labelValue: any;\r\n\r\n ngAfterContentInit() {\r\n\r\n if (this.binding == \"number\") {\r\n this.labelValue = this.model[this.binding] + 1;\r\n }\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n if (this.binding != \"number\") {\r\n if (model != null && typeof model != \"undefined\") {\r\n if (this.binding != null && typeof this.binding != \"undefined\" && this.binding.length > 0) {\r\n let value = this.dfms.getValue(model, this.binding);\r\n\r\n if (typeof value != \"undefined\" && value != null) {\r\n if (Array.isArray(value)) {\r\n if (value != null && typeof value != \"undefined\" && this.arrayDisplayBinding != null && typeof this.arrayDisplayBinding != \"undefined\" && this.arrayDisplayBinding.length > 0) {\r\n this.labelValue = \"\";\r\n for (let i = 0; i < value.length; i++) {\r\n if ((i + 1) == value.length) {\r\n this.labelValue += value[i][this.arrayDisplayBinding];\r\n } else {\r\n this.labelValue += value[i][this.arrayDisplayBinding] + \", \";\r\n }\r\n }\r\n }\r\n } else {\r\n this.labelValue = value;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input, ViewChild, Output, EventEmitter, KeyValueChanges, KeyValueDiffer } from '@angular/core';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\nimport { NgModel, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SemDynamicControlComponent } from '../../shared/sem-dynamic-control/sem-dynamic-control.component';\r\n\r\n@Component({\r\n selector: 'sem-bound-content',\r\n templateUrl: './sem-bound-tab-content.component.html',\r\n styleUrls: ['./sem-bound-tab-content.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemBoundTabContentComponent, multi: true }\r\n ]\r\n})\r\nexport class SemBoundTabContentComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() bindingPropertyName: any;\r\n @Input() matGroup: any;\r\n @Input() boundComponent: SemBoundTabContentComponent;\r\n @Input() index;\r\n @Input() contentPropertyName;\r\n @Input() forwardEntity;\r\n\r\n @ViewChild(\"dynComp\", { static: true }) dynComp: SemDynamicControlComponent;\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n\r\n /*if(typeof(this.model) == \"undefined\" || this.model == null){\r\n this.model = {};\r\n }*/\r\n\r\n if (typeof this.forwardEntity[this.contentPropertyName] != \"undefined\" && this.forwardEntity[this.contentPropertyName]) {\r\n if (typeof this.model != \"undefined\" && this.model) {\r\n //var clonedProp = _.cloneDeep(this.forwardEntity)\r\n //clonedProp[\"PenaltyType\"] = this.forwardEntity[\"PenaltyType\"];\r\n this.dfms.assign(this.model, \"PenaltyData\", this.forwardEntity, true);\r\n } else {\r\n //var clonedProp = _.cloneDeep(this.forwardEntity)\r\n //clonedProp[\"PenaltyType\"] = this.forwardEntity[\"PenaltyType\"];\r\n this.model = this.forwardEntity[this.contentPropertyName];\r\n this.dfms.assign(this.model, \"PenaltyData\", this.forwardEntity, true);\r\n }\r\n }\r\n else {\r\n if (typeof this.model == \"undefined\" || this.model == null) {\r\n this.model = {};\r\n this.forwardEntity[this.contentPropertyName] = this.model;\r\n this.model[\"PenaltyData\"] = this.forwardEntity;//_.cloneDeep(this.forwardEntity);\r\n }else{\r\n this.model[\"PenaltyData\"][\"PenaltyType\"] = this.forwardEntity[\"PenaltyType\"];\r\n }\r\n }\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n //console.log(\"BoundTab RS model changed: \", model);\r\n\r\n /*if (typeof (this.dynComp.cmpRef) != \"undefined\" && this.dynComp.cmpRef != null) {\r\n if (typeof (this.dynComp.cmpRef.instance) != \"undefined\" && this.dynComp.cmpRef.instance != null) {\r\n let cModel = { Envelope: this.dynComp.cmpRef.instance.model };\r\n }\r\n }*/\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n}","import { Component, OnInit, AfterViewInit, Input, ViewChild } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sem-bound-tab-control',\r\n templateUrl: './sem-bound-tab-control.component.html',\r\n styleUrls: ['./sem-bound-tab-control.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemBoundTabControlComponent, multi: true }\r\n ]\r\n})\r\nexport class SemBoundTabControlComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() bindingPropertyName: any;\r\n @Input() contentPropertyName: any;\r\n @Input() matGroup: any;\r\n @Input() contentName: any;\r\n @Input() tabName: any;\r\n public content: any;\r\n public templateProvided: boolean = false;\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n //console.log(\"Mat group: \", this.matGroup);\r\n this.getContentTemplate();\r\n }\r\n\r\n getContentTemplate() {\r\n\r\n let templateUrl = \"\";\r\n\r\n for (var i = 0; i < this.dynamicRoutesLoader.wgRoutes.length; i++) {\r\n if (this.dynamicRoutesLoader.wgRoutes[i][\"PrettyUrl\"] == window.location.pathname.substring(1)) {\r\n templateUrl = this.dynamicRoutesLoader.wgRoutes[i].Url;\r\n break;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.dynamicRoutesLoader.loadedRoutes.length; i++) {\r\n if (this.dynamicRoutesLoader.loadedRoutes[i].Url == templateUrl) {\r\n this.templateProvided = true;\r\n this.loadContent(this.dynamicRoutesLoader.loadedRoutes[i].Html);\r\n break;\r\n }\r\n }\r\n\r\n if (!this.templateProvided) {\r\n this.restProviderService.getDataGET(templateUrl).subscribe(async rawTemplate => {\r\n //console.log(\"Retrieved dynamic template: \", rawTemplate);\r\n this.loadContent(rawTemplate);\r\n\r\n });\r\n }\r\n }\r\n\r\n loadContent(rawTemplate) {\r\n let startParseIndex;\r\n let endParseIndex;\r\n let contentLength;\r\n\r\n if (typeof (this.tabName) == \"undefined\" || this.tabName == null || this.tabName.length == 0) {\r\n startParseIndex = rawTemplate.indexOf(this.contentName + \"start\") + 5 + this.contentName.length;\r\n endParseIndex = rawTemplate.indexOf(this.contentName + \"end\");\r\n contentLength = endParseIndex - startParseIndex;\r\n }\r\n else {\r\n startParseIndex = rawTemplate.indexOf(this.tabName + \"start\") + 5 + this.tabName.length;\r\n endParseIndex = rawTemplate.indexOf(this.tabName + \"end\");\r\n contentLength = endParseIndex - startParseIndex;\r\n }\r\n\r\n\r\n this.content = rawTemplate.substring(startParseIndex, endParseIndex);\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n this.model = model;\r\n\r\n if (this.model[this.bindingPropertyName]) {\r\n for (var i = 0; i < this.model[this.bindingPropertyName].length; i++) {\r\n if (typeof (this.model[this.bindingPropertyName][i][this.contentPropertyName]) == \"undefined\" || this.model[this.bindingPropertyName][i][this.contentPropertyName] == null) {\r\n this.model[this.bindingPropertyName][i][this.contentPropertyName] = {};\r\n }\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n modelChanged(model:any) {\r\n //console.log(\"BoundTab parent model changed: \", event);\r\n }\r\n\r\n test(){\r\n \r\n }\r\n\r\n}","import { Component, OnInit, AfterViewInit, Input } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sem-button',\r\n templateUrl: './sem-button.component.html',\r\n styleUrls: ['./sem-button.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemButtonComponent, multi: true }\r\n ]\r\n})\r\nexport class SemButtonComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() customActionName: string = null;\r\n @Input() customActionOnlyClientLogic: boolean = false;\r\n @Input() customActionMaintainLoader: boolean = false;\r\n\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n shown:boolean = true;\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n //console.log(\"Button events\", this.events);\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n if (typeof model != \"undefined\" && model && Object.keys(model).length > 0) {\r\n this.checkInitialValue(model);\r\n this.model = model;\r\n }\r\n });\r\n }\r\n\r\n click() {\r\n \r\n if(this.customActionName != null && typeof this.customActionName != \"undefined\" && this.customActionName.length > 0){\r\n this.actionsService.getActionAndExecute(this.customActionName, this.customActionOnlyClientLogic, this, this.customActionMaintainLoader,false, this.model);\r\n }\r\n\r\n if (this.getAttribute(\"name\") != null && typeof this.getAttribute(\"name\") != \"undefined\") {\r\n // HC FOR AZ .!.\r\n if (this.getAttribute(\"name\") == \"Növbəti\") {\r\n this.next();\r\n } else if (this.getAttribute(\"name\") == \"Geri qayıt\") {\r\n this.previous();\r\n } else if (this.getAttribute(\"name\") == \"Yadda saxla\") {\r\n document.getElementById(\"form-save-button\").click();\r\n }\r\n else if (this.getAttribute(\"name\") == \"Əlavə et\") {\r\n this.router.navigateByUrl(window.location.pathname);\r\n }\r\n }\r\n\r\n if(typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval){\r\n eval(this.onValueChangeEval);\r\n }\r\n\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n //kodo za next button/previous v repeaterju za tabe (ne brisi)\r\n next() {\r\n var result = document.getElementsByClassName(\"mat-tab-label\");\r\n let selected = 0;\r\n let nextSelected = 0;\r\n\r\n // get current selected tab\r\n Object.entries(result).forEach(([key, value]) => {\r\n if (value.classList.contains(\"mat-tab-label-active\")) {\r\n selected = parseInt(key);\r\n }\r\n });\r\n\r\n var found = false;\r\n // find next tab item that is not disabled\r\n for (var i = selected + 1; i < result.length; i++) {\r\n // continue from selected on (ignore previous tabs)\r\n // check if not disabled \r\n if (!result[i].classList.contains(\"mat-tab-disabled\")) {\r\n nextSelected = i\r\n found = true;\r\n break;\r\n };\r\n }\r\n\r\n /*if(nextSelected == result.length - 1 && this.getAttribute(\"name\") == \"Növbəti\"){\r\n this.shown = false;\r\n }*/\r\n\r\n // if not found go from beggining to current selected\r\n if (!found) {\r\n for (var i = 0; i < selected; i++) {\r\n if (!result[i].classList.contains(\"mat-tab-disabled\")) {\r\n nextSelected = i\r\n found = true;\r\n break;\r\n };\r\n }\r\n }\r\n\r\n this.checkParent(result[nextSelected]);\r\n\r\n var evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window });\r\n result[nextSelected].dispatchEvent(evt);\r\n }\r\n\r\n previous() {\r\n var result = document.getElementsByClassName(\"mat-tab-label\");\r\n let selected = 0;\r\n let previousSelected = 0;\r\n var found = false;\r\n // get current selected tab\r\n Object.entries(result).forEach(([key, value]) => {\r\n if (value.classList.contains(\"mat-tab-label-active\")) {\r\n selected = parseInt(key);\r\n }\r\n });\r\n\r\n var start = 0;\r\n // if current selected is first tab item\r\n // go from last and select first that is not disabled\r\n if (selected == 0 && result.length > 1) {\r\n start = result.length - 1;\r\n } else if (selected > 0 && result.length > 1) {\r\n start = selected - 1;\r\n }\r\n/*\r\n if(start == 0 && this.getAttribute(\"name\") == \"Geri qayıt\"){\r\n this.shown = false;\r\n }\r\n*/\r\n for (var i = start; i >= 0; i--) {\r\n // continue from selected on (ignore previous tabs)\r\n // check if not disabled \r\n if (!result[i].classList.contains(\"mat-tab-disabled\")) {\r\n previousSelected = i\r\n found = true;\r\n break;\r\n };\r\n }\r\n\r\n // go from last and select first that's not disabled\r\n if (!found) {\r\n for (var i = result.length - 1; i >= 0; i--) {\r\n if (!result[i].classList.contains(\"mat-tab-disabled\")) {\r\n previousSelected = i\r\n found = true;\r\n break;\r\n };\r\n }\r\n }\r\n\r\n this.checkParent(result[previousSelected]);\r\n\r\n var evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window });\r\n result[previousSelected].dispatchEvent(evt);\r\n }\r\n\r\n checkParent(element: Element) {\r\n if (element[\"style\"][\"display\"] == \"none\" || element[\"style\"][\"display\"] == \"\") {\r\n let val = element.getAttribute(\"aria-label\");\r\n let query = \"[aria-label=\" + \"parent-\" + val + \"]\";\r\n let elements = document.querySelectorAll(query);\r\n let arrelements = Array.prototype.slice.call(elements);\r\n\r\n if (arrelements.length == 1) {\r\n var evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window });\r\n arrelements[0].dispatchEvent(evt);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { ChatItem, ItemFunctionalType, ItemType } from '../../../models/chat/ChatItem';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { AfterViewInit, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sem-chat-bot',\r\n templateUrl: './sem-chat-bot.component.html',\r\n styleUrls: ['./sem-chat-bot.component.css']\r\n})\r\nexport class SemChatBotComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n chatItems: ChatItem[] = [];\r\n lastChatItemDetectedCommand: ChatItem | null = null;\r\n //userInput: string = 'wgcmd search type=inventory keyword=\"smuči\"';\r\n userInput: string = '';\r\n isChatLoading: boolean = false;\r\n\r\n super() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n showChatLoader() {\r\n this.isChatLoading = true;\r\n }\r\n\r\n hideChatLoader() {\r\n this.isChatLoading = false;\r\n }\r\n\r\n confirmDetectedCommand(chatItem: ChatItem, showPotrjujem: boolean = true) {\r\n\r\n var chatRequestModel: RequestModel = new RequestModel\r\n {\r\n\r\n };\r\n\r\n chatRequestModel.url = \"/api/wgcmd\";\r\n\r\n chatRequestModel.data = {\r\n userConfirmCmd: true,\r\n userInput: chatItem.text\r\n };\r\n\r\n if (showPotrjujem) {\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: \"POTRJUJEM\",\r\n itemType: ItemType.UserInput,\r\n itemFunctionalType: ItemFunctionalType.Text,\r\n redirectUrl: null,\r\n response: null\r\n };\r\n\r\n this.chatItems.push(newItem);\r\n }\r\n\r\n setTimeout(() => {\r\n window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: \"smooth\" });\r\n }, 0);\r\n\r\n this.showChatLoader();\r\n\r\n this.restProviderService.getDataPOST(chatRequestModel).subscribe({\r\n next: res => {\r\n\r\n if (res.Success) {\r\n\r\n this.processCommandResponseData(res);\r\n\r\n } else {\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: res.Errors[0],\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.Error,\r\n redirectUrl: null,\r\n response: res\r\n };\r\n this.chatItems.push(newItem);\r\n }\r\n this.hideChatLoader();\r\n setTimeout(() => {\r\n window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: \"smooth\" });\r\n }, 0);\r\n }\r\n });\r\n }\r\n\r\n redirectToAddedRecord(chatItem: ChatItem) {\r\n this.utility.processNavigationUrl(chatItem.redirectUrl);\r\n }\r\n\r\n cancelDetectedCommand(chatItem: ChatItem) {\r\n alert(\"Cancel:\" + chatItem.text);\r\n }\r\n\r\n openItem(id) {\r\n var redirectUrl = \"/cms/galisweb/item?id=\" + id;\r\n this.utility.processNavigationUrl(redirectUrl);\r\n }\r\n\r\n processCommandResponseData(res: any) {\r\n if (res.ParsedCommand.Action == \"add\") {\r\n\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: \"Uspešno dodan zapis \" + res.ExecutionResponseData.Model.InvNumber + \".\",\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.OpenRecord,\r\n redirectUrl: \"/cms/galisweb/item?id=\" + res.ExecutionResponseData.Model.Id,\r\n response: res\r\n };\r\n this.chatItems.push(newItem);\r\n }\r\n\r\n if (res.ParsedCommand.Action == \"search\") {\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: \"Najdeno je bilo \" + res.ExecutionResponseData.TotalCount + \" zapisov.\",\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.SearchResult,\r\n redirectUrl: \"\",\r\n response: res\r\n };\r\n this.chatItems.push(newItem);\r\n }\r\n }\r\n\r\n\r\n\r\n sendUserInput(event) {\r\n\r\n if(this.userInput==\"cls\"){\r\n this.chatItems = [];\r\n this.userInput = \"\";\r\n return;\r\n }\r\n\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: this.userInput,\r\n itemType: ItemType.UserInput,\r\n itemFunctionalType: ItemFunctionalType.Text,\r\n redirectUrl: null,\r\n response: null,\r\n };\r\n\r\n this.chatItems.push(newItem);\r\n\r\n\r\n\r\n setTimeout(() => {\r\n window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: \"smooth\" });\r\n }, 0);\r\n\r\n\r\n var chatRequestModel: RequestModel = new RequestModel\r\n {\r\n\r\n };\r\n\r\n chatRequestModel.url = \"/api/wgcmd\";\r\n\r\n chatRequestModel.data = {\r\n\r\n userInput: this.userInput\r\n };\r\n\r\n\r\n this.userInput = \"\";\r\n\r\n\r\n this.showChatLoader();\r\n\r\n\r\n this.restProviderService.getDataPOST(chatRequestModel).subscribe({\r\n next: res => {\r\n\r\n if (res.Success) {\r\n\r\n\r\n if (res.ExecutionResponseData && res.ParsedCommand) {\r\n this.processCommandResponseData(res);\r\n } else {\r\n\r\n if (res.DetectedCommand && res.DetectedCommand.startsWith(\"wgcmd search\")) {\r\n\r\n\r\n var detectedSearchItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: res.DetectedCommand,\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.WgCmdConfirmation,\r\n redirectUrl: null,\r\n response: res\r\n };\r\n\r\n this.confirmDetectedCommand(detectedSearchItem, false);\r\n\r\n return;\r\n }\r\n\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: res.Message,\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.Text,\r\n redirectUrl: null,\r\n response: res\r\n };\r\n\r\n this.chatItems.push(newItem);\r\n\r\n if (res.DetectedCommand) {\r\n\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: res.DetectedCommand,\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.WgCmdConfirmation,\r\n redirectUrl: null,\r\n response: res\r\n };\r\n\r\n this.lastChatItemDetectedCommand = newItem;\r\n\r\n this.chatItems.push(newItem);\r\n }\r\n\r\n }\r\n\r\n } else {\r\n var newItem: ChatItem = {\r\n id: this.chatItems.length + 1,\r\n text: res.Errors[0],\r\n itemType: ItemType.ResponseMessage,\r\n itemFunctionalType: ItemFunctionalType.Error,\r\n redirectUrl: null,\r\n response: res\r\n };\r\n this.chatItems.push(newItem);\r\n }\r\n\r\n this.hideChatLoader();\r\n\r\n setTimeout(() => {\r\n window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: \"smooth\" });\r\n }, 0);\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sem-check-box',\r\n templateUrl: './sem-check-box.component.html',\r\n styleUrls: ['./sem-check-box.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemCheckBoxComponent, multi: true }\r\n ]\r\n})\r\n\r\nexport class SemCheckBoxComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() showLabel: boolean = true;\r\n @ViewChild('cb') input: ElementRef;\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n if (this.model != null && typeof this.model != \"undefined\" && Object.keys(model).length > 3) {\r\n let v = this.dfms.getValue(model,this.getAttribute('name').replace(\"model.\",\"\"));\r\n if(typeof (v) != \"undefined\" && v != null){\r\n this.value = v;\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n onChange(event) {\r\n\r\n /*let attName = this.getAttribute(\"name\");\r\n this.dfms.updateControlsValidationArray(attName, this.value.toString());\r\n this.dfms.globalForm.controls[attName].setValue(this.value.toString());\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n\r\n\r\n if (typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval) {\r\n eval(this.onValueChangeEval);\r\n }*/\r\n }\r\n\r\n modelChange(event){\r\n let attName = this.getAttribute(\"name\");\r\n this.dfms.globalForm.controls[attName].setValue(event);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n\r\n this.dfms.updateControlsValidationArray(attName, event);\r\n\r\n if (typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval) {\r\n eval(this.onValueChangeEval);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, NgZone, ChangeDetectorRef, Injector, NgModuleRef, Compiler, Renderer2, ComponentFactoryResolver, ElementRef, KeyValueDiffers, ViewChild } from '@angular/core';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { ActivatedRoute, Router } from '../../../../../node_modules/@angular/router';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { RouteNavigationService } from '../../../services/dynamic-routes-loader/route-navigation.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { FileUploadService } from 'src/app/services/file-upload-service/file-upload.service';\r\nimport { Observable } from 'rxjs';\r\nimport { MetaModelService } from '../../../services/metamodel/metamodel-provider.service';\r\nimport { UserService } from '../../../services/user/user-provider.service';\r\nimport { SearchService } from '../../../services/search/search.service';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { NgForm, FormBuilder } from '@angular/forms';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\nimport { ParameterFormsService } from 'src/app/services/parameter-forms-service/parameter-forms.service';\r\nimport { MatLegacyTabChangeEvent as MatTabChangeEvent } from '@angular/material/legacy-tabs';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\nimport { NgxPhotoEditorService } from 'ngx-photo-editor';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-sem-control',\r\n templateUrl: './sem-control.component.html',\r\n styleUrls: ['./sem-control.component.css']\r\n})\r\nexport class SemControlComponent extends SemBaseComponent implements OnInit {\r\n\r\n //constructor(private _compiler: Compiler, private _injector: Injector, private _m: NgModuleRef) { }\r\n constructor(\r\n public restProviderService: RestProviderService,\r\n public zone: NgZone,\r\n public changeDetection: ChangeDetectorRef,\r\n public _injector: Injector,\r\n public _m: NgModuleRef, \r\n public _compiler: Compiler,\r\n public route: ActivatedRoute,\r\n public router: Router,\r\n public dialog: MatDialog,\r\n public renderer: Renderer2,\r\n public translationsService: TranslationsProviderService,\r\n public fileUploadService: FileUploadService,\r\n public metaModelService: MetaModelService,\r\n public userService: UserService,\r\n public searchService: SearchService,\r\n public componentFactoryResolver: ComponentFactoryResolver,\r\n public control: ElementRef,\r\n public formBuilder: FormBuilder,\r\n public actionsService: ActionsService,\r\n public dfms: DynamicFieldsManagerService,\r\n public utility: UtilityService,\r\n public parameterFormService: ParameterFormsService,\r\n public formService:FormService,\r\n public photoEditorService: NgxPhotoEditorService,\r\n public anglarHttpClient:HttpClient) {\r\n\r\n super(_injector, router, route, dfms, utility, formService);\r\n }\r\n\r\n @Input() public title: string = \"\";\r\n @Input() model: any;\r\n @Input() fields: any;\r\n params: any;\r\n @Input() modelChangeNotifier: Observable;\r\n @Input() form: NgForm;\r\n @Input() name: any;\r\n @Input() events: any;\r\n @Input() cssClass: any;\r\n @Input() isRequired: any;\r\n @Input() isReadOnly: any;\r\n @Input() condition: any;\r\n @Input() bindingProperty: string;\r\n @Input() showTooltip: any;\r\n @Input() tooltipTextMessage: string;\r\n @Input() readOnlyCondition: any;\r\n @Input() parentBindingProp: any;\r\n @Input() min: any;\r\n @Input() max: any;\r\n @Input() preJS: any;\r\n @Input() postJS: any;\r\n @Input() onValueChangeEval: any;\r\n @Input() placeholder: string = \"\";\r\n loading: boolean = false;\r\n\r\n @ViewChild('f', { read: NgForm, static: true }) mainViewForm: NgForm;\r\n\r\n ngOnInit() {\r\n this.route\r\n .queryParams\r\n .subscribe(params => {\r\n // Defaults to 0 if no query param provided.\r\n this.params = params;\r\n });\r\n\r\n this.isRequired = this.getAttribute('required');\r\n }\r\n\r\n checkTranslation(value: string) {\r\n return this.translationsService.translate(value);\r\n }\r\n\r\n getAttribute(atribute: string) {\r\n return this.control.nativeElement.getAttribute(atribute);\r\n }\r\n\r\n checkPlaceholder(initialValue = \"\") {\r\n /*if (this.checkForDisabled(this.getAttribute('name'))) {\r\n this.placeholder = 'WebGalis_FillOutAuto';\r\n }*/\r\n\r\n if(initialValue.length > 0 && this.placeholder.length == 0){\r\n this.placeholder = initialValue;\r\n }\r\n\r\n return this.translationsService.translate(this.placeholder);\r\n }\r\n\r\n checkForDisabled(name: string) {\r\n\r\n if (typeof this.readOnlyCondition != \"undefined\" && this.readOnlyCondition) {\r\n if (this.readOnlyCondition.length > 0) {\r\n return eval(this.readOnlyCondition);\r\n }\r\n }\r\n\r\n /*if (typeof this.readOnlyCondition != \"undefined\" && this.readOnlyCondition) {\r\n this.readOnlyCondition = this.readOnlyCondition + \" && this.dfms?.isFormReadOnly == true\";\r\n }else{\r\n this.readOnlyCondition = \"this.dfms?.isFormReadOnly == true\";\r\n }*/\r\n\r\n if (name != null) {\r\n if (this.isReadOnly) {\r\n return this.isReadOnly;\r\n }\r\n\r\n for (var i = 0; i < this.dfms.manyToOneReadOnly.length; i++) {\r\n if (name.includes(this.dfms.manyToOneReadOnly[i])) {\r\n return true;\r\n }\r\n }\r\n\r\n if (name != null) {\r\n\r\n if (name.startsWith(\"model.\")) {\r\n name = name.replace(\"model.\", \"\");\r\n }\r\n if (name.startsWith(\"Title.\")) {\r\n name = name.replace(\"Title.\", \"\");\r\n }\r\n\r\n if (typeof this.parentBindingProp != \"undefined\" && this.parentBindingProp) {\r\n if (this.parentBindingProp != \"Title\") {\r\n\r\n if (this.parentBindingProp.startsWith(\"Title.\")) {\r\n this.parentBindingProp = this.parentBindingProp.replace(\"Title.\", \"\");\r\n }\r\n\r\n name = this.parentBindingProp + \".\" + name;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if (this.dfms.metaModel[i].W == 0 && this.dfms.metaModel[i].Path == name) {\r\n return true;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n /*let roCondition = \"\";\r\n\r\n if(this.dfms?.isFormReadOnly){\r\n roCondition = \"dfms?.isFormReadOnly == true\";\r\n }*/\r\n\r\n }\r\n\r\n getName() {\r\n try {\r\n if (typeof this.getAttribute('name') != \"undefined\" && this.getAttribute('name') != null) {\r\n return eval(\"this.form.controls['\" + this.getAttribute('name') + \"'].errors\");\r\n }\r\n else if (typeof this.getAttribute('ng-reflect-name') != \"undefined\" && this.getAttribute('ng-reflect-name') != null) {\r\n return eval(\"this.form.controls['\" + this.getAttribute('ng-reflect-name') + \"'].errors\");\r\n }\r\n } catch (e) {\r\n return null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n click() {\r\n if (this.events) {\r\n let clickEvent = this.events[0];\r\n eval(clickEvent.PreJs);\r\n if (typeof (clickEvent.Action) != \"undefined\" && clickEvent.Action != null && clickEvent.Action != \"\") {\r\n this.actionsService.executeAction(clickEvent.Action, this.model, this.model, null, null, this, null);\r\n }\r\n eval(clickEvent.PostJs);\r\n\r\n }\r\n }\r\n\r\n checkIfInArray(prop: [], id: any) {\r\n return prop.some(el => el[\"Id\"] === id);\r\n }\r\n\r\n checkIfInUserGroup(id: any) {\r\n return this.userService.checkIfInUserGroup(id);\r\n }\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ViewEncapsulation, ViewChild, HostListener } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { DataGridColumn } from '../../../models/datagrid/data-grid-column';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { retry } from '../../../../../node_modules/rxjs/operators';\r\nimport { UserSearchSettingModel } from '../../../models/search/user-search-setting-model';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { MetaModelService } from '../../../services/metamodel/metamodel-provider.service';\r\nimport { UserSearchSettingPropertyModel } from '../../../models/search/user-search-setting-property-model';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ProjectionFacetWrapperModel } from 'src/app/models/search/facet-projection-wrapper.model';\r\nimport { FacetViewModel } from 'src/app/models/search/facet-view.model';\r\nimport { PaginationModel } from 'src/app/models/search/pagination.model';\r\nimport { DataGridSortingFlag } from '../../../models/datagrid/data-grid-column-sorting-flag';\r\nimport { SortFieldModel } from 'src/app/models/search/sort-field.model';\r\nimport { SemGridDisplayFieldsDialogComponent } from '../dialogs/sem-grid-display-fields-dialog/sem-grid-display-fields-dialog.component';\r\nimport { AdditionalSearchSettingsModel } from 'src/app/models/search/additional-search-settings.model';\r\nimport { SemDynamicControlComponent } from '../shared/sem-dynamic-control/sem-dynamic-control.component';\r\nimport { SemGenerateDialogComponent } from '../dialogs/sem-generate-dialog/sem-generate-dialog.component';\r\nimport { format } from 'url';\r\nimport { SemParameterDialogComponent } from '../dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\n\r\n\r\n@Component({\r\n selector: 'sem-data-grid',\r\n templateUrl: './sem-data-grid.component.html',\r\n styleUrls: ['./sem-data-grid.component.css']\r\n})\r\nexport class SemDataGridComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() columns: Array;\r\n @Input() bindingPropertyName: any;\r\n @Input() gridSettings: any;\r\n @Input() editable: string = \"True\";\r\n\r\n @ViewChild(\"dynComp\", { read: SemDynamicControlComponent }) dynComp: SemDynamicControlComponent;\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.searchService.currentPreviewItemClicked = null;\r\n }\r\n\r\n private originalGridColumnSettings: any;\r\n private currentSortFields: SortFieldModel[] = [];\r\n\r\n private previewActions: any = [];\r\n\r\n // user's search settings\r\n private userGridSettings: UserSearchSettingModel;\r\n private metamodelGridFields: any = [];\r\n\r\n private gridAddedFields: any = [];\r\n private gridOriginalFieldsList: any = [];\r\n private gridAvailibleFields: any = [];\r\n private gridOriginalAddedFielsList: any;\r\n private currentMetaModel: any;\r\n private bulkActionPresent: boolean = false;\r\n private enableFacetsSubs: any;\r\n private checkedBulkItems: any[] = [];\r\n private checkedBulkItemStatus: any = {};\r\n private searchSettingsSubs: any;\r\n private checkboxAllItemsChecked: boolean = false;\r\n private additionalSearchSettings: AdditionalSearchSettingsModel;\r\n private showPreview: boolean = false;\r\n private previewModel = null;\r\n private defaultSorter: SortFieldModel = null;\r\n private restoreGlobal: boolean = false;\r\n private facetsCollapsed: boolean = false;\r\n private viewType: string = \"list\";\r\n\r\n totalItems: number = 0;\r\n previousPage = 0;\r\n nextPage = 0;\r\n totalPages = 1;\r\n pages: any[] = [];\r\n helperColumnFlags: DataGridSortingFlag = {};\r\n additionalListingFields: any[] = [];\r\n numberOfPagesValue: any;\r\n\r\n private metamodelSubs = null;\r\n private paginationSubs = null;\r\n private bulkActionPresentSubs = null;\r\n private searchPerformedSubs = null;\r\n private additionalSearchSettingsSubs = null;\r\n private ddShown = false;\r\n private stateModel = null;\r\n private gridFieldsRestoreSubs = null;\r\n private facetsCollapsedSubs = null;\r\n\r\n super() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.searchService.changePaginationInfo(undefined);\r\n this.searchService.changeSearchProjectionAndFacets(undefined);\r\n\r\n if (typeof this.metamodelSubs != \"undefined\" && this.metamodelSubs != null) {\r\n this.metamodelSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.paginationSubs != \"undefined\" && this.paginationSubs != null) {\r\n this.paginationSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.additionalSearchSettingsSubs != \"undefined\" && this.additionalSearchSettingsSubs != null) {\r\n this.additionalSearchSettingsSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.changeAvailibleFacets(undefined);\r\n if (typeof this.enableFacetsSubs != \"undefined\" && this.enableFacetsSubs != null) {\r\n this.enableFacetsSubs.unsubscribe();\r\n }\r\n\r\n this.actionsService.setCurrentBulkActionPresent(undefined);\r\n if (typeof this.bulkActionPresentSubs != \"undefined\" && this.bulkActionPresentSubs != null) {\r\n this.bulkActionPresentSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.setCurrentCheckedBulkDocuments([]);\r\n if (typeof this.searchPerformedSubs != \"undefined\" && this.searchPerformedSubs != null) {\r\n this.searchPerformedSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.changeCurrentSearchSettings(undefined, undefined);\r\n if (typeof this.searchSettingsSubs != \"undefined\" && this.searchSettingsSubs != null) {\r\n this.searchSettingsSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.setGridRestoredDefault(undefined);\r\n if (typeof this.gridFieldsRestoreSubs != \"undefined\" && this.gridFieldsRestoreSubs != null) {\r\n this.gridFieldsRestoreSubs.unsubscribe();\r\n }\r\n\r\n this.utility.setFacetsCollapsed(false);\r\n if (typeof this.facetsCollapsedSubs != \"undefined\" && this.facetsCollapsedSubs != null) {\r\n this.facetsCollapsedSubs.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.loading = true;\r\n\r\n // pageSize is set in SemSearchComponent via settings, if not set via settings then default value is used (5)\r\n this.numberOfPagesValue = \"\" + this.searchService.pageSize;\r\n\r\n // init default values\r\n this.additionalSearchSettings =\r\n {\r\n quickViewEnabled: false,\r\n onlyLastNodeNames: false,\r\n showActionsColumn: true,\r\n showItemNumber: false,\r\n quickViewFormName: \"\"\r\n };\r\n\r\n var defaultHeaderTextTranslation = this.translationsService.translate('WebGalis_Core_Title');\r\n // save original grid settings columnns to property (if user restores to default then this will show)\r\n // original grid columns settings is Title\r\n this.originalGridColumnSettings = [\r\n {\r\n \"HeaderText\": defaultHeaderTextTranslation,\r\n \"Width\": 100,\r\n \"BindingField\": \"Title\"\r\n }\r\n ];\r\n\r\n // if no columns in gridsettins (no settings in db) then set gridSettings.columns as default (Title)\r\n if (this.gridSettings != null) {\r\n //if (this.gridSettings.Columns == null || this.gridSettings.Columns.length < 0 || (this.gridSettings.Columns[0].BindingField == \"Model\" && this.gridSettings.Columns[0].HeaderText == \"Default\")) {\r\n this.gridSettings.Columns = this.originalGridColumnSettings.map(x => Object.assign({}, x));\r\n //}\r\n }\r\n\r\n let viewId = this.params[\"view\"];\r\n\r\n if (typeof viewId == \"undefined\") {\r\n viewId = 0;\r\n }\r\n\r\n this.gridFieldsRestoreSubs = this.searchService.currentgridRestoredDefault.subscribe(value => {\r\n\r\n if (value != null && typeof value != \"undefined\" && value == true) {\r\n this.restoreGlobal = true;\r\n this.handleUserAdditionalGridFields(this.params[\"model\"], viewId, this.currentMetaModel, true);\r\n }\r\n });\r\n\r\n this.facetsCollapsedSubs = this.utility.currentFacetsCollapsed.subscribe(value => {\r\n\r\n if (value != null && typeof value != \"undefined\") {\r\n this.facetsCollapsed = value;\r\n }\r\n });\r\n\r\n this.bulkActionPresentSubs = this.actionsService.currentBulkActionPresent.subscribe(value => {\r\n if (value != null && typeof value != \"undefined\") {\r\n this.bulkActionPresent = value;\r\n }\r\n });\r\n\r\n this.metamodelSubs = this.searchService.currentMetaModel.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\") {\r\n // get current user search field settings (if they exist)\r\n this.handleUserAdditionalGridFields(this.params[\"model\"], viewId, value);\r\n this.currentMetaModel = value;\r\n }\r\n });\r\n\r\n\r\n this.paginationSubs = this.searchService.currentPagination.subscribe(value => {\r\n\r\n if (value != null && typeof value != \"undefined\") {\r\n\r\n this.totalItems = value.totalCount;\r\n this.pages = [];\r\n\r\n // convert to int \r\n let totalCountNumber = value.totalCount;\r\n let currentPage = value.page;\r\n\r\n if (totalCountNumber == 0) {\r\n this.pages.push({ \"Number\": 1, \"Active\": true });\r\n } else {\r\n\r\n var ps: number = +this.searchService.pageSize;\r\n this.numberOfPagesValue = \"\" + ps;\r\n let pageNum = (totalCountNumber + ps - 1) / ps;\r\n pageNum = Math.floor(pageNum);\r\n\r\n let from = 0;\r\n let to = pageNum;\r\n this.totalPages = pageNum;\r\n\r\n from = currentPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n\r\n to = from + 5;\r\n\r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n\r\n this.previousPage = currentPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n\r\n this.nextPage = currentPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n\r\n for (let i = from; i < to; i++) {\r\n\r\n let active = false;\r\n if (i == currentPage) {\r\n active = true;\r\n }\r\n\r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n\r\n }\r\n });\r\n\r\n this.searchPerformedSubs = this.searchService.currentSearchExecuted.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\" && value != null) {\r\n // if search was performed\r\n // clear all checked document ids for bulk action\r\n this.checkedBulkItems = [];\r\n this.checkedBulkItemStatus = {};\r\n }\r\n });\r\n\r\n this.enableFacetsSubs = this.searchService.currentEnableFacets.subscribe(enableFacets => {\r\n\r\n if (enableFacets != null && typeof enableFacets != \"undefined\") {\r\n // change control settings for data grid\r\n // this property (from db table) has higher priority than control setting \r\n this.gridSettings.ResizeGridForFacetsControl = enableFacets;\r\n }\r\n });\r\n\r\n this.searchSettingsSubs = this.searchService.currentUserSearchSettings.subscribe(value => {\r\n\r\n // only if user settings were changed from search control\r\n if (typeof value != \"undefined\" && value != null && value[\"Control\"] == \"search\") {\r\n this.setNewUserSearchSettingObject(this.params[\"model\"], viewId);\r\n }\r\n });\r\n\r\n\r\n this.additionalSearchSettingsSubs = this.searchService.currentAdditionalSearchSettings.subscribe(settings => {\r\n\r\n if (settings != null && typeof settings != \"undefined\") {\r\n this.additionalSearchSettings = settings\r\n //console.log(\"additional search settings:\" + this.additionalSearchSettings);\r\n }\r\n });\r\n\r\n this.activatedRoute.paramMap.subscribe(data => {\r\n this.stateModel = window.history.state;\r\n this.stateModel = this.utility.checkStateForValidity(window.location.href, this.stateModel);\r\n });\r\n\r\n this.loadAdditionalInfoFromView();\r\n\r\n }\r\n\r\n toggleViewType(type) {\r\n\r\n this.loading = true;\r\n\r\n this.userGridSettings.LayoutName = type;\r\n this.userService.currentLayout = type;\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n let reqModel: RequestModel = new RequestModel;\r\n\r\n reqModel.data = {\r\n \"UserSearchSettingData\": this.userGridSettings\r\n };\r\n reqModel.url = \"api/user/settings/updatelayout\";\r\n\r\n this.restProviderService.getDataPOST(reqModel).subscribe(data => {\r\n\r\n if(this.viewType.includes('grid') && type.includes('grid')){\r\n this.viewType = type;\r\n this.loading = false;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n return;\r\n }else{\r\n let viewId = this.params[\"view\"];\r\n\r\n if (typeof viewId == \"undefined\") {\r\n viewId = 0;\r\n }\r\n this.handleUserAdditionalGridFields(this.params[\"model\"], viewId, this.currentMetaModel, true);\r\n }\r\n },\r\n error => {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getGridRowClassList(rowData: any) {\r\n let classList = [\"grid-table-row\"];\r\n\r\n if (typeof this.userGridSettings != \"undefined\" && this.userGridSettings) {\r\n if (typeof this.userGridSettings.ConditionEvaluations != \"undefined\" && this.userGridSettings.ConditionEvaluations) {\r\n for (var i = 0; i < this.userGridSettings.ConditionEvaluations.length; i++) {\r\n\r\n if (this.userGridSettings.ConditionEvaluations[i][\"ConditionEval\"].length > 0) {\r\n if (eval(this.userGridSettings.ConditionEvaluations[i][\"ConditionEval\"])) {\r\n classList.push(this.userGridSettings.ConditionEvaluations[i][\"CssClass\"])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return classList;\r\n }\r\n\r\n loadAdditionalInfoFromView() {\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n modelChanged(model) {\r\n\r\n }\r\n\r\n calculateItemNumber(index) {\r\n let indx = this.pages.findIndex(x => x.Active == true);\r\n\r\n if (indx >= 0) {\r\n let currentPageNum = this.pages[indx].Number;\r\n if (currentPageNum == 1) {\r\n return index + 1;\r\n } else {\r\n var ps: number = + this.searchService.pageSize;\r\n return ((currentPageNum - 1) * ps) + (index + 1);\r\n }\r\n }\r\n\r\n return 1;\r\n }\r\n\r\n /*\r\n processNavigation(dataItem){\r\n if(dataItem[\"Type\"]==\"Dispanser Qeydiyyatı\"){\r\n this.utility.processNavigationUrl(\"cms/medical/clinicregistration\");\r\n }\r\n else if(dataItem[\"Type\"]==\"Kütləvi Müayinələr\"){\r\n this.utility.processNavigationUrl(\"cms/medical/massexaminations\");\r\n }\r\n else if(dataItem[\"Type\"]==\"Ambulator Müalicə\"){\r\n this.utility.processNavigationUrl(\"cms/medical/outpatienttreatment\");\r\n }\r\n else if(dataItem[\"Type\"]==\"Stasionar Müalicə\"){\r\n this.utility.processNavigationUrl(\"cms/medical/inpatienttreatment\");\r\n }\r\n else if(dataItem[\"Type\"]==\"Zədə və xəsarətlər\"){\r\n this.utility.processNavigationUrl(\"cms/medical/damageandinjury\");\r\n }\r\n\r\n //Zədə və xəsarətlər\r\n }*/\r\n\r\n linkClick(event, dataItem, propPath) {\r\n if (dataItem != null && typeof dataItem != \"undefined\" && propPath != null && typeof propPath != \"undefined\") {\r\n var value = this.resolvePropertyBinding(dataItem, propPath);\r\n if (!value.match(/^https?:\\/\\//i)) {\r\n value = 'http://' + value;\r\n }\r\n window.open(value, '_blank');\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n itemClickNavigate(dataItem) {\r\n this.searchService.currentPreviewItemClicked = null;\r\n this.previewClose();\r\n this.utility.processNavigationUrl(this.params.url + \"?id=\" + dataItem[\"Id\"]);\r\n }\r\n\r\n itemNavigate(dataItem) {\r\n this.searchService.currentPreviewItemClicked = null;\r\n this.previewClose();\r\n return (this.params.url + \"?id=\" + dataItem[\"Id\"]);\r\n }\r\n\r\n //private t = 0; \r\n itemClick(dataItem) {\r\n\r\n let parUrl = this.params.url;\r\n if (typeof parUrl != \"undefined\" && parUrl && parUrl.length > 0 && (this.additionalSearchSettings == null || typeof this.additionalSearchSettings == \"undefined\" || !this.additionalSearchSettings.quickViewEnabled)) {\r\n this.utility.processNavigationUrl(this.params.url + \"?id=\" + dataItem[\"Id\"]);\r\n } else if (this.searchService.globalSearch) {\r\n\r\n if (dataItem[\"Id\"] != null && typeof dataItem[\"Id\"] != \"undefined\"\r\n && dataItem[\"DetailsFormUrl\"] != null && typeof dataItem[\"DetailsFormUrl\"] != \"undefined\" && dataItem[\"DetailsFormUrl\"].length > 0) {\r\n\r\n var detailsFormUrl = dataItem[\"DetailsFormUrl\"] + \"?id=\" + dataItem[\"Id\"]\r\n this.utility.processNavigationUrl(detailsFormUrl);\r\n\r\n }\r\n\r\n } else {\r\n\r\n let actions = this.getGridFormActions(4);\r\n\r\n if (actions && actions.length > 0) {\r\n this.performAction(actions[0][\"FormAction\"], dataItem);\r\n } else {\r\n\r\n //this.t++;\r\n this.previewClose();\r\n // if quick view enabled then we should not navigate to details page \r\n if (this.additionalSearchSettings != null && typeof this.additionalSearchSettings != \"undefined\" && this.additionalSearchSettings.quickViewEnabled) {\r\n // open quick preview \r\n this.searchService.currentPreviewItemClicked = dataItem;\r\n\r\n if (this.previewActions.length == 0) {\r\n //lets get rid of nino\r\n //this.restProviderService.getDataGET(\"api/formactions/load/3434\").subscribe(data => {\r\n var endpoint = \"api/formactions/loadbyname/\" + this.additionalSearchSettings.quickViewFormName;\r\n this.restProviderService.getDataGET(endpoint).subscribe(data => {\r\n this.previewActions = JSON.parse(data);\r\n }, error => {\r\n //console.log(\"Error retrieving form actions\");\r\n });\r\n }\r\n\r\n }\r\n /*else {\r\n if (this.params.url.includes(\"_ww_\")) {\r\n let fUrl = this.params.url;\r\n fUrl.split(\"_ww_\").join(\"?\");\r\n fUrl.split(\"_qq_\").join(\"&\");\r\n this.utility.processNavigationUrl(fUrl);\r\n } else {\r\n this.utility.processNavigationUrl(this.params.url + \"?id=\" + dataItem[\"Id\"]);\r\n }*/\r\n //}\r\n }\r\n }\r\n }\r\n\r\n redirectPreviewToDetails() {\r\n if (this.searchService.currentPreviewItemClicked != null && typeof this.searchService.currentPreviewItemClicked != \"undefined\") {\r\n this.utility.processNavigationUrl(this.params.url + \"?id=\" + this.searchService.currentPreviewItemClicked[\"Id\"]);\r\n this.previewClose();\r\n }\r\n }\r\n\r\n previewClose() {\r\n //this.currentItemClicked = null;\r\n this.searchService.currentPreviewItemClicked = null;\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n pageChanged(pageNum) {\r\n this.checkboxAllItemsChecked = false;\r\n this.searchService.changeSearchPage(pageNum);\r\n }\r\n\r\n toLastPage() {\r\n this.checkboxAllItemsChecked = false;\r\n if (this.totalPages < 1) {\r\n this.totalPages = 1;\r\n }\r\n this.searchService.changeSearchPage(this.totalPages);\r\n }\r\n\r\n toFirstPage() {\r\n this.checkboxAllItemsChecked = false;\r\n this.searchService.changeSearchPage(1);\r\n }\r\n\r\n itemEditClick(dataItem) {\r\n if (this.params.hasOwnProperty('urlNew')) {\r\n this.utility.processNavigationUrl(this.params.urlNew + \"?id=\" + dataItem[\"Id\"]);\r\n } else if (this.params.hasOwnProperty('url')) {\r\n this.utility.processNavigationUrl(this.params.url + \"?id=\" + dataItem[\"Id\"]);\r\n } else {\r\n if (dataItem[\"Id\"] != null && typeof dataItem[\"Id\"] != \"undefined\"\r\n && dataItem[\"DetailsFormUrl\"] != null && typeof dataItem[\"DetailsFormUrl\"] != \"undefined\" && dataItem[\"DetailsFormUrl\"].length > 0) {\r\n\r\n var detailsFormUrl = dataItem[\"DetailsFormUrl\"] + \"?id=\" + dataItem[\"Id\"]\r\n this.utility.processNavigationUrl(detailsFormUrl);\r\n\r\n }\r\n }\r\n }\r\n\r\n addNew() {\r\n\r\n if (typeof this.model[this.bindingPropertyName] == \"undefined\") {\r\n this.model[this.bindingPropertyName] = [];\r\n }\r\n\r\n this.model[this.bindingPropertyName].push({});\r\n\r\n }\r\n\r\n translate(key: string) {\r\n var k = key.replace(\"Translation.\", \"\");\r\n\r\n if (this.translationsService.translations[k]) {\r\n return this.translationsService.translations[k];\r\n } else {\r\n return key;\r\n }\r\n }\r\n\r\n deleteItem(dataItem) {\r\n var index = this.model[this.bindingPropertyName].indexOf(dataItem);\r\n if (index > -1) {\r\n this.model[this.bindingPropertyName].splice(index, 1);\r\n this.totalItems = this.totalItems - 1;\r\n }\r\n }\r\n\r\n public get itemsLoaded(): boolean {\r\n try {\r\n\r\n this.userService.currentLayout = this.viewType;\r\n\r\n if (typeof this.model[this.bindingPropertyName] == \"undefined\") {\r\n this.loading = false;\r\n this.setViewType();\r\n return false;\r\n }\r\n\r\n if (this.model[this.bindingPropertyName].length > 0) {\r\n this.loading = false;\r\n this.setViewType();\r\n return true;\r\n }\r\n\r\n this.loading = false;\r\n this.setViewType();\r\n return false;\r\n\r\n }\r\n catch (exc) {\r\n this.loading = false;\r\n return false;\r\n }\r\n }\r\n\r\n setViewType() {\r\n if (typeof this.userGridSettings.LayoutName != \"undefined\" && this.userGridSettings.LayoutName) {\r\n this.viewType = this.userGridSettings.LayoutName;\r\n } else {\r\n this.viewType = \"list\";\r\n }\r\n }\r\n\r\n valueChanged() {\r\n }\r\n\r\n sortDropDownClick(column, event) {\r\n event.stopPropagation();\r\n if (this.helperColumnFlags[column.BindingField][\"ShowSort\"]) {\r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = false;\r\n } else {\r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = true;\r\n }\r\n return false;\r\n }\r\n\r\n setColumnSorting(column, direction, event) {\r\n event.stopPropagation();\r\n this.helperColumnFlags[column.BindingField][\"SortingUsed\"] = true;\r\n this.helperColumnFlags[column.BindingField][\"SortDirection\"] = direction;\r\n // hide \r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = false;\r\n\r\n\r\n // add to current sort field if doesn't already exists\r\n // if exists just update sort direction\r\n let index = this.currentSortFields.findIndex(x => x.FieldName == column.BindingField);\r\n if (index >= 0) {\r\n // if new direction is same as current then ignore it\r\n if (this.currentSortFields[index].SortDirection != direction) {\r\n this.currentSortFields[index].SortDirection = direction;\r\n // update observable\r\n this.searchService.changeSortFields(this.currentSortFields);\r\n }\r\n } else {\r\n this.currentSortFields = [];\r\n this.currentSortFields.push(new SortFieldModel(direction, column.BindingField, this.params[\"model\"]));\r\n this.searchService.changeSortFields(this.currentSortFields);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n setNewUserSearchSettingObject(modelName, viewId) {\r\n this.userService.getUserSearchSettings(modelName, viewId).subscribe(data => {\r\n\r\n console.log(data);\r\n\r\n if (data != null) {\r\n this.userGridSettings = data;\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n\r\n if (typeof this.userGridSettings.LayoutName != \"undefined\" && this.userGridSettings.LayoutName) {\r\n this.viewType = this.userGridSettings.LayoutName;\r\n } else {\r\n this.userGridSettings.LayoutName = \"list\";\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n handleAdditionalListingAction(data) {\r\n this.additionalListingFields.push(data);\r\n }\r\n\r\n handleUserAdditionalGridFields(modelName, viewId, metamodelProperties, restore: boolean = false) {\r\n\r\n // check if user already has search field settings saved\r\n this.userService.getUserGridSettings(modelName, viewId, this.viewType).subscribe(data => {\r\n\r\n if (data != null) {\r\n this.userGridSettings = data;\r\n\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n\r\n\r\n if (data[\"View\"] != null) {\r\n if (data[\"View\"][\"AdditionalListingActions\"] != null) {\r\n var addListing = JSON.parse(data[\"View\"][\"AdditionalListingActions\"]);\r\n\r\n for (var i = 0; i < addListing.length; i++) {\r\n var res = this.actionsService.callAction({ \"ActionName\": addListing[i][\"formAction\"] }, {}, null, this.handleAdditionalListingAction.bind(this), this, false, null);\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n if (restore == true || this.restoreGlobal == true) {\r\n this.gridAddedFields = [];\r\n }\r\n\r\n try {\r\n //lets get default sorter\r\n if (this.userGridSettings != null && this.userGridSettings.DefaultSorter != null && this.userGridSettings.DefaultSorter != \"undefined\") {\r\n var defSorterJson = JSON.parse(this.userGridSettings.DefaultSorter)\r\n if (defSorterJson != null) {\r\n this.defaultSorter = new SortFieldModel(defSorterJson.SortDirection, defSorterJson.FieldName, defSorterJson.RootClassName);\r\n this.currentSortFields.push(this.defaultSorter);\r\n this.searchService.changeSortFields(this.currentSortFields);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n\r\n }\r\n\r\n //this.metaModelService.getSearchFields(modelName).subscribe(data => {\r\n\r\n // only those that are availible in grid\r\n this.metamodelGridFields = metamodelProperties.filter(x => x.AvailibleInGrid == true);\r\n let newProjection = [];\r\n this.helperColumnFlags = [];\r\n\r\n\r\n if (typeof this.userGridSettings.LayoutName != \"undefined\" && this.userGridSettings.LayoutName) {\r\n this.viewType = this.userGridSettings.LayoutName;\r\n } else {\r\n this.userGridSettings.LayoutName = \"list\";\r\n }\r\n\r\n // if user has any saved searchSettings\r\n if (this.userGridSettings != null && this.userGridSettings.SearchFields != null && this.userGridSettings.SearchFields.length > 0) {\r\n\r\n //clear default grid columns if there are any saved gridSEttings\r\n this.gridSettings.Columns = [];\r\n\r\n // go through saved fields\r\n for (let i = 0; i < this.userGridSettings.SearchFields.length; i++) {\r\n\r\n\r\n if (this.userGridSettings.LayoutName == \"list\") {\r\n if (this.userGridSettings.SearchFields[i].FieldType != 2) {\r\n continue;\r\n }\r\n } else if (this.userGridSettings.LayoutName.includes(\"grid\")) {\r\n if (this.userGridSettings.SearchFields[i].FieldType != 4) {\r\n continue;\r\n }\r\n }\r\n\r\n // find saved field in metamodelGridFields\r\n let index = this.metamodelGridFields.findIndex(x => x.Name == this.userGridSettings.SearchFields[i].PropertyPath);\r\n\r\n let headerText = this.userGridSettings.SearchFields[i].PropertyPath;\r\n let binding = this.userGridSettings.SearchFields[i].PropertyPath;\r\n let isImageControl = false;\r\n let isSortable = false;\r\n let isDateTime = false;\r\n let isBoolean = false;\r\n\r\n if (index >= 0) {\r\n\r\n headerText = this.metamodelGridFields[index][\"Translation\"];\r\n binding = this.metamodelGridFields[index][\"Name\"];\r\n isImageControl = this.metamodelGridFields[index][\"IsImageControl\"];\r\n isSortable = this.metamodelGridFields[index][\"IsSortable\"];\r\n isDateTime = this.metamodelGridFields[index][\"IsDateTime\"];\r\n isBoolean = this.metamodelGridFields[index][\"IsCheckBox\"];\r\n\r\n // also add into addedFields\r\n this.gridAddedFields.push(this.metamodelGridFields[index]);\r\n }\r\n\r\n // add into grid column \r\n this.gridSettings.Columns.push(\r\n {\r\n \"HeaderText\": headerText,\r\n \"Width\": 30,\r\n \"BindingField\": binding,\r\n \"IsImageControl\": isImageControl,\r\n \"IsDateTime\": isDateTime,\r\n \"IsBoolean\": isBoolean,\r\n \"Type\": this.userGridSettings.SearchFields[i].FieldType\r\n });\r\n\r\n this.helperColumnFlags[binding] = {\r\n \"IsSortable\": isSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n\r\n // add grid fields to projection (so values will be inside search response)\r\n newProjection.push(binding);\r\n }\r\n }\r\n\r\n // set new projection based on user's grid settings and default projection fields\r\n let projectionFacet = new ProjectionFacetWrapperModel();\r\n // before adding title and id (if they dont already exists) to current projection, save this projection \r\n this.searchService.setCurrentGridDisplayFields(Object.assign([], newProjection));\r\n projectionFacet.projection = this.handleDefaultProjection(newProjection);\r\n projectionFacet.facets = this.handleMetamodelFacets(metamodelProperties);\r\n this.searchService.changeSearchProjectionAndFacets(projectionFacet);\r\n\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n\r\n // }, error => {\r\n // if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n // DynamicLoadingUtil.loader.showLoader = false;\r\n // }\r\n // });\r\n\r\n this.loading = false;\r\n\r\n }, error => {\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n private handleMetamodelFacets(luceneProperties): FacetViewModel[] {\r\n\r\n let availibleFacets = [];\r\n\r\n if (luceneProperties != null && typeof luceneProperties != \"undefined\" && luceneProperties.length > 0) {\r\n\r\n let facets = luceneProperties.filter(x => x.IsFacet == true);\r\n\r\n for (let facet of facets) {\r\n\r\n let facetView = new FacetViewModel();\r\n facetView.facetTitle = facet.Translation;\r\n facetView.facetPropertyPath = facet.Name;\r\n facetView.facetTranslation = facet.FacetTranslation;\r\n\r\n\r\n if (facet.IsTaxonomyFacet) {\r\n facetView.facetType = \"taxonomy\";\r\n } else if (facet.IsFacet && facet.IsRangeField) {\r\n facetView.facetType = \"range\";\r\n } else {\r\n facetView.facetType = \"normal\";\r\n }\r\n\r\n\r\n availibleFacets.push(facetView);\r\n }\r\n }\r\n\r\n return availibleFacets;\r\n }\r\n\r\n showDataGridColumn(isImageControl, isBoolean) {\r\n // if it is image control then dont show data grid column\r\n // or it is boolean\r\n if (isImageControl == true || isBoolean == true) {\r\n return false; // means it will hide div\r\n } else {\r\n // in every other case show it\r\n return true;\r\n }\r\n }\r\n\r\n showIfNotDate(isDateTime) {\r\n if (isDateTime == true) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n modifyGridTableColumns() {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n this.gridOriginalAddedFielsList = this.gridAddedFields.map(x => Object.assign({}, x));\r\n\r\n // set to default\r\n this.gridAvailibleFields = [];\r\n this.gridOriginalFieldsList = [];\r\n // go through all fields\r\n for (let i = 0; i < this.metamodelGridFields.length; i++) {\r\n // ignore collection properties in grid (they cannot be shown in grid component)\r\n // also add only properties that are stored (can retrieve from index)\r\n // SAŠO ADDED - 20.8. - ignore fields that have no form controls attached (mostly IDs)\r\n if (!this.metamodelGridFields[i].IsCollectionProperty && this.metamodelGridFields[i].IsRetrievable\r\n && (this.metamodelGridFields[i].FormControlName != 'undefined' && this.metamodelGridFields[i].FormControlName != null\r\n && this.metamodelGridFields[i].FormControlName != '')) {\r\n // check if exists in addedFields\r\n let index = this.gridAddedFields.findIndex(x => x.Name == this.metamodelGridFields[i].Name);\r\n\r\n if (index < 0) {\r\n // if doesnt exists add to availible fields \r\n this.gridAvailibleFields.push(this.metamodelGridFields[i]);\r\n this.gridOriginalFieldsList.push(this.metamodelGridFields[i]);\r\n }\r\n }\r\n }\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n\r\n // open dialog and send needed data to dialog\r\n this.restoreGlobal = false;\r\n const dialogRef = this.dialog.open(SemGridDisplayFieldsDialogComponent, {\r\n data: {\r\n gridAvailibleFields: this.gridAvailibleFields,\r\n gridAddedFields: this.gridAddedFields,\r\n gridOriginalFieldsList: this.gridOriginalFieldsList,\r\n gridOriginalAddedFielsList: this.gridOriginalAddedFielsList,\r\n userGridSettings: this.userGridSettings,\r\n modelName: this.params[\"model\"],\r\n gridSettings: this.gridSettings,\r\n viewId: this.params[\"view\"],\r\n originalGridColumnSettings: this.originalGridColumnSettings,\r\n helperColumnFlags: this.helperColumnFlags,\r\n placeHolder: this.searchService.currentPlaceHoldertitle,\r\n metamodelGridFields: this.metamodelGridFields,\r\n type: this.viewType\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (typeof result != \"undefined\") {\r\n\r\n this.gridAvailibleFields = result[\"gridAvailibleFields\"];\r\n this.gridAddedFields = result[\"gridAddedFields\"];\r\n this.gridOriginalFieldsList = result[\"gridOriginalFieldsList\"];\r\n this.gridOriginalAddedFielsList = result[\"gridOriginalAddedFielsList\"];\r\n this.userGridSettings = result[\"userGridSettings\"];\r\n this.gridSettings = result[\"gridSettings\"];\r\n this.originalGridColumnSettings = result[\"originalGridColumnSettings\"];\r\n this.helperColumnFlags = result[\"helperColumnFlags\"];\r\n\r\n this.searchService.changeCurrentSearchSettings(this.userGridSettings, \"grid\");\r\n\r\n if (result[\"newProjection\"] != null && typeof result[\"newProjection\"] != \"undefined\") {\r\n let newProjection = result[\"newProjection\"];\r\n let projectionFacet = new ProjectionFacetWrapperModel();\r\n // before adding title and id (if they dont already exists) to current projection, save this projection \r\n this.searchService.setCurrentGridDisplayFields(Object.assign([], newProjection));\r\n projectionFacet.projection = this.handleDefaultProjection(newProjection);\r\n projectionFacet.facets = this.handleMetamodelFacets(this.metamodelGridFields);\r\n this.searchService.changeSearchProjectionAndFacets(projectionFacet);\r\n }\r\n\r\n if (result[\"restore\"] == true) {\r\n this.restoreGlobal = true;\r\n this.searchService.setGridRestoredDefault(true);\r\n } else {\r\n this.restoreGlobal = false;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n // this method will add default fields to projection if they aren't already in\r\n private handleDefaultProjection(projection: any[]): any[] {\r\n\r\n if (projection != null && typeof projection != \"undefined\") {\r\n // also always add Id into projection - need this for navigation to edit\r\n // and Title, but only if they aren't already in\r\n let index = projection.findIndex(x => x == \"Id\");\r\n let titleIndex = projection.findIndex(x => x == \"Title\");\r\n\r\n if (index < 0) {\r\n projection.push(\"Id\");\r\n\r\n let isSortable = false;\r\n // check if id sortable\r\n if (this.currentMetaModel != null && typeof this.currentMetaModel != \"undefined\" && this.currentMetaModel.length > 0) {\r\n let index = this.currentMetaModel.findIndex(x => x.Name == \"Id\");\r\n if (index >= 0) {\r\n isSortable = this.currentMetaModel[index][\"IsSortable\"];\r\n }\r\n }\r\n\r\n this.helperColumnFlags[\"Id\"] = {\r\n \"IsSortable\": isSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n\r\n }\r\n if (titleIndex < 0) {\r\n\r\n let isSortable = false;\r\n projection.push(\"Title\");\r\n\r\n // check if Title sortable\r\n if (this.currentMetaModel != null && typeof this.currentMetaModel != \"undefined\" && this.currentMetaModel.length > 0) {\r\n let index = this.currentMetaModel.findIndex(x => x.Name == \"Title\");\r\n if (index >= 0) {\r\n isSortable = this.currentMetaModel[index][\"IsSortable\"];\r\n }\r\n }\r\n\r\n this.helperColumnFlags[\"Title\"] = {\r\n \"IsSortable\": isSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n }\r\n }\r\n\r\n return projection;\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n validURL(str) {\r\n var pattern = new RegExp(/^(https?:\\/\\/|www\\.)[^\\s/$.?#].[^\\s]*$/i); \r\n return !!pattern.test(str);\r\n }\r\n\r\n\r\n isLink(dataItem, propPath) {\r\n\r\n if (dataItem != null && typeof dataItem != \"undefined\" && propPath != null && typeof propPath != \"undefined\") {\r\n var value = this.resolvePropertyBinding(dataItem, propPath);\r\n\r\n if (value != null && typeof value != \"undefined\") {\r\n return this.validURL(value);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n checkboxBulkItemClicked(object, allCheckedFunction: boolean = false, allItemsChecked: boolean = false, oneItemClick: boolean = true) {\r\n\r\n if (typeof object != \"undefined\" && object != null) {\r\n var documentId = this.resolvePropertyBinding(object, \"Id\");\r\n var modelName = this.params[\"model\"];\r\n var index = this.checkedBulkItems.findIndex(x => x.Id == documentId);\r\n\r\n // check if already in\r\n if (index >= 0) {\r\n\r\n // if all checked, but this already checked, dont remove\r\n if (!allCheckedFunction || !allItemsChecked) {\r\n // user unchecked\r\n // remove from \r\n this.checkedBulkItems.splice(index, 1);\r\n this.checkedBulkItemStatus[documentId] = false;\r\n }\r\n } else {\r\n\r\n if (!allItemsChecked) {\r\n if (oneItemClick) {\r\n this.checkedBulkItems.push({ \"Id\": documentId, \"ApplicationModelName\": modelName });\r\n this.checkedBulkItemStatus[documentId] = true;\r\n }\r\n } else {\r\n // user checked\r\n // add\r\n this.checkedBulkItems.push({ \"Id\": documentId, \"ApplicationModelName\": modelName });\r\n this.checkedBulkItemStatus[documentId] = true;\r\n }\r\n }\r\n // save current checked bulk items\r\n this.searchService.setCurrentCheckedBulkDocuments(this.checkedBulkItems);\r\n }\r\n }\r\n\r\n checkboxBulkCheckAllItems() {\r\n\r\n // change to reverse value\r\n this.checkboxAllItemsChecked = !this.checkboxAllItemsChecked;\r\n var items = this.model[this.bindingPropertyName];\r\n\r\n if (items != null && typeof items != \"undefined\") {\r\n for (var i = 0; i < items.length; i++) {\r\n this.checkboxBulkItemClicked(items[i], true, this.checkboxAllItemsChecked, false);\r\n }\r\n }\r\n }\r\n\r\n changeNumberOfPages(event) {\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.userService.updateUserSearchSettingsCustomPageSize(this.userGridSettings, event.target.value).subscribe(data => {\r\n\r\n this.userGridSettings = data;\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n\r\n //this.searchService.changeCurrentSearchSettings(this.userGridSettings, \"grid\");\r\n\r\n this.searchService.changePageSize(event.target.value);\r\n this.numberOfPagesValue = event.target.value;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n }, error => {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n }\r\n\r\n actionDD(event) {\r\n\r\n event.preventDefault();\r\n\r\n if (this.previewActions.length > 1) {\r\n this.ddShown = !this.ddShown;\r\n } else {\r\n this.runAction(this.previewActions[0]);\r\n }\r\n }\r\n\r\n runAction(action) {\r\n if (typeof (this.dynComp.cmpRef) != \"undefined\" && this.dynComp.cmpRef != null) {\r\n if (typeof (this.dynComp.cmpRef.instance) != \"undefined\" && this.dynComp.cmpRef.instance != null) {\r\n this.previewModel = this.dynComp.cmpRef.instance.model;\r\n this.actionsService.callAction(action, this.previewModel, null, this.actionExecuted.bind(this), this, false, null);\r\n }\r\n }\r\n this.ddShown = false;\r\n }\r\n\r\n actionExecuted(model, error) {\r\n this.dynComp.cmpRef.instance.model = model.Model;\r\n //console.log(\"Action executed: \", model, error);\r\n }\r\n\r\n getByType(number) {\r\n var items = [];\r\n if (number == true) {\r\n for (var i = 0; i < this.gridSettings.Columns.length; i++) {\r\n //if (this.gridSettings.Columns[i][\"Type\"] == 3) {\r\n items.push(this.gridSettings.Columns[i]);\r\n //}\r\n }\r\n } else {\r\n for (var i = 0; i < this.gridSettings.Columns.length; i++) {\r\n //if (this.gridSettings.Columns[i][\"Type\"] != 3) {\r\n items.push(this.gridSettings.Columns[i]);\r\n //}\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n checkForm(urlModel) {\r\n if (window.location.href.indexOf(urlModel) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n performAction(formAction, dataItem) {\r\n\r\n //this.actionsService.callAction(action, dataItem, this.actionExecuted.bind(this), null, this, false, null, action[\"OnlyClientLogic\"]);\r\n /*eval(action.PreJS);\r\n\r\n //eval(action.NavigationNodeRule.ActionBody);\r\n // if form actions has parameter form linked then we should first show popup with parameter form\r\n if (action.ParameterForm != null && typeof action.ParameterForm != \"undefined\" && action.ParameterForm.Id > 0) {\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: { parameterFormId: action.ParameterForm.Id }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n // only call action if parameter popup was confirmed (not cancled - close button)\r\n if (returnData.Canceled == false) {\r\n var inputParametersModel = returnData[\"Model\"];\r\n this.actionsService.callAction(action, dataItem, null, null, this, false, inputParametersModel, action.OnlyClientLogic, true, action.SkipBulkActionApiMethod);\r\n }\r\n }\r\n });\r\n } else {\r\n // just call action without parameters form popup\r\n //this.actionsService.callAction(action, dataItem, null, null, this, false, null, action.OnlyClientLogic, true, action.SkipBulkActionApiMethod);\r\n }*/\r\n\r\n //performAction(formAction, dataItem){\r\n\r\n this.actionsService.callAction(formAction, dataItem, null, this.actionExecuted.bind(this), this, false, null, formAction[\"OnlyClientLogic\"]);\r\n //eval(formAction.PreJS);\r\n }\r\n\r\n callReport(data) {\r\n const dialogRef = this.dialog.open(SemGenerateDialogComponent, {\r\n data: data\r\n });\r\n }\r\n\r\n getGridFormActions(type) {\r\n let formActions = [];\r\n\r\n if (typeof this.userGridSettings != \"undefined\" && this.userGridSettings) {\r\n if (typeof this.userGridSettings[\"FormActions\"] != \"undefined\" && this.userGridSettings[\"FormActions\"]) {\r\n for (var i = 0; i < this.userGridSettings[\"FormActions\"].length; i++) {\r\n if (this.userGridSettings[\"FormActions\"][i][\"Type\"] == type) {\r\n formActions.push(this.userGridSettings[\"FormActions\"][i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return formActions;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ElementRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { SemTextInputComponent } from '../sem-text-input/sem-text-input.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeAzCa from '@angular/common/locales/az';\r\nimport localeAzCaExtra from '@angular/common/locales/extra/az';\r\nimport * as moment from 'moment';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport * as _ from \"lodash\";\r\n\r\nimport {\r\n FormControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { SemDateFormatPipePipe } from '../../../shared/helpers/pipes/sem-date-format-pipe.pipe';\r\nimport { SemSharedModule, MY_FORMATS } from 'src/app/shared/modules/sem-shared/sem-shared.module';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\n\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'sem-date-picker',\r\n templateUrl: './sem-date-picker.component.html',\r\n styleUrls: ['./sem-date-picker.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemDatePickerComponent, multi: true }\r\n ]\r\n})\r\nexport class SemDatePickerComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() templateType: string;\r\n @Input() format: string;\r\n @Input() setDisabled: boolean = false;\r\n @Input() defaultValue: string;\r\n\r\n\r\n @ViewChild('picker', { read: ElementRef, static: true }) picker: ElementRef;\r\n @ViewChild('input', { read: ElementRef, static: true }) el: ElementRef;\r\n\r\n type: string;\r\n view: string;\r\n\r\n \r\n super() {\r\n }\r\n\r\n ngOnInit() {\r\n //registerLocaleData(localeAzCa, localeAzCaExtra);\r\n //MY_FORMATS.display.dateInput = this.format;\r\n\r\n /*this.dfms._modelValueSubmitValidator.subscribe(data => {\r\n this.dfms?.globalForm?.controls[this.getAttribute(\"name\")]?.setValue(this.value);\r\n this.dfms?.globalForm?.controls[this.getAttribute(\"name\")]?.updateValueAndValidity();\r\n });*/\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (typeof this.templateType != \"undefined\" && this.templateType.length > 0) {\r\n var splited = this.templateType.split(\"_\");\r\n this.type = splited[0];\r\n this.view = splited[1];\r\n }\r\n\r\n this.getDefaultValue();\r\n //this.picker.nativeElement.nativeElement.nativeElement.style.zoom = \"0.3\";\r\n }\r\n\r\n /*onTextChange(value:moment.Moment) {\r\n this.value = value.utc().toJSON();\r\n }*/\r\n\r\n onTextChange(value) {\r\n if (this.el.nativeElement.value.length > 0) {\r\n if (this.el.nativeElement.value[this.el.nativeElement.value.length - 1] != \".\") {\r\n if (this.el.nativeElement.value.length == 2) {\r\n this.el.nativeElement.value = this.el.nativeElement.value + \".\";\r\n } else if (this.el.nativeElement.value.length == 5) {\r\n this.el.nativeElement.value = this.el.nativeElement.value + \".\";\r\n }\r\n }\r\n }\r\n \r\n this.value = value;\r\n this.utility.newSectionAdded.next(this.dfms.globalModel);\r\n\r\n /*this.dfms.globalForm.controls[this.getAttribute(\"name\")].setValue(value.toDate());\r\n this.dfms.globalForm.controls[this.getAttribute(\"name\")].updateValueAndValidity();\r\n */\r\n\r\n let val = null;\r\n\r\n if(value){\r\n val = value.toDate();\r\n }\r\n\r\n let attName = this.getAttribute(\"name\");\r\n //this.dfms.globalForm.controls[attName].setValue(value.toDate());\r\n //this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n\r\n this.dfms.updateControlsValidationArray(attName,val);\r\n\r\n console.log(\"datepicker value\" + this.value);\r\n \r\n\r\n if(typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval){\r\n eval(this.onValueChangeEval);\r\n }\r\n\r\n }\r\n\r\n getDefaultValue() {\r\n if ((this.value == null || typeof this.value == \"undefined\") && this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue.length > 0) {\r\n if (this.defaultValue == \"today\") {\r\n let val = new Date().toISOString(); \r\n let val2: any = moment.utc();\r\n this.onTextChange(val2);\r\n \r\n \r\n } else {\r\n if (this.defaultValue.startsWith(\"${\") && this.defaultValue.endsWith(\"}\")) {\r\n //interpolate\r\n // use custom delimiter ${ }\r\n try {\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n let formModel = this.dfms.globalModel;\r\n\r\n if (formModel != null && typeof formModel != \"undefined\") {\r\n let compiled = _.template(this.defaultValue);\r\n let compiledValue = compiled(formModel);\r\n if (compiledValue != null && compiledValue != \"\" && typeof compiledValue != \"undefined\") {\r\n this.value = compiledValue;\r\n }\r\n }\r\n } catch (e) { }\r\n } else {\r\n // defaultValue should be specified in iso for example \"2020-10-10T00:00:00.000Z\"\r\n this.value = this.defaultValue;\r\n }\r\n }\r\n }\r\n\r\n\r\n return this.value;\r\n }\r\n\r\n afterPickerOpen() {\r\n }\r\n\r\n input(value) {\r\n //this.value = moment(value.toJSON()).format(this.format);\r\n }\r\n\r\n valueChanged() {\r\n //var dateFormatPipe = new SemDateFormatPipePipe(\"az\");\r\n //this.value = dateFormatPipe.transform(this.value, \"dd.MM.yyyy\");\r\n }\r\n\r\n preventBlur() {\r\n setTimeout(() => {\r\n const input: HTMLInputElement = this.el.nativeElement as HTMLInputElement;\r\n input.focus();\r\n input.select();\r\n }, 500);\r\n }\r\n translate(key: string) {\r\n\r\n if (typeof key != \"undefined\" && key != null) {\r\n var k = key.replace(\"Translation.\", \"\");\r\n\r\n if (this.translationsService.translations[k]) {\r\n return this.translationsService.translations[k];\r\n } else {\r\n return key;\r\n }\r\n }\r\n\r\n return key;\r\n\r\n }\r\n\r\n focusOut(value: any) {\r\n try {\r\n if (typeof (value) != \"undefined\") {\r\n if (value.isUtcOffset() == false) {\r\n let newDate = new Date(this.value);\r\n newDate.setMinutes(newDate.getMinutes() - newDate.getTimezoneOffset());\r\n this.value = moment(newDate).toJSON();\r\n } else {\r\n this.value = value.utc().toJSON();\r\n }\r\n }\r\n } catch {\r\n\r\n }\r\n\r\n const input: HTMLInputElement = this.el.nativeElement as HTMLInputElement;\r\n input.blur();\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { retry } from '../../../../../node_modules/rxjs/operators';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { MetaModelService } from '../../../services/metamodel/metamodel-provider.service';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\n\r\n@Component({\r\n selector: 'sem-dynamic-search-field',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './sem-dynamic-search-field.component.html',\r\n styleUrls: ['./sem-dynamic-search-field.component.css']\r\n})\r\nexport class SemDynamicSearchFieldComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() modelIndex: any;\r\n @Input() controlName: string;\r\n @Input() rangeType: string;\r\n @Input() label: string;\r\n @Input() isCheckBox: boolean;\r\n @Input() isRangeField: boolean;\r\n @Input() name: string;\r\n @Input() isDropDown: boolean;\r\n @Input() fullType: string;\r\n @Input() dropdownType: string;\t\r\n @Input() dropdownPreFilter: string;\r\n\r\n templateType: string;\r\n preFilterQuery: any = {};\r\n\r\n super() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if(this.dropdownType != null && typeof this.dropdownType != \"undefined\"){\t\r\n this.fullType = this.dropdownType;\t\r\n }\t\r\n if(this.dropdownPreFilter != null && typeof this.dropdownPreFilter != \"undefined\" && this.dropdownPreFilter.length > 0){\t\r\n try{ \t\r\n //this.preFilterQuery = JSON.parse(this.dropdownPreFilter); \t\r\n }catch{}\t\r\n }\r\n\r\n if (this.rangeType == \"time\") {\r\n this.templateType = \"timer_month\";\r\n } else if (this.rangeType == \"date\") {\r\n this.templateType = \"calendar_month\";\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n }\r\n\r\n\r\n searchValueOnChange(value: any) {\r\n this.searchService.changeSearchValue(value);\r\n }\r\n\r\n changeCheckBoxState(item: any){\r\n if(item != null && typeof item != \"undefined\") {\r\n if(item.CheckBoxState == null || typeof item.CheckBoxState == \"undefined\" || item.CheckBoxState == \"novalue\") {\r\n // next click value is checked if checkbox is not checked\r\n item.CheckBoxState = \"checked-true\";\r\n }else if(item.CheckBoxState == \"checked-true\"){\r\n // if checkbox is currently checked then next value is checked-false\r\n item.CheckBoxState = \"checked-false\";\r\n } else if(item.CheckBoxState == \"checked-false\"){\r\n // if currently checkbox is checked on false then next state is no value \r\n item.CheckBoxState = \"novalue\";\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'sem-edit-mode-btn',\r\n templateUrl: './sem-edit-mode-btn.component.html',\r\n styleUrls: ['./sem-edit-mode-btn.component.css']\r\n})\r\nexport class SemEditModeBtnComponent extends SemControlComponent implements OnInit {\r\n\r\n super() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n click(): void {\r\n this.dfms.setFormAsReadOnly();\r\n }\r\n\r\n show(){\r\n if(this.dynamicRoutesLoader.loadedRoute?.ExplicitEditMode && window.location.href.includes(\"id=\")){\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ViewEncapsulation, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { DataGridColumn } from '../../../models/datagrid/data-grid-column';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { retry } from '../../../../../node_modules/rxjs/operators';\r\nimport { UserSearchSettingModel } from '../../../models/search/user-search-setting-model';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { MetaModelService } from '../../../services/metamodel/metamodel-provider.service';\r\nimport { UserSearchSettingPropertyModel } from '../../../models/search/user-search-setting-property-model';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { FacetModel } from 'src/app/models/search/facet.model';\r\nimport { FacetViewModel } from 'src/app/models/search/facet-view.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'sem-facets',\r\n templateUrl: './sem-facets.component.html',\r\n styleUrls: ['./sem-facets.component.css']\r\n})\r\nexport class SemFacetsComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('facetContainer', { read: true, static: true }) facetContainerElement: ElementRef;\r\n private currentSearchFacets: FacetModel[] = [];\r\n availibleFacets: FacetViewModel[] = [];\r\n private availibleFacetsSubs: any;\r\n private enableFacetsSubs: any;\r\n public facetsPresent: boolean = true;\r\n enableFacets: boolean = false;\r\n collapsedContainer: boolean = false;\r\n preload: boolean = false;\r\n showExpandTooltip: boolean = false;\r\n\r\n // listener for search value change\r\n _facetsLoaded = new BehaviorSubject({});\r\n facetsLoaded = this._facetsLoaded.asObservable();\r\n\r\n super() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.searchService.changeAvailibleFacets(undefined);\r\n if (typeof this.availibleFacetsSubs != \"undefined\" && this.availibleFacetsSubs != null) {\r\n this.availibleFacetsSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.changeAvailibleFacets(undefined);\r\n if (typeof this.enableFacetsSubs != \"undefined\" && this.enableFacetsSubs != null) {\r\n this.enableFacetsSubs.unsubscribe();\r\n }\r\n }\r\n\r\n collapse() {\r\n this.showExpandTooltip = false;\r\n this.collapsedContainer = true;\r\n this.utility.setFacetsCollapsed(true);\r\n\r\n //this.facetContainerElement.nativeElement.parentElement.parentElement.parentElement.classList.add(\"retract-facets\");\r\n\r\n let facetElement = document.getElementsByClassName('SemFacetsControl')[0].parentElement;\r\n\r\n if (!facetElement?.classList.contains(\"retract-facets\")) {\r\n facetElement?.classList.add(\"retract-facets\")\r\n }\r\n }\r\n\r\n showExpandTooltipEvent(){\r\n this.showExpandTooltip = true;\r\n }\r\n\r\n hideExpandTooltipEvent(){\r\n this.showExpandTooltip = false;\r\n }\r\n\r\n expand() {\r\n this.showExpandTooltip = false;\r\n this.collapsedContainer = false;\r\n this.utility.setFacetsCollapsed(false);\r\n\r\n //this.facetContainerElement.nativeElement.parentElement.parentElement.parentElement.classList.remove(\"retract-facets\");\r\n\r\n let facetElement = document.getElementsByClassName('SemFacetsControl')[0].parentElement;\r\n\r\n if (facetElement?.classList.contains(\"retract-facets\")) {\r\n facetElement?.classList.remove(\"retract-facets\")\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n super.ngOnInit();\r\n\r\n\r\n this.availibleFacetsSubs = this.searchService.currentAvailibleFacets.subscribe(facets => {\r\n\r\n if (facets != null && typeof facets != \"undefined\") {\r\n this.availibleFacets = facets;\r\n \r\n if (this.availibleFacets == null || typeof this.availibleFacets == \"undefined\" || this.availibleFacets.length == 0) {\r\n this.facetsPresent = false;\r\n } else { \r\n this.facetsPresent = true;\r\n }\r\n\r\n let facetElement = document.getElementsByClassName('SemFacetsControl')[0].parentElement;\r\n\r\n if (this.facetsPresent) {\r\n if (this.searchService.facetsOrder != null && typeof this.searchService.facetsOrder != \"undefined\" && this.searchService.facetsOrder.length > 0) {\r\n for (var i = 0; i < this.searchService.facetsOrder.length; i++) {\r\n let name = this.searchService.facetsOrder[i];\r\n let index = this.availibleFacets.findIndex(x => x.facetPropertyPath == name);\r\n if (index >= 0) {\r\n this.availibleFacets[index].order = i + 1;\r\n }\r\n }\r\n\r\n // reorder based on \"order\" property\r\n this.availibleFacets = this.availibleFacets.sort((a, b) => a.order - b.order);\r\n }\r\n\r\n if (facetElement?.classList.contains(\"hide-facets\")) {\r\n facetElement?.classList.remove(\"hide-facets\")\r\n }\r\n\r\n } else {\r\n\r\n if (!facetElement?.classList.contains(\"hide-facets\")) {\r\n facetElement?.classList.add(\"hide-facets\")\r\n }\r\n }\r\n }\r\n\r\n if (this.preload) {\r\n this.loading = false;\r\n }\r\n\r\n this.preload = true;\r\n\r\n }\r\n\r\n );\r\n\r\n this.enableFacetsSubs = this.searchService.currentEnableFacets.subscribe(enableFacets => {\r\n\r\n if (enableFacets != null && typeof enableFacets != \"undefined\") {\r\n this.enableFacets = enableFacets;\r\n this._facetsLoaded.next({});\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.changeDetection.detectChanges();\r\n this.facetsLoaded.subscribe(data => {\r\n let facetElement = document.getElementsByClassName('SemFacetsControl')[0].parentElement;\r\n if (!this.enableFacets) {\r\n\r\n if (!facetElement?.classList.contains(\"hide-facets\")) {\r\n facetElement?.classList.add(\"hide-facets\")\r\n }\r\n } else {\r\n if (facetElement?.classList.contains(\"hide-facets\")) {\r\n facetElement?.classList.remove(\"hide-facets\")\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n facetChanged(facetFieldValue, facetFieldName, facetType, unChecked, start, end) {\r\n if (unChecked) {\r\n let index = -1;\r\n if (facetType == \"range\") {\r\n index = this.currentSearchFacets.findIndex(x => x.fieldValueFrom == start && x.fieldValueTo == end && x.fieldName == facetFieldName);\r\n } else {\r\n index = this.currentSearchFacets.findIndex(x => x.fieldValue == facetFieldValue && x.fieldName == facetFieldName);\r\n }\r\n if (index >= 0) {\r\n this.currentSearchFacets.splice(index, 1);\r\n }\r\n } else {\r\n if (facetType == \"normal\") {\r\n this.currentSearchFacets.push(new FacetModel(facetFieldName, facetFieldValue, facetType));\r\n } else if (facetType == \"taxonomy\") {\r\n let taxonomyFacet: FacetModel = new FacetModel(facetFieldName, facetFieldValue, facetType);\r\n // populate path\r\n let path: string[] = [];\r\n path.push(facetFieldValue);\r\n\r\n taxonomyFacet.fieldPath = path;\r\n this.currentSearchFacets.push(taxonomyFacet);\r\n } else if (facetType == \"range\") {\r\n let rangeFacet: FacetModel = new FacetModel(facetFieldName, null, facetType);\r\n // also set from,to value for range facet\r\n rangeFacet.fieldValueFrom = start;\r\n rangeFacet.fieldValueTo = end;\r\n this.currentSearchFacets.push(rangeFacet);\r\n }\r\n }\r\n\r\n this.searchService.changeSearchFacets(this.currentSearchFacets);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, NgZone, ChangeDetectorRef, Injector, NgModuleRef, Compiler, Renderer2, ComponentFactoryResolver, ElementRef, Output, EventEmitter, HostListener, KeyValueDiffers, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { WindowRefService } from 'src/app/services/window-ref.service';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { FileDataModel } from 'src/app/models/file-upload/file-data';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { FileUploadService } from 'src/app/services/file-upload-service/file-upload.service';\r\nimport { MetaModelService } from 'src/app/services/metamodel/metamodel-provider.service';\r\nimport { UserService } from 'src/app/services/user/user-provider.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { FileUtil } from 'src/app/shared/helpers/file-util';\r\nimport { RouteNavigationService } from 'src/app/services/dynamic-routes-loader/route-navigation.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\nimport { ParameterFormsService } from 'src/app/services/parameter-forms-service/parameter-forms.service';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\nimport { Annotorious } from '@recogito/annotorious';\r\nimport { throws } from 'assert';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { SemFileExplorerDialogComponent } from '../dialogs/sem-file-explorer-dialog/sem-file-explorer-dialog.component';\r\nimport { NgxPhotoEditorService } from 'ngx-photo-editor';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-sem-file-explorer',\r\n templateUrl: './sem-file-explorer.component.html',\r\n styleUrls: ['./sem-file-explorer.component.css']\r\n})\r\nexport class SemFileExplorerComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n explorer: any = {\r\n\r\n normal: {\r\n width: 941,\r\n height: 625,\r\n positionTop: 50,\r\n positionLeft: 50,\r\n marginTop: -312,\r\n marginLeft: -470\r\n },\r\n\r\n max: {\r\n width: 1000,\r\n height: 700,\r\n positionTop: 50,\r\n positionLeft: 50,\r\n marginTop: -350,\r\n marginLeft: -500\r\n },\r\n maximized: true,\r\n opened: true\r\n };\r\n\r\n @Input() files: any[] = [];\r\n @Input() shownFiles: any[] = [];\r\n @Input() type: number = 1; //1-images|2-files\r\n selectedItem: any = null;\r\n @Input() model: any;\r\n @Input() dialogRef: MatDialogRef | null = null;\r\n\r\n sideType: number = 0;\r\n\r\n @Input() hasDeleteRight: boolean = false;\r\n @Input() hasWriteRight: boolean = false;\r\n @Input() availableExtensions: any[] = [];\r\n imagesExtensions: string[] = [\"jpg\", \"jpeg\", \"png\", \"gif\"];\r\n\r\n txtFileContent: any;\r\n pdfSrc: any;\r\n searchText: string = \"\";\r\n selectedImageData: SafeUrl = \"\";\r\n selectedImageDataString: string = \"\";\r\n imgViewType: number = 1;\r\n\r\n\r\n @Output() onAddItem = new EventEmitter();\r\n @Output() onItemDrop = new EventEmitter();\r\n @Output() onItemDownload = new EventEmitter();\r\n @Output() onItemDelete = new EventEmitter();\r\n\r\n imageAnnotate: any;\r\n annotations: any = [];\r\n @ViewChild('annotat', { static: false }) public annotate: ElementRef;\r\n\r\n constructor(\r\n public restProviderService: RestProviderService,\r\n public zone: NgZone,\r\n public changeDetection: ChangeDetectorRef,\r\n public _injector: Injector,\r\n public _m: NgModuleRef,\r\n public _compiler: Compiler,\r\n public route: ActivatedRoute,\r\n public router: Router,\r\n public dialog: MatDialog,\r\n public renderer: Renderer2,\r\n public translationsService: TranslationsProviderService,\r\n public fileUploadService: FileUploadService,\r\n public metaModelService: MetaModelService,\r\n public userService: UserService,\r\n public searchService: SearchService,\r\n public componentFactoryResolver: ComponentFactoryResolver,\r\n public control: ElementRef,\r\n public formBuilder: FormBuilder,\r\n public actionsService: ActionsService,\r\n public dfms: DynamicFieldsManagerService,\r\n public utility: UtilityService,\r\n public parameterFormService: ParameterFormsService,\r\n public formService: FormService,\r\n private windowRef: WindowRefService,\r\n private domSanitizer: DomSanitizer,\r\n public photoEditorService: NgxPhotoEditorService,\r\n public anglarHttpClient:HttpClient) {\r\n super(\r\n restProviderService,\r\n zone,\r\n changeDetection,\r\n _injector,\r\n _m,\r\n _compiler,\r\n route,\r\n router,\r\n dialog,\r\n renderer,\r\n translationsService,\r\n fileUploadService,\r\n metaModelService,\r\n userService,\r\n searchService,\r\n componentFactoryResolver,\r\n control,\r\n formBuilder,\r\n actionsService,\r\n dfms,\r\n utility,\r\n parameterFormService,\r\n formService,\r\n photoEditorService,\r\n anglarHttpClient);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.open();\r\n\r\n if (this.type == 2 && this.files?.length > 0) {\r\n this.selectItem(this.files[0]);\r\n }\r\n\r\n setTimeout(() => {\r\n this.onStartAnnotate();\r\n }, 500);\r\n }\r\n\r\n onAddItemClick() {\r\n this.onAddItem.emit();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.type == 2) {\r\n this.imgViewType = 0;\r\n }\r\n\r\n this.calcMax();\r\n }\r\n\r\n setSelected(name) {\r\n this.selectedItem = this.files.filter(i => i.Name == name)[0];\r\n this.onRestartAnnotate();\r\n this.getImageUrl();\r\n }\r\n\r\n getAnnotationBody(ann) {\r\n let string = \"\";\r\n\r\n ann.body?.forEach(element => {\r\n string += \" \" + element.value + \";\";\r\n });\r\n\r\n return string.slice(0, -1);\r\n }\r\n\r\n calcMax() {\r\n var w = this.windowRef.nativeWindow.screen.width - 250;\r\n var h = this.windowRef.nativeWindow.screen.height - 250;\r\n\r\n this.explorer.max.width = w;\r\n this.explorer.max.height = h;\r\n\r\n var ptp = (25 * 100) / this.windowRef.nativeWindow.screen.height;\r\n var lpp = (50 * 100) / this.windowRef.nativeWindow.screen.width;\r\n\r\n this.explorer.max.positionTop = ptp;\r\n this.explorer.max.positionLeft = lpp;\r\n this.explorer.max.marginLeft = 0;\r\n this.explorer.max.marginTop = 0;\r\n }\r\n\r\n /*@HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.calcMax();\r\n this.calcPositionStyle();\r\n }*/\r\n\r\n setExplorerMax() {\r\n this.calcMax();\r\n this.explorer.maximized = true;\r\n }\r\n\r\n setExplorerNormal() {\r\n this.explorer.maximized = false;\r\n }\r\n\r\n setExplorerNormalMax() {\r\n if (this.explorer.maximized) {\r\n this.setExplorerNormal();\r\n } else {\r\n this.setExplorerMax();\r\n }\r\n }\r\n\r\n close() {\r\n this.explorer.maximized = false;\r\n this.explorer.opened = false;\r\n this.selectedItem = null;\r\n this.getImageUrl();\r\n }\r\n\r\n open() {\r\n this.explorer.opened = true;\r\n this.setExplorerMax();\r\n\r\n if (this.files != null && this.files.length > 0) {\r\n this.selectedItem = this.files[0];\r\n this.getImageUrl();\r\n }\r\n }\r\n\r\n onRestartAnnotate() {\r\n if (this.type != 2) {\r\n /*try {\r\n document.getElementsByClassName(\"a9s-annotationlayer\")[0].remove();\r\n } catch (e) { }*/\r\n\r\n let annotations: any = [];\r\n\r\n if (this.selectedItem.Annotations) {\r\n this.selectedItem.Annotations?.forEach(element => {\r\n element.target.selector.type = \"FragmentSelector\";\r\n let obj = {\r\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\r\n \"id\": element.id,\r\n \"type\": \"Annotation\",\r\n \"body\": element.body,\r\n \"target\": {\r\n \"selector\": element.target.selector\r\n }\r\n };\r\n\r\n annotations.push(obj);\r\n });\r\n }\r\n\r\n this.annotations = annotations;\r\n this.imageAnnotate.clearAnnotations();\r\n this.imageAnnotate.setAnnotations(annotations);\r\n }\r\n }\r\n\r\n onStartAnnotate() {\r\n if (this.type != 2) {\r\n try {\r\n document.getElementsByClassName(\"a9s-annotationlayer\")[0].remove();\r\n } catch (e) { }\r\n\r\n this.imageAnnotate = new Annotorious({\r\n image: document.getElementById(\"annotate\"),\r\n widgets: ['COMMENT']\r\n });\r\n\r\n this.imageAnnotate.on('createAnnotation', (annotation, overrideId) => {\r\n this.annotations.push(annotation);\r\n this.selectedItem[\"Annotations\"] = this.annotations;\r\n });\r\n\r\n this.imageAnnotate.on('updateAnnotation', (annotation, previous) => {\r\n let index = this.annotations.findIndex(i => i.id == annotation.id);\r\n this.annotations[index] = annotation;\r\n this.selectedItem[\"Annotations\"] = this.annotations;\r\n });\r\n\r\n this.imageAnnotate.on('deleteAnnotation', (annotation) => {\r\n this.annotations = this.annotations.filter(i => i.id != annotation.id);\r\n this.selectedItem[\"Annotations\"] = this.annotations;\r\n });\r\n\r\n let annotations: any = [];\r\n\r\n if (this.selectedItem.Annotations) {\r\n this.selectedItem.Annotations?.forEach(element => {\r\n element.target.selector.type = \"FragmentSelector\";\r\n let obj = {\r\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\r\n \"id\": element.id,\r\n \"type\": \"Annotation\",\r\n \"body\": element.body,\r\n \"target\": {\r\n \"selector\": element.target.selector\r\n }\r\n };\r\n\r\n annotations.push(obj);\r\n });\r\n }\r\n\r\n this.annotations = annotations;\r\n this.imageAnnotate.clearAnnotations();\r\n this.imageAnnotate.setAnnotations(annotations);\r\n }\r\n }\r\n\r\n calcPositionStyle() {\r\n\r\n let data = this.explorer.maximized ? this.explorer.max : this.explorer.normal;\r\n\r\n let explorerPositionStyle = {\r\n 'width': data.width + \"px\",\r\n 'height': data.height + \"px\",\r\n 'top': data.positionTop + \"%\",\r\n 'left': data.positionLeft + \"%\",\r\n 'margin-left': data.marginLeft + 'px',\r\n 'margin-top': data.marginTop + 'px',\r\n 'display': this.explorer.opened ? 'block' : 'none'\r\n }\r\n\r\n return explorerPositionStyle;\r\n }\r\n\r\n selectItem(item) {\r\n this.selectedItem = item;\r\n\r\n if (this.getPreviewType() == \"text\") {\r\n this.getTextFileContent();\r\n }\r\n\r\n if (this.getPreviewType() == \"pdf\") {\r\n\r\n if (typeof (FileReader) !== 'undefined') {\r\n let reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.pdfSrc = e.target.result;\r\n };\r\n\r\n reader.readAsArrayBuffer(this.selectedItem.File);\r\n }\r\n }\r\n this.getImageUrl();\r\n }\r\n\r\n getFrendlyFileSize(size) {\r\n return FileUtil.getFriendlyFileSize(size);\r\n }\r\n\r\n getExtension(name) {\r\n var splits = name.split(\".\");\r\n return splits[splits.length-1].toLowerCase()\r\n }\r\n\r\n searchCheckShow(item) {\r\n\r\n if (this.searchText.length == 0)\r\n return true;\r\n\r\n var indexOf = item.Name.toLowerCase().indexOf(this.searchText.toLowerCase());\r\n\r\n if (indexOf !== -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onDrop(s, t) {\r\n if (this.onItemDrop != null) {\r\n\r\n let src = {\r\n id: s.Id,\r\n order: s.Order,\r\n name: s.Name\r\n };\r\n\r\n let tar = {\r\n id: t.Id,\r\n order: t.Order,\r\n name: t.Name\r\n }\r\n this.onItemDrop.emit({ src: src, tar: tar })\r\n }\r\n }\r\n\r\n checkFile(file: File): boolean {\r\n if (this.availableExtensions.length > 0) {\r\n var fileExtentionSplit = file.name.split(\".\");\r\n for (var i = 0; i < this.availableExtensions.length; i++) {\r\n if (fileExtentionSplit[fileExtentionSplit.length - 1].toLowerCase() == this.availableExtensions[i].toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getPreviewType() {\r\n if (this.selectedItem != null) {\r\n\r\n //image preview check\r\n var extension = this.getExtension(this.selectedItem.Name);\r\n if (this.imagesExtensions.indexOf(extension) > -1) {\r\n return \"image\";\r\n }\r\n\r\n if (extension == \"pdf\") {\r\n return \"pdf\"\r\n }\r\n\r\n return \"text\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n getImageUrl() {\r\n try {\r\n if (this.selectItem != null) {\r\n this.selectedImageData = this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(this.selectedItem.File));\r\n this.selectedImageDataString = URL.createObjectURL(this.selectedItem.File);\r\n } else {\r\n this.selectedImageData = \"\";\r\n this.selectedImageDataString = \"\";\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n getPreviewImageUrl() {\r\n try {\r\n if (this.selectItem != null) {\r\n return URL.createObjectURL(this.selectedItem.File);\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n getTextFileContent() {\r\n var fr = new FileReader();\r\n var ctrlThis = this;\r\n fr.onload = function () {\r\n ctrlThis.txtFileContent = this.result;\r\n }\r\n\r\n fr.readAsText(this.selectedItem.File);\r\n }\r\n\r\n onDownload() {\r\n if (this.onItemDownload != null) {\r\n this.onItemDownload.emit(this.selectedItem);\r\n }\r\n }\r\n\r\n onDelete() {\r\n if (this.onItemDelete != null) {\r\n this.onItemDelete.emit(this.selectedItem);\r\n this.selectedItem = null;\r\n this.getImageUrl();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation, AfterViewInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ClientAction, FileDataModel } from 'src/app/models/file-upload/file-data';\r\nimport { FileUtil } from 'src/app/shared/helpers/file-util';\r\n\r\n@Component({\r\n selector: 'sem-file-picker',\r\n templateUrl: './sem-file-picker.component.html',\r\n styleUrls: ['./sem-file-picker.component.css']\r\n})\r\n\r\nexport class SemFilePickerComponent extends SemControlComponent implements OnInit, AfterViewInit, OnDestroy{\r\n\r\n //Supported file extensions\r\n @Input() availableExtensions: any[] = [];\r\n @Input() BindingPropertyName: string = null;\r\n //Html iput type file element\r\n @ViewChild('chooseFile',{ read: ElementRef, static:true })\r\n private chooseFile: ElementRef;\r\n\r\n files: any[] = []; \r\n\r\n super() {}\r\n \r\n ngOnInit() {\r\n this.fileUploadService.files = [];\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnDestroy(){ \r\n }\r\n \r\n onFileChange(event) {\r\n\r\n for (var i = 0; i < this.chooseFile.nativeElement.files.length; i++) {\r\n if (this.checkFile(this.chooseFile.nativeElement.files[i])) {\r\n\r\n var split = this.chooseFile.nativeElement.files[i].name.split(\".\"); \r\n this.files.push({ \r\n \"Name\":split[0],\r\n \"Size\":FileUtil.getFriendlyFileSize(this.chooseFile.nativeElement.files[i].size),\r\n \"File\":this.chooseFile.nativeElement.files[i],\r\n \"Extension\":split[1].toLowerCase()\r\n });\r\n\r\n // add to fileservice so we can get info from other controls\r\n let fileDataModel = new FileDataModel(null);\r\n fileDataModel.Size = this.chooseFile.nativeElement.files[i].size;\r\n fileDataModel.Name = this.chooseFile.nativeElement.files[i].name;\r\n fileDataModel.File = this.chooseFile.nativeElement.files[i]; \r\n this.fileUploadService.files.push(fileDataModel); \r\n }\r\n }\r\n\r\n this.chooseFile.nativeElement.value = \"\"; \r\n }\r\n\r\n removeFile(file){ \r\n if(file != null && typeof file != \"undefined\"){\r\n var indx = this.files.findIndex(x => x.Name == file.Name);\r\n if(indx >= 0){\r\n this.files.splice(indx, 1);\r\n }\r\n\r\n // also remove from file upload service list\r\n var indx2 = this.fileUploadService.files.findIndex(x => x.Name == file.File.name);\r\n if(indx2 >= 0){\r\n this.fileUploadService.files.splice(indx2, 1);\r\n }\r\n } \r\n }\r\n\r\n checkFile(file): boolean {\r\n\r\n if(file == null ||typeof file == \"undefined\"){\r\n return false;\r\n }\r\n\r\n var fileSizeMB = file.size/1024/1024;\r\n if(fileSizeMB > 100){\r\n alert(\"File exceeds 100MB\");\r\n return false;\r\n }\r\n\r\n if (this.availableExtensions.length > 0) {\r\n var fileExtentionSplit = file.name.split(\".\");\r\n for (var i = 0; i < this.availableExtensions.length; i++) {\r\n if (fileExtentionSplit[fileExtentionSplit.length - 1].toLowerCase() == this.availableExtensions[i].toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n } \r\n \r\n public openFileDialog(): void {\r\n let event = new MouseEvent('click', { bubbles: false });\r\n this.chooseFile.nativeElement.dispatchEvent(event);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, AfterContentInit, ElementRef, ChangeDetectorRef, Renderer2, OnDestroy, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\nimport { FileUtil } from '../../../shared/helpers/file-util';\r\nimport { Observable, interval, Subscription } from 'rxjs';\r\nimport { takeWhile, debounceTime } from 'rxjs/operators';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { FileDataModel, ClientAction } from 'src/app/models/file-upload/file-data';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { type } from 'os';\r\nimport { SemFileExplorerComponent } from '../sem-file-explorer/sem-file-explorer.component';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { LocalStorageService } from 'src/app/services/local-storage-service/local-storage.service';\r\nimport { SemDialogComponent } from '../dialogs/sem-dialog/sem-dialog.component';\r\nimport { SemFileExplorerDialogComponent } from '../dialogs/sem-file-explorer-dialog/sem-file-explorer-dialog.component';\r\nimport { FileDataRightModel } from '../../../models/file-upload/file-data-rights';\r\nimport { ResponseStatus } from '../../../shared/components/sem-dynamic/sem-dynamic.component';\r\n\r\n\r\n@Component({\r\n selector: 'sem-file-upload',\r\n templateUrl: './sem-file-upload.component.html',\r\n styleUrls: ['./sem-file-upload.component.css']\r\n})\r\nexport class SemFileUploadComponent extends SemControlComponent implements OnInit, AfterContentInit, OnDestroy {\r\n\r\n files: FileDataModel[] = [];\r\n deletedFiles: FileDataModel[] = [];\r\n multiple: boolean = false;\r\n imgPath: string = \"\";\r\n toConfirm: boolean = false;\r\n public showSelected: boolean = false;\r\n fileDataRight: FileDataRightModel = new FileDataRightModel({ \"WriteRight\": false, \"DeleteRight\": false });\r\n event = null;\r\n\r\n //Inputs\r\n //Supported file extensions\r\n @Input() availableExtensions: any[] = [];\r\n //Type of file upload (can be images = 1, attachments = 2), type depends how we show data in html\r\n @Input() type: number = 1;\r\n\r\n @Input() title: \"\";\r\n @Input() dropText: \"\";\r\n collapse: boolean = false;\r\n @Input() fcategory: \"\";\r\n @Input() categoryEditable: false;\r\n @Input() protocolName: any;\r\n @Input() imagesPath: any;\r\n @Input() defaultCollapse: boolean = false;\r\n\r\n @Output() collapseChanged = new EventEmitter();\r\n\r\n //Html iput type file element\r\n //@ViewChild('fileUpload', { read: ElementRef, static: false })\r\n private fileUpload: ElementRef;\r\n @ViewChild('fileUpload', { static: false }) set content(content: ElementRef) {\r\n if (content) { // initially setter gets called with undefined\r\n this.fileUpload = content;\r\n }\r\n }\r\n\r\n //Html div dropzone element\r\n @ViewChild('dropArea', { read: ElementRef, static: true })\r\n private dropArea: ElementRef;\r\n\r\n globalInstance: any;\r\n\r\n //Mapped browser File objects to custom object, which consists of id(index), path(generated from URL.create from File object) and name. We need this array,\r\n //to be able to show images in html\r\n filePaths: any[] = [];\r\n\r\n //currently selected File, so we know which file to delete, download, ....\r\n selectedFile: FileDataModel = null;\r\n\r\n //index number, from which we select images, to be shown in image slider\r\n index: number = 0;\r\n\r\n //files from index number, which will be shown in image slider\r\n shownFiles: any[] = [];\r\n ddAreaDisplay: string = \"block\";\r\n dropareaActive: boolean = false;\r\n showLoader: boolean = false;\r\n\r\n //files from model\r\n modelMedias: any[] = [];\r\n alreadyExists: boolean = false;\r\n\r\n @Input() filesSubmitRequest: Observable;\r\n @Input() filesSubmitEndRequest: Observable;\r\n\r\n s1: Subscription;\r\n s2: Subscription;\r\n s3: Subscription;\r\n s4: Subscription;\r\n s5: Subscription;\r\n s6: Subscription;\r\n\r\n @ViewChild('fileExplorer', { read: SemFileExplorerComponent, static: true }) fileExplorer: SemFileExplorerComponent;\r\n\r\n public restService: RestProviderService = null;\r\n\r\n fileDataActions: any[] = [];\r\n\r\n super() { };\r\n /*ngOnChanges(){\r\n console.log(\"Model in FU control Changes\", this.model);\r\n }*/\r\n\r\n delay(time) {\r\n return new Promise(resolve => setTimeout(resolve, time));\r\n }\r\n\r\n ngOnInit() {\r\n this.restService = this.injector.get(RestProviderService);\r\n\r\n\r\n this.s1 = this.filesSubmitRequest.subscribe(() => {\r\n //this.fileUploadService.files.push.apply(this.fileUploadService.files, this.files);\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n //if (this.files[i].Action != ClientAction.Old) {\r\n this.files[i].Category = this.type;\r\n this.files[i].FileCategory = this.fcategory;\r\n this.fileUploadService.files.push(this.files[i]);\r\n //}\r\n }\r\n\r\n this.fileUploadService.filesToRemove.push.apply(this.fileUploadService.filesToRemove, this.deletedFiles);\r\n this.fileUploadService.filesNumber = this.files.length;\r\n\r\n });\r\n\r\n this.s2 = this.modelChangeNotifier.subscribe((p_model) => {\r\n if (typeof this.files == \"undefined\" || !this.files) {\r\n this.files = [];\r\n }\r\n this.getImages(p_model);\r\n\r\n this.getMediaRights(p_model);\r\n });\r\n\r\n this.s3 = this.dfms.modelMTOValueChanged.subscribe(p_model => {\r\n if (this.type == 1) {\r\n if (typeof this.files == \"undefined\" || !this.files) {\r\n this.files = [];\r\n }\r\n\r\n if (typeof p_model != \"undefined\" && p_model && Object.keys(p_model).length > 0) {\r\n var currPath = this.fileUploadService.imagesPath[0];\r\n var currAdded = this.dfms.getValue(p_model, currPath + \".AddedFiles\");\r\n if (typeof currAdded != \"undefined\" && currAdded) {\r\n /*currAdded = [];\r\n currAdded.push({\r\n \"Name\": \"person_0W2DUKR.jpg\",\r\n \"FilePayload\": \"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\",\r\n \"FileID\": 0\r\n });*/\r\n\r\n if (currAdded.length > 0) {\r\n\r\n for (var i = 0; i < currAdded.length; i++) {\r\n this.files[this.files.length] = this.mapItem(this.dataURLtoFile(\"data:image/\" + currAdded[i][\"Name\"].split('.')[1] + \";base64,\" + currAdded[i][\"FilePayload\"], currAdded[i][\"Name\"]), ClientAction.New, 1);\r\n }\r\n\r\n this.dfms.assign(p_model, currPath + \".AddedFiles\", [], true);\r\n\r\n this.files.sort((a, b) => (a.FileOrder > b.FileOrder) ? 1 : -1)\r\n\r\n this.calculatePaths(true);\r\n }\r\n }\r\n }\r\n this.fileUploadService.filesNumber = this.files.length;\r\n }\r\n });\r\n\r\n this.s4 = this.filesSubmitEndRequest.subscribe(() => {\r\n for (var i = 0; i < this.files.length; i++) {\r\n this.files[i].Action = ClientAction.Old;\r\n }\r\n });\r\n\r\n if (typeof this.model != \"undefined\" && this.model) {\r\n if (typeof this.files == \"undefined\" || !this.files) {\r\n this.files = [];\r\n }\r\n\r\n this.getImages(this.model);\r\n }\r\n\r\n if (this.defaultCollapse != null && typeof this.defaultCollapse != \"undefined\" && this.defaultCollapse == true) {\r\n this.toggleCollapse();\r\n }\r\n\r\n this.s6 = this.fileUploadService.clearFiles.subscribe(data => {\r\n\r\n if (data != null && Object.keys(data).length > 0) {\r\n this.shownFiles = [];\r\n this.files = [];\r\n this.fileUploadService.files = [];\r\n this.fileUploadService.filesToRemove = [];\r\n this.fileUploadService.filesNumber = this.files.length;\r\n }\r\n }, error => { })\r\n\r\n this.getMediaRights(this.model);\r\n\r\n }\r\n\r\n getMediaRights(model) {\r\n\r\n var fModel = new RequestModel;\r\n fModel.data = {};\r\n fModel.url = \"api/media/mediarights\";\r\n\r\n if (model != null && model[\"SerializationObjectFormLink\"] != null) {\r\n fModel.data[\"SerializationObjectFormLink\"] = model[\"SerializationObjectFormLink\"];\r\n }\r\n\r\n this.restService.getDataPOST(fModel).subscribe(data => {\r\n if (data != null && typeof data != \"undefined\") {\r\n\r\n this.fileDataRight.DeleteRight = data[\"DeleteRight\"];\r\n this.fileDataRight.WriteRight = data[\"WriteRight\"];\r\n }\r\n }, error => {\r\n\r\n });\r\n\r\n }\r\n\r\n hasDeleteRight() {\r\n\r\n if (this.fileDataRight != null && this.fileDataRight.DeleteRight == true) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n hasWriteRight() {\r\n\r\n if (this.fileDataRight != null && this.fileDataRight.WriteRight == true) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getImages(p_model) {\r\n if (typeof p_model[\"Medias\"] != \"undefined\" && p_model[\"Medias\"]) {\r\n for (var i = 0; i < p_model[\"Medias\"].length; i++) {\r\n if (this.type == p_model[\"Medias\"][i][\"Category\"]) {\r\n var mapped = new FileDataModel(p_model[\"Medias\"][i]);\r\n mapped.Action = ClientAction.Old;\r\n this.files.push(mapped);\r\n }\r\n }\r\n }\r\n\r\n //readonly images of subdocuments\r\n if (this.fileUploadService.imagesPath != null && this.fileUploadService.imagesPath.length > 0) {\r\n for (var j = 0; j < this.fileUploadService.imagesPath.length; j++) {\r\n var currPath = this.fileUploadService.imagesPath[j];\r\n\r\n var currMedias = this.dfms.getValue(p_model, currPath + \".Medias\"); //p_model[currPath][\"Medias\"];\r\n\r\n if (currMedias != null && currMedias.length > 0) {\r\n for (var i = 0; i < currMedias.length; i++) {\r\n if (this.type == currMedias[i][\"Category\"]) {\r\n var mapped = new FileDataModel(currMedias[i]);\r\n mapped.ReadOnly = true;\r\n mapped.Action = ClientAction.Old;\r\n this.files.push(mapped);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.files.length > 0) {\r\n this.files.sort((a, b) => (a.FileOrder > b.FileOrder) ? 1 : -1)\r\n this.calculatePaths(false);\r\n }\r\n\r\n this.fileUploadService.filesNumber = this.files.length;\r\n }\r\n\r\n ngAfterContentInit() {\r\n\r\n this.dropArea.nativeElement.addEventListener('dragenter', this.dragEnter, false)\r\n this.dropArea.nativeElement.addEventListener('dragleave', this.dragLeave, false)\r\n this.dropArea.nativeElement.addEventListener('dragover', this.dragOver, false)\r\n\r\n this.globalInstance = this.renderer.listen(this.dropArea.nativeElement, 'drop', (e) => {\r\n\r\n if (this.fileDataRight.WriteRight == true) {\r\n e.preventDefault();\r\n\r\n if (typeof this.files == \"undefined\") {\r\n this.files = [];\r\n }\r\n\r\n for (var i = 0; i < e.dataTransfer.files.length; i++) {\r\n if (this.checkFile(e.dataTransfer.files[i])) {\r\n this.files[this.files.length] = this.mapItem(e.dataTransfer.files[i], ClientAction.New);\r\n }\r\n }\r\n\r\n this.calculatePaths();\r\n this.fileUploadService.filesNumber = this.files.length;\r\n this.dropareaActive = false;\r\n this.changeDetection.detectChanges();\r\n\r\n }\r\n });\r\n\r\n this.globalInstance = this.renderer.listen(this.dropArea.nativeElement, 'dragenter', (e) => {\r\n this.dropareaActive = true;\r\n });\r\n this.globalInstance = this.renderer.listen(this.dropArea.nativeElement, 'dragleave', (e) => {\r\n this.dropareaActive = false;\r\n });\r\n\r\n this.actionsService.formActionsReceived.subscribe(data => {\r\n this.fileDataActions = this.actionsService.getTargetActions();\r\n });\r\n\r\n }\r\n\r\n /*********************** File Functions *************************/\r\n\r\n closeExists() {\r\n this.alreadyExists = false;\r\n }\r\n\r\n showMessageForInvalidFormat(formats: string) {\r\n\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqMessage = \"Podprti formati za sliko: \" + formats;\r\n this.utility.reqResponse = true;\r\n setTimeout(() => {\r\n this.resetResponseStatus();\r\n }, 3000);\r\n }\r\n\r\n resetResponseStatus() {\r\n this.utility.reqResponse = false;\r\n }\r\n\r\n checkFile(file: File): boolean {\r\n\r\n // check if already exists\r\n if (this.files != null && typeof this.files != \"undefined\" && this.files.length > 0) {\r\n let indx = this.files.findIndex(x => x.Name == file.name);\r\n if (indx >= 0) {\r\n this.alreadyExists = true;\r\n return false;\r\n }\r\n }\r\n\r\n if (this.availableExtensions.length > 0) {\r\n var fileExtentionSplit = file.name.split(\".\");\r\n for (var i = 0; i < this.availableExtensions.length; i++) {\r\n if (fileExtentionSplit[fileExtentionSplit.length - 1].toLowerCase() == this.availableExtensions[i].toLowerCase()) {\r\n this.resetResponseStatus();\r\n return true;\r\n }\r\n }\r\n\r\n this.showMessageForInvalidFormat(this.availableExtensions.toString());\r\n\r\n return false;\r\n }\r\n\r\n this.resetResponseStatus();\r\n return true;\r\n }\r\n\r\n onFileChange(event) {\r\n\r\n this.event = event;\r\n\r\n for (var i = 0; i < this.fileUpload.nativeElement.files.length; i++) {\r\n if (this.checkFile(this.fileUpload.nativeElement.files[i])) {\r\n this.files[this.files.length] = this.mapItem(this.fileUpload.nativeElement.files[i], ClientAction.New);\r\n }\r\n }\r\n\r\n this.fileUpload.nativeElement.value = \"\";\r\n\r\n this.calculatePaths();\r\n this.fileUploadService.filesNumber = this.files.length;\r\n }\r\n\r\n public openFileDialog(): void {\r\n let event = new MouseEvent('click', { bubbles: false });\r\n this.fileUpload.nativeElement.dispatchEvent(event);\r\n }\r\n\r\n removeFile(skipConfirm = false) {\r\n //this.fileUpload.nativeElement.value = [];\r\n //this.files = [];\r\n\r\n if(!skipConfirm){\r\n this.toConfirm = !this.toConfirm;\r\n }\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].Name == this.selectedFile.Name) {\r\n let deletedFile = this.files[i];\r\n this.deletedFiles.push(this.files[i]);\r\n this.files.splice(i, 1);\r\n\r\n for (var k = 0; k < this.model[\"Medias\"].length; k++) {\r\n if (this.model[\"Medias\"][k][\"FileID\"] == deletedFile[\"Id\"]) {\r\n this.model[\"Medias\"].splice(k, 1);\r\n }\r\n }\r\n\r\n for (var j = 0; j < this.filePaths.length; j++) {\r\n if (deletedFile.Name == this.filePaths[j].name) {\r\n this.filePaths.splice(j, 1);\r\n this.shownFiles = this.filePaths.slice();\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (this.files.length > 0) {\r\n this.selectedFile = this.files[0];\r\n this.imgPath = this.filePaths[0].path;\r\n this.calibrateImgArray();\r\n }\r\n\r\n this.calculatePaths();\r\n\r\n break;\r\n }\r\n }\r\n\r\n this.fileUploadService.filesNumber = this.files.length;\r\n\r\n }\r\n\r\n deleteFileFe(item) {\r\n this.selectedFile = item;\r\n this.removeFile();\r\n this.toConfirm = false;\r\n }\r\n\r\n dataURLtoFile(dataurl, filename) {\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], filename, { type: mime });\r\n }\r\n\r\n async calculatePaths(addedFromBrowser = true) {\r\n this.showLoader = true;\r\n this.filePaths = [];\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n\r\n // somewhere this.files is reset to [] \r\n // check \r\n if (this.files != null && this.files.length > 0) {\r\n var fileName = this.files[i].Name.split(\".\")[0];\r\n var filenamefull = this.files[i].Name;\r\n var extension = this.files[i].Name.split(\".\")[1].toLowerCase();\r\n\r\n if (fileName.length > 10) {\r\n fileName = fileName.substring(0, 10) + \"...\";\r\n }\r\n\r\n let url = \"\";\r\n\r\n if (!addedFromBrowser) {\r\n let model = new RequestModel;\r\n model.url = \"api/media/GetPreview\";\r\n model.data = { Id: this.files[i][\"FileID\"], DocumentId: this.model[\"Id\"], ReturnFullSize: true };\r\n //model.responseType = \"application/octet-stream\";\r\n //model.contentType = \"application/json\";\r\n this.restProviderService.serializer = null;\r\n var result = await this.restProviderService.getDataPOST(model).toPromise();\r\n\r\n //var result = this.readWGFile(model,this.files[i].Name);\r\n //console.log(\"WG Image result\", result);\r\n\r\n this.files[i].File = this.dataURLtoFile(\"data:text/plain;base64,\" + result[\"Base64Img\"], this.files[i].Name);\r\n\r\n }\r\n\r\n url = URL.createObjectURL(this.files[i].File);\r\n\r\n this.filePaths.push({ id: i, path: url, feName: fileName, name: filenamefull, extension: extension, size: FileUtil.getFriendlyFileSize(this.files[i].File.size) });\r\n }\r\n }\r\n\r\n if (this.filePaths.length > 0 && this.type != 2) {\r\n this.imgPath = this.filePaths[0].path;\r\n } else if (this.type == 2) {\r\n\r\n if (this.filePaths.length > 0) {\r\n this.ddAreaDisplay = \"none\";\r\n } else {\r\n this.ddAreaDisplay = \"block\";\r\n }\r\n\r\n }\r\n\r\n this.selectedFile = this.files[0];\r\n this.calibrateImgArray();\r\n this.showLoader = false;\r\n }\r\n\r\n fileClicked(file) {\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].Name == file.name) {\r\n this.selectedFile = this.files[i];\r\n }\r\n }\r\n\r\n this.imgPath = file.path;\r\n this.showSelected = true;\r\n\r\n setTimeout(() => {\r\n this.showSelected = false;\r\n this.changeDetection.detectChanges();\r\n }, 3000);\r\n }\r\n\r\n download() {\r\n if (typeof this.selectedFile != \"undefined\" && this.selectedFile != null) {\r\n if (this.selectedFile.Id > 0) {\r\n // handler isnt used anymore, use api\r\n //var href = \"storage/?file&\" + this.selectedFile.Id + \"&mode=0\"; //window.URL.createObjectURL(this.selectedFile.File);;\r\n //window.open(href, '_blank');\r\n\r\n var model: RequestModel = new RequestModel;\r\n model.url = \"api/media/getfile\";\r\n model.data = {\r\n \"Id\": this.selectedFile.Id,\r\n \"FileName\": this.selectedFile.Name\r\n };\r\n\r\n this.restService.getDataPOST(model).subscribe(data => {\r\n const linkSource = `data:${data[\"MimeType\"]};base64,${data[\"Base64\"]}`;\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = linkSource;\r\n downloadLink.download = this.selectedFile.Name;\r\n downloadLink.click();\r\n });\r\n }\r\n }\r\n }\r\n\r\n downloadFileFe(item) {\r\n if (typeof item != \"undefined\" && item != null) {\r\n if (item.Id > 0) {\r\n // handler isnt used anymore, use api\r\n //var href = \"storage/?file&\" + item.Id + \"&mode=0\"; //window.URL.createObjectURL(this.selectedFile.File);;\r\n //window.open(href, '_blank'); \r\n var model: RequestModel = new RequestModel;\r\n model.url = \"api/media/getfile\";\r\n model.data = {\r\n \"Id\": item.Id,\r\n \"FileName\": item.Name\r\n };\r\n\r\n this.restService.getDataPOST(model).subscribe(data => {\r\n const linkSource = `data:${data[\"MimeType\"]};base64,${data[\"Base64\"]}`;\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = linkSource;\r\n downloadLink.download = item.Name;\r\n downloadLink.click();\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n openFileEditor(){\r\n let files: any[] = [this.selectedFile.File];\r\n\r\n const fileListEvent = new CustomEvent(\"awesome\", {\r\n bubbles: true,\r\n detail: { target: () => { fileList: files } },\r\n });\r\n Object.defineProperty(fileListEvent, 'target', { writable: false, value: { files: files } });\r\n\r\n let format = this.selectedFile.Name.split(\".\")[1];\r\n\r\n\r\n this.photoEditorService.open(fileListEvent, {\r\n autoCrop:false,\r\n viewMode:1,\r\n format:format,\r\n hideModalHeader:true,\r\n applyBtnText:\"Potrdi\",\r\n closeBtnText:\"Prekliči\",\r\n modalMaxWidth: (window.innerWidth - (window.innerWidth / 5)).toString() + \"px\"\r\n }).subscribe(data => {\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].File.name == this.selectedFile.File.name) {\r\n\r\n if (data.file) {\r\n if (this.checkFile(data.file)) {\r\n this.removeFile(true);\r\n this.files.push(this.mapItem(data.file, ClientAction.New));\r\n }\r\n }\r\n\r\n break;\r\n\r\n }\r\n }\r\n\r\n this.calculatePaths();\r\n\r\n });\r\n }\r\n\r\n\r\n openFileExplorer() {\r\n //this.fileExplorer.open();\r\n this.dialog.open(SemFileExplorerDialogComponent, {\r\n data: {\r\n files: this.files,\r\n availableExtensions: this.availableExtensions,\r\n type: this.type,\r\n model: this.model,\r\n shownFiles: this.shownFiles\r\n },\r\n height: \"calc(100% - 100px)\",\r\n width: \"calc(100% - 100px)\",\r\n autoFocus:false\r\n });\r\n\r\n }\r\n\r\n /*********************** DRAG N DROP Functions *************************/\r\n\r\n dragEnter(e) { e.preventDefault(); }\r\n dragLeave(e) { e.preventDefault(); }\r\n dragOver(e) { e.preventDefault(); }\r\n\r\n /*********************** slide Functions *************************/\r\n\r\n slide(direction) {\r\n if (this.files.length > 5) {\r\n switch (direction) {\r\n\r\n case \"left\":\r\n if (this.index > 0) {\r\n this.index--;\r\n }\r\n break;\r\n\r\n case \"right\":\r\n if (this.index < this.files.length - 5) {\r\n this.index++;\r\n }\r\n break\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n this.calibrateImgArray();\r\n }\r\n\r\n calibrateImgArray() {\r\n try {\r\n if (this.type != 2) {\r\n if (this.files.length < 6) {\r\n this.shownFiles = this.filePaths;\r\n }\r\n else {\r\n\r\n if ((this.files.length - this.index) < 5) {\r\n return;\r\n } else {\r\n let temparr = this.filePaths.slice();\r\n this.shownFiles = temparr.splice(this.index, 5);\r\n\r\n }\r\n }\r\n for (var i = 0; i < this.shownFiles.length; i++) {\r\n this.shownFiles[i][\"order\"] = i;\r\n }\r\n } else {\r\n this.shownFiles = this.filePaths.slice();\r\n }\r\n } catch (e) {\r\n //console.log(\"Error migrating images: \", e);\r\n }\r\n\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapse = !this.collapse;\r\n this.collapseChanged.emit(this.collapse);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n try {\r\n for (var i = 0; i < this.filePaths.length; i++) {\r\n var splited = this.filePaths[i][\"path\"].split(\"/\");\r\n URL.revokeObjectURL(this.filePaths[i][\"path\"]);\r\n URL.revokeObjectURL(splited[3]);\r\n }\r\n } catch (e) {\r\n //console.log(\"Error cleaning browser files: \", e);\r\n }\r\n\r\n this.filePaths = [];\r\n this.files = [];\r\n this.shownFiles = [];\r\n this.globalInstance;\r\n\r\n this.s1.unsubscribe();\r\n this.s2.unsubscribe();\r\n this.s3.unsubscribe();\r\n this.s4.unsubscribe();\r\n this.s6.unsubscribe();\r\n\r\n }\r\n\r\n mapItem(file: File, action: ClientAction, type: number = null) {\r\n let fileDataModel = new FileDataModel(null);\r\n fileDataModel.Name = file.name;\r\n fileDataModel.Action = ClientAction.New;\r\n fileDataModel.Size = file.size;\r\n fileDataModel.File = file;\r\n\r\n if (typeof type != \"undefined\" && type) {\r\n fileDataModel.Category = type;\r\n } else {\r\n fileDataModel.Category = this.type;\r\n }\r\n\r\n fileDataModel.FileOrder = this.files.length + 1;\r\n\r\n return fileDataModel;\r\n }\r\n\r\n readFile(url) {\r\n var request = new XMLHttpRequest();\r\n request.open('POST', url, true);\r\n request.responseType = 'blob';\r\n request.onload = function () {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(request.response);\r\n reader.onload = function (e) {\r\n };\r\n };\r\n request.send();\r\n }\r\n\r\n readWGFile(model, filename) {\r\n var request = new XMLHttpRequest();\r\n request.open('POST', \"api/media/GetPreview\", true);\r\n request.setRequestHeader('Authorization', \"Bearer \" + this.restProviderService.getCookie(\"_galis_access_token\"));\r\n request.responseType = 'blob';\r\n request.onload = function () {\r\n var retrievedFile = new File(request.response, filename);\r\n return retrievedFile;\r\n };\r\n request.send(model);\r\n }\r\n\r\n toUTF8Array(str) {\r\n var utf8 = [];\r\n for (var i = 0; i < str.length; i++) {\r\n var charcode = str.charCodeAt(i);\r\n if (charcode < 0x80) utf8.push(charcode);\r\n else if (charcode < 0x800) {\r\n utf8.push(0xc0 | (charcode >> 6),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n else if (charcode < 0xd800 || charcode >= 0xe000) {\r\n utf8.push(0xe0 | (charcode >> 12),\r\n 0x80 | ((charcode >> 6) & 0x3f),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n // surrogate pair\r\n else {\r\n i++;\r\n // UTF-16 encodes 0x10000-0x10FFFF by\r\n // subtracting 0x10000 and splitting the\r\n // 20 bits of 0x0-0xFFFFF into two halves\r\n charcode = 0x10000 + (((charcode & 0x3ff) << 10)\r\n | (str.charCodeAt(i) & 0x3ff));\r\n utf8.push(0xf0 | (charcode >> 18),\r\n 0x80 | ((charcode >> 12) & 0x3f),\r\n 0x80 | ((charcode >> 6) & 0x3f),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n }\r\n return utf8;\r\n }\r\n\r\n confirm() {\r\n this.toConfirm = !this.toConfirm;\r\n }\r\n\r\n onDrop(src, trg) {\r\n this._moveRow(src, trg);\r\n }\r\n\r\n onDropFe(da) {\r\n this.onDrop(da.src, da.tar);\r\n }\r\n\r\n _moveRow(src, trg) {\r\n\r\n let id: number = 0;\r\n id = src.order;\r\n src.order = trg.order;\r\n trg.order = id;\r\n\r\n\r\n for (var i = 0; i < this.shownFiles.length; i++) {\r\n if (this.shownFiles[i].name == src[\"name\"]) {\r\n this.shownFiles[i].order = src.order;\r\n } else if (this.shownFiles[i].name == trg[\"name\"]) {\r\n this.shownFiles[i].order = trg.order;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].Name == src[\"name\"]) {\r\n this.files[i].FileOrder = src.order;\r\n } else if (this.files[i].Name == trg[\"name\"]) {\r\n this.files[i].FileOrder = trg.order;\r\n }\r\n }\r\n\r\n this.files.sort((a, b) => (a.FileOrder > b.FileOrder) ? 1 : -1)\r\n this.shownFiles.sort((a, b) => (a.order > b.order) ? 1 : -1)\r\n\r\n }\r\n\r\n runProtocol() {\r\n const downloadLink = document.createElement(\"a\");\r\n\r\n downloadLink.href = this.protocolName + this.restProviderService.getCookie(\"_galis_access_token\") + \"/\" + this.model[\"Id\"];\r\n downloadLink.click();\r\n }\r\n\r\n setAsDefault() {\r\n let fileName = \"\";\r\n let fileOrder = this.selectedFile[\"FileOrder\"];\r\n this.files.forEach(file => {\r\n if (file[\"FileOrder\"] == 1) {\r\n file[\"FileOrder\"] = fileOrder\r\n fileName = file[\"Name\"];\r\n }\r\n })\r\n\r\n this.model[\"Medias\"].forEach(element => {\r\n if (element[\"Name\"] == this.selectedFile[\"Name\"]) {\r\n element[\"FileOrder\"] = 1;\r\n } else if (element[\"Name\"] == fileName) {\r\n element[\"FileOrder\"] = fileOrder;\r\n }\r\n });\r\n\r\n\r\n this.selectedFile[\"FileOrder\"] = 1;\r\n this.files.sort((a, b) => (a.FileOrder > b.FileOrder) ? 1 : -1)\r\n this.shownFiles.sort((a, b) => (a.FileOrder > b.FileOrder) ? 1 : -1)\r\n this.calculatePaths();\r\n }\r\n\r\n fileDataAction(fa) {\r\n\r\n let dialogRef = this.dialog.open(SemDialogComponent, {\r\n width: '675px', data:\r\n {\r\n entityModel: fa.Parameters.model,\r\n title: fa.Parameters.title,\r\n model: this.model,\r\n projection: ['Medias', 'Medias.Id', 'Medias.Category', 'Medias.Type', 'Medias.Name', 'Medias.UploadDate'],\r\n type: 3,\r\n searchFields: [{ PropertyName: \"Title\", Type: \"Text\", Title: \"Title\" }]\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data: File) => {\r\n this.files[this.files.length] = this.mapItem(data, ClientAction.New);\r\n this.calculatePaths();\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sem-geo-map',\r\n templateUrl: './sem-geo-map.component.html',\r\n styleUrls: ['./sem-geo-map.component.css']\r\n})\r\nexport class SemGeoMapComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ElementRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport * as d3 from \"d3\";\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'app-sem-graph-bar',\r\n templateUrl: './sem-graph-bar.component.html',\r\n styleUrls: ['./sem-graph-bar.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SemGraphBarComponent extends SemControlComponent implements AfterViewInit {\r\n\r\n @ViewChild(\"containerChart\",{ read: ElementRef, static:true }) element: ElementRef;\r\n\r\n private host: any;\r\n private htmlElement: HTMLElement;\r\n private canvas: any;\r\n private margin: any = { top: 20, right: 20, bottom: 30, left: 50 };\r\n private width: number;\r\n private height: number;\r\n\r\n private data = [];\r\n\r\n ngAfterViewInit() {\r\n this.htmlElement = this.element.nativeElement;\r\n this.host = d3.select(this.htmlElement);\r\n this.data = this.model;\r\n this.setup();\r\n this.buildSVG();\r\n }\r\n\r\n private setup(): void {\r\n this.width = 960 - this.margin.left - this.margin.right,\r\n this.height = 500 - this.margin.top - this.margin.bottom;\r\n\r\n }\r\n\r\n private buildSVG(): void {\r\n this.host.html(\"\");\r\n this.canvas = this.host.append(\"svg\").attr(\"width\", 960).attr(\"height\", 500);\r\n let self = this;\r\n\r\n var g = this.canvas.append(\"g\").attr(\"transform\", \"translate(\" + this.margin.left + \",\" + this.margin.top + \")\");\r\n var parseTime = d3.timeParse(\"%d-%b-%y\");\r\n\r\n var x = d3.scaleBand().rangeRound([0, this.width]).padding(0.1);\r\n var y = d3.scaleLinear().rangeRound([this.height, 0]);\r\n\r\n x.domain(this.data.map(function (d) {\r\n return d.Country;\r\n }));\r\n\r\n y.domain([0, d3.max(this.data, function (d) {\r\n return d.Count;\r\n })]);\r\n\r\n g.append(\"g\")\r\n .attr(\"transform\", \"translate(0,\" + this.height + \")\")\r\n .call(d3.axisBottom(x))\r\n\r\n g.append(\"g\")\r\n .call(d3.axisLeft(y))\r\n .append(\"text\")\r\n .attr(\"fill\", \"#000\")\r\n .attr(\"transform\", \"rotate(-90)\")\r\n .attr(\"y\", 6)\r\n .attr(\"dy\", \"0.71em\")\r\n .attr(\"text-anchor\", \"end\")\r\n .text(\"Number of prisoners\");\r\n\r\n g.selectAll(\".bar\")\r\n .data(this.data)\r\n .enter()\r\n .append(\"rect\")\r\n .attr(\"class\", \"bar\")\r\n .attr(\"x\", function (d) {\r\n return x(d.Country);\r\n })\r\n .attr(\"y\", function (d) {\r\n return y(d.Count);\r\n })\r\n .attr(\"width\", x.bandwidth())\r\n .attr(\"height\", function (d) {\r\n return self.height - y(d.Count);\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef, ViewChild, AfterViewInit } from \"@angular/core\";\r\nimport * as d3 from \"d3\";\r\nimport { SemControlComponent } from \"../sem-control/sem-control.component\";\r\nimport { ValueAccessorBase } from \"../shared/value-accessor/value-accessor-base\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-sem-graph-donut',\r\n templateUrl: './sem-graph-donut.component.html',\r\n styleUrls: ['./sem-graph-donut.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemGraphDonutComponent, multi: true }\r\n ]\r\n})\r\nexport class SemGraphDonutComponent extends ValueAccessorBase implements AfterViewInit {\r\n\r\n @ViewChild(\"containerDonutChart\",{ read: ElementRef, static:true }) element: ElementRef;\r\n\r\n private host: any;\r\n private htmlElement: HTMLElement;\r\n private canvas: any;\r\n private width: number;\r\n private height: number;\r\n private data = \r\n [\r\n {c:\"SVN\", n:35 }, \r\n {c:\"BIH\", n:20 },\r\n {c:\"AZE\", n:15 },\r\n {c:\"HRV\", n:30 }]\r\n\r\n private radius = 300;\r\n\r\n ngAfterViewInit() {\r\n this.htmlElement = this.element.nativeElement;\r\n this.host = d3.select(this.htmlElement);\r\n this.setup();\r\n this.buildSVG();\r\n }\r\n\r\n private setup(): void {\r\n this.width = this.radius*2+50;\r\n this.height = this.radius*2+50;\r\n }\r\n\r\n private buildSVG(): void {\r\n this.host.html(\"\");\r\n this.canvas = this.host.append(\"svg\")\r\n .attr(\"width\", this.width)\r\n .attr(\"height\", this.height);\r\n\r\n var color = d3.scaleOrdinal().range(d3.schemeCategory10);\r\n \r\n\r\n var group = this.canvas.append(\"g\")\r\n .attr(\"transform\", \"translate(\"+this.radius+\",\"+this.radius+\")\");\r\n\r\n var arc = d3.arc().innerRadius(this.radius/2).outerRadius(this.radius);\r\n\r\n var pie = d3.pie().value(v=>v.n);\r\n\r\n var arcs = group.selectAll(\".arc\")\r\n .data(pie(this.data))\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \".arc\");\r\n\r\n arcs.append(\"path\")\r\n .attr(\"d\", arc)\r\n .attr(\"stroke\", \"white\")\r\n .attr(\"stroke-width\", \"1px\")\r\n .attr(\"fill\", function(d){ return color(d.data.n)});\r\n\r\n var SUMA = d3.sum(this.data, function(d){return d.n;});\r\n\r\n arcs.append(\"text\")\r\n .attr(\"transform\", function(d){ return \"translate(\" + (arc.centroid(d)) + \")\"; })\r\n .attr(\"font-size\", \"1.5em\")\r\n .attr(\"font-family\",\"Segoe UI\")\r\n .text(function(d){return d.data.c +\"(\"+(d.data.n*100.0/(SUMA))+\"%)\"; })\r\n \r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-sem-graph-histogram',\r\n templateUrl: './sem-graph-histogram.component.html',\r\n styleUrls: ['./sem-graph-histogram.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemGraphHistogramComponent, multi: true }\r\n ]\r\n})\r\nexport class SemGraphHistogramComponent extends ValueAccessorBase implements OnInit {\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef, ViewChild, AfterViewInit } from \"@angular/core\";\r\nimport * as d3 from \"d3\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-sem-graph-pie',\r\n templateUrl: './sem-graph-pie.component.html',\r\n styleUrls: ['./sem-graph-pie.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemGraphPieComponent, multi: true }\r\n ]\r\n})\r\nexport class SemGraphPieComponent implements AfterViewInit {\r\n\r\n @ViewChild(\"containerPieChart\",{ read: ElementRef, static:true }) element: ElementRef;\r\n\r\n private host: any;\r\n private htmlElement: HTMLElement;\r\n private canvas: any;\r\n private width: number;\r\n private height: number;\r\n private data = \r\n [\r\n {c:\"SVN\", n:35 }, \r\n {c:\"BIH\", n:20 },\r\n {c:\"AZE\", n:15 },\r\n {c:\"HRV\", n:30 }]\r\n private radius = 300;\r\n\r\n ngAfterViewInit() {\r\n this.htmlElement = this.element.nativeElement;\r\n this.host = d3.select(this.htmlElement);\r\n this.setup();\r\n this.buildSVG();\r\n }\r\n\r\n private setup(): void {\r\n this.width = this.radius*2+50;\r\n this.height = this.radius*2+50;\r\n }\r\n\r\n private buildSVG(): void {\r\n this.host.html(\"\");\r\n this.canvas = this.host.append(\"svg\")\r\n .attr(\"width\", this.width)\r\n .attr(\"height\", this.height);\r\n\r\n var color = d3.scaleOrdinal().range(d3.schemeCategory10);\r\n \r\n\r\n var group = this.canvas.append(\"g\")\r\n .attr(\"transform\", \"translate(\"+this.radius+\",\"+this.radius+\")\");\r\n\r\n var arc = d3.arc().innerRadius(0).outerRadius(this.radius);\r\n\r\n var pie = d3.pie().value(v=>v.n);\r\n\r\n var arcs = group.selectAll(\".arc\")\r\n .data(pie(this.data))\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \".arc\");\r\n\r\n arcs.append(\"path\")\r\n .attr(\"d\", arc)\r\n .attr(\"stroke\", \"white\")\r\n .attr(\"stroke-width\", \"1px\")\r\n .attr(\"fill\", function(d){ return color(d.data.n)});\r\n\r\n var SUMA = d3.sum(this.data, function(d){return d.n;});\r\n\r\n arcs.append(\"text\")\r\n .attr(\"transform\", function(d){ return \"translate(\" + (arc.centroid(d)) + \")\"; })\r\n .attr(\"font-size\", \"1.5em\")\r\n .attr(\"font-family\",\"Segoe UI\")\r\n .text(function(d){return d.data.c +\"(\"+(d.data.n*100.0/(SUMA))+\"%)\"; })\r\n \r\n }\r\n}\r\n","import { Component, OnInit, ElementRef, ViewChild, AfterViewInit, Input } from \"@angular/core\";\r\nimport * as d3 from \"d3\";\r\nimport { GraphSettings } from \"src/app/models/graph/graph-settings\";\r\nimport { SemControlComponent } from \"../sem-control/sem-control.component\";\r\n\r\n@Component({\r\n selector: 'app-sem-graph',\r\n templateUrl: './sem-graph.component.html',\r\n styleUrls: ['./sem-graph.component.css']\r\n})\r\nexport class SemGraphComponent extends SemControlComponent implements OnInit {\r\n\r\n @Input() settingsJson: string;\r\n private Settings:GraphSettings;\r\n\r\n ngOnInit(): void {\r\n this.Settings = JSON.parse(this.settingsJson);\r\n }\r\n}\r\n","import { Component, OnInit, Input, AfterContentInit, Output, EventEmitter } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { type } from 'os';\r\nimport { Control, Controls } from '../../../../app/models/repeater/controls';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { Guid } from 'src/app/shared/helpers/util';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\n\r\n@Component({\r\n selector: 'sem-group-repeater',\r\n templateUrl: './sem-group-repeater.component.html',\r\n styleUrls: ['./sem-group-repeater.component.css']\r\n})\r\nexport class SemGroupRepeaterControlComponent extends SemControlComponent implements OnInit {\r\n\r\n @Input() controls: any;\r\n @Input() bindingPropertyName: any;\r\n @Input() maxCount: number = -1;\r\n @Input() sectionTransferUrl: any;\r\n currentNumber: number = 0; \r\n controlsString: string =\"empty\";\r\n groupByModels: any[] = []; \r\n repeaterItemsCount = 0;\r\n counter:number = 0; \r\n shownSections: any[] = [];\r\n req: Subject = new Subject();\r\n\r\n private serializationObjectFormLinkValue: string = null;\r\n\r\n @Output() removeSectionEvent: EventEmitter = new EventEmitter();\r\n\r\n selectedGroup: number = -1;\r\n showDD:boolean = false;\r\n myGroup:FormGroup;\r\n sectionIds: any[] = [];\r\n\r\n headerTitles = [];\r\n formControls = [];\r\n orgModel: any;\r\n\r\n repeaterItemSectionCheckboxes: any[] = []; \r\n showCheckboxDiv: boolean = false;\r\n repeaterItemCheckboxes: any[] = [];\r\n currentOpenSectionGroup: string = null;\r\n repeaterItemsWithoutCheckboxes: any[] = [];\r\n queryWithoutFilter = JSON.parse(\"{ \\\"MainQuery\\\": null, \\\"FieldQueries\\\": { }, \\\"FacetQueries\\\": { }, \\\"RequestedFacets\\\": null, \\\"Projection\\\": [], \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" }, \\\"ClassTypes\\\": [], \\\"Page\\\": \\\"1\\\", \\\"PageSize\\\": 1500, \\\"RepositoryName\\\": \\\"nhibernate\\\", \\\"Form\\\": null, \\\"UseCache\\\": false, \\\"Facets\\\": [], \\\"SortFields\\\": [] }\");\r\n\r\n super() {\r\n }\r\n\r\n ngAfterContentInit() { \r\n\r\n this.controlsString = JSON.stringify(this.controls);\r\n this.restProviderService.modelValueChanged.subscribe(model => { \r\n\r\n if (this.serializationObjectFormLinkValue === null || this.serializationObjectFormLinkValue === undefined) {\r\n this.serializationObjectFormLinkValue = this.model[\"SerializationObjectFormLink\"];\r\n }\r\n\r\n let toAssign = this.dfms.getValue(model, this.bindingPropertyName);\r\n\r\n if (typeof toAssign != \"undefined\") {\r\n this.currentNumber = toAssign.length;\r\n for (var i = 0; i < toAssign.length; i++) {\r\n toAssign[i][\"SerializationObjectFormLink\"] = this.serializationObjectFormLinkValue;\r\n }\r\n\r\n model[\"SerializationObjectFormLink\"] = this.serializationObjectFormLinkValue;\r\n\r\n \r\n\r\n //this.orgModel = Object.assign({}, this.model);\r\n this.orgModel = Object.assign({}, model);\r\n this.model = Object.assign({}, model); \r\n \r\n this.getSections(this.model, this.bindingPropertyName, true);\r\n }\r\n }); \r\n } \r\n\r\n ngOnInit() { \r\n this.myGroup = this.form.form; \r\n \r\n if(typeof this.controls != \"undefined\" && typeof this.controls.Controls != \"undefined\"){\r\n for(var i = 0; i < this.controls.Controls.length; i++){\r\n var ctrlBinding = this.controls.Controls[i].BindingField; \r\n // skip control in repeater if that control is configured as checkbox group \r\n if(this.controls[\"CheckBoxModelBindingPropertyName\"] == ctrlBinding){ \r\n continue;\r\n } \r\n\r\n this.headerTitles.push(this.controls.Controls[i].HeaderText);\r\n this.formControls.push(this.controls.Controls[i]);\r\n }\r\n }\r\n \r\n } \r\n\r\n getSections(model, bindingPropertyName, addedSection){\r\n \r\n if(this.shownSections.length > 0 && addedSection == false){\r\n return this.shownSections;\r\n }\r\n\r\n this.sectionIds = [];\r\n this.shownSections = [];\r\n this.groupByModels = [];\r\n\r\n let allSections = this.dfms.getValue(model,bindingPropertyName); \r\n\r\n if(typeof allSections != \"undefined\" && allSections != null && allSections.length > 0){\r\n\r\n for(var j = 0; j < allSections.length; j++) {\r\n\r\n // if this item group is already added, skip it\r\n if(this.displayRow(allSections[j]) == false){\r\n continue;\r\n }\r\n\r\n // skip if already exists \r\n var sectionGroupValue = this.getSectionGroupValue(allSections[j]);\r\n var indx = this.sectionIds.findIndex(x => x.SectionGroupValue == sectionGroupValue);\r\n if(indx >= 0){\r\n continue;\r\n }\r\n let sectionGuid = Guid.newGuid().substr(0,6); \r\n \r\n this.sectionIds.push({\r\n \"SectionId\": allSections[j][\"Id\"],\r\n \"SectionGuid\": sectionGuid,\r\n \"SectionGroupValue\": sectionGroupValue, \r\n }); \r\n \r\n for(var i = 0; i 0){\r\n\r\n var split = additionalProjectionString.split(\",\");\r\n\r\n if(split != null && typeof split != \"undefined\"){\r\n for(var i = 0; i < split.length; i++){\r\n proj.push(split[i]);\r\n }\r\n }\r\n\r\n }\r\n\r\n return proj;\r\n }\r\n\r\n ddItemSelected(value: any) {\r\n //console.log(\"DD Item Selected in repeater content\", value);\r\n\r\n if (value[\"ObjectType\"] == \"PenaltyTypeModel\") {\r\n this.selectedGroup = value[\"Id\"];\r\n }\r\n/*\r\n let toAssign = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n for(var i=0;i x.SectionGroupValue == sectionGroupValue); \r\n if(indx >= 0){\r\n return this.sectionIds[indx].SectionGuid;\r\n }\r\n } \r\n \r\n return 0;\r\n }\r\n\r\n getProp(prop,section) {\r\n let sectionGuid = this.getSectionGuid(section); \r\n let value = this.dfms.getValue(section, prop); \r\n this.form.controls[prop + sectionGuid].setValue(value); \r\n \r\n return value;\r\n } \r\n\r\n setProp(prop, value, section) { \r\n let sectionGuid = this.getSectionGuid(section); \r\n let sectionGroupValue = this.getSectionGroupValue(section);\r\n this.dfms.assign(section, prop, value, true); \r\n\r\n // check if there are other sections in same group\r\n if(this.model != null && typeof this.model != \"undefined\" && typeof this.model[this.bindingPropertyName] != \"undefined\"){\r\n let allSections = this.dfms.getValue(this.model,this.bindingPropertyName); \r\n for(var i = 0; i < allSections.length; i++){ \r\n let currentSectionGuid = this.getSectionGuid(allSections[i]); \r\n\r\n //if same section group also same guid \r\n if(currentSectionGuid == sectionGuid){\r\n // also change prop value\r\n this.dfms.assign(allSections[i], prop, value, true);\r\n }\r\n }\r\n } \r\n\r\n // check if maybe user change value of grouping input - this means sectionGroupValue has changed\r\n let newSectionGroupValue = this.getSectionGroupValue(section); \r\n if(sectionGroupValue != newSectionGroupValue){\r\n // change group value with new\r\n this.currentOpenSectionGroup = newSectionGroupValue;\r\n var indx = this.sectionIds.findIndex(x => x.SectionGroupValue == sectionGroupValue); \r\n if(indx >= 0){\r\n this.sectionIds[indx].SectionGroupValue = newSectionGroupValue;\r\n }\r\n\r\n var indx2 = this.repeaterItemSectionCheckboxes.findIndex(x => x.SectionGroup == sectionGroupValue);\r\n if(indx2 >= 0){\r\n this.repeaterItemSectionCheckboxes[indx2].SectionGroup = newSectionGroupValue;\r\n }\r\n }\r\n\r\n this.form.controls[prop + sectionGuid].setValue(value);\r\n }\r\n\r\n transferSection(section){ \r\n this.utility.processNavigationUrl(this.controls.SectionTransferUrl + \"?id=\" + section[\"Id\"])\r\n } \r\n\r\n checkIfNumber(value){\r\n\r\n if(value != null && typeof value != \"undefined\" && value === true){\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n checkForError(bindingProp){\r\n return this.form.controls[bindingProp].errors != null;\r\n }\r\n\r\n displayRow(section) { \r\n this.counter++;\r\n var reset = false;\r\n\r\n var repeaterItemCtn = this.model[this.controls.BindingPropertyName].length;\r\n if(this.counter > repeaterItemCtn){\r\n this.counter = 1;\r\n reset = true; \r\n }\r\n\r\n let propGroupStringValue: string = null;\r\n for(var i = 0; i < this.controls[\"GroupByModels\"].length; i++) {\r\n // get value based on property name\r\n let propertyName = this.controls[\"GroupByModels\"][i]; \r\n let objectVal = this.resolvePropertyBinding(section, propertyName); \r\n \r\n if(objectVal != null && typeof objectVal != \"undefined\" && objectVal != \"\"){ \r\n if(propGroupStringValue == null){\r\n propGroupStringValue = propertyName + objectVal[\"Id\"];\r\n }else{\r\n propGroupStringValue += \"-\" + propertyName + objectVal[\"Id\"];\r\n } \r\n } \r\n }\r\n\r\n // check if repeater row with same \"propGroupStringValue\" already exists\r\n // then dont show the row \r\n var found = false;\r\n if(propGroupStringValue != null){\r\n \r\n if(reset == true){\r\n this.groupByModels = [];\r\n this.groupByModels.push(propGroupStringValue);\r\n found = false;\r\n }else{\r\n let indx = this.groupByModels.findIndex(x => x == propGroupStringValue);\r\n if(indx < 0){\r\n this.groupByModels.push(propGroupStringValue);\r\n }else{\r\n found = true;\r\n } \r\n } \r\n } \r\n \r\n \r\n if(found){\r\n return false;\r\n }else{\r\n return true;\r\n } \r\n }\r\n\r\n openSectionCheckboxes(section){ \r\n // before another section checkbox div is opened - handle closing of other section checkbox div (if it's open)\r\n // this method will close current open section checkboxdiv\r\n // close only if not same section is opened\r\n var sectionGroupOpen = this.getSectionGroupValue(section);\r\n if(sectionGroupOpen != this.currentOpenSectionGroup && this.currentOpenSectionGroup != null){\r\n this.closeCheckboxDiv(true);\r\n }\r\n\r\n if(this.controls != null && typeof this.controls != \"undefined\" && this.controls[\"CheckBoxModel\"] != null && this.controls[\"CheckBoxModel\"] != \"undefined\" && this.controls[\"CheckBoxModel\"].length > 0) { \r\n\r\n this.currentOpenSectionGroup = sectionGroupOpen;\r\n\r\n // check if data is not already in \"repeaterItemSectionCheckboxes\"\r\n var indx = this.repeaterItemSectionCheckboxes.findIndex(x => x.SectionGroup == this.currentOpenSectionGroup);\r\n if(indx >= 0){\r\n this.showCheckboxDiv = true;\r\n this.repeaterItemCheckboxes = this.repeaterItemSectionCheckboxes[indx][\"Checkboxitems\"];\r\n } else {\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/data/list\";\r\n requestModel.contentType = \"application/json\"\r\n let searchQuery = this.queryWithoutFilter;\r\n searchQuery[\"ClassType\"] = this.controls[\"CheckBoxModel\"];\r\n searchQuery[\"ClassTypes\"] = [this.controls[\"CheckBoxModel\"]];\r\n\r\n if(this.controls[\"CheckBoxModelProjection\"] != null && typeof this.controls[\"CheckBoxModelProjection\"] != \"undefined\" && this.controls[\"CheckBoxModelProjection\"].length > 0) {\r\n searchQuery[\"Projection\"] = this.controls[\"CheckBoxModelProjection\"];\r\n } else {\r\n // default projection \r\n searchQuery[\"Projection\"] = [\"Id\",\"Title\",\"Version\"] \r\n }\r\n\r\n let propertyNameId = null;\r\n if(this.controls[\"CheckBoxModelBindingPropertyName\"] != null && typeof this.controls[\"CheckBoxModelBindingPropertyName\"] != \"undefined\" && this.controls[\"CheckBoxModelBindingPropertyName\"].length > 0){\r\n propertyNameId = this.controls[\"CheckBoxModelBindingPropertyName\"] + \"Id\";\r\n } \r\n if(propertyNameId != null){\r\n searchQuery[\"Projection\"].push(propertyNameId);\r\n }\r\n \r\n\r\n let addedFilterProp = false;\r\n // do we have additional filters for checkboxes?\r\n if (this.controls[\"CheckBoxSectionAdditionalFilterProperty\"] != \"undefined\" && this.controls[\"CheckBoxSectionAdditionalFilterProperty\"] != null\r\n && this.controls[\"CheckBoxSectionAdditionalFilterProperty\"].length > 0) {\r\n\r\n // try getting the filter value from the model\r\n let filterValue = this.dfms.getValue(this.model, this.controls[\"CheckBoxSectionAdditionalFilterProperty\"]); \r\n\r\n if (filterValue != null && filterValue != \"undefined\") {\r\n addedFilterProp = true;\r\n // add aditional query\r\n searchQuery[\"TreeQuery\"] = {\r\n Type: \"FieldValue\", FieldName: this.controls[\"CheckBoxSectionAdditionalFilterProperty\"], FieldValue: filterValue\r\n };\r\n }\r\n }\r\n\r\n // do we have additional search query\r\n if (this.controls[\"CheckBoxSearchAdditionalFilterQuery\"] != \"undefined\" && this.controls[\"CheckBoxSearchAdditionalFilterQuery\"] != null\r\n && this.controls[\"CheckBoxSearchAdditionalFilterQuery\"].length > 0) {\r\n\r\n var treequery = JSON.parse(this.controls[\"CheckBoxSearchAdditionalFilterQuery\"]);\r\n\r\n if (treequery != null && treequery != \"undefined\") {\r\n if(addedFilterProp){\r\n var existingtreeQuery = Object.assign({}, searchQuery[\"TreeQuery\"]);\r\n var newTree = {\r\n \"Type\":\"AND\",\r\n \"SubQueries\":[]\r\n };\r\n\r\n newTree.SubQueries.push(existingtreeQuery);\r\n newTree.SubQueries.push(treequery);\r\n searchQuery[\"TreeQuery\"] = newTree;\r\n\r\n }else{\r\n searchQuery[\"TreeQuery\"] = treequery;\r\n }\r\n }\r\n }\r\n\r\n\r\n requestModel.data = searchQuery;\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n this.restProviderService.getDataPOST(requestModel).pipe(takeUntil(this.req)).subscribe(data => {\r\n this.zone.run(() => {\r\n\r\n let checkboxItems = [];\r\n if (data != null) {\r\n let result = data[\"Models\"];\r\n var checkedEntities = this.getCheckedEntities(section);\r\n\r\n for (var i = 0; i < result.length; i++) { \r\n var checkboxItem = result[i][\"Model\"];\r\n\r\n var checked = false;\r\n // by default check by id and title\r\n // but if CheckBoxModelShownField specifed then by id and CheckBoxModelShownField\r\n let index = -1; \r\n if(this.controls[\"CheckBoxModelShownField\"] != null && this.controls[\"CheckBoxModelShownField\"] != \"undefined\" && this.controls[\"CheckBoxModelShownField\"].length > 0) {\r\n index = checkedEntities.findIndex(x => x.Id == checkboxItem[\"Id\"] && x[this.controls[\"CheckBoxModelShownField\"]] == checkboxItem[this.controls[\"CheckBoxModelShownField\"]]);\r\n } else {\r\n index = checkedEntities.findIndex(x => x.Id == checkboxItem[\"Id\"] && x.Title == checkboxItem[\"Title\"]);\r\n }\r\n \r\n if (index >= 0) {\r\n checked = true;\r\n }\r\n\r\n checkboxItem[\"Checked\"] = checked; \r\n\r\n /*if(this.controls[\"CheckBoxModelShownField\"] != null && this.controls[\"CheckBoxModelShownField\"] != \"undefined\" && this.controls[\"CheckBoxModelShownField\"].length > 0) {\r\n checkboxItem[\"Title\"] = checkboxItem[this.controls[\"CheckBoxModelShownField\"]];\r\n }*/\r\n\r\n checkboxItems.push(checkboxItem);\r\n }\r\n\r\n this.repeaterItemSectionCheckboxes.push(\r\n {\r\n \"SectionGroup\": this.currentOpenSectionGroup,\r\n \"Checkboxitems\": checkboxItems\r\n });\r\n\r\n this.showCheckboxDiv = true;\r\n this.repeaterItemCheckboxes = checkboxItems;\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n }, error => {\r\n //console.log(\"Error\", error);\r\n //this.loadingResults = false;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n } \r\n }\r\n } \r\n\r\n getSectionGroupValue(section){\r\n let currentPropGroupStringValue: string = null;\r\n for(var i = 0; i < this.controls[\"GroupByModels\"].length; i++) {\r\n // get value based on property name\r\n let propertyName = this.controls[\"GroupByModels\"][i]; \r\n let objectVal = this.resolvePropertyBinding(section, propertyName); \r\n if(objectVal != null && typeof objectVal != \"undefined\" && objectVal != \"\"){ \r\n if(currentPropGroupStringValue == null){\r\n currentPropGroupStringValue = propertyName + objectVal[\"Id\"];\r\n }else{\r\n currentPropGroupStringValue += \"-\" + propertyName + objectVal[\"Id\"];\r\n } \r\n } \r\n }\r\n return currentPropGroupStringValue;\r\n }\r\n\r\n getCheckedEntities(section){\r\n\r\n let currentPropGroupStringValue: string = this.getSectionGroupValue(section);\r\n var repeaterItems = this.model[this.controls.BindingPropertyName]; \r\n var groupingItems = [];\r\n\r\n\r\n for(var i = 0; i < repeaterItems.length; i++){\r\n // find repeater items with same group (groups are defined in settings)\r\n var currentRepItem = repeaterItems[i];\r\n\r\n // get \"propGroupStringValue\" of currentItem\r\n\r\n let currentItemPropGroupStringValue = null\r\n for(var j = 0; j < this.controls[\"GroupByModels\"].length; j++) {\r\n // get value based on property name\r\n let propertyName = this.controls[\"GroupByModels\"][j]; \r\n let objectVal = this.resolvePropertyBinding(currentRepItem, propertyName); \r\n\r\n if(objectVal != null && typeof objectVal != \"undefined\" && objectVal != \"\"){ \r\n if(currentItemPropGroupStringValue == null){\r\n currentItemPropGroupStringValue = propertyName + objectVal[\"Id\"];\r\n }else{\r\n currentItemPropGroupStringValue += \"-\" + propertyName + objectVal[\"Id\"];\r\n } \r\n } \r\n }\r\n\r\n if(currentItemPropGroupStringValue == currentPropGroupStringValue){\r\n // if same get value of \"CheckBoxModelBindingPropertyName\"\r\n var value = this.resolvePropertyBinding(currentRepItem, this.controls[\"CheckBoxModelBindingPropertyName\"]);\r\n if(value != null && typeof value != \"undefined\" && value != \"\"){ \r\n // get id and title by default\r\n var obj = {\r\n \"Id\":value[\"Id\"],\r\n \"Title\":value[\"Title\"] \r\n };\r\n\r\n if(this.controls[\"CheckBoxModelShownField\"] != null && this.controls[\"CheckBoxModelShownField\"] != \"undefined\" && this.controls[\"CheckBoxModelShownField\"].length > 0) {\r\n obj[this.controls[\"CheckBoxModelShownField\"]] = value[this.controls[\"CheckBoxModelShownField\"]];\r\n }\r\n\r\n groupingItems.push(obj);\r\n } \r\n }\r\n } \r\n \r\n return groupingItems;\r\n }\r\n\r\n addSection() {\r\n let toAssign = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n if (typeof toAssign == \"undefined\" || toAssign == null) {\r\n toAssign = [];\r\n }\r\n\r\n if (this.maxCount == -1 || toAssign.length < this.maxCount) {\r\n let objToAdd = {};\r\n objToAdd[\"SerializationObjectFormLink\"] = this.serializationObjectFormLinkValue; \r\n\r\n toAssign.push(objToAdd);\r\n\r\n this.dfms.assign(this.model, this.bindingPropertyName, toAssign); \r\n this.currentNumber = toAssign.length;\r\n this.getSections(this.model, this.bindingPropertyName, true);\r\n }\r\n\r\n //console.log(\"Grouped control model: \",this.model);\r\n } \r\n\r\n checkboxClicked(item){ \r\n var boolValue = item[\"Checked\"];\r\n item[\"Checked\"] = !boolValue;\r\n this.closeCheckboxDiv(false, item);\r\n }\r\n\r\n removeSection(section: any) {\r\n //close checkbox div\r\n this.close();\r\n let removingPropGroupStringValue: string = this.getSectionGroupValue(section);\r\n let values = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n let newValues = [];\r\n\r\n // those that are not removed add to newValues\r\n for (var i = 0; i < values.length; i++) {\r\n let currentPropGroupStringValue: string = this.getSectionGroupValue(values[i]);\r\n if (currentPropGroupStringValue != removingPropGroupStringValue) {\r\n newValues.push(values[i]);\r\n }\r\n }\r\n // assign new values to model\r\n this.dfms.assign(this.model, this.bindingPropertyName, newValues, true);\r\n\r\n this.currentNumber = newValues.length;\r\n // update UI grouped repeater table\r\n this.getSections(this.model, this.bindingPropertyName, true);\r\n //console.log(\"Grouped control model: \",this.model);\r\n }\r\n\r\n close(){\r\n this.showCheckboxDiv = false;\r\n this.currentOpenSectionGroup = null;\r\n }\r\n\r\n closeCheckboxDiv(actualyClose: boolean, currentlyClicked: any = null){\r\n \r\n\r\n // swap old checkbox items with new one for this section group\r\n var indx = this.repeaterItemSectionCheckboxes.findIndex(x => x.SectionGroup == this.currentOpenSectionGroup);\r\n if(indx >= 0){\r\n\r\n this.repeaterItemSectionCheckboxes[indx][\"Checkboxitems\"] = this.repeaterItemCheckboxes;\r\n\r\n // now change checked items with old items on main model\r\n // get original repeater items\r\n var originalRepeaterItems = this.model[this.controls.BindingPropertyName].map(x => Object.assign({}, x)); \r\n // this will be new repeater items that will change original ones\r\n var newRepeaterItems = [];\r\n // those that need change of value\r\n var currentRepeaterItems = [];\r\n // get section group value - so we know for which group we are replacing\r\n var currentSectionGroupValue = this.repeaterItemSectionCheckboxes[indx][\"SectionGroup\"];\r\n\r\n // check if any checkboxes is checked\r\n var checkedItems = this.repeaterItemCheckboxes.filter(x => x.Checked == true).map(x => Object.assign({}, x)); \r\n // number of repeater items in the same group that needs value change\r\n var checkboxesCount = checkedItems.length; \r\n \r\n for(var j = 0; j < originalRepeaterItems.length; j++) {\r\n\r\n // calculate repeateritem \"currentPropGroupStringValue\" \r\n var repeaterItemSectionGroupValue = this.getSectionGroupValue(originalRepeaterItems[j]);\r\n\r\n if(repeaterItemSectionGroupValue == currentSectionGroupValue){\r\n currentRepeaterItems.push(originalRepeaterItems[j]);\r\n }else{\r\n // if its not same section just add back without changing any values\r\n newRepeaterItems.push(originalRepeaterItems[j]);\r\n } \r\n } \r\n \r\n if(checkboxesCount > 0 && currentRepeaterItems.length == 0) {\r\n // find original repeater item that has checkbox property null\r\n var indx = this.repeaterItemsWithoutCheckboxes.findIndex(x => x.SectionGroup == this.currentOpenSectionGroup);\r\n if(indx >= 0){\r\n currentRepeaterItems.push(this.repeaterItemsWithoutCheckboxes[indx][\"Item\"]);\r\n } \r\n }\r\n \r\n // number of repeater items in the same group\r\n var currRepItemsCount = currentRepeaterItems.length;\r\n\r\n var finalRepeaterItems = [];\r\n\r\n if(checkedItems.length > 0 && (currRepItemsCount > checkboxesCount || currRepItemsCount == checkboxesCount)){\r\n \r\n // skip slicing if same length\r\n if(currRepItemsCount == checkboxesCount){\r\n finalRepeaterItems = currentRepeaterItems; \r\n }else{\r\n\r\n // remove those that are not checked\r\n var tempArr = [];\r\n\r\n for(var i = 0; i < currentRepeaterItems.length; i++){\r\n var bindingitem = currentRepeaterItems[i][this.controls[\"CheckBoxModelBindingPropertyName\"]];\r\n if(bindingitem != null && bindingitem.Id > 0){\r\n for(var j = 0; j < checkedItems.length; j++){\r\n if(checkedItems[j][\"Id\"] == bindingitem.Id){\r\n tempArr.push(currentRepeaterItems[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n currentRepeaterItems = tempArr;\r\n finalRepeaterItems = currentRepeaterItems;\r\n } \r\n\r\n // repcheckboxes and finalrepitems should have the same length\r\n for(var i = 0; i < finalRepeaterItems.length; i++) {\r\n \r\n var bindingitem = finalRepeaterItems[i][this.controls[\"CheckBoxModelBindingPropertyName\"]];\r\n\r\n if(bindingitem == null || typeof bindingitem == \"undefined\"){\r\n if(currentlyClicked != null) {\r\n bindingitem = Object.assign({}, currentlyClicked); \r\n }\r\n }\r\n\r\n if(bindingitem != null && bindingitem.Id > 0){\r\n\r\n var itemch = null;\r\n for(var j = 0; j < checkedItems.length; j++){\r\n if(checkedItems[j][\"Id\"] == bindingitem.Id){\r\n itemch = checkedItems[j];\r\n break;\r\n }\r\n }\r\n\r\n if(itemch != null){\r\n // change old value with new from repCheckboxes \r\n delete itemch[\"Checked\"];\r\n this.dfms.assign(finalRepeaterItems[i], this.controls[\"CheckBoxModelBindingPropertyName\"], itemch, true);\r\n // after changing value add to \"newRepeaterItems\" array\r\n newRepeaterItems.push(finalRepeaterItems[i]); \r\n } \r\n } \r\n } \r\n } else if (checkedItems.length > 0 && checkboxesCount > currRepItemsCount){\r\n // checkboxesCount > currRepItemsCount\r\n \r\n finalRepeaterItems = currentRepeaterItems; \r\n\r\n if(currentlyClicked != null){\r\n\r\n var checkedWithoutNew = [];\r\n\r\n for(var i = 0; i < checkedItems.length; i++){\r\n if(currentlyClicked[\"Id\"] != checkedItems[i][\"Id\"]){\r\n checkedWithoutNew.push(checkedItems[i]);\r\n }\r\n }\r\n\r\n for(var i = 0; i < checkedWithoutNew.length; i++){\r\n \r\n for(var j = 0; j < finalRepeaterItems.length; j++){\r\n\r\n var itemfr = finalRepeaterItems[j][this.controls[\"CheckBoxModelBindingPropertyName\"]];\r\n if(itemfr[\"Id\"] == checkedWithoutNew[i][\"Id\"]) {\r\n delete checkedWithoutNew[i][\"Checked\"];\r\n this.dfms.assign(finalRepeaterItems[j], this.controls[\"CheckBoxModelBindingPropertyName\"], checkedWithoutNew[i], true);\r\n newRepeaterItems.push(finalRepeaterItems[j]); \r\n } \r\n } \r\n }\r\n }else{\r\n for(var i = 0; i < currRepItemsCount; i++) {\r\n // change old value with new from repCheckboxes \r\n delete checkedItems[i][\"Checked\"];\r\n this.dfms.assign(finalRepeaterItems[i], this.controls[\"CheckBoxModelBindingPropertyName\"], checkedItems[i], true);\r\n newRepeaterItems.push(finalRepeaterItems[i]);\r\n }\r\n }\r\n \r\n // also add newones\r\n // calculate how many new ones we need\r\n let start = currRepItemsCount;\r\n let finish = checkboxesCount; \r\n let difference = (finish-start);\r\n\r\n let added = 0;\r\n // check if deleted and added again\r\n if(this.orgModel != null && currentlyClicked != null){\r\n var list = this.orgModel[this.controls[\"BindingPropertyName\"]];\r\n if(list != null){\r\n for(var i = 0; i < list.length; i++){\r\n var repeaterItemSectionGroupValue = this.getSectionGroupValue(list[i]);\r\n if(repeaterItemSectionGroupValue == currentSectionGroupValue){\r\n var bindingitem = list[i][this.controls[\"CheckBoxModelBindingPropertyName\"]];\r\n if(bindingitem != null && bindingitem.Id == currentlyClicked.Id){\r\n newRepeaterItems.push(list[i]);\r\n added++;\r\n if(added == difference){\r\n break;\r\n }\r\n }\r\n }\r\n } \r\n }\r\n } \r\n\r\n if(difference > added){\r\n finish = difference - added;\r\n for(var i = 0; i < finish; i++){\r\n var object = Object.assign({}, finalRepeaterItems[0]);\r\n // other values are same just change checkbox and remove Id,Version\r\n // since it's new entry\r\n object[\"Id\"] = 0;\r\n object[\"Version\"] = null;\r\n \r\n var item = null;\r\n if(currentlyClicked != null){\r\n item = currentlyClicked;\r\n\r\n this.dfms.assign(object, this.controls[\"CheckBoxModelBindingPropertyName\"], item, true);\r\n newRepeaterItems.push(object);\r\n } \r\n } \r\n } \r\n\r\n } else if(checkedItems.length == 0){\r\n for(var i = 0; i < currentRepeaterItems.length; i++){\r\n var indx = this.repeaterItemsWithoutCheckboxes.findIndex(x => x.SectionGroup == this.currentOpenSectionGroup);\r\n if(indx >= 0){\r\n this.repeaterItemsWithoutCheckboxes[indx][\"Item\"] = currentRepeaterItems[i];\r\n }else{\r\n this.repeaterItemsWithoutCheckboxes.push({\r\n \"SectionGroup\":this.currentOpenSectionGroup,\r\n \"Item\": currentRepeaterItems[i]\r\n }); \r\n }\r\n } \r\n }\r\n\r\n // for each item in \"newRepeaterItems\" we must sync \"input\" values (from textboxex,cbs,.. on form)\r\n // so all items will have the same value as it is shown on form UI (in case user also edited those fields)\r\n // get first item (only first is showed on form and user can edit it)\r\n\r\n\r\n\r\n // replace old repeater items with \"newRepeaterItems\" on main model\r\n \r\n this.model[this.controls.BindingPropertyName] = newRepeaterItems; \r\n /*var ctypes = this.model[this.controls.BindingPropertyName]; \r\n for(var i = 0; i < ctypes.length; i++)\r\n {\r\n var item = ctypes[i];\r\n if(item != null){\r\n if(item.Id == 0){\r\n console.log(\"id 0\");\r\n console.log(item);\r\n console.log(\"-------------------------\")\r\n }\r\n }\r\n }*/\r\n \r\n }\r\n if(actualyClose){\r\n this.showCheckboxDiv = false;\r\n } \r\n }\r\n \r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { map } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'sem-image-viewer',\r\n templateUrl: './sem-image-viewer.component.html',\r\n styleUrls: ['./sem-image-viewer.component.css']\r\n})\r\n\r\nexport class SemImageViewerComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() mediaId: Number = 0;\r\n @Input() height: string = \"90\";\r\n @Input() width: string = \"90\";\r\n @Input() name: string = \"\";\r\n @Input() customMeadiasPropertyPath: string = \"\";\r\n\r\n @Output() fileLoaded: EventEmitter = new EventEmitter();\r\n\r\n private previewApiUrl: string = \"api/media/GetPreview\";\r\n imageUrls: any[] = [];\r\n\r\n fileObj: File | null = null;\r\n\r\n private heightStyle: string = \"\";\r\n private widthStyle: string = \"\";\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n\r\n this.heightStyle = this.height + \" !important\";\r\n this.widthStyle = this.width + \" !important\";\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.loading = false;\r\n this.resolveImage();\r\n\r\n }\r\n\r\n getSpecifiedWidth() {\r\n var widthStyleValue = this.width + \"px\";\r\n return widthStyleValue;\r\n }\r\n\r\n getSpecifiedHeight() {\r\n var heightStyleValue = this.height + \"px\";\r\n return heightStyleValue;\r\n }\r\n\r\n resolveImage() {\r\n try {\r\n this.loading = true;\r\n let entityId: number = 0;\r\n\r\n if (typeof this.model != \"undefined\" && this.model) {\r\n entityId = this.model[\"Id\"];\r\n if (typeof this.model[\"Medias\"] != \"undefined\" && this.model[\"Medias\"]) {\r\n this.mediaId = this.model[\"Medias\"][0][\"FileID\"];\r\n }\r\n }\r\n\r\n if ((typeof this.mediaId == \"undefined\" || !this.mediaId || this.mediaId == 0) && this.customMeadiasPropertyPath) {\r\n let medias = this.dfms.getValue(this.model, this.customMeadiasPropertyPath);\r\n if (medias) {\r\n let min = Math.min(...medias.map(item => item.FileOrder));\r\n this.mediaId = medias.filter(item => item.FileOrder === min)[0].Id;\r\n }\r\n }\r\n\r\n this.imageUrls = [];\r\n\r\n let model = new RequestModel;\r\n model.url = this.previewApiUrl;\r\n model.data = { Id: this.mediaId, Height: this.height, Width: this.width, documentId: entityId };\r\n model.contentType = \"application/json\";\r\n model.responseType = \"application/json\";\r\n\r\n if (model.data.Id == \"\") {\r\n model.data.Id = 0;\r\n }\r\n\r\n let localstorageEtags = localStorage.getItem(\"etags\");\r\n let etags:any[] = [];\r\n\r\n if (localstorageEtags) {\r\n etags = JSON.parse(localstorageEtags);\r\n let filtered = etags.filter(i=>i.Id == this.mediaId);\r\n\r\n if(filtered.length > 0){\r\n model.etag = filtered[0].etag;\r\n }\r\n }\r\n\r\n this.restProviderService.imagePostRequest(model).subscribe((data: any) => {\r\n\r\n var etag = data.headers.get('etag');\r\n\r\n let file = this.dataURLtoFile(\"data:text/plain;base64,\" + data.body.Base64Img, this.name);\r\n let imageSrc = \"data:text/plain;base64,\" + data.body.Base64Img;//URL.createObjectURL(file);\r\n this.fileObj = file;\r\n\r\n this.imageUrls.push(imageSrc);\r\n\r\n\r\n if (typeof (etag) != \"undefined\" && etag && environment.useEtag) {\r\n\r\n let repl = etags.find(arrayItem => arrayItem.Id === model.data.Id);\r\n\r\n if(repl){\r\n Object.assign(repl, {Id:model.data.Id,base64:data.body.Base64Img,etag:etag,file:file,imageSrc:imageSrc});\r\n }else{\r\n etags.push({Id:model.data.Id,base64:data.body.Base64Img,etag:etag,file:file,imageSrc:imageSrc});\r\n }\r\n\r\n localStorage.setItem(\"etags\",JSON.stringify(etags));\r\n }\r\n\r\n\r\n this.loading = false;\r\n },\r\n\r\n err => {\r\n //console.log(\"Error GetPreview\");\r\n if (typeof(err) == \"string\" && err.includes(\"Error Code: 304\") && environment.useEtag) {\r\n // Image not modified, use the cached image\r\n\r\n let cachedString = localStorage.getItem(\"etags\");\r\n\r\n if(cachedString){\r\n let cached = JSON.parse(cachedString);\r\n\r\n let img = cached.filter(i=>i.Id == model.data.Id);\r\n\r\n if(img){\r\n this.fileObj = img[0].file;\r\n this.imageUrls.push(\"data:text/plain;base64,\" + img[0].base64);//img[0].imageSrc);\r\n //console.log(\"Image retrieved from cache \", img[0].Id)\r\n }else{\r\n //console.log(\"Unable to retrieve cached image with \", model.data.id);\r\n }\r\n }\r\n \r\n } else {\r\n // Handle other errors\r\n }\r\n\r\n this.loading = false;\r\n });\r\n\r\n\r\n\r\n //return \"\";\r\n } catch (e) {\r\n\r\n this.loading = false;\r\n }\r\n }\r\n\r\n private dataURLtoFile(dataurl, filename) {\r\n this.loading = true;\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n this.loading = false;\r\n return new File([u8arr], filename, { type: mime });\r\n }\r\n\r\n imageClick() {\r\n if (this.fileObj != null) {\r\n this.fileLoaded.emit(this.fileObj);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { SemHttpUtility } from '../../../shared/helpers/sem-http-utility';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\n\r\n@Component({\r\n selector: 'sem-list',\r\n templateUrl: './sem-list.component.html',\r\n styleUrls: ['./sem-list.component.css']\r\n})\r\nexport class SemListComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n reqModel: RequestModel = new RequestModel;\r\n\r\n super() {\r\n }\r\n\r\n @Input() query: any;\r\n\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n\r\n let sQuery: string = JSON.stringify(this.query);\r\n\r\n let values: Array = Object.values(this.params);\r\n for (var i = 0; i < values.length; i++) {\r\n var exp = \"params[\" + i + \"]\";\r\n sQuery = sQuery.split(exp).join(values[i]);\r\n }\r\n\r\n this.reqModel.data = JSON.parse(SemHttpUtility.semDecode(sQuery));\r\n this.reqModel.url = \"api/data/list\";\r\n await this.restProviderService.getDataPOST(this.reqModel).subscribe(data => {\r\n this.model = data;\r\n });\r\n }\r\n\r\n async ngAfterViewInit() {\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, AfterContentInit } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { SemDialogComponent } from '../dialogs/sem-dialog/sem-dialog.component';\r\nimport { SemTreeviewDialogComponent } from '../dialogs/sem-treeview-dialog/sem-treeview-dialog.component';\r\nimport { keyframes } from '@angular/animations';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SemOneToManyContainerComponent } from '../sem-one-to-many-container/sem-one-to-many-container.component';\r\n\r\n\r\n@Component({\r\n selector: 'sem-many-to-one',\r\n templateUrl: './sem-many-to-one-control.component.html',\r\n styleUrls: ['./sem-many-to-one-control.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemManyToOneControlComponent, multi: true }\r\n ]\r\n})\r\n\r\nexport class SemManyToOneControlComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() entityName: any;\r\n @Input() modelName: any;\r\n @Input() dialogTitle: any;\r\n @Input() entityFormUrl: any;\r\n @Input() searchFields: string[];\r\n @Input() displayFields: string[];\r\n @Input() showControls: boolean = true;\r\n @Input() entityReadOnly: boolean = true;\r\n @Input() readOnly: boolean = true;\r\n @Input() settingsFormName;\r\n @Input() additionalSearchFilter;\r\n @Input() dialogType: string;\r\n @Input() tooltipTextPoVseh: string;\r\n @Input() repositories: string = null;\r\n @Input() clearFiles: string = null;\r\n @Input() customEvalCode: string = \"\";\r\n @Input() onValueSelectValidation: string = \"\";\r\n @Input() customApiUrl: string = \"\";\r\n @Input() parentBindingProperty: string = \"\";\r\n\r\n linkWithExistingData: string;\r\n\r\n dataIsLinked: boolean = false;\r\n jsTranslations: any;\r\n _parent: any;\r\n\r\n super() {\r\n\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.linkWithExistingData = this.translationsService.translations[\"WebGalis_LinkWithExistingData\"];\r\n this.jsTranslations = this.translationsService.translations;\r\n\r\n if (typeof this.entityName != \"undefined\" && this.entityName) {\r\n this.dfms.manyToOne.push({ name: this.entityName, required: this.isRequired });\r\n\r\n if (this.readOnly) {\r\n if (this.readOnly == true) {\r\n this.dfms.manyToOneReadOnly.push(this.entityName);\r\n }\r\n }\r\n\r\n try {\r\n if (typeof this.entityName != \"undefined\" && this.entityName.length > 0) {\r\n var props = this.entityName.split(\".\");\r\n\r\n this.dfms.dynamicFields.push(this.entityName);\r\n\r\n if (props.length == 0) {\r\n this.model[this.entityName] = {};\r\n }\r\n else {\r\n this.model = this.dfms.assign(this.model, this.entityName, {});\r\n }\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n if (this.route.snapshot.queryParams['id']) {\r\n\r\n let bindingProp = this.entityName;\r\n\r\n if (this.parentBindingProperty && this.parentBindingProperty.length > 0) {\r\n bindingProp = this.parentBindingProperty;\r\n }\r\n\r\n var res = this.dfms.getValue(model, bindingProp);\r\n\r\n if (typeof res == \"undefined\") {\r\n res = this.dfms.getValue(this.model, bindingProp);\r\n }\r\n\r\n if (typeof res != \"undefined\" && res != null) {\r\n if (Array.isArray(res)) {\r\n\r\n //Is section in o2m\r\n let sec = res[this.model[\"number\"]];\r\n //Prop in section\r\n let secProp = this.dfms.getValue(sec, this.entityName);\r\n\r\n if (secProp) {\r\n if (Object.keys(secProp).length > 1) {\r\n this.dataIsLinked = true;\r\n }\r\n }\r\n } else {\r\n if (Object.keys(res).length > 1) {\r\n this.dataIsLinked = true;\r\n }\r\n }\r\n }\r\n\r\n /*if (typeof res != \"undefined\" && res != null && Object.keys(res).length > 1) {\r\n\r\n for (var prop in res) {\r\n if (Object.prototype.hasOwnProperty.call(res, prop)) {\r\n if (res[prop] != null && typeof res[prop] != \"undefined\") {\r\n if (Object.keys(res[prop]).length > 1) {\r\n\r\n this.dataIsLinked = true;\r\n }\r\n }\r\n } else {\r\n this.dataIsLinked = true;\r\n }\r\n }\r\n } else {\r\n if (props.length == 0) {\r\n this.model[this.entityName] = {};\r\n }\r\n else {\r\n this.model = this.dfms.assign(this.model, this.entityName, {});\r\n }\r\n }*/\r\n\r\n\r\n } else {\r\n this.dataIsLinked = false;\r\n }\r\n\r\n });\r\n\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n //console.log(\"FORM\", this.form);\r\n this.updateValidators();\r\n //this.form.form.get(\"model.Person.FirstName\").disable();\r\n //this.form.form.controls[\"model.Person.FirstName\"].disable();\r\n //this.form.form.controls[\"model.Person.FirstName\"].setValidators(null);\r\n\r\n /* const _form = this;\r\n this.form.statusChanges.subscribe(data => {\r\n try {\r\n //_form.form.form.get(\"model.Person.FirstName\").disable();\r\n _form.form.form.controls[\"model.Person.FirstName\"].disable();\r\n //_form.form.form.controls[\"model.Person.FirstName\"].setValidators(null);\r\n } catch (e) { }\r\n })*/\r\n\r\n /*for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if (this.dfms.metaModel[i].Path.includes(this.entityName)) {\r\n this.dfms.metaModel[i].R = 0;\r\n }\r\n }*/\r\n\r\n }\r\n\r\n openDialog() {\r\n\r\n this.dfms.globalForm.form.markAsDirty();\r\n let formname = null;\r\n\r\n if (this.settingsFormName != null && typeof this.settingsFormName != \"undefined\" && this.settingsFormName.length > 0) {\r\n formname = this.settingsFormName;\r\n } else {\r\n formname = this.model[\"SerializationObjectFormLink\"];\r\n }\r\n\r\n let dialogRef = null;\r\n\r\n if (typeof (this.dialogType) == \"undefined\" || this.dialogType == null || this.dialogType.length == 0) {\r\n dialogRef = this.dialog.open(SemDialogComponent, {\r\n width: '575px', data:\r\n {\r\n entityModel: this.modelName,\r\n title: this.dialogTitle,\r\n model: this.model,\r\n formName: formname,\r\n propName: this.entityName,\r\n searchFields: this.searchFields,\r\n displayFields: this.displayFields,\r\n additionalSearchFilter: this.additionalSearchFilter,\r\n tooltipTextPoVseh: this.tooltipTextPoVseh,\r\n repositories: this.repositories,\r\n onValueSelectValidation: this.onValueSelectValidation\r\n }\r\n });\r\n }\r\n else if (this.dialogType === \"tree\") {\r\n dialogRef = this.dialog.open(SemTreeviewDialogComponent, { width: '600px', height: '640px', data: { entityModel: this.modelName, title: this.dialogTitle, formName: formname, propName: this.entityName, searchFields: this.searchFields, displayFields: this.displayFields, additionalSearchFilter: this.additionalSearchFilter, customApiUrl: this.customApiUrl } });\r\n }\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (typeof result != \"undefined\") {\r\n this.dataIsLinked = true;\r\n //this.model[this.entityName] = result;\r\n\r\n if (this.entityName.length == 0) {\r\n const callerFunc = new Function(\"callerThis\", \"result\", this.customEvalCode);\r\n callerFunc(this, result);\r\n //eval(this.customEvalCode).bind(this);\r\n result[\"SerializationObjectFormLink\"] = this.model[\"SerializationObjectFormLink\"];\r\n this.model = null;\r\n result[\"Id\"] = 0;\r\n this.model = result;\r\n this.model = this.dfms.setInitValues(this.model);\r\n this.dfms._modelValueReset.next(this.model);\r\n } else {\r\n this.model = this.dfms.assign(this.model, this.entityName, result, true);\r\n this.model = this.dfms.setInitValues(this.model);\r\n }\r\n\r\n if (this.entityReadOnly) {\r\n this.dfms.manyToOneReadOnly.push(this.entityName);\r\n }\r\n this.changeDetection.detectChanges();\r\n this.updateValidators();\r\n this.dfms._modelMTOValueChanged.next(this.model);\r\n }\r\n });\r\n\r\n }\r\n\r\n updateValidators() {\r\n\r\n }\r\n\r\n showLinkDataControls(entityName: string) {\r\n\r\n if (this.readOnly == true) {\r\n return false;\r\n }\r\n\r\n // bosko had this on .html we moved this here\r\n if (this.checkForDisabled(entityName) || this.dfms?.isFormReadOnly === true) {\r\n return false;\r\n }\r\n\r\n if (typeof this.readOnlyCondition != \"undefined\" && this.readOnlyCondition) {\r\n if (this.readOnlyCondition.length > 0) {\r\n let resulteval = eval(this.readOnlyCondition);\r\n\r\n // if condition for read only is true we dont show linkdatacontrols\t\r\n if (resulteval == true) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n removeLinkedData() {\r\n // this.model[this.entityName] = {};\r\n this.dfms.globalForm.form.markAsDirty();\r\n this.model = this.dfms.assign(this.model, this.entityName, {}, true);\r\n this.model = this.dfms.setInitValues(this.model);\r\n this.dataIsLinked = false;\r\n this.dfms._modelMTOValueChanged.next(null);\r\n\r\n if (this.entityReadOnly) {\r\n for (var i = 0; i < this.dfms.manyToOneReadOnly.length; i++) {\r\n if (this.dfms.manyToOneReadOnly[i] == this.entityName) {\r\n this.dfms.manyToOneReadOnly.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (typeof this.clearFiles != \"undefined\" && this.clearFiles) {\r\n if (this.clearFiles.length > 0 && this.clearFiles.toLowerCase() == \"true\") {\r\n this.fileUploadService._clearFiles.next(null);\r\n }\r\n }\r\n\r\n }\r\n\r\n navigateToEntity() {\r\n\r\n if (typeof this.entityFormUrl != \"undefined\" && this.entityFormUrl != null && this.entityFormUrl.length > 0) {\r\n let entity = this.dfms.getValue(this.model, this.entityName);\r\n\r\n if (typeof entity != \"undefined\" && entity != null) {\r\n if (typeof entity[\"Id\"] != \"undefined\" && entity[\"Id\"] != 0) {\r\n this.utility.processNavigationUrl(this.entityFormUrl + \"?id=\" + entity[\"Id\"]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterContentInit, AfterViewInit, SimpleChanges } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-multi-fields',\r\n templateUrl: './sem-multi-fields.component.html',\r\n styleUrls: ['./sem-multi-fields.component.css']\r\n})\r\nexport class SemMultiFieldsComponent extends SemControlComponent implements OnInit { \r\n\r\n _multiFields: any[] = []; \r\n previousMultiFields: any[] = [];\r\n @Input() minWidth:string = \"auto\";\r\n @Input() multiFieldRootPropertyBinding: string;\r\n @Input() isReadOnly: boolean = false;\r\n\r\n @Input() set multiFields(value: any[]) { \r\n this.previousMultiFields = this._multiFields;\r\n this._multiFields = value;\r\n this.clearProperties(); \r\n }\r\n\r\n get multiFields(): any[] {\r\n return this._multiFields;\r\n }\r\n \r\n super() {\r\n }\r\n\r\n getReadOnly(){\r\n if(this.isReadOnly != null && typeof this.isReadOnly != \"undefined\"){\r\n return this.isReadOnly;\r\n }\r\n return false;\r\n }\r\n \r\n clearProperties(){\r\n if(this.previousMultiFields != null && typeof this.previousMultiFields != \"undefined\"){\r\n for(let i = 0; i < this.previousMultiFields.length; i++){\r\n let fullPropertyPath = null;\r\n if(this.multiFieldRootPropertyBinding != null && typeof this.multiFieldRootPropertyBinding != \"undefined\" && this.multiFieldRootPropertyBinding.length > 0){\r\n fullPropertyPath = this.multiFieldRootPropertyBinding + \".\" + this.previousMultiFields[i].Binding;\r\n }else{\r\n fullPropertyPath = this.previousMultiFields[i].Binding;\r\n }\r\n\r\n this.dfms.assign(this.model, fullPropertyPath, null, true); \r\n\r\n if(fullPropertyPath.endsWith(\"Linked\")){\r\n this.dfms.assign(this.model, fullPropertyPath.replace(\"Linked\",\"Numeric\"), null, true); \r\n this.dfms.assign(this.model, fullPropertyPath.replace(\"Linked\",\"String\"), null, true); \r\n }\r\n } \r\n } \r\n }\r\n\r\n ngOnInit() { \r\n }\r\n\r\n getProp(propertyPath) { \r\n\r\n let fullPropertyPath = null;\r\n if(this.multiFieldRootPropertyBinding != null && typeof this.multiFieldRootPropertyBinding != \"undefined\" && this.multiFieldRootPropertyBinding.length > 0){\r\n fullPropertyPath = this.multiFieldRootPropertyBinding + \".\" + propertyPath;\r\n }else{\r\n fullPropertyPath = propertyPath;\r\n }\r\n\r\n return this.dfms.getValue(this.model, fullPropertyPath);\r\n }\r\n\r\n setProp(propertyPath, value) { \r\n\r\n let fullPropertyPath = null;\r\n if(this.multiFieldRootPropertyBinding != null && typeof this.multiFieldRootPropertyBinding != \"undefined\" && this.multiFieldRootPropertyBinding.length > 0){\r\n fullPropertyPath = this.multiFieldRootPropertyBinding + \".\" + propertyPath;\r\n }else{\r\n fullPropertyPath = propertyPath;\r\n }\r\n\r\n this.dfms.assign(this.model, fullPropertyPath, value, true); \r\n }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as _ from \"lodash\";\r\n\r\n@Component({\r\n selector: 'sem-multiple-select',\r\n templateUrl: './sem-multiple-select.component.html',\r\n styleUrls: ['./sem-multiple-select.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemMultipleSelectComponent, multi: true }\r\n ]\r\n})\r\nexport class SemMultipleSelectComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n @Input() galregistryname: string;\r\n @Input() subBindingPropertyName: string;\r\n @Input() titleField: string = \"Title\";\r\n\r\n @Input() contentBindingProperty: string;\r\n\r\n @Input() searchQueryFilter: any = {};\r\n @Input() customDataApiInputParameters: any = null;\t\r\n @Input() customDataApi: string = null;\r\n\r\n listControl = new FormControl();\r\n list: any[] = [];\r\n selectedValues: any[] = [];\r\n items: any[] = [];\r\n\r\n query = JSON.parse(\"{ \\\"MainQuery\\\": null, \\\"FieldQueries\\\": { }, \\\"FacetQueries\\\": { }, \\\"RequestedFacets\\\": null, \\\"Projection\\\": [], \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" }, \\\"ClassTypes\\\": [], \\\"Page\\\": \\\"1\\\", \\\"PageSize\\\": 500, \\\"RepositoryName\\\": \\\"lucene\\\", \\\"Form\\\": null, \\\"UseCache\\\": false, \\\"Facets\\\": [], \\\"SortFields\\\": [] }\");\r\n\r\n ngAfterViewInit() {\r\n\r\n this.loadItems();\r\n let names = [];\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n }\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n this.route\t\r\n .queryParams\t\r\n .subscribe(params => {\t\r\n // Defaults to 0 if no query param provided.\t\r\n this.params = params;\t\r\n });\r\n }\r\n\r\n loadItems() {\r\n\r\n if (typeof this.titleField == \"undefined\") {\r\n this.titleField = \"Title\";\r\n }\r\n\r\n let autocompleteTreeQuery = { Type: \"FieldValue\", FieldName: this.titleField, FieldValue: \"*\" }\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/registry/dropdown\";\r\n requestModel.contentType = \"application/json\"\r\n let searchQ = this.query;\r\n searchQ[\"ClassType\"] = this.galregistryname;\r\n searchQ[\"ClassTypes\"] = [this.galregistryname];\r\n searchQ[\"Projection\"] = [this.titleField];\r\n searchQ[\"TreeQuery\"] = autocompleteTreeQuery;\r\n requestModel.data = searchQ;\r\n\r\n /*if (this.searchQueryFilter != null && typeof this.searchQueryFilter != \"undefined\" && Object.entries(this.searchQueryFilter).length !== 0 && this.searchQueryFilter.constructor !== Object) {\r\n searchQ[\"TreeQuery\"].Type = \"AND\";\r\n searchQ[\"TreeQuery\"].SubQueries = [JSON.parse(this.searchQueryFilter), autocompleteTreeQuery];\r\n } else {\r\n searchQ[\"TreeQuery\"] = autocompleteTreeQuery;\r\n }*/\r\n\r\n if(this.customDataApi != null && typeof this.customDataApi != \"undefined\" && this.customDataApi.length > 0){\t\r\n requestModel = new RequestModel();\t\r\n requestModel.contentType = \"application/json\"\t\r\n requestModel.url = this.customDataApi;\t\r\n if (this.customDataApiInputParameters != null && typeof this.customDataApiInputParameters != \"undefined\" && Object.keys(this.customDataApiInputParameters).length > 0) {\t\r\n try {\t\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\t\r\n let formModel = {};\t\r\n if (this.model != null && typeof this.model != \"undefined\") {\t\r\n formModel = this.model;\t\r\n }\t\r\n \t\r\n if (Object.keys(formModel).length == 0) {\t\r\n if (this.dfms.globalModel != null && typeof this.dfms.globalModel != \"undefined\") {\t\r\n formModel = this.dfms.globalModel;\t\r\n }\t\r\n }\t\r\n formModel[\"Id\"] = this.params[\"id\"];\t\r\n // interpolate\t\r\n let compiled = _.template(this.customDataApiInputParameters);\t\r\n let compiledInputParams = compiled(formModel);\t\r\n if (compiledInputParams != null && typeof compiledInputParams != \"undefined\") {\t\r\n let compiledInputParamsObject = JSON.parse(compiledInputParams);\t\r\n requestModel.data = { \"InputParameters\": compiledInputParamsObject };\t\r\n }\t\r\n } catch {\t\r\n }\t\r\n }\t\r\n }else{\t\r\n if(this.searchQueryFilter != null && typeof this.searchQueryFilter != \"undefined\" && Object.entries(this.searchQueryFilter).length !== 0 && this.searchQueryFilter.constructor !== Object){\t\r\n var finalQ = {\"Type\":\"AND\"};\t\r\n var subq: any[] = [];\t\r\n \t\r\n subq.push(JSON.parse(this.searchQueryFilter));\t\r\n subq.push(autocompleteTreeQuery);\t\r\n \t\r\n finalQ[\"SubQueries\"] = subq;\t\r\n \t\r\n searchQ[\"TreeQuery\"] = finalQ;\t\r\n }\t\r\n } \r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n let result = data[\"Models\"];\r\n\r\n this.list = [];\r\n for (var i = 0; i < result.length; i++) {\r\n this.list = [...this.list, result[i][\"Model\"]];\r\n }\r\n\r\n if (this.titleField == \"\" || this.titleField == null || typeof this.titleField == \"undefined\") {\r\n this.titleField = \"Title\";\r\n this.changeDetection.detectChanges();\r\n } else {\r\n this.changeDetection.detectChanges();\r\n }\r\n /*this.restProviderService.modelValueChanged.subscribe(model => {\r\n this.selectedValues = [];\r\n this.items = this.dfms.getValue(model,this.bindingProperty);\r\n if (typeof this.items != \"undefined\" && this.items) {\r\n\r\n for (var i = 0; i < this.items.length; i++) {\r\n for (var j = 0; j < this.list.length; j++) {\r\n if (this.list[j][\"Id\"] == this.items[i][\"Id\"]) {\r\n this.selectedValues.push(this.list[j]);\r\n //names.push(this.model[this.name][i][this.titleField]);\r\n break;\r\n }\r\n }\r\n }\r\n this.dfms.assign(model,this.bindingProperty,this.selectedValues,true);\r\n this.items = this.dfms.getValue(model,this.bindingProperty);\r\n this.listControl.setValue(model[this.name]);\r\n }\r\n });*/\r\n\r\n \r\n\r\n });\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n\r\n }\r\n );\r\n }\r\n\r\n showModel() {\r\n }\r\n\r\n setValue(value) {\r\n this.value = value;\r\n }\r\n\r\n getData():any[]{\r\n return this.dfms.getValue(this.model,this.bindingProperty);\r\n }\r\n\r\n compareFn(o1: any, o2: any) {\r\n if(o1 != null && typeof o1 != \"undefined\" && o2 != null && typeof o2 != \"undefined\"){\t\r\n return o1.Id === o2.Id;\t\r\n }\t\r\n return false;\r\n}\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SemParameterDialogComponent } from '../../dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\n\r\n@Component({\r\n selector: 'one-to-many-section',\r\n templateUrl: './one-to-many-section.component.html',\r\n styleUrls: ['./one-to-many-section.component.css'],\r\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: OneToManySectionComponent, multi: true }]\r\n})\r\nexport class OneToManySectionComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() bindingPropertyName: any;\r\n @Input() maxCount: number = -1;\r\n @Input() sectionTransferUrl: any;\r\n @Input() sectionContent: any;\r\n @Input() contentTemplate: any;\r\n @Input() section: any;\r\n @Input() forwardEntityName: any;\r\n @Input() number: any;\r\n @Input() actions: any = [];\r\n @Input() hideRepeaterActionsCondition: string;\r\n @Input() isInline: any;\r\n currentNumber: number = 0;\r\n showDD: boolean = false;\r\n\r\n private forwardEntSubs: any = null;\r\n\r\n\r\n @Output() removeSectionEvent: EventEmitter = new EventEmitter();\r\n\r\n super() { }\r\n\r\n ngAfterViewInit(): void {\r\n // for forward entitypurposes\r\n /*if(this.forwardEntityName != null && typeof this.forwardEntityName != \"undefined\"){\r\n this.forwardEntSubs = this.utility.currentDropdownSelectedValue.subscribe(model => {\r\n\r\n if (typeof model != \"undefined\" && model != null && model.SelectedDropDownBinding != null && typeof model.SelectedDropDownBinding != \"undefined\") { \r\n if(model.SelectedDropDownBinding === this.forwardEntityName && this.model != null && typeof this.model != \"undefined\"){\r\n this.model[this.forwardEntityName] = model.SelectedValue;\r\n }\r\n }\r\n\r\n });\r\n }*/\r\n }\r\n\r\n \r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (typeof this.forwardEntSubs != \"undefined\" && this.forwardEntSubs != null) {\r\n this.forwardEntSubs.unsubscribe();\r\n }\r\n }\r\n\r\n toggleDD() {\r\n this.dfms.globalForm.form.markAsDirty();\r\n this.showDD = !this.showDD;\r\n }\r\n\r\n \r\n removeSection(section) {\t\r\n this.removeSectionEvent.emit(section);\t\r\n this.changeDetection.detectChanges(); \t\r\n }\t\r\n showRepeaterActions(){\t\r\n if(this.hideRepeaterActionsCondition != null && typeof this.hideRepeaterActionsCondition != \"undefined\" && this.hideRepeaterActionsCondition.length > 0){\t\r\n var evalResponse = eval(this.hideRepeaterActionsCondition);\t\r\n if(evalResponse == true){\t\r\n return false;\t\r\n }\t\r\n return true;\t\r\n }\t\r\n return true;\t\r\n }\r\n\r\n evaluateSectionAction(action) {\r\n if (action.FormAction) {\r\n \r\n this.restProviderService.getDataGET(\"api/actions/\" + action.FormAction, \"application/json\").subscribe((data:any) => {\r\n let formAction = JSON.parse(data);\r\n\r\n\r\n\r\n\r\n\r\n if (formAction) {\r\n if (formAction.ParameterForm != null && typeof formAction.ParameterForm != \"undefined\" && formAction.ParameterForm.Id > 0) {\r\n var reportId = null;\r\n if (formAction.ParameterForm.Report != null && typeof formAction.ParameterForm.Report != \"undefined\") {\r\n reportId = formAction.ParameterForm.Report.Id;\r\n }\r\n \r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: {\r\n parameterFormId: formAction.ParameterForm.Id,\r\n reportId: reportId,\r\n customHeaderTitle: formAction.ParameterForm.CustomHeaderTitle,\r\n customCssClass: formAction.ParameterForm.CustomCssClass\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n // only call action if parameter popup was confirmed (not cancled - close button)\r\n if (returnData.Canceled == false) {\r\n var inputParametersModel = returnData[\"Model\"];\r\n this.actionsService.callAction(formAction, this.section, null, null, this, action.BulkAction, inputParametersModel, formAction.OnlyClientLogic, false, action.BulkExport, formAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n });\r\n } else {\r\n // just call action without parameters form popup\r\n this.actionsService.callAction(formAction, this.section, null, null, this, action.BulkAction, null, formAction.OnlyClientLogic, false, action.BulkExport, formAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n \r\n return formAction;\r\n }, error => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n else if (action.ActionBody) {\r\n this.evaluateAction(action.ActionBody);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport * as _ from 'lodash';\r\nimport { parse } from 'url';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SemConfirmDialogComponent } from '../dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { DialogType } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { isNumber } from 'lodash';\r\n\r\n@Component({\r\n selector: 'sem-one-to-many-container',\r\n templateUrl: './sem-one-to-many-container.component.html',\r\n styleUrls: ['./sem-one-to-many-container.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemOneToManyContainerComponent, multi: true }\r\n ]\r\n})\r\nexport class SemOneToManyContainerComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() bindingPropertyName: any;\r\n @Input() maxCount: number = -1;\r\n @Input() sectionTransferUrl: any;\r\n @Input() sectionContent: any;\r\n @Input() contentTemplate: any;\r\n @Input() actions: any = [];\r\n @Input() overrideActions: any = [];\r\n @Input() forwardEntity: any;\r\n @Input() postAddNewSectionLogic: string;\r\n @Input() hideNewAddSection: boolean = false;\r\n @Input() autoAddSectionIfEmpty: boolean = false;\r\n @Input() showAsListing: boolean = false;\r\n @Input() inlineEdit: string;\r\n @Input() listingFields: any;\r\n @Input() projections: any;\r\n @Input() presentTableLayoutInReadonly: any;\r\n @Input() statisticsView: boolean = false;\r\n\r\n @Input() showCustomAdditionalDataFields: boolean = false;\r\n @Input() hideOneToManyItems: boolean = false;\r\n @Input() propertyNameAdditionalData: string;\r\n @Input() hideNewAddSectionCondition: string;\t\r\n @Input() hideRepeaterActionsCondition: string; \t\r\n // JS logic that will be evaluated after remove section event\t\r\n @Input() afterRemoveSectionLogicEvent: string; \r\n @Input() customApiAdditionalDataFields: string;\r\n @Input() additionalFieldHideCondition: string;\r\n\r\n @Input() addNewTranslation: string | null = null;\r\n @Input() onSearchNavigateUrl: string = \"\";\r\n\r\n @Input() containerTitle: string = \"\";\r\n @Input() hideSectionWhenNotEditing: boolean = false;\r\n @Input() addNewButtonOnTop: boolean = false;\r\n\r\n currentNumber: number = 0;\r\n showDD: boolean = false;\r\n public templateProvided: boolean = false;\r\n private sectionAdded: boolean = false;\r\n\r\n //Props for listing grid view\r\n public gridSection: any = null;\r\n public inEditMode: boolean = false;\r\n\r\n\r\n private additionalFields = [];\r\n\r\n // this property stores values true/false for each additionalfield so we know if we hide the field or not\r\n private additionalFieldsHiding: any = {};\r\n\r\n selectedIndex: number = 0;\r\n\r\n typeoflisting() {\r\n return typeof (this.showAsListing);\r\n }\r\n typeofinline() {\r\n return typeof (this.inlineEdit);\r\n }\r\n typeofwt() {\r\n return typeof (this.hideNewAddSection);\r\n } super() { }\r\n\r\n ngOnInit() {\r\n this.getContentTemplate();\r\n }\r\n\r\n ngAfterContentInit() {\r\n\r\n if (this.presentTableLayoutInReadonly == \"true\") {\r\n this.selectedIndex = -1;\r\n }\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n this.model = model;\r\n\r\n if (this.model != null\r\n && typeof this.model != \"undefined\"\r\n && this.propertyNameAdditionalData != null\r\n && typeof this.propertyNameAdditionalData != \"undefined\"\r\n && this.propertyNameAdditionalData.length > 0) {\r\n // need to convert additionalfields json string to json object for mapping features\r\n // in presubmit event we convert back to string json (stringify)\r\n if (this.model[this.propertyNameAdditionalData] != null && typeof this.model[this.propertyNameAdditionalData] != \"undefined\") {\r\n // only parse if it's not already parsed into object\r\n // so only if json string\r\n if (typeof this.model[this.propertyNameAdditionalData] === \"string\") {\r\n this.model[this.propertyNameAdditionalData] = JSON.parse(this.model[this.propertyNameAdditionalData]);\r\n }\r\n }\r\n }\r\n\r\n let toAssign = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n\r\n \r\n if (this.autoAddSectionIfEmpty && !this.showAsListing && !this.autoAddSectionIfEmpty) {\r\n if (this.sectionAdded == false || model[\"LOADEDFROMAPI\"]) {\r\n // if empty \r\n if (typeof toAssign == \"undefined\" || toAssign == null || toAssign.length == 0) {\r\n this.sectionAdded = true;\r\n this.addSection();\r\n }\r\n }\r\n }\r\n\r\n if (this.showAsListing) {\r\n if (typeof toAssign != \"undefined\") {\r\n if (toAssign.length > 0) {\r\n this.inEditSection(toAssign.length - 1);\r\n this.changeDetection.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n if (typeof toAssign != \"undefined\" && toAssign != null && toAssign.length > 0) {\r\n this.loadAdditionalFields(toAssign);\r\n }\r\n\r\n if (typeof (this.inlineEdit) != \"undefined\" && (this.inlineEdit == \"true\")) {\r\n this.gridSection = null;\r\n this.inEditMode = false;\r\n }\r\n\r\n });\r\n\r\n this.dfms._modelMTOValueChanged.subscribe(model => {\r\n\r\n if (this.propertyNameAdditionalData != null\r\n && typeof this.propertyNameAdditionalData != \"undefined\"\r\n && this.propertyNameAdditionalData.length > 0) {\r\n\r\n if (this.model[this.propertyNameAdditionalData] != null && typeof this.model[this.propertyNameAdditionalData] != \"undefined\") {\r\n // only parse if it's not already parsed into object\r\n // so only if json string\r\n if (typeof this.model[this.propertyNameAdditionalData] === \"string\") {\r\n this.model[this.propertyNameAdditionalData] = JSON.parse(this.model[this.propertyNameAdditionalData]);\r\n }\r\n }\r\n\r\n \r\n\r\n }else{\t\r\n // bind to global model in case we need this in section\t\r\n // for example we have dropdown in section which we want to filter based on some value on form - we cannot acces this value through this.model\t\r\n // baucse each section has it's own model, so we need to go via globalModel\t\r\n this.dfms.globalModel = model;\t\r\n }\r\n\r\n if (typeof (this.inlineEdit) != \"undefined\" && (this.inlineEdit == \"true\")) {\r\n this.gridSection = null;\r\n this.inEditMode = false;\r\n }\r\n\r\n });\r\n\r\n if (typeof (this.inlineEdit) != \"undefined\" && (this.inlineEdit == \"true\")) {\r\n this.gridSection = null;\r\n this.inEditMode = false;\r\n }\r\n\r\n }\r\n\r\n checkEditRight(){\r\n return false;\r\n }\r\n\r\n loadAdditionalFields(listOfAdditionalData) {\r\n\r\n // execute only if ShowCustomAdditionalDataFields true\r\n if(this.showCustomAdditionalDataFields == true){\r\n if (listOfAdditionalData != null && typeof listOfAdditionalData != \"undefined\") {\r\n let requestModel: RequestModel = new RequestModel();\r\n\r\n if(this.customApiAdditionalDataFields){\r\n requestModel.url = this.customApiAdditionalDataFields;\r\n }else{\r\n requestModel.url = \"/api/dynamicforms/additionaldatafields\";\r\n } \r\n \r\n requestModel.contentType = \"application/json\" \r\n requestModel.responseType = \"application/json\" \r\n try{\r\n requestModel.data = JSON.stringify(listOfAdditionalData);\r\n }catch {\r\n requestModel.data = null;\r\n }\r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n if (data != null && typeof data != \"undefined\" && data.length > 0) {\r\n this.additionalFields = data;\r\n\r\n // remove properties from model that don't exists in additionalfields anymore\r\n if (this.model[this.propertyNameAdditionalData] != null && typeof this.model[this.propertyNameAdditionalData] != \"undefined\") {\r\n if (this.additionalFields != null && typeof this.additionalFields != \"undefined\") {\r\n\r\n for (let propertyBinding in this.model[this.propertyNameAdditionalData]) {\r\n\r\n let index = this.additionalFields.findIndex(x => x.Binding == propertyBinding);\r\n // if property doesnt exists in additionalFields then it was removed from additionalfields and we should also remove from this.model\r\n // if not found\r\n if (index < 0) {\r\n delete this.model[this.propertyNameAdditionalData][propertyBinding];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n },\r\n error => {\r\n }\r\n );\r\n }\r\n }\r\n \r\n }\r\n\r\n fireSectionAddedEvent() {\r\n this.utility.newSectionAdded.next(this.model);\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\" && obj instanceof Array) {\r\n\r\n if (obj.length > 0 && this.inlineEdit == \"false\") {\r\n if (!this.hideSectionWhenNotEditing) {\r\n this.gridSection = obj[obj.length - 1];\r\n this.inEditMode = true;\r\n }\r\n\r\n if (typeof this.forwardEntity != \"undefined\" && this.forwardEntity) {\r\n obj.forEach(element => {\r\n element[this.forwardEntity] = _.cloneDeep(this.model[this.forwardEntity]);\r\n });\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n }\r\n\r\n\r\n\r\n return [];\r\n }\r\n\r\n modelChanged($event) {\r\n //console.log(\"one2m changed model\");\r\n }\r\n async getContentTemplate() {\r\n\r\n /*\r\n\r\n let templateUrl = \"\";\r\n\r\n for (var i = 0; i < this.dynamicRoutesLoader.wgRoutes.length; i++) {\r\n if (this.dynamicRoutesLoader.wgRoutes[i][\"PrettyUrl\"] == window.location.pathname.substring(1)) {\r\n templateUrl = this.dynamicRoutesLoader.wgRoutes[i].Url;\r\n break;\r\n }\r\n }\r\n\r\n this.restProviderService.getDataGET(templateUrl).subscribe(async rawTemplate => {\r\n //console.log(\"Retrieved dynamic template: \", rawTemplate);\r\n let startParseIndex = rawTemplate.indexOf(\"\",startParseIndex);\r\n let contentLength = endParseIndex - startParseIndex;\r\n\r\n\r\n this.contentTemplate = rawTemplate.substring(startParseIndex, endParseIndex);\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n let toAssign = this.dfms.getValue(model, this.bindingPropertyName);\r\n if (typeof toAssign != \"undefined\") {\r\n this.currentNumber = toAssign.length;\r\n for (var i = 0; i < toAssign.length; i++) {\r\n toAssign[i][\"SerializationObjectFormLink\"] = this.model[\"SerializationObjectFormLink\"];\r\n }\r\n }\r\n \r\n });\r\n\r\n });*/\r\n /*\r\n if(this.dynamicRoutesLoader.wgRoutes.length == 0){\r\n await this.dynamicRoutesLoader.loadConfig(window.location.pathname.substring(1));\r\n }*/\r\n\r\n let templateUrl = \"\";\r\n\r\n for (var i = 0; i < this.dynamicRoutesLoader.wgRoutes.length; i++) {\r\n if (this.dynamicRoutesLoader.wgRoutes[i][\"PrettyUrl\"] == window.location.pathname.substring(1)) {\r\n templateUrl = this.dynamicRoutesLoader.wgRoutes[i].Url;\r\n break;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.dynamicRoutesLoader.loadedRoutes.length; i++) {\r\n if (this.dynamicRoutesLoader.loadedRoutes[i].Url == templateUrl) {\r\n this.templateProvided = true;\r\n this.loadContent(this.dynamicRoutesLoader.loadedRoutes[i].Html);\r\n break;\r\n }\r\n }\r\n\r\n if (!this.templateProvided) {\r\n this.restProviderService.getDataGET(templateUrl).subscribe(async rawTemplate => {\r\n //console.log(\"Retrieved dynamic template: \", rawTemplate);\r\n this.loadContent(rawTemplate);\r\n\r\n });\r\n }\r\n }\r\n\r\n loadContent(rawTemplate) {\r\n let startParseIndex = rawTemplate.indexOf(\"\", startParseIndex);\r\n //\r\n let endParseIndex = rawTemplate.indexOf(\"\", startParseIndex);\r\n let contentLength = endParseIndex - startParseIndex;\r\n\r\n\r\n this.contentTemplate = rawTemplate.substring(startParseIndex, endParseIndex);\r\n this.changeDetection.detectChanges();\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n /*let toAssign = this.dfms.getValue(model, this.bindingPropertyName);\r\n if (typeof toAssign != \"undefined\") {\r\n this.currentNumber = toAssign.length;\r\n for (var i = 0; i < toAssign.length; i++) {\r\n toAssign[i][\"SerializationObjectFormLink\"] = this.model[\"SerializationObjectFormLink\"];\r\n }\r\n }*/\r\n if (typeof this.model != \"undefined\" && this.model) {\r\n let forwardEnt = this.model[this.forwardEntity];\r\n if (typeof forwardEnt != \"undefined\" && forwardEnt) {\r\n if (typeof this.model[this.bindingPropertyName] != \"undefined\") {\r\n for (var i = 0; i < this.model[this.bindingPropertyName].length; i++) {\r\n this.model[this.bindingPropertyName][i][this.forwardEntity] = forwardEnt;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n addSection() {\r\n\r\n this.dfms.globalForm.form.markAsDirty();\r\n\r\n /*if(typeof this.showAsListing != \"undefined\" && this.showAsListing && !this.gridSection){\r\n this.gridSection = {};\r\n this.changeDetection.detectChanges();\r\n }*/\r\n\r\n let toAssign = this.dfms.getValue(this.model, this.bindingPropertyName); \r\n if ((typeof this.showAsListing != \"undefined\" && this.showAsListing && this.gridSection) || (typeof this.inlineEdit != \"undefined\" && this.inlineEdit)) {\r\n\r\n if (this.inEditMode) {\r\n this.inEditMode = false;\r\n }\r\n\r\n if (typeof toAssign == \"undefined\" || toAssign == null) {\r\n toAssign = [];\r\n }\r\n\r\n if (!(Array.isArray(toAssign))) {\r\n toAssign = [toAssign];\r\n }\r\n\r\n toAssign.push({});\r\n\r\n //this.gridSection = toAssign[toAssign.length - 1];\r\n\r\n /*this.gridSection = null;\r\n this.changeDetection.detectChanges();\r\n this.gridSection = {};*/\r\n\r\n\r\n //this.gridSection = toAssign[toAssign.length - 1];\r\n\r\n this.dfms.assign(this.model, this.bindingPropertyName, toAssign, true);\r\n \r\n //this.changeDetection.detectChanges();\r\n this.currentNumber = toAssign.length;\r\n this.inEditSection(toAssign.length - 1);\r\n\r\n\r\n } else {\r\n\r\n if (typeof toAssign == \"undefined\" || toAssign == null) {\r\n toAssign = [];\r\n }\r\n\r\n if (!(Array.isArray(toAssign))) {\r\n toAssign = [toAssign];\r\n }\r\n\r\n if (this.bindingPropertyName == \"DeductionInformations\") {\r\n let months = 0;\r\n if (this.model.PenaltyData.DurationYears) {\r\n months = parseInt(this.model.PenaltyData.DurationYears) * 12;\r\n }\r\n if (this.model.PenaltyData.DurationMonths) {\r\n months = months + parseInt(this.model.PenaltyData.DurationMonths);\r\n }\r\n\r\n if (this.model.PenaltyData.DurationDays) {\r\n let p = parseInt(this.model.PenaltyData.DurationDays)\r\n if (p > 0) {\r\n months = months + 1;\r\n }\r\n }\r\n\r\n let array: any[] = [];\r\n for (var i = 0; i < months; i++) {\r\n array.push({});\r\n }\r\n\r\n //this.dfms.assign(this.model, this.bindingPropertyName, array);\r\n this.model.DeductionInformations = array;\r\n this.currentNumber = array.length;\r\n\r\n } else {\r\n\r\n if (this.maxCount == -1 || toAssign.length < this.maxCount) {\r\n let objToAdd = {};\r\n\r\n if (typeof this.forwardEntity != \"undefined\" && this.forwardEntity) {\r\n objToAdd[this.forwardEntity] = _.cloneDeep(this.model[this.forwardEntity]);\r\n }\r\n\r\n //objToAdd[\"SerializationObjectFormLink\"] = this.model[\"SerializationObjectFormLink\"];\r\n toAssign.push(objToAdd);\r\n\r\n this.dfms.assign(this.model, this.bindingPropertyName, toAssign);\r\n this.currentNumber = toAssign.length;\r\n\r\n if (typeof this.showAsListing != \"undefined\" && this.showAsListing) {\r\n this.gridSection = objToAdd;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n // if PostAddNewClientLogic exists execute\r\n if (this.postAddNewSectionLogic != null && typeof this.postAddNewSectionLogic != \"undefined\") {\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.postAddNewSectionLogic);\r\n }\r\n }\r\n\r\n removeSection(section: any) {\r\n\r\n this.dfms.globalForm.form.markAsDirty();\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n let values = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n for (var i = 0; i < values.length; i++) {\r\n if (values[i] == section) {\r\n values.splice(i, 1);\r\n this.currentNumber = values.length;\r\n if (this.hideSectionWhenNotEditing) {\r\n this.gridSection = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n this.fireSectionAddedEvent();\r\n // execute JS logic after section is removed\t\r\n this.executeAfterRemoveSectionLogic();\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n executeAfterRemoveSectionLogic(){\t\r\n if(this.afterRemoveSectionLogicEvent != null && typeof this.afterRemoveSectionLogicEvent != \"undefined\"\t\r\n && this.afterRemoveSectionLogicEvent.length > 0){ \t\r\n eval(this.afterRemoveSectionLogicEvent);\t\r\n }\t\r\n }\r\n\r\n inEditSection(index) {\r\n if (this.inEditMode) {\r\n this.inEditMode = false;\r\n }\r\n let toAssign = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n this.gridSection = null;\r\n this.changeDetection.detectChanges();\r\n this.gridSection = toAssign[index];\r\n this.selectedIndex = index;\r\n this.inEditMode = true;\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n inRemoveSection(index) {\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n var actionEval = false;\r\n let toAssign = [];\r\n toAssign = this.dfms.getValue(this.model, this.bindingPropertyName);\r\n\r\n if (typeof this.overrideActions != \"undefined\" && this.overrideActions) {\r\n if (this.overrideActions.length > 0) {\r\n for (var i = 0; i < this.overrideActions.length; i++) {\r\n if (this.overrideActions[i][\"Type\"] == 1) {\r\n //var evalVal = eval(\"function doIt(toAssign){\" + this.overrideActions[i][\"ActionBody\"] + \"} doIt(toAssign);\");\r\n eval(this.overrideActions[i][\"ActionBody\"]);\r\n actionEval = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!actionEval) {\r\n toAssign.splice(index, 1);\r\n }\r\n\r\n this.dfms.assign(this.model, this.bindingPropertyName, toAssign);\r\n\r\n this.gridSection = null;\r\n /*this.changeDetection.detectChanges();\r\n this.gridSection = {};*/\r\n this.changeDetection.detectChanges();\r\n\r\n this.fireSectionAddedEvent();\r\n }\r\n\r\n });\r\n }\r\n\r\n getProp(model, path) {\r\n if (model[this.propertyNameAdditionalData] != null && typeof model[this.propertyNameAdditionalData] != \"undefined\") {\r\n let val = model[this.propertyNameAdditionalData][path];\r\n return val;\r\n }\r\n return null;\r\n }\r\n\r\n setProp(path, value) {\r\n if (this.model[this.propertyNameAdditionalData] == null || typeof this.model[this.propertyNameAdditionalData] == \"undefined\") {\r\n this.model[this.propertyNameAdditionalData] = {};\r\n }\r\n this.model[this.propertyNameAdditionalData][path] = value;\r\n }\r\n\r\n showAddNew(){\t\r\n \t// *ngIf=\"hideNewAddSection == false && !hideOneToManyItems && !checkForDisabled(bindingPropertyName) && dfms?.isFormReadOnly != true\"\r\n\r\n if (this.hideNewAddSection == false && !this.hideOneToManyItems && this.dfms?.isFormReadOnly != true) {\t\r\n \t\r\n if(this.hideNewAddSectionCondition != null && typeof this.hideNewAddSectionCondition != \"undefined\" && this.hideNewAddSectionCondition.length > 0){\t\r\n var evalResponse = eval(this.hideNewAddSectionCondition);\t\r\n if(evalResponse == true){\t\r\n return false;\t\r\n }\t\r\n return true;\t\r\n }\t\r\n return true;\t\r\n }\t\r\n return false;\t\r\n }\r\n\r\n showRepeaterActions(){\t\r\n if(this.hideRepeaterActionsCondition != null && typeof this.hideRepeaterActionsCondition != \"undefined\" && this.hideRepeaterActionsCondition.length > 0){\t\r\n var evalResponse = eval(this.hideRepeaterActionsCondition);\t\r\n if(evalResponse == true){\t\r\n return false;\t\r\n }\t\r\n return true;\t\r\n }\t\r\n return true;\t\r\n } \r\n\r\n additionalFieldVisibility(currentAdditionalField){\r\n if(this.additionalFieldHideCondition != null){\r\n \r\n // create function based on what user wrote in control settings (additionalFieldHideCondition)\r\n // we will also send some parameters into function\r\n // model => this.model -> this is global model on the form\r\n // adField => current additional field that we are checking\r\n // adFieldsHiding => for description go check definition of property\r\n // if user defines hideCondition (additionalFieldHideCondition) in control settings it must set values true/false to property \"adFieldsHiding\" in his code - only way fields will be hidden\r\n var func = Function(\"adField\", \"adFieldsHiding\", \"model\", this.additionalFieldHideCondition);\r\n\r\n // call function \r\n func(currentAdditionalField, this.additionalFieldsHiding, this.model);\r\n \r\n }else{\r\n this.additionalFieldsHiding[currentAdditionalField.Binding] = true;\r\n }\r\n\r\n // functions saves true or false into this object, based on value additional field is then shown/hidden \r\n return this.additionalFieldsHiding[currentAdditionalField.Binding];\r\n }\r\n\r\n searchPageRedirect(section, lf) {\r\n let value = this.dfms.getValue(section, lf.Binding);\r\n\r\n window.location.href = \"cms/galisweb/search?view=1&search=\" + value + \"*\";\r\n }\r\n\r\n checkValueTypeForDecimal(value: any) {\r\n try {\r\n if (value && value.length > 0) {\r\n if (!isNaN(value)) {\r\n return value.toString().replace(/\\B(?) {}\r\n}\r\n","import {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport { QueryOperatorDirective } from './query-operator.directive';\r\nimport { QueryFieldDirective } from './query-field.directive';\r\nimport { QueryEntityDirective } from './query-entity.directive';\r\nimport { QuerySwitchGroupDirective } from './query-switch-group.directive';\r\nimport { QueryButtonGroupDirective } from './query-button-group.directive';\r\nimport { QueryInputDirective } from './query-input.directive';\r\nimport { QueryRemoveButtonDirective } from './query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-empty-warning.directive';\r\nimport { QueryArrowIconDirective } from './query-arrow-icon.directive';\r\nimport {\r\n ButtonGroupContext,\r\n Entity,\r\n Field,\r\n SwitchGroupContext,\r\n EntityContext,\r\n FieldContext,\r\n InputContext,\r\n LocalRuleMeta,\r\n OperatorContext,\r\n Option,\r\n QueryBuilderClassNames,\r\n QueryBuilderConfig,\r\n RemoveButtonContext,\r\n ArrowIconContext,\r\n Rule,\r\n RuleSet,\r\n EmptyWarningContext,\r\n FieldOperator,\r\n FieldMap,\r\n} from './query-builder.interfaces';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { TranslationsProviderService } from '../../../services/translations-provider/translations-provider.service';\r\n\r\nexport const CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\nexport const VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'query-builder',\r\n templateUrl: './query-builder.component.html',\r\n styleUrls: ['./query-builder.component.scss'],\r\n providers: [CONTROL_VALUE_ACCESSOR, VALIDATOR]\r\n})\r\nexport class QueryBuilderComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n public fields: Field[];\r\n public filterFields: Field[];\r\n public entities: Entity[];\r\n public defaultClassNames: QueryBuilderClassNames = {\r\n arrowIconButton: 'q-arrow-icon-button',\r\n arrowIcon: 'q-icon q-arrow-icon',\r\n removeIcon: 'q-icon q-remove-icon',\r\n addIcon: 'q-icon q-add-icon',\r\n button: 'q-button',\r\n buttonGroup: 'q-button-group',\r\n removeButton: 'q-remove-button',\r\n switchGroup: 'q-switch-group',\r\n switchLabel: 'q-switch-label',\r\n switchLabelAnd: 'q-switch-label q-switch-label-and',\r\n switchLabelOr: 'q-switch-label q-switch-label-or',\r\n switchRadio: 'q-switch-radio',\r\n rightAlign: 'q-right-align',\r\n transition: 'q-transition',\r\n collapsed: 'q-collapsed',\r\n treeContainer: 'q-tree-container',\r\n tree: 'q-tree',\r\n row: 'q-row',\r\n connector: 'q-connector',\r\n rule: 'q-rule',\r\n ruleSet: 'q-ruleset',\r\n invalidRuleSet: 'q-invalid-ruleset',\r\n emptyWarning: 'q-empty-warning',\r\n fieldControl: 'q-field-control',\r\n fieldControlSize: 'q-control-size',\r\n entityControl: 'q-entity-control',\r\n entityControlSize: 'q-control-size',\r\n operatorControl: 'q-operator-control',\r\n operatorControlSize: 'q-control-size',\r\n inputControl: 'q-input-control',\r\n inputControlSize: 'q-control-size',\r\n removeRuleIconContainer: 'remove-rule-icon-container',\r\n operatorMinWidth: 'operator-minwidth',\r\n inputDateTime: 'input-datetime',\r\n inputCheckbox: 'input-checkbox',\r\n inputNumber: 'input-number',\r\n inputTextField: 'input-textfield'\r\n };\r\n public defaultOperatorMap: { [key: string]: string[] } = {\r\n string: ['=', '!=', 'contains', 'like'],\r\n number: ['=', '!=', '>', '>=', '<', '<='],\r\n time: ['=', '!=', '>', '>=', '<', '<='],\r\n date: ['=', '!=', '>', '>=', '<', '<='],\r\n category: ['=', '!=', 'in', 'not in'],\r\n boolean: ['=']\r\n };\r\n @Input() disabled: boolean;\r\n @Input() data: RuleSet = { condition: 'and', rules: [] };\r\n\r\n // For ControlValueAccessor interface\r\n public onChangeCallback: () => void;\r\n public onTouchedCallback: () => any;\r\n\r\n @Input() allowRuleset: boolean = true;\r\n @Input() allowCollapse: boolean = false;\r\n @Input() emptyMessage: string = 'A ruleset cannot be empty. Please add a rule or remove it all together.';\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() operatorMap: { [key: string]: string[] };\r\n @Input() parentValue: RuleSet;\r\n @Input() config: QueryBuilderConfig = { fields: {} };\r\n @Input() parentArrowIconTemplate: QueryArrowIconDirective;\r\n @Input() parentInputTemplates: QueryList;\r\n @Input() parentOperatorTemplate: QueryOperatorDirective;\r\n @Input() parentFieldTemplate: QueryFieldDirective;\r\n @Input() parentEntityTemplate: QueryEntityDirective;\r\n @Input() parentSwitchGroupTemplate: QuerySwitchGroupDirective;\r\n @Input() parentButtonGroupTemplate: QueryButtonGroupDirective;\r\n @Input() parentRemoveButtonTemplate: QueryRemoveButtonDirective;\r\n @Input() parentEmptyWarningTemplate: QueryEmptyWarningDirective;\r\n @Input() parentChangeCallback: () => void;\r\n @Input() parentTouchedCallback: () => void;\r\n @Input() persistValueOnFieldChange: boolean = false;\r\n\r\n @ViewChild('treeContainer', {static: true}) treeContainer: ElementRef;\r\n\r\n @ContentChild(QueryButtonGroupDirective) buttonGroupTemplate: QueryButtonGroupDirective;\r\n @ContentChild(QuerySwitchGroupDirective) switchGroupTemplate: QuerySwitchGroupDirective;\r\n @ContentChild(QueryFieldDirective) fieldTemplate: QueryFieldDirective;\r\n @ContentChild(QueryEntityDirective) entityTemplate: QueryEntityDirective;\r\n @ContentChild(QueryOperatorDirective) operatorTemplate: QueryOperatorDirective;\r\n @ContentChild(QueryRemoveButtonDirective) removeButtonTemplate: QueryRemoveButtonDirective;\r\n @ContentChild(QueryEmptyWarningDirective) emptyWarningTemplate: QueryEmptyWarningDirective;\r\n @ContentChildren(QueryInputDirective) inputTemplates: QueryList;\r\n @ContentChild(QueryArrowIconDirective) arrowIconTemplate: QueryArrowIconDirective;\r\n\r\n private defaultTemplateTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'category', 'boolean', 'multiselect'];\r\n private defaultPersistValueTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'boolean'];\r\n private defaultEmptyList: any[] = [];\r\n private operatorsCache: { [key: string]: FieldOperator[] };\r\n private inputContextCache = new Map();\r\n private operatorContextCache = new Map();\r\n private fieldContextCache = new Map();\r\n private entityContextCache = new Map();\r\n private removeButtonContextCache = new Map();\r\n private buttonGroupContext: ButtonGroupContext;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, public translationsService: TranslationsProviderService) { }\r\n\r\n // ----------OnInit Implementation----------\r\n\r\n ngOnInit() { }\r\n\r\n // ----------OnChanges Implementation----------\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const config = this.config;\r\n const type = typeof config;\r\n if (type === 'object') {\r\n this.fields = Object.keys(config.fields).map((value) => {\r\n const field = config.fields[value];\r\n field.value = field.value || value;\r\n return field;\r\n });\r\n if (config.entities) {\r\n this.entities = Object.keys(config.entities).map((value) => {\r\n const entity = config.entities[value];\r\n entity.value = entity.value || value;\r\n return entity;\r\n });\r\n } else {\r\n this.entities = null;\r\n }\r\n this.operatorsCache = {};\r\n } else {\r\n throw new Error(`Expected 'config' must be a valid object, got ${type} instead.`);\r\n }\r\n }\r\n\r\n // ----------Validator Implementation----------\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const errors: { [key: string]: any } = {};\r\n const ruleErrorStore = [];\r\n let hasErrors = false;\r\n\r\n if (!this.config.allowEmptyRulesets && this.checkEmptyRuleInRuleset(this.data)) {\r\n errors.empty = 'Empty rulesets are not allowed.';\r\n hasErrors = true;\r\n }\r\n\r\n this.validateRulesInRuleset(this.data, ruleErrorStore);\r\n\r\n if (ruleErrorStore.length) {\r\n errors.rules = ruleErrorStore;\r\n hasErrors = true;\r\n }\r\n return hasErrors ? errors : null;\r\n }\r\n\r\n // ----------ControlValueAccessor Implementation----------\r\n\r\n @Input()\r\n get value(): RuleSet {\r\n return this.data;\r\n }\r\n set value(value: RuleSet) {\r\n // When component is initialized without a formControl, null is passed to value\r\n this.data = value || { condition: 'and', rules: [] };\r\n this.handleDataChange();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = () => fn(this.data);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = () => fn(this.data);\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // ----------END----------\r\n\r\n translate(translationKey) {\r\n return this.translationsService.translate(translationKey);\r\n }\r\n\r\n getDisabledState = (): boolean => {\r\n return this.disabled;\r\n }\r\n\r\n displayFn = value => {\r\n \r\n if (value && this.config) {\r\n const fieldObj = this.config.fields[value];\r\n\r\n if (fieldObj) {\r\n return fieldObj.name;\r\n }\r\n }\r\n\r\n return value;\r\n\r\n }\r\n\r\n getTooltipSearchField(field) {\r\n if (field && this.config) {\r\n const fieldObj = this.config.fields[field];\r\n\r\n if (fieldObj) {\r\n return fieldObj.name;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n // this is for retrieving galmodelname for field of type=category (dropdown) - need galregmodelname for sem-select\r\n getGalModelNameFromRule(rule: Rule)\r\n {\r\n if (rule !== null && rule.field !== null && this.config !== null && this.config.fields !== null)\r\n {\r\n const field: Field = this.config.fields[rule.field];\r\n\r\n if (field !== null)\r\n {\r\n return field.galregname;\r\n }\r\n }\r\n\r\n return \"\";\r\n } \r\n\r\n findTemplateForRule(rule: Rule): TemplateRef {\r\n const type = this.getInputType(rule.field, rule.operator);\r\n if (type) {\r\n const queryInput = this.findQueryInput(type);\r\n if (queryInput) {\r\n return queryInput.template;\r\n } else {\r\n if (this.defaultTemplateTypes.indexOf(type) === -1) {\r\n console.warn(`Could not find template for field with type: ${type}`);\r\n }\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n findQueryInput(type: string): QueryInputDirective {\r\n const templates = this.parentInputTemplates || this.inputTemplates;\r\n return templates.find((item) => item.queryInputType === type);\r\n }\r\n\r\n getOperators(field: string): FieldOperator[] {\r\n if (this.operatorsCache[field]) {\r\n return this.operatorsCache[field];\r\n }\r\n let operators = this.defaultEmptyList;\r\n const fieldObject = this.config.fields[field];\r\n\r\n if (this.config.getOperators) {\r\n return this.config.getOperators(field, fieldObject);\r\n }\r\n\r\n let type = null;\r\n if (fieldObject)\r\n {\r\n type = fieldObject.type;\r\n }\r\n \r\n\r\n if (fieldObject && fieldObject.operators) {\r\n operators = fieldObject.operators;\r\n } else if (type) {\r\n operators = (this.operatorMap && this.operatorMap[type]) || this.defaultOperatorMap[type] || this.defaultEmptyList;\r\n if (operators.length === 0) {\r\n console.warn(\r\n `No operators found for field '${field}' with type ${fieldObject.type}. ` +\r\n `Please define an 'operators' property on the field or use the 'operatorMap' binding to fix this.`);\r\n }\r\n if (fieldObject.nullable) {\r\n operators = operators.concat(['is null', 'is not null']);\r\n }\r\n } else {\r\n console.warn(`No 'type' property found on field: '${field}'`);\r\n }\r\n\r\n // Cache reference to array object, so it won't be computed next time and trigger a rerender.\r\n this.operatorsCache[field] = operators;\r\n return operators;\r\n }\r\n\r\n getFields(entity: string): Field[] {\r\n if (this.entities && entity) {\r\n return this.fields.filter((field) => {\r\n return field && field.entity === entity;\r\n });\r\n } else {\r\n return this.fields;\r\n }\r\n }\r\n\r\n getFieldsForAutoComplete(entity: string, currentSearchFieldValue: string): Field[] {\r\n if (this.entities && entity) {\r\n return this.fields.filter((field) => {\r\n return field && field.entity === entity;\r\n });\r\n } else if (currentSearchFieldValue) {\r\n\r\n const trimSearchValue = currentSearchFieldValue.trim();\r\n\r\n return this.fields.filter(x => x.name.toLocaleLowerCase().includes(trimSearchValue)); \r\n\r\n } else {\r\n return this.fields;\r\n }\r\n }\r\n\r\n getInputType(field: string, operator: FieldOperator): string {\r\n if (this.config.getInputType) {\r\n return this.config.getInputType(field, operator);\r\n }\r\n\r\n let fieldExistsInConfig = true;\r\n if (!this.config.fields[field]) {\r\n fieldExistsInConfig = false;\r\n //throw new Error(`No configuration for field '${field}' could be found! Please add it to config.fields.`);\r\n }\r\n\r\n if (fieldExistsInConfig === true)\r\n {\r\n const type = this.config.fields[field].type;\r\n switch (operator.Value) {\r\n case 'is null':\r\n case 'is not null':\r\n return null; // No displayed component\r\n case 'in':\r\n case 'not in':\r\n return type === 'category' || type === 'boolean' ? 'multiselect' : type;\r\n default:\r\n return type;\r\n }\r\n } \r\n }\r\n\r\n getOptions(field: string): Option[] {\r\n if (this.config.getOptions) {\r\n return this.config.getOptions(field);\r\n }\r\n\r\n const fieldObj = this.config.fields[field];\r\n\r\n if (fieldObj) {\r\n fieldObj.options;\r\n } else {\r\n this.defaultEmptyList;\r\n } \r\n }\r\n\r\n getClassNames(...args): string {\r\n const clsLookup = this.classNames ? this.classNames : this.defaultClassNames;\r\n const classNames = args.map((id) => clsLookup[id] || this.defaultClassNames[id]).filter((c) => !!c);\r\n return classNames.length ? classNames.join(' ') : null;\r\n }\r\n\r\n getDefaultField(entity: Entity): Field {\r\n if (!entity) {\r\n return null;\r\n } else if (entity.defaultField !== undefined) {\r\n return this.getDefaultValue(entity.defaultField);\r\n } else {\r\n const entityFields = this.fields.filter((field) => {\r\n return field && field.entity === entity.value;\r\n });\r\n if (entityFields && entityFields.length) {\r\n return entityFields[0];\r\n } else {\r\n console.warn(`No fields found for entity '${entity.name}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n getDefaultOperator(field: Field): FieldOperator {\r\n\r\n if (field && field.defaultOperator !== undefined) {\r\n return this.getDefaultValue(field.defaultOperator);\r\n } else {\r\n let operators = null;\r\n\r\n if (field) {\r\n operators = this.getOperators(field.value);\r\n }\r\n\r\n if (operators && operators.length) {\r\n return operators[0];\r\n } else {\r\n console.warn(`No operators found for field. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n } \r\n }\r\n\r\n addRule(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRule) {\r\n\r\n this.config.addRule(parent);\r\n\r\n } else {\r\n\r\n // galisweb task #5719, when adding default no field is selected\r\n\r\n //const field = this.fields[0];\r\n //parent.rules = parent.rules.concat([{\r\n // field: field.value,\r\n // operator: this.getDefaultOperator(field),\r\n // value: this.getDefaultValue(field.defaultValue),\r\n // entity: field.entity\r\n //}]);\r\n parent.rules = parent.rules.concat([{\r\n field: undefined,\r\n operator: undefined,\r\n value: undefined,\r\n entity: undefined\r\n }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRule(rule: Rule, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.removeRule) {\r\n this.config.removeRule(rule, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== rule);\r\n }\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.removeButtonContextCache.delete(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n addRuleSet(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRuleSet) {\r\n this.config.addRuleSet(parent);\r\n } else {\r\n parent.rules = parent.rules.concat([{ condition: 'and', rules: [] }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRuleSet(ruleset?: RuleSet, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n ruleset = ruleset || this.data;\r\n parent = parent || this.parentValue;\r\n if (this.config.removeRuleSet) {\r\n this.config.removeRuleSet(ruleset, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== ruleset);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n transitionEnd(e: Event): void {\r\n this.treeContainer.nativeElement.style.maxHeight = null;\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.computedTreeContainerHeight();\r\n setTimeout(() => {\r\n this.data.collapsed = !this.data.collapsed;\r\n }, 100);\r\n }\r\n\r\n computedTreeContainerHeight(): void {\r\n const nativeElement: HTMLElement = this.treeContainer.nativeElement;\r\n if (nativeElement && nativeElement.firstElementChild) {\r\n nativeElement.style.maxHeight = (nativeElement.firstElementChild.clientHeight + 8) + 'px';\r\n }\r\n }\r\n\r\n changeCondition(value: string): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.data.condition = value;\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeOperator(rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n if (this.config.coerceValueForOperator) {\r\n rule.value = this.config.coerceValueForOperator(rule.operator, rule.value, rule);\r\n } else {\r\n rule.value = this.coerceValueForOperator(rule.operator, rule.value, rule);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n coerceValueForOperator(operator: FieldOperator, value: any, rule: Rule): any {\r\n const inputType: string = this.getInputType(rule.field, operator);\r\n if (inputType === 'multiselect' && !Array.isArray(value)) {\r\n return [value];\r\n }\r\n return value;\r\n }\r\n\r\n changeInput(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeField(fieldValue: string, rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const inputContext = this.inputContextCache.get(rule);\r\n const currentField = inputContext && inputContext.field;\r\n\r\n const nextField: Field = this.config.fields[fieldValue];\r\n\r\n const nextValue = this.calculateFieldChangeValue(\r\n currentField, nextField, rule.value);\r\n\r\n if (nextValue !== undefined) {\r\n rule.value = nextValue;\r\n } else {\r\n delete rule.value;\r\n }\r\n\r\n rule.operator = this.getDefaultOperator(nextField);\r\n\r\n // Create new context objects so templates will automatically update\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.getInputContext(rule);\r\n this.getFieldContext(rule);\r\n this.getOperatorContext(rule);\r\n this.getEntityContext(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeEntity(entityValue: string, rule: Rule, index: number, data: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n let i = index;\r\n let rs = data;\r\n const entity: Entity = this.entities.find((e) => e.value === entityValue);\r\n const defaultField: Field = this.getDefaultField(entity);\r\n if (!rs) {\r\n rs = this.data;\r\n i = rs.rules.findIndex((x) => x === rule);\r\n }\r\n rule.field = defaultField.value;\r\n rs.rules[i] = rule;\r\n if (defaultField) {\r\n this.changeField(defaultField.value, rule);\r\n } else {\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n }\r\n\r\n getDefaultValue(defaultValue: any): any {\r\n switch (typeof defaultValue) {\r\n case 'function':\r\n return defaultValue();\r\n default:\r\n return defaultValue;\r\n }\r\n }\r\n\r\n getOperatorTemplate(): TemplateRef {\r\n const t = this.parentOperatorTemplate || this.operatorTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getFieldTemplate(): TemplateRef {\r\n const t = this.parentFieldTemplate || this.fieldTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEntityTemplate(): TemplateRef {\r\n const t = this.parentEntityTemplate || this.entityTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getArrowIconTemplate(): TemplateRef {\r\n const t = this.parentArrowIconTemplate || this.arrowIconTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getButtonGroupTemplate(): TemplateRef {\r\n const t = this.parentButtonGroupTemplate || this.buttonGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getSwitchGroupTemplate(): TemplateRef {\r\n const t = this.parentSwitchGroupTemplate || this.switchGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getRemoveButtonTemplate(): TemplateRef {\r\n const t = this.parentRemoveButtonTemplate || this.removeButtonTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEmptyWarningTemplate(): TemplateRef {\r\n const t = this.parentEmptyWarningTemplate || this.emptyWarningTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getQueryItemClassName(local: LocalRuleMeta): string {\r\n let cls = this.getClassNames('row', 'connector', 'transition');\r\n cls += ' ' + this.getClassNames(local.ruleset ? 'ruleSet' : 'rule');\r\n if (local.invalid) {\r\n cls += ' ' + this.getClassNames('invalidRuleSet');\r\n }\r\n return cls;\r\n }\r\n\r\n getButtonGroupContext(): ButtonGroupContext {\r\n if (!this.buttonGroupContext) {\r\n this.buttonGroupContext = {\r\n addRule: this.addRule.bind(this),\r\n addRuleSet: this.allowRuleset && this.addRuleSet.bind(this),\r\n removeRuleSet: this.allowRuleset && this.parentValue && this.removeRuleSet.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n return this.buttonGroupContext;\r\n }\r\n\r\n getRemoveButtonContext(rule: Rule): RemoveButtonContext {\r\n if (!this.removeButtonContextCache.has(rule)) {\r\n this.removeButtonContextCache.set(rule, {\r\n removeRule: this.removeRule.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: rule\r\n });\r\n }\r\n return this.removeButtonContextCache.get(rule);\r\n }\r\n\r\n getFieldContext(rule: Rule): FieldContext {\r\n if (!this.fieldContextCache.has(rule)) {\r\n this.fieldContextCache.set(rule, {\r\n onChange: this.changeField.bind(this),\r\n getFields: this.getFields.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n fields: this.fields,\r\n $implicit: rule\r\n });\r\n }\r\n return this.fieldContextCache.get(rule);\r\n }\r\n\r\n getEntityContext(rule: Rule): EntityContext {\r\n if (!this.entityContextCache.has(rule)) {\r\n this.entityContextCache.set(rule, {\r\n onChange: this.changeEntity.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n entities: this.entities,\r\n $implicit: rule\r\n });\r\n }\r\n return this.entityContextCache.get(rule);\r\n }\r\n\r\n getSwitchGroupContext(): SwitchGroupContext {\r\n return {\r\n onChange: this.changeCondition.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getArrowIconContext(): ArrowIconContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getEmptyWarningContext(): EmptyWarningContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n message: this.emptyMessage,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getOperatorContext(rule: Rule): OperatorContext {\r\n if (!this.operatorContextCache.has(rule)) {\r\n this.operatorContextCache.set(rule, {\r\n onChange: this.changeOperator.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n operators: this.getOperators(rule.field),\r\n $implicit: rule\r\n });\r\n }\r\n return this.operatorContextCache.get(rule);\r\n }\r\n\r\n getInputContext(rule: Rule): InputContext {\r\n if (!this.inputContextCache.has(rule)) {\r\n this.inputContextCache.set(rule, {\r\n onChange: this.changeInput.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n options: this.getOptions(rule.field),\r\n field: this.config.fields[rule.field],\r\n $implicit: rule\r\n });\r\n }\r\n return this.inputContextCache.get(rule);\r\n }\r\n\r\n private calculateFieldChangeValue(\r\n currentField: Field,\r\n nextField: Field,\r\n currentValue: any\r\n ): any {\r\n\r\n if (this.config.calculateFieldChangeValue != null) {\r\n return this.config.calculateFieldChangeValue(\r\n currentField, nextField, currentValue);\r\n }\r\n\r\n const canKeepValue = () => {\r\n if (currentField == null || nextField == null) {\r\n return false;\r\n }\r\n return currentField.type === nextField.type\r\n && this.defaultPersistValueTypes.indexOf(currentField.type) !== -1;\r\n };\r\n\r\n if (this.persistValueOnFieldChange && canKeepValue()) {\r\n return currentValue;\r\n }\r\n\r\n if (nextField && nextField.defaultValue !== undefined) {\r\n return this.getDefaultValue(nextField.defaultValue);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private checkEmptyRuleInRuleset(ruleset: RuleSet): boolean {\r\n if (!ruleset || !ruleset.rules || ruleset.rules.length === 0) {\r\n return true;\r\n } else {\r\n return ruleset.rules.some((item: RuleSet) => {\r\n if (item.rules) {\r\n return this.checkEmptyRuleInRuleset(item);\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private validateRulesInRuleset(ruleset: RuleSet, errorStore: any[]) {\r\n if (ruleset && ruleset.rules && ruleset.rules.length > 0) {\r\n ruleset.rules.forEach((item) => {\r\n if ((item as RuleSet).rules) {\r\n return this.validateRulesInRuleset(item as RuleSet, errorStore);\r\n } else if ((item as Rule).field) {\r\n const field = this.config.fields[(item as Rule).field];\r\n if (field && field.validator && field.validator.apply) {\r\n const error = field.validator(item as Rule, ruleset);\r\n if (error != null) {\r\n errorStore.push(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private handleDataChange(): void {\r\n this.changeDetectorRef.markForCheck();\r\n if (this.onChangeCallback) {\r\n this.onChangeCallback();\r\n }\r\n if (this.parentChangeCallback) {\r\n this.parentChangeCallback();\r\n }\r\n }\r\n\r\n private handleTouched(): void {\r\n if (this.onTouchedCallback) {\r\n this.onTouchedCallback();\r\n }\r\n if (this.parentTouchedCallback) {\r\n this.parentTouchedCallback();\r\n }\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryButtonGroup]'})\r\nexport class QueryButtonGroupDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryEmptyWarning]'})\r\nexport class QueryEmptyWarningDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryEntity]'})\r\nexport class QueryEntityDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryField]'})\r\nexport class QueryFieldDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryInput]'})\r\nexport class QueryInputDirective {\r\n /** Unique name for query input type. */\r\n @Input()\r\n get queryInputType(): string { return this._type; }\r\n set queryInputType(value: string) {\r\n // If the directive is set without a type (updated programatically), then this setter will\r\n // trigger with an empty string and should not overwrite the programatically set value.\r\n if (!value) { return; }\r\n this._type = value;\r\n }\r\n private _type: string;\r\n\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryOperator]'})\r\nexport class QueryOperatorDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryRemoveButton]'})\r\nexport class QueryRemoveButtonDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[querySwitchGroup]'})\r\nexport class QuerySwitchGroupDirective {\r\n constructor(public template: TemplateRef) {}\r\n}\r\n","import { Component, OnInit, Input, AfterContentInit, ViewContainerRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { SemHttpUtility } from '../../../shared/helpers/sem-http-utility';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport * as _ from \"lodash\";\r\n\r\n\r\n@Component({\r\n selector: 'sem-query',\r\n templateUrl: './sem-query.component.html',\r\n styleUrls: ['./sem-query.component.css']\r\n})\r\nexport class SemQueryComponent extends SemControlComponent implements OnInit {\r\n\r\n @Input() controlTitle: string;\r\n @Input() redirectLink: string;\r\n @Input() searchQuery: any;\r\n\r\n private searchServiceSubscriber = null;\r\n public resultItems: any = [];\r\n public pages: any = [];\r\n public previousPage = 0;\r\n public nextPage = 0;\r\n private interpolateMainSearchQueryObject: any;\r\n\r\n super() {}\r\n\r\n ngOnDestroy() { \r\n if (this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n } \r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit;\r\n\r\n this.route.queryParams.subscribe(params => {\r\n this.params = params;\r\n }); \r\n \r\n this.modelChangeNotifier.subscribe((p_model) => {\r\n \r\n let formModel = p_model as any;\r\n let stringSearchQuery = JSON.stringify(this.searchQuery);\r\n\r\n // use custom delimiter ${ }\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n\r\n // interpolate\r\n let compiled = _.template( stringSearchQuery );\r\n let compiledSearchQuery = compiled( formModel );\r\n\r\n if(compiledSearchQuery != null && typeof compiledSearchQuery != \"undefined\"){\r\n\r\n this.interpolateMainSearchQueryObject = JSON.parse(compiledSearchQuery); \r\n this.performSearch(); \r\n }\r\n });\r\n } \r\n\r\n private performSearch() {\r\n if (this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n }\r\n\r\n this.resultItems = [];\r\n\r\n this.searchServiceSubscriber = this.searchService.performSearch(this.interpolateMainSearchQueryObject, null,null, null).subscribe(data => { \r\n\r\n for (var i = 0; i < data[\"Models\"].length; i++) { \r\n\r\n let item = data[\"Models\"][i].Model;\r\n item[\"ItemLink\"] = this.redirectLink + \"?id=\" + data[\"Models\"][i].Model[\"Id\"]; \r\n\r\n this.resultItems.push(item);\r\n\r\n // handle pagination\r\n this.pages = [];\r\n\r\n // convert to int \r\n let totalCountNumber = data[\"TotalCount\"];\r\n let currentPage = data[\"Page\"];\r\n \r\n\r\n // only show pages if more than 1\r\n if(totalCountNumber != 0 && totalCountNumber > data[\"PageSize\"]){\r\n\r\n let pageNum = (totalCountNumber + data[\"PageSize\"] - 1) / data[\"PageSize\"]; \r\n pageNum = Math.floor(pageNum);\r\n \r\n let from = 0;\r\n let to = pageNum;\r\n \r\n from = currentPage - 2;\r\n if(from <= 0){\r\n from = 1;\r\n }\r\n \r\n to = from + 5;\r\n \r\n if(to > pageNum){\r\n to = pageNum+1;\r\n }\r\n \r\n this.previousPage = currentPage - 1;\r\n if(this.previousPage <= 0){\r\n this.previousPage = 0;\r\n }\r\n \r\n this.nextPage = currentPage + 1;\r\n if(this.nextPage > pageNum){\r\n this.nextPage = 0;\r\n }\r\n \r\n for (let i = from; i < to; i++) {\r\n \r\n let active = false; \r\n if(i == currentPage){\r\n active = true;\r\n }\r\n \r\n this.pages.push({ \"Number\": i , \"Active\": active});\r\n } \r\n } \r\n }\r\n \r\n }, error => { \r\n //console.log(\"Sem query error search: \"+ error);\r\n });\r\n }\r\n\r\n redirectToRelatedItem(formLink: string) {\r\n this.utility.processNavigationUrl(formLink);\r\n }\r\n\r\n pageChanged(pageNumber: any) {\r\n if(pageNumber != null && typeof pageNumber != \"undefined\"){\r\n // change \"Page\" parameter of interpolateSearchQueryObject\r\n if(this.interpolateMainSearchQueryObject != null && typeof this.interpolateMainSearchQueryObject != \"undefined\"){\r\n this.interpolateMainSearchQueryObject[\"Page\"] = pageNumber;\r\n this.performSearch();\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, AfterContentInit } from '@angular/core';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { unescape } from 'querystring';\r\n\r\n@Component({\r\n selector: 'sem-radio-button',\r\n templateUrl: './sem-radio-button.component.html',\r\n styleUrls: ['./sem-radio-button.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemRadioButtonComponent, multi: true }\r\n ]\r\n})\r\nexport class SemRadioButtonComponent extends ValueAccessorBase implements OnInit, AfterContentInit {\r\n\r\n @Input() answers: any;\r\n @Input() subBindingProperty: any;\r\n @Input() itemsType: any;\r\n\r\n super(){}\r\n\r\n ngOnInit() {\r\n this.loadItems();\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n ngAfterContentInit() {\r\n\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n loadItems() {\r\n if (this.itemsType.length > 0) {\r\n this.restProviderService.getDataGET(\"api/registry/\" + this.itemsType + \"/dropdown\", \"application/json\").subscribe(data => {\r\n let result = JSON.parse(data);\r\n\r\n for (var i = 0; i < result.length; i++) {\r\n\r\n this.answers = [...this.answers, result[i]];\r\n\r\n }\r\n\r\n //I know, very bad....\r\n //setTimeout(function () {\r\n //}, 3000);\r\n //\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n }, error => {\r\n this.changeDetection.detectChanges();\r\n //console.log(\"Error retrieving data for dropdown\");\r\n //console.log(error);\r\n });\r\n }\r\n }\r\n\r\n public get parsedAnswers() {\r\n try {\r\n if (this.itemsType.length == 0) {\r\n //if (this.answers.length == 1) {\r\n return this.answers;\r\n //}\r\n }\r\n return this.answers;\r\n }\r\n catch (e) {\r\n return [];\r\n }\r\n }\r\n\r\n compareFn(c1: any, c2: any): boolean {\r\n return c1 && c2 ? c1.Id === c2.Id : c1 === c2;\r\n }\r\n\r\n protected valueChanged() {\r\n\r\n if (typeof this.answers != \"undefined\") {\r\n for (var i = 0; i < this.answers.length; i++) {\r\n if (this.answers[i].Id == this.value[\"Id\"]) {\r\n this.value = this.answers[i];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected valueModified() {\r\n if (this.itemsType.length == 0) {\r\n if (typeof this.value[\"Value\"] != \"undefined\") {\r\n this.value = this.value[\"Value\"];\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ɵɵstylePropInterpolateV } from '@angular/core';\r\nimport {\r\n NG_VALUE_ACCESSOR, Validators,\r\n} from '@angular/forms';\r\nimport { NavigationStart } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\ninterface InputSegment {\r\n type: Number; //type=1 Input; type = 2 Label;\r\n segmentValue: string;\r\n inputSize: Number;\r\n maxLength: string;\r\n segmentFormat: string;\r\n defaultSegment: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'sem-regex-input',\r\n templateUrl: './sem-regex-input.component.html',\r\n styleUrls: ['./sem-regex-input.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemRegexInputComponent, multi: true }\r\n ]\r\n})\r\nexport class SemRegexInputComponent extends ValueAccessorBase implements OnInit, OnDestroy {\r\n\r\n ngOnDestroy() {\r\n\r\n this.dfms._bindValueChange.next({});\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n if(this.sub2){\r\n this.sub2.unsubscribe();\r\n }\r\n }\r\n\r\n @Input() formatString: any;\r\n @Input() regEx: any;\r\n @Input() segmentLeadingZero: boolean;\r\n @Input() cutSegmentDelimeterWhenEmpty: boolean;\r\n @Input() defaultSegmentIndex: number;\r\n @Input() preSegmentsText: string;\r\n segments: InputSegment[] = [];\r\n splitters: string[] = [\"-\", \"/\", \" \"];\r\n sub: Subscription;\r\n sub2: Subscription;\r\n\r\n super() { }\r\n\r\n ngAfterContentInit() {\r\n this.sub = this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n //Boštjan:30.09.2022, Moved clearing of segments in here as well, cause when navigating to new form, old model still get passed in this event. \r\n //TODO:Refactor model value changed event\r\n\r\n //Boštjan: 10.01.2023, we parse model only on saved objects... Need to refactor model value changed\r\n if (window.location.href.includes(\"?id=\")) {\r\n this.segments = [];\r\n this.generateSegments(this.formatString);\r\n\r\n var propValue = model[this.bindingProperty];\r\n\r\n //if (name != null && typeof name != \"undefined\")\r\n if (propValue != null && typeof propValue != \"undefined\") {\r\n this.applyValueToSegments(propValue);\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n //test\r\n var bbe = this.segmentLeadingZero;\r\n var oce = this.cutSegmentDelimeterWhenEmpty;\r\n //end of test\r\n\r\n //we need to clear segments first\r\n this.segments = [];\r\n this.generateSegments(this.formatString);\r\n\r\n var seg = this.value;\r\n var valueToBeParsed = this.model[this.bindingProperty]\r\n\r\n /*this.modelChangeNotifier.subscribe((model)=>{\r\n //what do we have here\r\n var propValue = model[this.bindingProperty];\r\n\r\n if(propValue != null && typeof propValue != \"undefined\"){\r\n this.applyValueToSegments(propValue);\r\n }\r\n });*/\r\n\r\n this.sub2 = this.dfms.bindValueChange.subscribe((val: any) => {\r\n if (val != null && typeof val != \"undefined\") {\r\n if (val.bindingProperty != \"undefined\" && this.bindingProperty == val.bindingProperty) {\r\n this.applyValueToSegments(val.value.toString());\r\n\r\n //TODO: Check if this is ok with Tadej. When btn on inventory book item inventory number is clicked, value is not assigned to the model\r\n this.changeBindingPropertyValue();\r\n }\r\n }\r\n })\r\n\r\n }\r\n\r\n applyValueToSegments(propVal) {\r\n var propTrimmed = propVal.trim();\r\n var valueSegments = this.splitMulti(propTrimmed, this.splitters)\r\n this.clearValueSegments();\r\n\r\n if (valueSegments.length == 1 && (this.defaultSegmentIndex != null && typeof this.defaultSegmentIndex != \"undefined\")) {\r\n this.segments[this.defaultSegmentIndex].segmentValue = this.removeLeadingZeroesAndReturnValue(this.segments[this.defaultSegmentIndex], propVal);\r\n }\r\n else {\r\n for (let z = 0; z < valueSegments.length; z++) {\r\n //account for separator segments\r\n var rs = z * 2;\r\n this.segments[rs].segmentValue = this.removeLeadingZeroesAndReturnValue(this.segments[rs], valueSegments[z]);\r\n }\r\n }\r\n\r\n }\r\n\r\n clearValueSegments() {\r\n for (let i = 0; i < this.segments.length; i++) {\r\n if (this.segments[i].type == 1) {\r\n this.segments[i].segmentValue = \"\";\r\n }\r\n }\r\n }\r\n\r\n generateSegments(format) {\r\n\r\n var valueSegments = this.splitMulti(format, this.splitters)\r\n var splitterSegments = [];\r\n //now we need to get \r\n for (let i = 0; i < format.length; i++) {\r\n if (format[i] == \"-\" || format[i] == \"/\" || format[i] == ' ') {\r\n splitterSegments.push(format[i])\r\n }\r\n }\r\n\r\n //now we create our segments to\r\n for (let z = 0; z < valueSegments.length; z++) {\r\n var newSegment = {} as InputSegment;\r\n newSegment.type = 1;\r\n newSegment.inputSize = valueSegments[z].length + 1;\r\n newSegment.maxLength = valueSegments[z].length;\r\n newSegment.segmentFormat = valueSegments[z];\r\n this.segments.push(newSegment);\r\n //we need to add a separator if it exists\r\n if (splitterSegments.length > z) {\r\n var sg = {} as InputSegment;\r\n sg.type = 2;\r\n sg.segmentValue = splitterSegments[z];\r\n this.segments.push(sg);\r\n }\r\n }\r\n\r\n //set the default segment\r\n if (this.defaultSegmentIndex != null && typeof this.defaultSegmentIndex != \"undefined\") {\r\n this.segments[this.defaultSegmentIndex].defaultSegment = true;\r\n }\r\n\r\n }\r\n\r\n changeBindingPropertyValue() {\r\n //we need to get values from properties to binding property\r\n var val: string = \"\";\r\n var i = 0;\r\n this.segments.forEach(segment => {\r\n if (segment.segmentValue != null && typeof segment.segmentValue != \"undefined\") {\r\n var segVal = this.addLeadingZeroesAndReturnValue(segment, segment.segmentValue);\r\n val = val.concat(segVal);\r\n }\r\n else {\r\n if (this.cutSegmentDelimeterWhenEmpty) {\r\n val = val.substring(0, val.length - 1);\r\n }\r\n }\r\n i++;\r\n });\r\n\r\n this.model[this.bindingProperty] = val;\r\n }\r\n\r\n inputChange(value, segmentIndex) {\r\n this.changeBindingPropertyValue();\r\n var newV = this.model[this.bindingProperty];\r\n }\r\n\r\n splitMulti(str, tokens) {\r\n var tempChar = tokens[0]; // We can use the first token as a temporary join character\r\n for (var i = 1; i < tokens.length; i++) {\r\n str = str.split(tokens[i]).join(tempChar);\r\n }\r\n str = str.split(tempChar);\r\n return str;\r\n }\r\n\r\n keyUp(event, index) {\r\n //skip backspace\r\n /*if (event.keyCode != 8) {\r\n var prePt = '^'.concat(this.regEx).concat('$')\r\n var pattern = new RegExp(prePt);\r\n //var newV = this.model[this.bindingProperty];\r\n //newV = newV.trim();\r\n\r\n var inputVal = \"\";\r\n //we need to put current key into segment\r\n for (let i = 0; i < this.segments.length; i++) {\r\n if (this.segments[i].segmentValue != null && typeof this.segments[i].segmentValue != \"undefined\") {\r\n if (i == index) {\r\n inputVal = inputVal.concat(this.segments[i].segmentValue).concat(event.key);\r\n }\r\n else {\r\n inputVal = inputVal.concat(this.segments[i].segmentValue);\r\n }\r\n }\r\n }\r\n\r\n var u = pattern.test(inputVal)\r\n\r\n if (!u) {\r\n return false;\r\n }\r\n }*/\r\n }\r\n\r\n removeLeadingZeroesAndReturnValue(segment: InputSegment, value) {\r\n\r\n //chek if we only have numbers\r\n if (/^[n\\n]+$/.test(segment.segmentFormat)) {\r\n if (value != null && value != \"undefined\") {\r\n return value.replace(/^0+/, '');\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n addLeadingZeroesAndReturnValue(segment: InputSegment, value) {\r\n\r\n //chek if we only have numbers\r\n if (/^[n\\n]+$/.test(segment.segmentFormat)) {\r\n if (value != null && value != \"undefined\") {\r\n return value.padStart(segment.segmentFormat.length, \"0\")\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n cutSegmentDelimeterIfSegmentEmpty() {\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DatePipe } from '@angular/common';\r\nimport { SemGenerateDialogComponent } from '../dialogs/sem-generate-dialog/sem-generate-dialog.component';\r\n\r\n@Component({\r\n selector: 'sem-report-generator',\r\n templateUrl: './sem-report-generator.component.html',\r\n styleUrls: ['./sem-report-generator.component.css']\r\n})\r\nexport class SemReportGeneratorComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() bindingProperty: any = \"\";\r\n @Input() urlBindingProperty: any = null;\r\n @Input() reportId: any = null;\r\n @Input() dialogTitle: any = null;\r\n @Input() propertyPath: any = null;\r\n\r\n @ViewChild(\"input\", { read: FormControl }) input: FormControl;\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n generate() {\r\n\r\n if (!this.checkForDisabled(this.bindingProperty)) {\r\n this.value = new Date();\r\n var datePipe = new DatePipe('en-US');\r\n this.dfms.assign(this.model, this.bindingProperty, new Date(), true);\r\n\r\n var parsedJS = this.reportId.split(\"[\").join(\"[\\\"\");\r\n parsedJS = parsedJS.split(\"]\").join(\"\\\"]\");\r\n\r\n var result = eval(\"function reportId(model){ \" + parsedJS + \" } reportId(this.model);\");\r\n\r\n var parsedPathJS = this.propertyPath.split(\"[\").join(\"[\\\"\");\r\n parsedPathJS = parsedPathJS.split(\"]\").join(\"\\\"]\");\r\n\r\n //console.log(\"Report ID: \", result);\r\n\r\n //data: { reportId: result, entityId: eval(\"this.\" + parsedPathJS), title:this.dialogTitle }\r\n\r\n if (typeof result != \"undefined\" && result) {\r\n const dialogRef = this.dialog.open(SemGenerateDialogComponent, {\r\n data: { reportId: result, entityId: this.model[\"PenaltyData\"][\"Id\"], title: this.dialogTitle }\r\n });\r\n }\r\n }\r\n }\r\n\r\n getProp(prop, expression) {\r\n if (!this.checkForDisabled(this.bindingProperty)) {\r\n let value = \"\";\r\n\r\n if (expression) {\r\n let midValue = eval(expression);\r\n //let midValue = new Function(expression).call(this);\r\n value = midValue;\r\n }\r\n else {\r\n value = this.dfms.getValue(this.model, prop);\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n setProp(prop, value) {\r\n if (!this.checkForDisabled(this.bindingProperty)) {\r\n this.dfms.assign(this.model, prop, value, true);\r\n //this.form.controls[prop + this.sectionId].setValue(value);\r\n }\r\n }\r\n\r\n setClasses() {\r\n return {\r\n 'generated': this.model[this.bindingProperty],\r\n 'not-generated': !this.model[this.bindingProperty],\r\n 'disabled-field': this.checkForDisabled(this.bindingProperty)\r\n };\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SemTextInputComponent } from '../sem-text-input/sem-text-input.component';\r\n\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FormGroup, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-rich-text-editor',\r\n templateUrl: './sem-rich-text-editor.component.html',\r\n styleUrls: ['./sem-rich-text-editor.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemRichTextEditorComponent, multi: true }\r\n ]\r\n})\r\nexport class SemRichTextEditorComponent extends ValueAccessorBase implements OnInit {\r\n public textFormat : any = \"\";\r\n\r\n super() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n \r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-search-bar',\r\n templateUrl: './sem-search-bar.component.html',\r\n styleUrls: ['./sem-search-bar.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemSearchBarComponent, multi: true }\r\n ]\r\n})\r\n\r\nexport class SemSearchBarComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() fields: any;\r\n @Input() customPlaceholder: string;\r\n @Input() dashboardUrlSearch: string;\r\n @Input() dashboardUrlSearchPath: string; \r\n\r\n searchTerm: string;\r\n \r\n super() { }\r\n\r\n ngOnInit() {\r\n if(this.customPlaceholder == null || typeof this.customPlaceholder == \"undefined\"){\r\n this.customPlaceholder = \"galis_js_dashboard_whatareyoulookingfor\";\r\n }\r\n }\r\n\r\n dashboardSearch(event){\r\n if(this.dashboardUrlSearchPath != null && typeof this.dashboardUrlSearchPath != \"undefined\"){\r\n event.preventDefault();\r\n let urlsearch = this.dashboardUrlSearchPath + \"&search=\" + event.target.value +\"*\";\r\n this.utility.processNavigationUrl(urlsearch);\r\n } \r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { SemBaseComponent } from '../../common/sem-base/sem-base.component';\r\nimport { retry, flatMap, switchMap } from '../../../../../node_modules/rxjs/operators';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { UserSearchSettingModel } from '../../../models/search/user-search-setting-model';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { UserSearchSettingPropertyModel } from '../../../models/search/user-search-setting-property-model';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { OnDestroy } from 'node_modules/@angular/core';\r\nimport { PaginationModel } from 'src/app/models/search/pagination.model';\r\nimport { FacetModel } from 'src/app/models/search/facet.model';\r\nimport { FacetViewModel } from 'src/app/models/search/facet-view.model';\r\nimport { FacetGroupModel } from 'src/app/models/search/facet-group.model';\r\nimport { SortFieldModel } from 'src/app/models/search/sort-field.model';\r\nimport { SemSearchFieldsDialogComponent } from '../dialogs/sem-search-fields-dialog/sem-search-fields-dialog.component';\r\nimport { AdditionalSearchSettingsModel } from 'src/app/models/search/additional-search-settings.model';\r\nimport { SearchRightInfoModel } from '../../../models/search/search-right-info-model';\r\nimport { FormControl } from '@angular/forms';\r\nimport { QueryBuilderConfig } from '../sem-query-builder/query-builder.interfaces';\r\nimport { isNumber } from 'lodash';\r\nimport { SemQueryBuilderDialogComponent } from '../dialogs/sem-query-builder-dialog/sem-query-builder-dialog.component';\r\n\r\n@Component({\r\n selector: 'sem-search',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './sem-search.component.html',\r\n styleUrls: ['./sem-search.component.css']\r\n})\r\nexport class SemSearchComponent extends SemControlComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @Input() bindingPropertyName: any;\r\n @Input() mainSearchValue: string;\r\n @Input() repositoryName: string;\r\n @Input() customApiEndpoint: string;\r\n @Input() hideButtons: string;\r\n @Input() customPageSize: number;\r\n @Input() globalSearch: boolean = false;\r\n @Input() globalSearchType: string;\r\n @Input() hideSearchWhere: boolean = false;\r\n\r\n searchClassTypes = new FormControl('');\r\n\r\n private searchSubs: any;\r\n private paginationSubs: any;\r\n private searchFacetsSubs: any;\r\n private searchSortSubs: any;\r\n private searchSettingsSubs: any;\r\n private pageSizeSubs: any;\r\n\r\n // filtering search results (from user search settings)\r\n private customViewFilter: any = null;\r\n public searchProjection: any[] = [\"Id\", \"Title\"];\r\n private allFieldsDefaultQuery: string = \"{ \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" }\";\r\n private defaultStringQuery: string = undefined;\r\n private mainQuery: any;\r\n private andQuery: any =\r\n {\r\n \"Type\": \"AND\",\r\n \"SubQueries\": []\r\n };\r\n\r\n public showLoader: boolean = false;\r\n private defaultSorting: any = [\r\n {\r\n \"Direction\": 1,\r\n \"FieldName\": \"LastChangeDate\",\r\n \"RootClassName\": \"\"\r\n }\r\n ];\r\n\r\n public searchClassTypesList: SearchRightInfoModel[] = [];\r\n\r\n // user's search settings\r\n private userSearchSettings: UserSearchSettingModel;\r\n // all metamodel search fields\r\n private metamodelSearchFields: any = [];\r\n private addedFields: any = [];\r\n private originalFieldsList: any = [];\r\n private availibleFields: any = [];\r\n private originalAddedFielsList: any;\r\n private searchPlaceholderTitle: string = null;\r\n private enableFacets = false;\r\n private searchServiceSubscriber = null;\r\n currentSearchPage = \"1\";\r\n private currentFacets: FacetModel[] = [];\r\n // all facets (normal,taxonomy,range) retrivied from metamodel - only facet names \r\n private metamodelFacets: FacetViewModel[] = null;\r\n private currentSortFields: SortFieldModel[] = [];\r\n private additionalSearchSettings: AdditionalSearchSettingsModel =\r\n {\r\n quickViewEnabled: false,\r\n onlyLastNodeNames: false,\r\n showItemNumber: false,\r\n showActionsColumn: true,\r\n quickViewFormName: \"\"\r\n };\r\n\r\n private stateModel = null;\r\n gridFieldsRestoreSubs = null;\r\n private initialGlobalSearch: boolean = true;\r\n\r\n private showQueryBuilder: boolean = false;\r\n\r\n private queryBuilderModel: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n\r\n private queryBConfig: QueryBuilderConfig = {\r\n fields: {}\r\n }\r\n private queryBuilderConfigPopulated = false;\r\n private queryBuilderSearching = false;\r\n\r\n super() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n this.queryBConfig = null;\r\n this.queryBuilderModel = null;\r\n this.searchService.changeSearchProjectionAndFacets(undefined);\r\n this.searchService.changePaginationInfo(undefined);\r\n this.searchService.changeSearchFacets(undefined);\r\n this.searchService.changeMetaModelEntities(undefined);\r\n this.searchService.changeSortFields(undefined);\r\n this.searchService.changeSearchPage(undefined);\r\n this.searchService.setEnableFacets(undefined);\r\n this.searchService.setAdditionalSearchSettings(undefined);\r\n\r\n if (typeof this.searchSubs != \"undefined\" && this.searchSubs != null) {\r\n this.searchSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.paginationSubs != \"undefined\" && this.paginationSubs != null) {\r\n this.paginationSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.searchFacetsSubs != \"undefined\" && this.searchFacetsSubs != null) {\r\n this.searchFacetsSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.searchSortSubs != \"undefined\" && this.searchSortSubs != null) {\r\n this.searchSortSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.searchSettingsSubs != \"undefined\" && this.searchSettingsSubs != null) {\r\n this.searchSettingsSubs.unsubscribe();\r\n }\r\n\r\n if (typeof this.pageSizeSubs != \"undefined\" && this.pageSizeSubs != null) {\r\n this.pageSizeSubs.unsubscribe();\r\n }\r\n\r\n this.searchService.setSearchFieldsRestoredDefault(undefined);\r\n if (typeof this.gridFieldsRestoreSubs != \"undefined\" && this.gridFieldsRestoreSubs != null) {\r\n this.gridFieldsRestoreSubs.unsubscribe();\r\n }\r\n\r\n this.metamodelFacets = null;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this.customPageSize != null && typeof this.customPageSize != \"undefined\" && this.customPageSize > 0) {\r\n this.searchService.pageSize = this.customPageSize;\r\n }\r\n\r\n if (typeof this.model == \"undefined\" || !this.model) {\r\n this.model = {};\r\n }\r\n\r\n this.model[\"AdditionalSearchFields\"] = [];\r\n\r\n this.searchService.globalSearch = this.globalSearch;\r\n this.searchService.globalSearchType = this.globalSearchType;\r\n\r\n if (this.globalSearch == true) {\r\n this.defaultStringQuery = \"{\\\"RequestedFacets\\\": null,\\\"Projection\\\": [],\\\"TreeQuery\\\": {},\\\"ClassTypes\\\": [],\\\"Page\\\": \\\"1\\\",\\\"GlobalQueryType\\\": \\\"\" + this.globalSearchType + \"\\\",\\\"PageSize\\\": \" + this.searchService.pageSize + \",\\\"RepositoryName\\\": \\\"lucene\\\",\\\"UseCache\\\": false}\";\r\n\r\n this.searchService.getAllowedSearchClasses(this.globalSearchType).subscribe(data => {\r\n\r\n if (data != null && typeof data != \"undefined\" && data.length > 0) {\r\n this.searchClassTypesList.push(...data);\r\n }\r\n }, error => {\r\n\r\n });\r\n\r\n } else {\r\n this.defaultStringQuery = \"{\\\"MainQuery\\\":null,\\\"FieldQueries\\\":{},\\\"FacetQueries\\\": {},\\\"RequestedFacets\\\": null,\\\"Projection\\\": [],\\\"TreeQuery\\\": {},\\\"ClassTypes\\\": [],\\\"Page\\\": \\\"1\\\",\\\"PageSize\\\": \" + this.searchService.pageSize + \",\\\"RepositoryName\\\": \\\"\" + this.repositoryName + \"\\\",\\\"Form\\\": null,\\\"UseCache\\\": false}\";\r\n }\r\n\r\n this.activatedRoute.paramMap.subscribe(data => {\r\n this.stateModel = window.history.state;\r\n\r\n this.stateModel = this.utility.checkStateForValidity(window.location.href, this.stateModel);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (this.globalSearch == true) {\r\n\r\n let viewId = this.params[\"view\"];\r\n\r\n if (typeof viewId == \"undefined\") {\r\n viewId = 1;\r\n }\r\n\r\n if (typeof this.params[\"search\"] != \"undefined\" && this.params[\"search\"]) {\r\n this.mainSearchValue = this.params[\"search\"];\r\n }\r\n\r\n\r\n this.handleUserAdditionalSearchFields(\"\", viewId);\r\n\r\n } else {\r\n\r\n if (this.params != null && typeof this.params != \"undefined\") {\r\n if (this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\") {\r\n\r\n let viewId = this.params[\"view\"];\r\n\r\n if (typeof viewId == \"undefined\") {\r\n viewId = 1;\r\n }\r\n\r\n // get current user search field settings (if they exist)\r\n this.handleUserAdditionalSearchFields(this.params[\"model\"], viewId);\r\n }\r\n }\r\n }\r\n\r\n\r\n this.gridFieldsRestoreSubs = this.searchService.currentgridRestoredDefault.subscribe(value => {\r\n\r\n if (value != null && typeof value != \"undefined\" && value == true) {\r\n\r\n if (this.globalSearch == true) {\r\n\r\n } else {\r\n if (this.params != null && typeof this.params != \"undefined\") {\r\n if (this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\") {\r\n\r\n let viewId = this.params[\"view\"];\r\n\r\n if (typeof viewId == \"undefined\") {\r\n viewId = 1;\r\n }\r\n\r\n // get current user search field settings (if they exist)\r\n this.handleUserAdditionalSearchFields(this.params[\"model\"], viewId, true);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // subsrice for any changes on projection and facets from data-grid component\r\n // facets are setteng only on first subscribe\r\n this.searchSubs = this.searchService.currentSearchProjectionAndFacets.subscribe(projectionFacets => {\r\n\r\n if (typeof projectionFacets != \"undefined\") {\r\n\r\n if (projectionFacets != null && projectionFacets.projection != null && projectionFacets.projection.length > 0) {\r\n this.searchProjection = projectionFacets.projection;\r\n this.metamodelFacets = projectionFacets.facets;\r\n\r\n // only once (so when metamodelFacets is null)\r\n //if(this.metamodelFacets == null && projectionFacets.facets != null && typeof projectionFacets.facets != \"undefined\"){\r\n //this.metamodelFacets = projectionFacets.facets;\r\n //}\r\n\r\n // after each new search set page to default\r\n this.currentSearchPage = \"1\";\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n }\r\n });\r\n\r\n // listener after each search key is inserted on any of search fields\r\n this.searchService.currentSearchValue.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\") {\r\n this.currentSearchPage = \"1\";\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n\r\n });\r\n\r\n this.searchSettingsSubs = this.searchService.currentUserSearchSettings.subscribe(value => {\r\n\r\n // only if user settings were changed from grid control\r\n if (typeof value != \"undefined\" && value != null && value[\"Control\"] == \"grid\") {\r\n this.setNewUserSearchSettingObject(this.params[\"model\"], this.params[\"view\"]);\r\n }\r\n });\r\n\r\n // listener after each search key is inserted on any of search fields\r\n this.paginationSubs = this.searchService.currentSearchPage.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\") {\r\n let page = \"1\";\r\n\r\n if (value != null && value != \"0\" && value != \"\") {\r\n page = value;\r\n }\r\n\r\n this.currentSearchPage = page;\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n } else {\r\n this.currentSearchPage = \"1\";\r\n }\r\n });\r\n\r\n // listener for facets fields\r\n this.searchFacetsSubs = this.searchService.currentSearchFacets.subscribe(value => {\r\n\r\n // clear previous\r\n this.currentFacets = [];\r\n if (value != null && typeof value != \"undefined\") {\r\n for (let i = 0; i < value.length; i++) {\r\n this.currentFacets.push(value[i])\r\n }\r\n\r\n this.currentSearchPage = \"1\";\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n });\r\n\r\n // subscription for sort fields\r\n this.searchSortSubs = this.searchService.currentSortFields.subscribe(value => {\r\n\r\n // clear previous\r\n this.currentSortFields = [];\r\n if (value != null && typeof value != \"undefined\") {\r\n for (let i = 0; i < value.length; i++) {\r\n this.currentSortFields.push(value[i])\r\n }\r\n\r\n this.currentSearchPage = \"1\";\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n });\r\n\r\n // listener for page number change\r\n this.pageSizeSubs = this.searchService.currentPageSize.subscribe(value => {\r\n if (value != null && typeof value != \"undefined\") {\r\n this.currentSearchPage = \"1\";\r\n\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n searchInChange(event) {\r\n if (event.isUserInput) {\r\n var value = event.source.value;\r\n var selected = event.source.selected;\r\n\r\n var index = this.searchClassTypesList.findIndex(x => x.FullName == value);\r\n if (index >= 0) {\r\n this.searchClassTypesList[index][\"Selected\"] = selected;\r\n }\r\n }\r\n }\r\n\r\n openQueryBuilderDialog() {\r\n this.showQueryBuilder = true;\r\n\r\n if (this.showQueryBuilder === true) {\r\n // we must build query builder config\r\n // we will build it based on metamodel of current search list\r\n\r\n if (this.metamodelSearchFields === null || this.metamodelSearchFields.length < 1) {\r\n // call method to populate metamodelSearchFields\r\n }\r\n\r\n // execute this code once per listing, config is populated once per listing\r\n if (this.queryBuilderConfigPopulated === false) {\r\n for (let i = 0; i < this.metamodelSearchFields.length; i++) {\r\n const fieldObjectType = this.metamodelSearchFields[i].QueryBuilderType;\r\n\r\n if (fieldObjectType !== null) {\r\n const fieldObject = { name: this.metamodelSearchFields[i].Translation, type: fieldObjectType, galregname: this.metamodelSearchFields[i].FullType, operators: this.metamodelSearchFields[i].QueryBuilderOperators };\r\n const fieldObjectPropertyName = this.metamodelSearchFields[i].QueryBuilderPropertyName;\r\n\r\n this.queryBConfig.fields[fieldObjectPropertyName] = fieldObject;\r\n }\r\n }\r\n this.queryBuilderConfigPopulated = true;\r\n }\r\n\r\n // after populating field, open dialog\r\n // open dialog and send needed data to dialog\r\n const dialogRef = this.dialog.open(SemQueryBuilderDialogComponent, {\r\n data: {\r\n queryBuilderConfig: this.queryBConfig,\r\n queryBuilderModel: this.queryBuilderModel\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result !== undefined && result !== null) {\r\n this.queryBuilderModel = result[\"queryBuilderModel\"];\r\n this.searchBasedOnQueryBuilder();\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n showDataTools() {\r\n if (this.globalSearch === true) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n showSearchWhere() {\r\n\r\n if (this.hideSearchWhere === true) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n searchValueOnChange(value: any) {\r\n this.searchService.changeSearchValue(value);\r\n }\r\n\r\n searchOptionNotSelected() {\r\n\r\n var selectedList = this.searchClassTypesList.filter(x => x.Selected == true);\r\n\r\n if (selectedList != null && typeof selectedList != \"undefined\" && selectedList.length > 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private handleMetaModelFacets() {\r\n\r\n let requestFacets = [];\r\n\r\n if (this.metamodelFacets != null && typeof this.metamodelFacets != \"undefined\" && this.metamodelFacets.length > 0) {\r\n for (let metamodelFacet of this.metamodelFacets) {\r\n\r\n let customFacetSpecified = this.customFacetSpecified(metamodelFacet.facetPropertyPath);\r\n\r\n if (customFacetSpecified) {\r\n requestFacets.push(\r\n {\r\n \"MaxFacets\": 5,\r\n \"FieldName\": metamodelFacet.facetPropertyPath,\r\n \"RootClassName\": this.params[\"model\"]\r\n });\r\n }\r\n }\r\n }\r\n\r\n return requestFacets;\r\n }\r\n\r\n private handleSortFields() {\r\n\r\n let requestedSortFields = [];\r\n\r\n if (this.currentSortFields != null && typeof this.currentSortFields != \"undefined\" && this.currentSortFields.length > 0) {\r\n for (let sortField of this.currentSortFields) {\r\n\r\n let rootclassname = sortField.RootClassName;\r\n\r\n if (rootclassname == null || typeof rootclassname == \"undefined\" || rootclassname == \"\") {\r\n rootclassname = this.params[\"model\"];\r\n }\r\n\r\n requestedSortFields.push(\r\n {\r\n \"FieldName\": sortField.FieldName,\r\n \"Direction\": sortField.SortDirection,\r\n \"RootClassName\": rootclassname\r\n });\r\n }\r\n }\r\n\r\n return requestedSortFields;\r\n }\r\n\r\n private prepareQueryObject(modelName: string) {\r\n this.mainQuery = JSON.parse(this.defaultStringQuery);\r\n if (this.globalSearch == true) {\r\n\r\n var searchOptionNotSelected = this.searchOptionNotSelected();\r\n\r\n if (this.globalSearch && this.initialGlobalSearch) {\r\n if (typeof (this.searchClassTypesList) != \"undefined\" && this.searchClassTypesList) {\r\n for (var i = 0; i < this.searchClassTypesList.length; i++) {\r\n this.searchClassTypesList[i][\"Selected\"] = true;\r\n }\r\n }\r\n\r\n // need to check why this doesnt build \r\n //this.searchClassTypes.setValue(this.searchClassTypesList.map(x => x.FullName));\r\n\r\n searchOptionNotSelected = false;\r\n this.initialGlobalSearch = false;\r\n }\r\n\r\n if (searchOptionNotSelected) {\r\n this.mainQuery[\"ClassTypes\"] = [\"*\"];\r\n } else {\r\n this.mainQuery[\"ClassTypes\"] = this.searchClassTypesList.filter(x => x.Selected == true).map(x => x.FullName);\r\n }\r\n\r\n } else {\r\n this.mainQuery[\"ClassTypes\"].push(modelName);\r\n }\r\n }\r\n\r\n public translate(key: string) {\r\n return this.translationsService.translate(key);\r\n }\r\n\r\n private parseQueryBuilder(query) {\r\n if (query !== null && query !== undefined) {\r\n\r\n if (query.condition !== null && query.condition === \"and\" || query.condition === \"or\") {\r\n\r\n // if condition present in query then it's ruleset\r\n const treeQueryWithSubQ = { Type: query.condition.toUpperCase(), SubQueries: [] };\r\n\r\n if (query.rules !== null && query.rules.length > 0) {\r\n // go through each subquery and parse recursevly\r\n for (let i = 0; i < query.rules.length; i++) {\r\n const returnedQ = this.parseQueryBuilder(query.rules[i]);\r\n\r\n if (returnedQ !== null) {\r\n // add subquery to current subqueries\r\n treeQueryWithSubQ.SubQueries.push(returnedQ);\r\n }\r\n\r\n }\r\n }\r\n\r\n return treeQueryWithSubQ;\r\n }\r\n else if ((query.condition === undefined || query.condition === null) && query.field !== null) {\r\n // if condition is null and field present then normal fieldvalue,fieldrange query\r\n const queryField = query.field;\r\n // this is convention for now\r\n let queryFieldNameForSearch = queryField.replaceAll(\"$$\", \".\");\r\n\r\n // get configuration\r\n const queryFieldConfiguration = this.queryBConfig.fields[queryField];\r\n\r\n if (queryFieldConfiguration !== null && queryFieldConfiguration !== undefined) {\r\n const queryFieldType = queryFieldConfiguration.type;\r\n\r\n if (queryFieldType !== null && queryFieldType !== undefined) {\r\n\r\n //string field\r\n if (queryFieldType === \"string\") {\r\n\r\n let fieldValueQ = query.value;\r\n if (!fieldValueQ.endsWith(\"*\"))\r\n {\r\n fieldValueQ += \"*\";\r\n }\r\n\r\n const fieldValueQuery = { Type: \"FieldValue\", FieldName: queryFieldNameForSearch, FieldValue: fieldValueQ };\r\n\r\n // XXX: handle operators\r\n // for now just = and !=\r\n switch (query.operator.Value) {\r\n case \"!=\":\r\n fieldValueQuery[\"Negate\"] = true;\r\n break;\r\n }\r\n\r\n\r\n return fieldValueQuery;\r\n\r\n }\r\n // range fields\r\n else if (queryFieldType === \"number\" || queryFieldType === \"date\" || queryFieldType === \"time\") {\r\n\r\n let isNumberType = false;\r\n if (queryFieldType === \"number\") {\r\n isNumberType = true;\r\n }\r\n\r\n let rangeValueTo = null;\r\n let rangeValueFrom = null;\r\n\r\n let fieldRangeQuery = { Type: \"FieldRange\", FieldName: queryFieldNameForSearch };\r\n\r\n switch (query.operator.Value) {\r\n case \">\":\r\n\r\n rangeValueTo = \"*\";\r\n\r\n if (isNumberType) {\r\n rangeValueFrom = query.value + 1;\r\n } else {\r\n // convert to date + add 1 day\r\n rangeValueFrom = \"#AddDays('\" + query.value + \"',1)#\";\r\n }\r\n\r\n break;\r\n\r\n case \"=>\":\r\n\r\n rangeValueTo = \"*\";\r\n rangeValueFrom = query.value;\r\n\r\n break;\r\n\r\n case \"<\":\r\n\r\n rangeValueFrom = \"*\";\r\n\r\n if (isNumberType) {\r\n rangeValueTo = query.value - 1;\r\n } else {\r\n // convert to date and minus 1 day\r\n rangeValueTo = \"#AddDays('\" + query.value + \"',-1)#\";\r\n }\r\n\r\n break;\r\n\r\n case \"<=\":\r\n\r\n rangeValueTo = query.value;\r\n rangeValueFrom = \"*\"\r\n\r\n break;\r\n case \"=\":\r\n\r\n rangeValueFrom = query.value;\r\n rangeValueTo = query.value;\r\n\r\n break;\r\n case \"!=\":\r\n\r\n rangeValueFrom = query.value;\r\n rangeValueTo = query.value;\r\n fieldRangeQuery[\"Negate\"] = true;\r\n\r\n break;\r\n }\r\n\r\n if (rangeValueFrom !== null && rangeValueFrom !== undefined && rangeValueTo !== null && rangeValueTo !== undefined) {\r\n fieldRangeQuery[\"FieldValueFrom\"] = rangeValueFrom;\r\n fieldRangeQuery[\"FieldValueTo\"] = rangeValueTo;\r\n\r\n return fieldRangeQuery;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n // checkbox\r\n else if (queryFieldType === \"boolean\") {\r\n // for boolean(checkbox) we dont need to handle operators since there is only one operator (\"=\")\r\n let boolValue = false;\r\n if (query.value !== null && query.value !== undefined) {\r\n boolValue = query.value;\r\n }\r\n\r\n const fieldValueQuery = { Type: \"FieldValue\", FieldName: queryFieldNameForSearch, FieldValue: boolValue };\r\n return fieldValueQuery;\r\n }\r\n // dropdown \r\n else if (queryFieldType === \"category\") {\r\n\r\n let dropDownValueId = 0;\r\n if (query.value !== null && query.value[\"Id\"] !== null) {\r\n dropDownValueId = query.value[\"Id\"];\r\n }\r\n\r\n let fieldValueCategoryQuery = { Type: \"FieldValue\", FieldName: queryFieldNameForSearch + \".Id\", FieldValue: dropDownValueId };\r\n\r\n if (query.operator.Value === \"!=\") {\r\n fieldValueCategoryQuery[\"Negate\"] = true;\r\n }\r\n\r\n return fieldValueCategoryQuery;\r\n\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getMainSearchQuery(taskSearch = false, queryBuilderSearch = false): any {\r\n\r\n\r\n if (this.globalSearch === true || (this.params !== null && typeof this.params !== \"undefined\")) {\r\n if (this.globalSearch === true || (this.params[\"model\"] !== null && typeof this.params[\"model\"] !== \"undefined\")) {\r\n\r\n let mName = \"\";\r\n\r\n if (this.params !== null && typeof this.params !== \"undefined\") {\r\n mName = this.params[\"model\"];\r\n }\r\n\r\n // add classtype value to mainquery\r\n this.prepareQueryObject(mName);\r\n let allFieldsQuery = JSON.parse(this.allFieldsDefaultQuery);\r\n let finalQuery = {};\r\n\r\n let defaultQueryAll = false;\r\n\r\n // always clear\r\n this.andQuery.SubQueries = [];\r\n\r\n if (queryBuilderSearch === false) {\r\n // handle additional search fields and add them to andQuery\r\n this.handleAdditionalSearchFields();\r\n } else if (queryBuilderSearch === true) {\r\n // parse querybuilder into semantika search object \r\n const parsedQueryFromQueryBuilder = this.parseQueryBuilder(this.queryBuilderModel);\r\n if (parsedQueryFromQueryBuilder !== null && parsedQueryFromQueryBuilder !== undefined) {\r\n this.andQuery.SubQueries.push(parsedQueryFromQueryBuilder);\r\n }\r\n }\r\n\r\n\r\n // handle search facet and add them to andQuery \r\n this.handleSearchFacets();\r\n\r\n // check if searching for all fields (this is only when not in querybuilder)\r\n if (queryBuilderSearch === false && typeof this.mainSearchValue != \"undefined\" && (this.mainSearchValue != \"\" || this.mainSearchValue.trim().length > 0)) {\r\n\r\n // we add * on the end of each search value if it doesn't exists already\r\n let mainSearchValueWildcard = this.mainSearchValue;\r\n if (!mainSearchValueWildcard.endsWith(\"*\")) {\r\n mainSearchValueWildcard += \"*\";\r\n }\r\n\r\n allFieldsQuery[\"FieldValue\"] = mainSearchValueWildcard;\r\n\r\n // if also searcihng for additional fields then add to AND query\r\n if (this.andQuery.SubQueries.length > 0) {\r\n this.andQuery.SubQueries.push(allFieldsQuery);\r\n finalQuery = this.andQuery;\r\n } else {\r\n // treequery is acuatly fieldvalue query for all fields\r\n finalQuery = allFieldsQuery;\r\n }\r\n }\r\n else {\r\n // only if andquery is not empty\r\n if (this.andQuery != null && this.andQuery.SubQueries.length > 0) {\r\n finalQuery = this.andQuery;\r\n } else {\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"search\"] != null && typeof this.params[\"search\"] != \"undefined\") {\r\n allFieldsQuery[\"FieldValue\"] = this.params[\"search\"];\r\n } else {\r\n allFieldsQuery[\"FieldValue\"] = \"*\";\r\n }\r\n\r\n finalQuery = allFieldsQuery;\r\n defaultQueryAll = true;\r\n }\r\n }\r\n\r\n if (taskSearch) {\r\n\r\n var userId = this.restProviderService.currentUser[\"UserId\"];\r\n var userGroups = this.restProviderService.currentUser[\"UserGroups\"];\r\n var userGroupQuery = null;\r\n\r\n if (userGroups != null && typeof userGroups != \"undefined\") {\r\n userGroupQuery = {\r\n \"Type\": \"OR\",\r\n \"SubQueries\": []\r\n };\r\n\r\n for (var i = 0; i < userGroups.length; i++) {\r\n userGroupQuery[\"SubQueries\"].push({ \"Type\": \"FieldValue\", \"FieldName\": \"GroupID\", \"FieldValue\": userGroups[i] });\r\n }\r\n }\r\n\r\n var secQueryTask = {\r\n \"Type\": \"OR\",\r\n \"SubQueries\": [{ \"Type\": \"FieldValue\", \"FieldName\": \"UserID\", \"FieldValue\": userId },\r\n userGroupQuery]\r\n };\r\n\r\n if (finalQuery != null && typeof finalQuery != \"undefined\") {\r\n var finalTaskQ = { \"Type\": \"AND\", \"SubQueries\": [] };\r\n finalTaskQ.SubQueries.push(finalQuery);\r\n finalTaskQ.SubQueries.push(secQueryTask);\r\n this.mainQuery[\"TreeQuery\"] = finalTaskQ;\r\n } else {\r\n this.mainQuery[\"TreeQuery\"] = secQueryTask;\r\n }\r\n }\r\n // check if custom filter exists\r\n else if (this.customViewFilter != null && typeof this.customViewFilter != \"undefined\") {\r\n\r\n if (typeof this.stateModel != \"undefined\" && this.stateModel) {\r\n if (this.customViewFilter[\"Type\"] == \"FieldValue\" && (typeof this.customViewFilter[\"SubQueries\"] == \"undefined\" || this.customViewFilter[\"SubQueries\"] == null || this.customViewFilter[\"SubQueries\"].length == 0)) {\r\n this.customViewFilter = this.manipulateCustomQuery(this.customViewFilter);\r\n } else if ((typeof this.customViewFilter[\"SubQueries\"] != \"undefined\" && this.customViewFilter[\"SubQueries\"] != null && this.customViewFilter[\"SubQueries\"].length > 0)) {\r\n //Removed this line, type is already determened, and it can also be AND... this.customViewFilter[\"Type\"] = \"OR\";\r\n for (var i = 0; i < this.customViewFilter[\"SubQueries\"].length; i++) {\r\n this.customViewFilter[\"SubQueries\"][i] = this.manipulateCustomQuery(this.customViewFilter[\"SubQueries\"][i]);\r\n }\r\n }\r\n }\r\n\r\n // combine final query with customViewFilter \r\n let combinedQuery = {\r\n \"Type\": \"AND\",\r\n \"SubQueries\": []\r\n };\r\n\r\n combinedQuery.SubQueries.push(finalQuery);\r\n combinedQuery.SubQueries.push(this.customViewFilter);\r\n this.mainQuery[\"TreeQuery\"] = combinedQuery;\r\n }\r\n else {\r\n this.mainQuery[\"TreeQuery\"] = finalQuery;\r\n }\r\n\r\n this.mainQuery[\"Page\"] = this.currentSearchPage;\r\n return this.mainQuery;\r\n }\r\n }\r\n\r\n\r\n\r\n return null;\r\n }\r\n\r\n manipulateCustomQuery(customViewFilter: any) {\r\n try {\r\n if (customViewFilter[\"FieldValue\"].includes(\"{{\")) {\r\n var evalString = customViewFilter[\"FieldValue\"].substring(\r\n customViewFilter[\"FieldValue\"].lastIndexOf(\"{{\") + 2,\r\n customViewFilter[\"FieldValue\"].lastIndexOf(\"}}\")\r\n );\r\n\r\n try {\r\n var res = eval(evalString);\r\n\r\n if (typeof res != \"undefined\" && res) {\r\n customViewFilter[\"FieldValue\"] = res;\r\n //console.log(\"Parsed query: \", customViewFilter);\r\n }\r\n else {\r\n customViewFilter[\"FieldValue\"] = \"*\";\r\n }\r\n } catch (e) {\r\n customViewFilter[\"FieldValue\"] = \"*\";\r\n //console.log(\"Error parsing filter query: \", e);\r\n }\r\n }\r\n return customViewFilter;\r\n } catch (e) {\r\n //probablja parsing numbers in FieldValue\r\n return customViewFilter;\r\n }\r\n }\r\n\r\n onKeydown(event) {\r\n this.queryBuilderSearching = false;\r\n event.preventDefault();\r\n this.currentSearchPage = \"1\";\r\n\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n } else {\r\n this.performSearch();\r\n }\r\n }\r\n\r\n searchBasedOnQueryBuilder() {\r\n this.queryBuilderSearching = true;\r\n this.currentSearchPage = \"1\";\r\n\r\n // also reset additional field values\r\n this.clearSearchFieldValues();\r\n // also reset main search value\r\n this.mainSearchValue = \"\";\r\n\r\n if (this.params !== null && typeof this.params !== \"undefined\" && this.params[\"model\"] !== null && typeof this.params[\"model\"] !== \"undefined\" && this.params[\"model\"] === \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch(true);\r\n } else {\r\n this.performSearch(false, true);\r\n }\r\n }\r\n\r\n public performTaskSearch(queryBuilderSearch = false) {\r\n this.searchProjection = [\"Id\", \"Title\", \"Description\", \"DueDate\", \"DateCreated\", \"FirstOpenDate\", \"FormName\", \"EntityID\", \"Complete\", \"Result\", \"TaskFiles\", \"TaskOutcomes\", \"TaskFiles.FileName\", \"CanOpenIfComplete\", \"ShowMessageOnly\"];\r\n this.performSearch(true, queryBuilderSearch);\r\n }\r\n\r\n public performSearch(taskSearch = false, queryBuilderSearch = false) {\r\n\r\n if (this.queryBuilderSearching === true) {\r\n queryBuilderSearch = true;\r\n }\r\n\r\n // show loader\r\n this.showLoader = true;\r\n\r\n // calculate mainQuery\r\n this.mainQuery = this.getMainSearchQuery(taskSearch, queryBuilderSearch);\r\n\r\n // update projection for condition evaluations\r\n if (typeof this.userSearchSettings != \"undefined\" && this.userSearchSettings) {\r\n if (typeof this.userSearchSettings.ConditionEvaluations != \"undefined\" && this.userSearchSettings.ConditionEvaluations) {\r\n for (let i = 0; i < this.userSearchSettings.ConditionEvaluations.length; i++) {\r\n\r\n if (this.userSearchSettings.ConditionEvaluations[i][\"BindingPath\"].includes(\";\")) {\r\n const splited = this.userSearchSettings.ConditionEvaluations[i][\"BindingPath\"].split(\";\");\r\n for (let j = 0; j < splited.length; j++) {\r\n this.searchProjection.push(splited[j]);\r\n }\r\n } else {\r\n this.searchProjection.push(this.userSearchSettings.ConditionEvaluations[i][\"BindingPath\"]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // set projection\r\n this.mainQuery[\"Projection\"] = this.searchProjection;\r\n\r\n // for now skip facets in global search\r\n if (this.globalSearch == false) {\r\n // set facets\r\n this.mainQuery[\"Facets\"] = this.handleMetaModelFacets();\r\n }\r\n\r\n\r\n let sortFields = this.handleSortFields();\r\n\r\n if (taskSearch) {\r\n if (sortFields != null && typeof sortFields != \"undefined\" && sortFields.length > 0) {\r\n this.mainQuery[\"SortFields\"] = sortFields;\r\n } else {\r\n // hardcode default sort fields\r\n this.mainQuery[\"SortFields\"] = [{\r\n \"Direction\": 1,\r\n \"FieldName\": \"DateCreated\",\r\n \"RootClassName\": \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\"\r\n }];\r\n }\r\n } else {\r\n // set sorting\r\n this.mainQuery[\"SortFields\"] = sortFields;\r\n }\r\n\r\n // set pagesize\r\n this.mainQuery[\"PageSize\"] = this.searchService.pageSize;\r\n // hide quick preview\r\n this.searchService.currentPreviewItemClicked = null;\r\n // perform search\r\n this.getData(this.mainQuery);\r\n }\r\n\r\n clearSearchFieldValues() {\r\n if (this.model != null && typeof this.model != \"undefined\"\r\n && this.model.AdditionalSearchFields != null && typeof this.model.AdditionalSearchFields != \"undefined\") {\r\n for (var i = 0; i < this.model.AdditionalSearchFields.length; i++) {\r\n this.model.AdditionalSearchFields[i].CheckBoxState = \"novalue\";\r\n this.model.AdditionalSearchFields[i].SearchValueTo = \"\";\r\n this.model.AdditionalSearchFields[i].SearchValueFrom = \"\";\r\n this.model.AdditionalSearchFields[i].SearchValue = \"\";\r\n }\r\n }\r\n }\r\n\r\n modifySearchFields() {\r\n\r\n this.showLoader = true;\r\n this.originalAddedFielsList = this.addedFields.map(x => Object.assign({}, x));\r\n\r\n // set to default\r\n this.availibleFields = [];\r\n this.originalFieldsList = [];\r\n // go through all fields\r\n for (let i = 0; i < this.metamodelSearchFields.length; i++) {\r\n // check if exists in addedFields\r\n let index = this.addedFields.findIndex(x => x.Name == this.metamodelSearchFields[i].Name);\r\n\r\n if (index < 0) {\r\n // if doesnt exists add to availible fields \r\n this.availibleFields.push(this.metamodelSearchFields[i]);\r\n this.originalFieldsList.push(this.metamodelSearchFields[i]);\r\n }\r\n }\r\n this.showLoader = false;\r\n\r\n // open dialog and send needed data to dialog\r\n const dialogRef = this.dialog.open(SemSearchFieldsDialogComponent, {\r\n data: {\r\n // XXX TODO: for some fields that are not set via UI (we're only setting display/search fields)\r\n // no need for sending around into dialog (showActionscolumn,...)\r\n availibleFields: this.availibleFields,\r\n addedFields: this.addedFields,\r\n originalFieldsList: this.originalFieldsList,\r\n originalAddedFieldsList: this.originalAddedFielsList,\r\n userSearchSettings: this.userSearchSettings,\r\n modelName: this.params[\"model\"],\r\n searchPlaceHolder: this.searchPlaceholderTitle,\r\n enableFacets: this.enableFacets,\r\n quickViewEnabled: this.additionalSearchSettings.quickViewEnabled,\r\n quickViewFormName: this.additionalSearchSettings.quickViewFormName,\r\n onlyLastNodeNames: this.additionalSearchSettings.onlyLastNodeNames,\r\n showActionsColumn: this.additionalSearchSettings.showActionsColumn,\r\n showItemNumber: this.additionalSearchSettings.showItemNumber,\r\n viewId: this.params[\"view\"],\r\n customViewFilter: this.customViewFilter,\r\n metamodelSearchFields: this.metamodelSearchFields\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (typeof result != \"undefined\") {\r\n this.model[\"AdditionalSearchFields\"] = result[\"modelAdditionalSearchFields\"];\r\n this.availibleFields = result[\"availibleFields\"];\r\n this.addedFields = result[\"addedFields\"];\r\n this.originalAddedFielsList = result[\"originalFieldsList\"];\r\n this.originalAddedFielsList = result[\"originalAddedFieldsList\"];\r\n this.userSearchSettings = result[\"userSearchSettings\"];\r\n this.searchPlaceholderTitle = result[\"placeHolder\"];\r\n this.searchService.currentPlaceHoldertitle = this.searchPlaceholderTitle;\r\n this.searchService.changeCurrentSearchSettings(this.userSearchSettings, \"search\");\r\n\r\n if (result[\"restore\"] == true) {\r\n this.searchService.setSearchFieldsRestoredDefault(true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n customFacetSpecified(facetName: string) {\r\n\r\n if (this.userSearchSettings != null\r\n && typeof this.userSearchSettings != \"undefined\"\r\n && this.userSearchSettings.CustomFacets != null\r\n && typeof this.userSearchSettings.CustomFacets != \"undefined\") {\r\n\r\n var customFacetsList = this.userSearchSettings.CustomFacets.split(\",\");\r\n if (customFacetsList != null && typeof customFacetsList != \"undefined\") {\r\n var indx = customFacetsList.findIndex(x => x == facetName);\r\n if (indx < 0) {\r\n // return false only if customfacets specified and doesnt exists inside\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // return true if no custom facets OR if exists in custom facets\r\n return true;\r\n }\r\n\r\n getData(mainQuery: any) {\r\n\r\n // show loader\r\n this.showLoader = true;\r\n\r\n if (this.searchServiceSubscriber != null) {\r\n this.searchServiceSubscriber.unsubscribe();\r\n }\r\n\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\" && this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n // sorting stays unchanged for task\r\n } else {\r\n if (mainQuery != null && typeof mainQuery != \"undefined\") {\r\n\r\n // sorting for global search\r\n if (this.globalSearch) {\r\n // we should define this\r\n } else {\r\n this.defaultSorting[0].RootClassName = this.params[\"model\"];\r\n\r\n if (mainQuery[\"SortFields\"] != null || typeof mainQuery[\"SortFields\"] != \"undefined\") {\r\n mainQuery[\"SortFields\"].push(this.defaultSorting[0]);\r\n } else {\r\n mainQuery[\"SortFields\"] = this.defaultSorting;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // before performing search, save current search query into variable\r\n this.searchService.setCurrentSearchQuery(mainQuery);\r\n this.model[\"Models\"] = [];\r\n\r\n // notify that search was performed\r\n this.searchService.searchPerformed();\r\n\r\n let historySearchStatePresent = false;\r\n // if history search state present, handle additional fields binding on UI\r\n if (this.searchService.historySearchStatePresent(mainQuery)) {\r\n historySearchStatePresent = true;\r\n this.searchService.pageSize = this.searchService.historySearchState.query.data[\"PageSize\"];\r\n var historyAdditionalFields = this.searchService.getHistorySearchAdditionalFields();\r\n\r\n var mainSearchFieldValue = this.searchService.getHistoryMainSearchFieldValue();\r\n if (mainSearchFieldValue != null && typeof mainSearchFieldValue != \"undefined\" && mainSearchFieldValue.length > 0) {\r\n this.mainSearchValue = mainSearchFieldValue;\r\n }\r\n\r\n if (this.model.AdditionalSearchFields != null && typeof this.model.AdditionalSearchFields != \"undefined\") {\r\n for (var i = 0; i < historyAdditionalFields.length; i++) {\r\n var indx = this.model.AdditionalSearchFields.findIndex(x => x.Name == historyAdditionalFields[i].Binding);\r\n if (indx >= 0) {\r\n if (this.model.AdditionalSearchFields[indx].Type.startsWith(\"Bool\")) {\r\n this.model.AdditionalSearchFields[indx].CheckBoxState = historyAdditionalFields[i].Value;\r\n } else if (historyAdditionalFields[i].ValueFrom != null && historyAdditionalFields[i].ValueTo != null\r\n && typeof historyAdditionalFields[i].ValueFrom != \"undefined\"\r\n && typeof historyAdditionalFields[i].ValueTo != \"undefined\") {\r\n\r\n this.model.AdditionalSearchFields[indx].SearchValueFrom = historyAdditionalFields[i].ValueFrom;\r\n this.model.AdditionalSearchFields[indx].SearchValueTo = historyAdditionalFields[i].ValueTo;\r\n } else {\r\n this.model.AdditionalSearchFields[indx].SearchValue = historyAdditionalFields[i].Value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // perform search \r\n this.searchServiceSubscriber = this.searchService.performSearch(mainQuery, this.customApiEndpoint, this.model.AdditionalSearchFields, this.mainSearchValue).subscribe(data => {\r\n\r\n let paginationInfo = new PaginationModel(data[\"TotalCount\"], data[\"Page\"]);\r\n this.searchService.changePaginationInfo(paginationInfo);\r\n\r\n for (var i = 0; i < data[\"Models\"].length; i++) {\r\n this.model[\"Models\"].push(data[\"Models\"][i].Model);\r\n }\r\n\r\n if (data[\"Facets\"] != null && typeof data[\"Facets\"] != \"undefined\" && data[\"Facets\"].length > 0) {\r\n if (this.metamodelFacets != null && typeof this.metamodelFacets != \"undefined\") {\r\n\r\n var currentMetaModelFacets: FacetViewModel[] = [];\r\n\r\n for (var i = 0; i < data[\"Facets\"].length; i++) {\r\n\r\n var facetGroupName = data[\"Facets\"][i].GroupName;\r\n\r\n // find facet in metamodelFacets\r\n let index = this.metamodelFacets.findIndex(x => x.facetPropertyPath == facetGroupName);\r\n var customFacetSpeicfied = this.customFacetSpecified(facetGroupName);\r\n if (index >= 0 && customFacetSpeicfied) {\r\n\r\n var curFac: FacetViewModel = new FacetViewModel();\r\n curFac.facetPropertyPath = this.metamodelFacets[index].facetPropertyPath;\r\n curFac.facetTitle = this.metamodelFacets[index].facetTitle;\r\n curFac.facetTranslation = this.metamodelFacets[index].facetTranslation;\r\n curFac.facetType = this.metamodelFacets[index].facetType;\r\n\r\n let facetGroups = [];\r\n for (var j = 0; j < data[\"Facets\"][i].GroupFacets.length; j++) {\r\n\r\n // for now only support 'normal' facets\r\n let facetGroupModel = new FacetGroupModel();\r\n\r\n let count: number = 0;\r\n\r\n if (data[\"Facets\"][i].GroupFacets[j].Count != null && typeof data[\"Facets\"][i].GroupFacets[j].Count != \"undefined\") {\r\n count = data[\"Facets\"][i].GroupFacets[j].Count;\r\n }\r\n facetGroupModel.count = count;\r\n facetGroupModel.label = data[\"Facets\"][i].GroupFacets[j].Label;\r\n facetGroupModel.value = data[\"Facets\"][i].GroupFacets[j].Value;\r\n facetGroupModel.end = data[\"Facets\"][i].GroupFacets[j].End;\r\n facetGroupModel.start = data[\"Facets\"][i].GroupFacets[j].Start;\r\n facetGroupModel.path = data[\"Facets\"][i].GroupFacets[j].Path;\r\n\r\n let checked = false;\r\n // check if current facet label is checked\r\n if (this.currentFacets != null && typeof this.currentFacets != \"undefined\") {\r\n if (this.metamodelFacets[index].facetType == \"normal\") {\r\n let ind = this.currentFacets.findIndex(x => x.fieldName == this.metamodelFacets[index].facetPropertyPath && x.fieldValue == data[\"Facets\"][i].GroupFacets[j].Value);\r\n if (ind >= 0) {\r\n checked = true;\r\n }\r\n } else if (this.metamodelFacets[index].facetType == \"taxonomy\") {\r\n let ind = this.currentFacets.findIndex(x => x.fieldName == this.metamodelFacets[index].facetPropertyPath && x.fieldValue == data[\"Facets\"][i].GroupFacets[j].Value);\r\n if (ind >= 0) {\r\n checked = true;\r\n }\r\n } else if (this.metamodelFacets[index].facetType == \"range\") {\r\n let ind = this.currentFacets.findIndex(x => x.fieldName == this.metamodelFacets[index].facetPropertyPath && x.fieldValueFrom == data[\"Facets\"][i].GroupFacets[j].Start && x.fieldValueTo == data[\"Facets\"][i].GroupFacets[j].End);\r\n if (ind >= 0) {\r\n checked = true;\r\n }\r\n }\r\n }\r\n\r\n facetGroupModel.facetChecked = checked;\r\n facetGroups.push(facetGroupModel);\r\n }\r\n\r\n curFac.groupFacets = facetGroups;\r\n currentMetaModelFacets.push(curFac);\r\n this.metamodelFacets[index].groupFacets = facetGroups;\r\n }\r\n }\r\n }\r\n\r\n var latestFacets = this.searchService.historySearchLatestFacets;\r\n if (historySearchStatePresent && latestFacets != null && typeof latestFacets != \"undefined\"\r\n && latestFacets[\"url\"] == window.location.href && latestFacets[\"classType\"] == mainQuery.ClassTypes[0]) {\r\n\r\n this.searchService.changeAvailibleFacets(latestFacets[\"Facets\"]);\r\n\r\n } else {\r\n this.searchService.changeAvailibleFacets(currentMetaModelFacets);\r\n this.searchService.setLatestHistorySearchFacets(currentMetaModelFacets, mainQuery.ClassTypes[0], window.location.href);\r\n }\r\n } else {\r\n this.searchService.changeAvailibleFacets([]);\r\n }\r\n\r\n this.showLoader = false;\r\n }, error => {\r\n this.showLoader = false;\r\n // reset facets if error\r\n this.searchService.changeAvailibleFacets([]);\r\n // reset page and total count if error\r\n this.searchService.changePaginationInfo(new PaginationModel(0, 1));\r\n\r\n });\r\n }\r\n\r\n // add search facets to mainQuery if exists\r\n private handleSearchFacets() {\r\n for (let facet of this.currentFacets) {\r\n\r\n let fieldType = \"Facet\";\r\n let fieldName = facet.fieldName;\r\n let facetQuery = null;\r\n\r\n\r\n if (facet.facetType == \"normal\") {\r\n\r\n facetQuery =\r\n {\r\n \"Type\": fieldType,\r\n \"FieldName\": fieldName,\r\n \"FieldValue\": facet.fieldValue\r\n };\r\n\r\n } else if (facet.facetType == \"range\") {\r\n\r\n facetQuery =\r\n {\r\n \"Type\": fieldType,\r\n \"FieldName\": fieldName,\r\n \"FieldValueFrom\": facet.fieldValueFrom,\r\n \"FieldValueTo\": facet.fieldValueTo\r\n };\r\n\r\n } else if (facet.facetType == \"taxonomy\") {\r\n\r\n facetQuery =\r\n {\r\n \"Type\": fieldType,\r\n \"FieldName\": fieldName,\r\n \"Path\": facet.fieldPath\r\n };\r\n }\r\n\r\n if (facetQuery != null) {\r\n this.andQuery.SubQueries.push(facetQuery);\r\n }\r\n }\r\n }\r\n\r\n // add additional search fields to andQuery if they exists\r\n private handleAdditionalSearchFields() {\r\n // handle additional search fields\r\n for (let item of this.model[\"AdditionalSearchFields\"]) {\r\n\r\n\r\n if (\r\n (item[\"FormControlName\"] == \"SemDropDownSelectControl\")\r\n ||\r\n (item[\"IsDropdown\"] == true && item[\"DropdownFullTypeOfSimpleProperty\"] != null)) {\r\n\r\n if (\r\n (item[\"FormControlName\"] == \"SemDropDownSelectControl\" || item[\"FormControlName\"] == \"SemManyToOneControl\")\r\n && item[\"IsDropdown\"] == true) {\r\n let dropdownValue = item.SearchValue;\r\n\r\n if (dropdownValue != null && typeof dropdownValue != \"undefined\" && dropdownValue != \"\") {\r\n\r\n var newFieldQuery =\r\n {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": item.Name + \".Id\",\r\n \"FieldValue\": dropdownValue[\"Id\"]\r\n };\r\n\r\n this.andQuery.SubQueries.push(newFieldQuery);\r\n\r\n }\r\n } else {\r\n\r\n // we add * on the end of each search value if it doesn't exists already\r\n let searchValue = item.SearchValue;\r\n if (!searchValue.endsWith(\"*\")) {\r\n searchValue += \"*\";\r\n }\r\n\r\n var newFieldQuery2 =\r\n {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": item.Name,\r\n \"FieldValue\": searchValue\r\n };\r\n\r\n this.andQuery.SubQueries.push(newFieldQuery2);\r\n }\r\n\r\n } else if (typeof item[\"SearchValue\"] != \"undefined\" && item[\"SearchValue\"] != \"\") {\r\n\r\n // we add * on the end of each search value if it doesn't exists already\r\n let searchValue = item.SearchValue;\r\n if (!searchValue.endsWith(\"*\")) {\r\n searchValue += \"*\";\r\n }\r\n\r\n var newFieldQuery2 =\r\n {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": item.Name,\r\n \"FieldValue\": searchValue\r\n };\r\n\r\n this.andQuery.SubQueries.push(newFieldQuery2);\r\n\r\n } else if ((typeof item[\"SearchValueFrom\"] != \"undefined\" && item[\"SearchValueFrom\"] != \"\") || (typeof item[\"SearchValueTo\"] != \"undefined\" && item[\"SearchValueTo\"] != \"\")) {\r\n\r\n var from = \"*\";\r\n var to = \"*\";\r\n\r\n if (typeof item[\"SearchValueFrom\"] != \"undefined\" && item[\"SearchValueFrom\"] != \"\" && item[\"SearchValueFrom\"] != null) {\r\n from = item[\"SearchValueFrom\"];\r\n }\r\n\r\n if (typeof item[\"SearchValueTo\"] != \"undefined\" && item[\"SearchValueTo\"] != \"\" && item[\"SearchValueTo\"] != null) {\r\n to = item[\"SearchValueTo\"];\r\n }\r\n\r\n var newRangeQuery =\r\n {\r\n \"Type\": \"FieldRange\",\r\n \"FieldName\": item.Name,\r\n \"FieldValueFrom\": from,\r\n \"FieldValueTo\": to\r\n };\r\n\r\n this.andQuery.SubQueries.push(newRangeQuery);\r\n } else if (item[\"CheckBoxState\"] != null && typeof item[\"CheckBoxState\"] != \"undefined\" && item[\"CheckBoxState\"] != \"novalue\") {\r\n\r\n let fieldValue = null;\r\n if (item[\"CheckBoxState\"] == \"checked-true\") {\r\n fieldValue = 1;\r\n } else if (item[\"CheckBoxState\"] == \"checked-false\") {\r\n fieldValue = 0;\r\n }\r\n\r\n if (fieldValue != null) {\r\n var newQuery = null;\r\n if (item.PredefinedQuery != null) {\r\n\r\n try {\r\n if (fieldValue == 1\r\n && item.PredefinedQuery[\"QueryIfTrue\"] != null\r\n && typeof item.PredefinedQuery[\"QueryIfTrue\"] != \"undefined\") {\r\n\r\n\r\n var checkTrueQuery = JSON.parse(item.PredefinedQuery[\"QueryIfTrue\"].replaceAll(\"'\", \"\\\"\"));\r\n newQuery = checkTrueQuery;\r\n\r\n } else if (fieldValue == 0\r\n && item.PredefinedQuery[\"QueryIfFalse\"] != null\r\n && typeof item.PredefinedQuery[\"QueryIfFalse\"] != \"undefined\") {\r\n\r\n var checkFalseQuery = JSON.parse(item.PredefinedQuery[\"QueryIfFalse\"].replaceAll(\"'\", \"\\\"\"));\r\n newQuery = checkFalseQuery;\r\n }\r\n }\r\n catch { }\r\n } else {\r\n\r\n newQuery =\r\n {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": item.Name,\r\n \"FieldValue\": fieldValue\r\n };\r\n }\r\n\r\n if (newQuery != null) {\r\n this.andQuery.SubQueries.push(newQuery);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n setNewUserSearchSettingObject(modelName, viewId) {\r\n\r\n // if global search, no need for search settings\r\n if (this.globalSearch == false) {\r\n this.userService.getUserSearchSettings(modelName, viewId).subscribe(data => {\r\n\r\n if (data != null) {\r\n this.userSearchSettings = data;\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n getSearchPlaceHolder() {\r\n\r\n if (this.searchService.currentPlaceHoldertitle != null && typeof this.searchService.currentPlaceHoldertitle != \"undefined\") {\r\n return this.searchService.currentPlaceHoldertitle;\r\n }\r\n\r\n return 'galis_js_SearchForm_MainSearchPlaceholder';\r\n }\r\n\r\n handleUserAdditionalSearchFields(modelName, viewId, restore: boolean = false) {\r\n\r\n this.showLoader = true\r\n\r\n\r\n // check if user already has search field settings saved\r\n this.userService.getUserSearchSettings(modelName, viewId).subscribe(data => {\r\n if (data != null) {\r\n this.userSearchSettings = data;\r\n if (data != null && typeof data != \"undefined\" && data[\"Version\"] != null && typeof data[\"Version\"] != \"undefined\") {\r\n this.userService.userSearchSettingCurrentVersion = data[\"Version\"];\r\n }\r\n\r\n this.searchService.facetsOrder = [];\r\n if (data[\"FacetsOrder\"] != null && typeof data[\"FacetsOrder\"] != \"undefined\" && data[\"FacetsOrder\"].length > 0) {\r\n let splitArr = data[\"FacetsOrder\"].split(',');\r\n\r\n if (splitArr != null && splitArr.length > 0) {\r\n this.searchService.facetsOrder = splitArr;\r\n }\r\n\r\n }\r\n\r\n if (data[\"FilterQuery\"] != null && typeof data[\"FilterQuery\"] != \"undefined\") {\r\n try {\r\n this.customViewFilter = JSON.parse(data[\"FilterQuery\"]);\r\n } catch (e) {\r\n this.customViewFilter = null;\r\n }\r\n }\r\n\r\n if (data[\"EnableFacets\"] != null && typeof data[\"EnableFacets\"] != \"undefined\") {\r\n this.enableFacets = data[\"EnableFacets\"];\r\n }\r\n\r\n if (data[\"CustomPageSize\"] != null && typeof data[\"CustomPageSize\"] != \"undefined\" && data[\"CustomPageSize\"] > 0) {\r\n this.searchService.pageSize = data[\"CustomPageSize\"];\r\n }\r\n\r\n if (data[\"SearchPlaceholderTitle\"] != null && typeof data[\"SearchPlaceholderTitle\"] != \"undefined\") {\r\n this.searchPlaceholderTitle = data[\"SearchPlaceholderTitle\"];\r\n this.searchService.currentPlaceHoldertitle = this.searchPlaceholderTitle;\r\n\r\n }\r\n\r\n if (data[\"QuickViewEnabled\"] != null && typeof data[\"QuickViewEnabled\"] != \"undefined\") {\r\n this.additionalSearchSettings.quickViewEnabled = data[\"QuickViewEnabled\"];\r\n } else {\r\n this.additionalSearchSettings.quickViewEnabled = false;\r\n }\r\n\r\n if (data[\"QuickViewFormName\"] != null && typeof data[\"QuickViewFormName\"] != \"undefined\") {\r\n this.additionalSearchSettings[\"quickViewFormName\"] = data[\"QuickViewFormName\"];\r\n } else {\r\n this.additionalSearchSettings[\"quickViewFormName\"] = \"\";\r\n }\r\n\r\n if (data[\"OnlyLastNodeNames\"] != null && typeof data[\"OnlyLastNodeNames\"] != \"undefined\") {\r\n this.additionalSearchSettings.onlyLastNodeNames = data[\"OnlyLastNodeNames\"];\r\n } else {\r\n this.additionalSearchSettings.onlyLastNodeNames = false;\r\n }\r\n\r\n if (data[\"ShowItemNumber\"] != null && typeof data[\"ShowItemNumber\"] != \"undefined\") {\r\n this.additionalSearchSettings.showItemNumber = data[\"ShowItemNumber\"];\r\n } else {\r\n this.additionalSearchSettings.showItemNumber = false;\r\n }\r\n\r\n if (data[\"ShowActionsColumn\"] != null && typeof data[\"ShowActionsColumn\"] != \"undefined\") {\r\n this.additionalSearchSettings.showActionsColumn = data[\"ShowActionsColumn\"];\r\n } else {\r\n this.additionalSearchSettings.showActionsColumn = true;\r\n }\r\n\r\n }\r\n this.searchService.setAdditionalSearchSettings(this.additionalSearchSettings);\r\n this.searchService.setEnableFacets(this.enableFacets);\r\n\r\n let viewId = 0;\r\n if (this.params != null && typeof this.params != \"undefined\" && this.params[\"view\"] != null && typeof this.params[\"view\"] != \"undefined\") {\r\n viewId = this.params[\"view\"];\r\n }\r\n\r\n this.metaModelService.getSearchFields(modelName, this.additionalSearchSettings.onlyLastNodeNames, viewId, this.globalSearch, this.globalSearchType).subscribe(data => {\r\n\r\n if (restore) {\r\n this.model[\"AdditionalSearchFields\"] = [];\r\n this.addedFields = [];\r\n }\r\n\r\n if (data != null && typeof data != \"undefined\" && data.length > 0) {\r\n\r\n var luceneProperties: any[] = [];\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n\r\n if (data[i] != null && typeof data[i] != \"undefined\") {\r\n\r\n const currentLuceneProperties = data[i][\"LuceneProperties\"];\r\n if (currentLuceneProperties != null && typeof currentLuceneProperties != \"undefined\") {\r\n luceneProperties.push(...currentLuceneProperties);\r\n }\r\n }\r\n }\r\n\r\n this.metamodelSearchFields = luceneProperties;\r\n this.searchService.changeMetaModelEntities(luceneProperties);\r\n\r\n\r\n // filter out those that are collection properties and select only those that are AvailibleInSearch\r\n //this.metamodelSearchFields = this.metamodelSearchFields.filter(x => x.IsCollectionProperty == false && x.AvailibleInSearch == true);\r\n this.metamodelSearchFields = this.metamodelSearchFields.filter(x => x.AvailibleInSearch == true);\r\n\r\n if (this.globalSearch == false) {\r\n // if user has any saved searchSettings\r\n if (this.userSearchSettings != null && this.userSearchSettings.SearchFields != null && this.userSearchSettings.SearchFields.length > 0) {\r\n\r\n // go through saved fields\r\n for (let i = 0; i < this.userSearchSettings.SearchFields.length; i++) {\r\n\r\n\r\n // find saved field in metamodelSearchFields\r\n let index = this.metamodelSearchFields.findIndex(x => x.Name == this.userSearchSettings.SearchFields[i].PropertyPath);\r\n if (index >= 0) {\r\n // if property found add field\r\n this.metamodelSearchFields[index][\"SearchValue\"] = \"\";\r\n this.metamodelSearchFields[index][\"SearchValueFrom\"] = \"\";\r\n this.metamodelSearchFields[index][\"SearchValueTo\"] = \"\";\r\n this.metamodelSearchFields[index][\"CheckBoxState\"] = \"novalue\";\r\n this.model[\"AdditionalSearchFields\"].push(this.metamodelSearchFields[index]);\r\n // also add into addedFields\r\n this.addedFields.push(this.metamodelSearchFields[index]);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n this.metamodelSearchFields = [];\r\n this.searchService.changeMetaModelEntities([]);\r\n }\r\n\r\n\r\n\r\n if (this.params != null && typeof this.params != \"undefined\") {\r\n if (this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\") {\r\n // i see what u did here, nice abuse lol\r\n if (this.params[\"model\"] == \"Semantika.WebGalis.Application.Models.Tasks.TaskModel\") {\r\n this.performTaskSearch();\r\n }\r\n }\r\n }\r\n\r\n this.showLoader = false;\r\n\r\n }, error => {\r\n this.showLoader = false;\r\n\r\n });\r\n\r\n }, error => {\r\n this.showLoader = false;\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, AfterContentInit, NgZone, ChangeDetectorRef, AfterViewInit, AfterContentChecked, Output, EventEmitter, ViewChild, HostListener } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { NG_VALUE_ACCESSOR, FormControl } from '../../../../../node_modules/@angular/forms';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport * as _ from \"lodash\";\r\nimport { Observable, of, Subject, Subscription } from 'rxjs';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatOption, MatOptionSelectionChange } from '@angular/material/core';\r\n\r\n\r\n@Component({\r\n selector: 'sem-drop-down-select',\r\n templateUrl: './sem-select.component.html',\r\n styleUrls: ['./sem-select.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemSelectComponent, multi: true }\r\n ]\r\n})\r\nexport class SemSelectComponent extends ValueAccessorBase implements OnInit, AfterViewInit {\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n @Input() list: any[] = [];\r\n @Input() galregistryname: string;\r\n @Input() subBindingPropertyName: string;\r\n @Input() titleField: string;\r\n @Input() searchQueryFilter: any = {};\r\n @Input() type: any = 1;\r\n @Input() filterField: any = \"Title\";\r\n @Input() preLoad: any;\r\n @Input() useAsMultiField: boolean = false;\r\n @Input() autoSelectFirstEntry: boolean = false;\r\n @Input() clientUIControl: boolean = false;\r\n @Input() multiFieldRootPropertyBinding: string = \"\";\r\n @Input() multiFieldPropertyName: string = \"\";\r\n @Input() waitForFilteredValue: boolean = false;\r\n @Input() useNhibernate: boolean = false;\r\n @Input() filteredValueBinding: string = \"\";\r\n @Input() additionalProjection: any[] = [];\r\n @Input() customPageSize: any;\r\n @Input() defaultValue: any;\r\n @Input() onSelectPostJS: string = null;\r\n @Input() customDataApi: string = null;\r\n @Input() minWidth: string = \"auto\";\r\n @Input() autoSelectCondition: string = \"\";\r\n @Input() autoSelectConditionValue: string = \"\";\r\n @Input() isReadOnly: any;\r\n @Input() useGlobalModel: boolean = false;\r\n @Input() customDataApiInputParameters: any = null;\r\n @Input() autoSelectFirstEntryCondition: any = null;\r\n @Input() loadItemsOnModelLoad: any = null;\r\n @Input() placeholder: string = \"\";\r\n @Input() pageSize: any = 40;\r\n @Input() readOnlyCondition: any;\r\n\r\n itemsLoaded = false;\r\n _isDisabled: boolean;\r\n\r\n private additionalProjectionOriginal: any[] = [];\r\n\r\n @Output() itemSelected: EventEmitter = new EventEmitter();\r\n @ViewChild(MatSelect, { read: MatSelect, static: true }) matSelect: MatSelect;\r\n initialSet: boolean = false;\r\n selectedValueId: string;\r\n\r\n formModel: any;\r\n private loadedOnModelLoad = false;\r\n myControl = new FormControl();\r\n\r\n multiFields: any[] = [];\r\n filteredOptions: Observable;\r\n loadingResults: boolean = false;\r\n req: Subject = new Subject();\r\n query = JSON.parse(\"{ \\\"MainQuery\\\": null, \\\"FieldQueries\\\": { }, \\\"FacetQueries\\\": { }, \\\"RequestedFacets\\\": null, \\\"Projection\\\": [], \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" }, \\\"ClassTypes\\\": [], \\\"Page\\\": \\\"1\\\", \\\"PageSize\\\": \" + this.pageSize + \", \\\"RepositoryName\\\": \\\"lucene\\\", \\\"Form\\\": null, \\\"UseCache\\\": false, \\\"Facets\\\": [], \\\"SortFields\\\": [] }\");\r\n //private subscription: Subscription;\r\n bindingPropertyName: string = \"\";\r\n private filteredValueSubs: any = null;\r\n private newSectionAddedObsrvProp: Subscription = null;\r\n id = 0;\r\n preSelectedEntity = null;\r\n private dropdownOptionsLoaded: boolean = false;\r\n autoselect = true;\r\n\r\n conditionApplied: boolean = false;\r\n conditionValue: any = null;\r\n\r\n valueRemoved: boolean = false;\r\n\r\n super() { }\r\n\r\n ngOnDestroy(): void {\r\n\r\n this.utility.newDropdownValueSelected(undefined, undefined);\r\n if (typeof this.filteredValueSubs != \"undefined\" && this.filteredValueSubs != null) {\r\n this.filteredValueSubs.unsubscribe();\r\n }\r\n\r\n if (this.newSectionAddedObsrvProp) {\r\n this.newSectionAddedObsrvProp.unsubscribe();\r\n }\r\n }\r\n\r\n getReadOnly() {\r\n if (this.isReadOnly != null && typeof this.isReadOnly != \"undefined\") {\r\n return this.isReadOnly;\r\n } \r\n\r\n if(this.readOnlyCondition != null && typeof this.readOnlyCondition != \"undefined\" && this.readOnlyCondition.length > 0){\r\n\r\n let resultOfEval = eval(this.readOnlyCondition);\r\n\r\n if(resultOfEval == true){\r\n this.isReadOnly = true;\r\n return true;\r\n }else{\r\n this.isReadOnly = false;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.useNhibernate) {\r\n this.query = JSON.parse(\"{ \\\"MainQuery\\\": null, \\\"FieldQueries\\\": { }, \\\"FacetQueries\\\": { }, \\\"RequestedFacets\\\": null, \\\"Projection\\\": [], \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"*\\\", \\\"FieldValue\\\": \\\"*\\\" }, \\\"ClassTypes\\\": [], \\\"Page\\\": \\\"1\\\", \\\"PageSize\\\": \" + this.pageSize + \", \\\"RepositoryName\\\": \\\"nhibernate\\\", \\\"Form\\\": null, \\\"UseCache\\\": false, \\\"Facets\\\": [], \\\"SortFields\\\": [] }\");\r\n }\r\n\r\n if (Object.prototype.toString.call(this.additionalProjection) === '[object Array]') {\r\n this.additionalProjectionOriginal = Object.assign([], this.additionalProjection);\r\n } else if (Object.prototype.toString.call(this.additionalProjection) === '[object String]') {\r\n var res = this.additionalProjection.toString().split(\",\");\r\n var array: any[] = [];\r\n for (var i = 0; i < res.length; i++) {\r\n array.push(res[i]);\r\n }\r\n this.additionalProjectionOriginal = Object.assign([], array);\r\n }\r\n\r\n\r\n if (typeof (this.type) == \"undefined\" || this.type == 0) {\r\n this.type = 1;\r\n }\r\n\r\n this.route\r\n .queryParams\r\n .subscribe(params => {\r\n // Defaults to 0 if no query param provided.\r\n this.params = params;\r\n });\r\n\r\n if (typeof (this.filterField) == \"undefined\" || this.filterField == null || this.filterField == \"\") {\r\n this.filterField = \"Title\";\r\n }\r\n\r\n let name = this.getAttribute(\"name\");\r\n if (name != null && typeof name != \"undefined\") {\r\n this.bindingPropertyName = name.replace(\"model.\", \"\");\r\n }\r\n\r\n\r\n if (this.type == 1 || this.type == 3) {\r\n if (this.waitForFilteredValue == false) {\r\n // if default value specified load only this value\r\n // after first click on dropdown loadItems() will execute\r\n // also load default value on empty details page (if id specified we load actual value from db - based on response) \r\n if (this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue != \"\" && (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\" || this.params[\"id\"] == 0)) {\r\n this.loadItems(parseInt(this.defaultValue));\r\n } else {\r\n this.dropdownOptionsLoaded = true;\r\n this.loadItems();\r\n }\r\n }\r\n } else {\r\n // if default value specified on autocomplete load default value \r\n // also load default value on empty details page (if id specified we load actual value from db - based on response) \r\n if (this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue != \"\" && (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\" || this.params[\"id\"] == 0)) {\r\n this.loadItems(parseInt(this.defaultValue));\r\n }\r\n\r\n if (this.checkForDisabled(this.getAttribute('name')) == true) {\r\n this.myControl.disable();\r\n }\r\n }\r\n\r\n // register listener \r\n if (this.waitForFilteredValue != null && typeof this.waitForFilteredValue != \"undefined\" && this.waitForFilteredValue == true) {\r\n this.filteredValueSubs = this.utility.currentDropdownSelectedValue.subscribe(value => {\r\n\r\n if (typeof value != \"undefined\" && value != null\r\n && typeof value[\"SelectedDropDownBinding\"] != \"undefined\" && value[\"SelectedDropDownBinding\"] != null\r\n && typeof value[\"SelectedValue\"] != \"undefined\" && value[\"SelectedValue\"] != null) {\r\n\r\n // check if correct dropdown\r\n if (this.filteredValueBinding == value[\"SelectedDropDownBinding\"]) {\r\n // if standard dropdown, fire search\r\n // if autocomplete we dont need to fire search because it will be fired when user clicks on dropdown\r\n if (this.type == 1 || this.type == 3) {\r\n if (this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue != \"\" && (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\" || this.params[\"id\"] == 0)) {\r\n this.loadItems(parseInt(this.defaultValue));\r\n } else {\r\n this.loadItems();\r\n }\r\n //this.loadItems();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.newSectionAddedObsrvProp = this.utility.newSectionAddedObsr.subscribe((val) => {\r\n if (typeof this.autoSelectCondition != \"undefined\" && this.autoSelectCondition && this.autoSelectCondition.length > 0) {\r\n try {\r\n var evalVal = eval(\"function doIt(model){\" + this.autoSelectCondition + \"} doIt(val);\");\r\n\r\n if (typeof evalVal != \"undefined\" && evalVal && evalVal > 0) {\r\n this.id = evalVal;\r\n this.value = this.list[this.id];\r\n } else {\r\n this.id = 0;\r\n this.value = null;\r\n }\r\n this.changeDetection.detectChanges();\r\n }\r\n catch (e) {\r\n console.log(\"Error setting default value from autoselect condition\", e);\r\n }\r\n }\r\n });\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n if (typeof model != \"undefined\" && model && Object.keys(model).length > 0) {\r\n if (this.preSelectedEntity) {\r\n let currentVal = this.dfms.getValue(model, this.bindingPropertyName);\r\n if (typeof currentVal == \"undefined\" || !currentVal) {\r\n this.value = this.preSelectedEntity;\r\n this.changeDetection.detectChanges();\r\n }\r\n }\r\n\r\n if (this.type == 3) {\r\n\r\n let selectedVal = this.dfms.getValue(model, this.bindingPropertyName);\r\n\r\n if (typeof selectedVal != \"undefined\" && selectedVal) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i][\"Id\"] == selectedVal[\"Id\"]) {\r\n this.list[i] = selectedVal;\r\n }\r\n }\r\n\r\n this.changeDetection.detectChanges();\r\n }\r\n } else if (this.type == 1 && model[\"Id\"] > 0 && this.loadedOnModelLoad == false) {\r\n this.loadedOnModelLoad = true;\r\n\r\n // model data has been loaded \r\n // if loadItemsOnModelLoad is true -> load items again\r\n if (this.loadItemsOnModelLoad != null && typeof this.loadItemsOnModelLoad != \"undefined\" && this.loadItemsOnModelLoad == true) {\r\n this.loadItems();\r\n }\r\n }\r\n\r\n\r\n if (typeof this.autoSelectCondition != \"undefined\" && this.autoSelectCondition && this.autoSelectCondition.length > 0) {\r\n try {\r\n this.conditionValue = eval(\"function doIt(model){\" + this.autoSelectCondition + \"} doIt(model);\");\r\n if (this.type == 2) {\r\n this.loadAutoComplete(\"\");\r\n this.loadedOnModelLoad = true;\r\n }\r\n }\r\n catch (e) {\r\n console.log(\"Error setting default value from autoselect condition\", e);\r\n }\r\n\r\n }\r\n\r\n /*if (this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue != \"\" && (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\" || this.params[\"id\"] == 0)) {\r\n this.loadItems(parseInt(this.defaultValue));\r\n } else {\r\n this.loadItems();\r\n }*/\r\n\r\n //this.loadItems();\r\n if (typeof this.autoSelectCondition != \"undefined\" && this.autoSelectCondition && this.autoSelectCondition.length > 0) {\r\n let currentVal = this.dfms.getValue(model, this.bindingPropertyName);\r\n if (typeof currentVal != \"undefined\" && currentVal) {\r\n this.value = currentVal;\r\n this.id = currentVal[\"Id\"];\r\n this.changeDetection.detectChanges();\r\n }\r\n }\r\n }\r\n //This causes problems when large number of dropdowns in present on the form... since we do not have the scenario with initial load needed for autocomplete dropdown, we commented that out\r\n /*l[\"Id\"] > 0 && this.loadedOnModelLoad == false){\r\n this.loadedOnModelLoad = true;\r\n this.loadAutoComplete(\"\");\r\n }*/\r\n\r\n });\r\n\r\n }\r\n\r\n ngModelChangeEvent(ev) {\r\n\r\n }\r\n\r\n ordinalChange(ev) {\r\n\r\n }\r\n\r\n addSorting(query) {\r\n\r\n if (query != null) {\r\n var sorting = [];\r\n\r\n var classType = query[\"ClassType\"];\r\n if (classType == null || typeof classType == \"undefined\" || classType == \"\") {\r\n classType = query[\"ClassTypes\"][0];\r\n }\r\n \r\n //0 = asc, 1 = desc\r\n sorting.push({\r\n \"FieldName\": \"Id\",\r\n \"Direction\": 0, \r\n \"RootClassName\": classType\r\n });\r\n\r\n query[\"SortFields\"] = sorting;\r\n }\r\n\r\n return query;\r\n }\r\n\r\n loadItems(defaultValueId: number = 0) {\r\n\r\n if (this.predefinedValueEvent != \"\" && this.predefinedValueEvent != null && typeof this.predefinedValueEvent != \"undefined\") {\r\n this.id = parseInt(this.predefinedValueEvent);\r\n } else {\r\n this.id = 0;\r\n }\r\n\r\n if (defaultValueId > 0) {\r\n this.id = defaultValueId;\r\n } else {\r\n this.id = 0;\r\n }\r\n\r\n if (this.galregistryname.length > 0) {\r\n\r\n this.loadingResults = true;\r\n let defaultValueTreeQuery = null;\r\n\r\n if (defaultValueId > 0) {\r\n defaultValueTreeQuery = {\r\n \"Type\": \"FieldValue\",\r\n \"FieldName\": \"Id\",\r\n \"FieldValue\": \"\" + this.defaultValue\r\n };\r\n }\r\n\r\n // use custom delimiter ${ }\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n let formModel = {};\r\n\r\n if (this.model != null && typeof this.model != \"undefined\") {\r\n formModel = this.model;\r\n }\r\n\r\n if (Object.keys(formModel).length == 0 || this.useGlobalModel) {\r\n if (this.dfms.globalModel != null && typeof this.dfms.globalModel != \"undefined\") {\r\n formModel = this.dfms.globalModel;\r\n }\r\n }\r\n\r\n if (this.searchQueryFilter != null && typeof this.searchQueryFilter != \"undefined\" && Object.entries(this.searchQueryFilter).length !== 0 && this.searchQueryFilter.constructor !== Object) {\r\n\r\n try {\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/registry/dropdown\";\r\n requestModel.contentType = \"application/json\"\r\n let searchQ = Object.assign({}, this.query);//JSON.parse(this.searchQueryFilter);\r\n let interpolateError: boolean = false;\r\n // no need for inerpolate since we have default value tree query\r\n if (defaultValueTreeQuery == null) {\r\n try {\r\n // interpolate\r\n let compiled = _.template(this.searchQueryFilter);\r\n let compiledSearchQuery = compiled(formModel);\r\n if (compiledSearchQuery != null && typeof compiledSearchQuery != \"undefined\") {\r\n let interpolateMainSearchQueryObject = JSON.parse(compiledSearchQuery);\r\n searchQ[\"TreeQuery\"] = interpolateMainSearchQueryObject;\r\n }\r\n } catch {\r\n interpolateError = true;\r\n //let searchQ = Object.assign({}, this.query);\r\n }\r\n\r\n } else {\r\n searchQ[\"TreeQuery\"] = defaultValueTreeQuery;\r\n }\r\n\r\n if (!interpolateError) {\r\n searchQ[\"ClassType\"] = this.galregistryname;\r\n searchQ[\"Projection\"] = this.getProjection();\r\n\r\n if (this.customPageSize != null && typeof this.customPageSize != \"undefined\" && this.customPageSize > 0) {\r\n searchQ[\"PageSize\"] = this.customPageSize;\r\n }\r\n\r\n\r\n searchQ = this.addSorting(searchQ);\r\n requestModel.data = searchQ;\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n let result = data[\"Models\"];\r\n\r\n this.preSelectedEntity = null;\r\n\r\n // clear before setting new list from response\r\n this.list = [];\r\n for (var i = 0; i < result.length; i++) {\r\n this.list = [...this.list, result[i][\"Model\"]];\r\n\r\n if (this.id > 0) {\r\n if (result[i][\"Model\"][\"Id\"] == this.id) {\r\n this.preSelectedEntity = result[i][\"Model\"];\r\n }\r\n }\r\n }\r\n\r\n if (this.titleField == \"\" || this.titleField == null || typeof this.titleField == \"undefined\") {\r\n this.titleField = \"Title\";\r\n this.changeDetection.detectChanges();\r\n } else {\r\n this.changeDetection.detectChanges();\r\n }\r\n this.itemsLoaded = true;\r\n\r\n // also check that we're not on details form (then value is based on entity)\r\n if (this.autoSelectFirstEntry && (this.clientUIControl || (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\"))) {\r\n if (this.list != null && typeof this.list != \"undefined\" && this.list.length > 0) {\r\n\r\n this.autoselect = true;\r\n\r\n if (this.autoSelectFirstEntryCondition != null && typeof this.autoSelectFirstEntryCondition != \"undefined\") {\r\n // autoSelectFirstEntryCondition should set value of this.autoselect to true/false\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.autoSelectFirstEntryCondition);\r\n }\r\n\r\n if (this.autoselect === true) {\r\n var value = this.list[0];\r\n value[\"ObjectType\"] = this.galregistryname;\r\n this.value = value;\r\n }\r\n\r\n }\r\n }\r\n\r\n if (this.preSelectedEntity) {\r\n this.value = this.preSelectedEntity;\r\n }\r\n\r\n if (this.value && this.type == 3) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i][\"Id\"] == this.value[\"Id\"]) {\r\n this.list[i] = this.value;\r\n }\r\n }\r\n }\r\n\r\n if (this.conditionValue != null) {\r\n this.conditionApplied = true;\r\n this.defaultValue = this.conditionValue;\r\n //this.value = this.list[this.conditionValue];\r\n this.value = this.list.filter(x=>x.Id == this.conditionValue)[0];\r\n this.changeDetection.detectChanges();\r\n }\r\n this.loadingResults = false;\r\n });\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n this.loadingResults = false;\r\n }\r\n );\r\n }else{\t\r\n this.loadingResults = false;\t\r\n }\r\n } catch (e) {\r\n this.loadingResults = false;\t\r\n }\r\n } else {\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.contentType = \"application/json\"\r\n\r\n if (this.customDataApi != null && typeof this.customDataApi != \"undefined\" && this.customDataApi.length > 0) {\r\n requestModel.url = this.customDataApi;\r\n\r\n if (this.customDataApiInputParameters != null && typeof this.customDataApiInputParameters != \"undefined\" && Object.keys(this.customDataApiInputParameters).length > 0) {\r\n try {\r\n // interpolate\r\n let compiled = _.template(this.customDataApiInputParameters);\r\n let compiledInputParams = compiled(formModel);\r\n if (compiledInputParams != null && typeof compiledInputParams != \"undefined\") {\r\n let compiledInputParamsObject = JSON.parse(compiledInputParams);\r\n requestModel.data = { \"InputParameters\": compiledInputParamsObject };\r\n }\r\n } catch {\r\n }\r\n }\r\n\r\n } else {\r\n requestModel.url = \"/api/registry/dropdown\";\r\n let searchQ = Object.assign({}, this.query);//JSON.parse(this.searchQueryFilter);\r\n searchQ[\"ClassType\"] = this.galregistryname;\r\n\r\n searchQ[\"Projection\"] = this.getProjection();\r\n\r\n if (this.customPageSize != null && typeof this.customPageSize != \"undefined\" && this.customPageSize > 0) {\r\n searchQ[\"PageSize\"] = this.customPageSize;\r\n }\r\n\r\n\r\n if (defaultValueTreeQuery != null) {\r\n searchQ[\"TreeQuery\"] = defaultValueTreeQuery;\r\n }\r\n\r\n searchQ = this.addSorting(searchQ);\r\n requestModel.data = searchQ;\r\n }\r\n\r\n if(requestModel.data == \"undefined\" || requestModel.data == null){\r\n requestModel.data = {}; //request needs to have content even if it's empty object cause we set the content type...\r\n }\r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n let result = data.Models;\r\n this.preSelectedEntity = null;\r\n // clear before setting new list from response\r\n this.list = [];\r\n for (var i = 0; i < result.length; i++) {\r\n this.list = [...this.list, result[i][\"Model\"]];\r\n\r\n if (this.id > 0) {\r\n if (result[i][\"Model\"][\"Id\"] == this.id) {\r\n this.preSelectedEntity = result[i][\"Model\"];\r\n }\r\n }\r\n }\r\n\r\n if (this.titleField == \"\" || this.titleField == null || typeof this.titleField == \"undefined\") {\r\n this.titleField = \"Title\";\r\n this.changeDetection.detectChanges();\r\n } else {\r\n this.changeDetection.detectChanges();\r\n }\r\n this.itemsLoaded = true;\r\n\r\n // also check that we're not on details form (then value is based on entity)\r\n if (this.autoSelectFirstEntry && (this.clientUIControl || (this.params[\"id\"] == null || typeof this.params[\"id\"] == \"undefined\"))) {\r\n if (this.list != null && typeof this.list != \"undefined\" && this.list.length > 0) {\r\n\r\n\r\n this.autoselect = true;\r\n\r\n if (this.autoSelectFirstEntryCondition != null && typeof this.autoSelectFirstEntryCondition != \"undefined\") {\r\n // autoSelectFirstEntryCondition should set value of this.autoselect to true/false\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.autoSelectFirstEntryCondition);\r\n }\r\n\r\n if (this.autoselect === true) {\r\n var value = this.list[0];\r\n value[\"ObjectType\"] = this.galregistryname;\r\n this.value = value;\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n if (this.preSelectedEntity) {\r\n this.value = this.preSelectedEntity;\r\n }\r\n\r\n if (this.value && this.type == 3) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i][\"Id\"] == this.value[\"Id\"]) {\r\n this.list[i] = this.value;\r\n }\r\n }\r\n }\r\n\r\n\r\n if (this.conditionValue != null) {\r\n this.conditionApplied = true;\r\n this.defaultValue = this.conditionValue;\r\n this.value = this.list.filter(x=>x.Id == this.conditionValue)[0];\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n this.loadingResults = false;\r\n this.changeDetection.detectChanges();\r\n\r\n });\r\n }, error => {\r\n this.list.push(\"Error retrieving data for dropdown\");\r\n this.loadingResults = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n getProjection() {\r\n let projections = [];\r\n if (typeof this.filterField != undefined && this.filterField != null && this.filterField != \"\") {\r\n projections.push(this.filterField);\r\n }\r\n if (this.additionalProjectionOriginal != null && typeof this.additionalProjectionOriginal != \"undefined\" && this.additionalProjectionOriginal.length > 0) {\r\n var array = Object.assign([], this.additionalProjectionOriginal);\r\n for (var i = 0; i < array.length; i++) {\r\n if (typeof array[i] === 'string' || array[i] instanceof String) {\r\n projections.push(array[i]);\r\n }\r\n }\r\n }\r\n return projections;\r\n }\r\n\r\n clearValue(event) {\r\n\r\n let attName = this.getAttribute(\"name\");\r\n\r\n let control = this.dfms.globalForm.controls[attName];\r\n\r\n if (control !== null && typeof control !== \"undefined\") {\r\n this.dfms.globalForm.controls[attName].setValue(null);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n } \r\n\r\n this.dfms.updateControlsValidationArray(attName,null);\r\n\r\n event.stopPropagation();\r\n this.valueRemoved = true;\r\n this.value = null; \r\n }\r\n\r\n loadAutoComplete(searchTerm) {\r\n\r\n if (searchTerm.length == 0) {\r\n searchTerm = \"*\";\r\n }\r\n else {\r\n searchTerm = searchTerm + \"*\";\r\n }\r\n\r\n // use custom delimiter ${ }\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n\r\n let formModel = {};\r\n\r\n if (this.model != null && typeof this.model != \"undefined\") {\r\n formModel = this.model;\r\n }\r\n\r\n if (Object.keys(formModel).length == 0 || this.useGlobalModel) {\r\n if (this.dfms.globalModel != null && typeof this.dfms.globalModel != \"undefined\") {\r\n formModel = this.dfms.globalModel;\r\n }\r\n }\r\n\r\n let autocompleteTreeQuery = { Type: \"FieldValue\", FieldName: this.filterField, FieldValue: searchTerm }\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.contentType = \"application/json\"\r\n let interpolateError: boolean = false;\r\n requestModel.url = \"/api/registry/dropdown\";\r\n let searchQ = Object.assign({}, this.query);\r\n searchQ[\"ClassType\"] = this.galregistryname;\r\n searchQ[\"ClassTypes\"] = [this.galregistryname];\r\n searchQ[\"Projection\"] = this.getProjection();\r\n\r\n if (this.searchQueryFilter != null && typeof this.searchQueryFilter != \"undefined\" && Object.entries(this.searchQueryFilter).length !== 0 && this.searchQueryFilter.constructor !== Object) {\r\n try {\r\n // interpolate\r\n let compiled = _.template(this.searchQueryFilter);\r\n let compiledSearchQuery = compiled(formModel);\r\n\r\n if (compiledSearchQuery != null && typeof compiledSearchQuery != \"undefined\") {\r\n let interpolateMainSearchQueryObject = JSON.parse(compiledSearchQuery);\r\n\r\n var andQuery = {\r\n \"Type\": \"AND\",\r\n \"SubQueries\": []\r\n };\r\n\r\n andQuery[\"SubQueries\"].push(interpolateMainSearchQueryObject);\r\n andQuery[\"SubQueries\"].push(autocompleteTreeQuery);\r\n\r\n searchQ[\"TreeQuery\"] = andQuery;\r\n }\r\n } catch {\r\n interpolateError = true;\r\n //searchQ[\"TreeQuery\"] = autocompleteTreeQuery;\r\n }\r\n } else {\r\n searchQ[\"TreeQuery\"] = autocompleteTreeQuery;\r\n }\r\n\r\n if (!interpolateError) {\r\n if (this.customPageSize != null && typeof this.customPageSize != \"undefined\" && this.customPageSize > 0) {\r\n searchQ[\"PageSize\"] = this.customPageSize;\r\n }\r\n\r\n if (this.customDataApi != null && typeof this.customDataApi != \"undefined\" && this.customDataApi.length > 0) {\r\n requestModel.url = this.customDataApi;\r\n let inputParams = null;\r\n if (this.customDataApiInputParameters != null && typeof this.customDataApiInputParameters != \"undefined\" && Object.keys(this.customDataApiInputParameters).length > 0) {\r\n try {\r\n // interpolate\r\n let compiled = _.template(this.customDataApiInputParameters);\r\n let compiledInputParams = compiled(formModel);\r\n if (compiledInputParams != null && typeof compiledInputParams != \"undefined\") {\r\n let compiledInputParamsObject = JSON.parse(compiledInputParams);\r\n inputParams = compiledInputParamsObject;\r\n }\r\n } catch {\r\n }\r\n }\r\n\r\n requestModel.data = { \"Envelope\": { \"SearchTerm\": searchTerm, \"Projection\": this.getProjection(), \"PageSize\": this.customPageSize }, \"InputParameters\": inputParams };\r\n } else {\r\n searchQ = this.addSorting(searchQ);\r\n requestModel.data = searchQ;\r\n }\r\n\r\n this.restProviderService.getDataPOST(requestModel).pipe(takeUntil(this.req)).subscribe(data => {\r\n this.zone.run(() => {\r\n let result = data[\"Models\"];\r\n\r\n this.list = [];\r\n for (var i = 0; i < result.length; i++) {\r\n this.list = [...this.list, result[i][\"Model\"]];\r\n }\r\n\r\n //this.filteredOptions = of(this.list.map(value => this._filter(value)));\r\n\r\n if (this.titleField == \"\" || this.titleField == null || typeof this.titleField == \"undefined\") {\r\n this.titleField = \"Title\";\r\n this.changeDetection.detectChanges();\r\n } else {\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n /*if (searchTerm == \"*\") {\r\n this.filteredOptions = of(this.list);\r\n }*/\r\n this.filteredOptions = of(this.list);\r\n this.loadingResults = false;\r\n\r\n if (this.conditionValue != null && (typeof this.value == \"undefined\" || !this.value)) {\r\n this.conditionApplied = true;\r\n this.defaultValue = this.conditionValue;\r\n //this.value = this.list[this.conditionValue];\r\n this.value = this.list.filter(x=>x.Id == this.conditionValue)[0];\r\n this.changeDetection.detectChanges();\r\n }\r\n\r\n });\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n this.loadingResults = false;\r\n }\r\n );\r\n } else {\r\n this.loadingResults = false;\r\n }\r\n }\r\n\r\n compareFn(c1: any, c2: any): boolean {\r\n var res = c1 && c2 ? c1.Id === c2.Id : c1 === c2;\r\n\r\n return res;\r\n }\r\n\r\n compareFnR(c1: any, c2: any): boolean {\r\n var res = c1 && c2 ? c1.Id === c2.Id : c1 === c2;\r\n return res;\r\n }\r\n\r\n radioButtonChange(event) {\r\n let attName = this.getAttribute(\"name\");\r\n\r\n let control = this.dfms.globalForm.controls[attName];\r\n\r\n if (control !== null && typeof control !== \"undefined\") {\r\n this.dfms.globalForm.controls[attName].setValue(event.source.value);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n } \r\n\r\n this.dfms.updateControlsValidationArray(attName,event.source.value);\r\n\r\n if(typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval){\r\n eval(this.onValueChangeEval);\r\n }\r\n }\r\n\r\n radioChange(event) {\r\n\r\n }\r\n\r\n valueChanged() {\r\n }\r\n\r\n valueModified() {\r\n //console.log(\"Value modified: \", this.value);\r\n }\r\n\r\n //TODO: Leave this commented out, need to check if it is required for hiding of controls, or for seting them as readonly\r\n selectionChange(event: MatOptionSelectionChange) {\r\n\r\n /*this.autoSelectCondition = null;\r\n this.conditionValue = null;\r\n this.defaultValue = null;\r\n this.conditionApplied = false;*/\r\n\r\n let value = event.source.value;\r\n // set value to model\r\n //this.dfms.assign(this.model, this.bindingPropertyName, value, true); \r\n let attName = this.getAttribute(\"name\");\r\n\r\n let control = this.dfms.globalForm.controls[attName];\r\n\r\n if (control !== null && typeof control !== \"undefined\") {\r\n this.dfms.globalForm.controls[attName].setValue(event.source.value);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n } \r\n\r\n this.dfms.updateControlsValidationArray(attName,event.source.value);\r\n\r\n this.changeDetection.detectChanges();\r\n\r\n if (typeof value != \"number\" && typeof value != \"string\") {\r\n value[\"ObjectType\"] = this.galregistryname;\r\n }\r\n\r\n this.itemSelected.emit(value);\r\n\r\n if (this.useAsMultiField) {\r\n this.processMultiField(value);\r\n }\r\n\r\n this.utility.newDropdownValueSelected(value, this.bindingPropertyName);\r\n\r\n // execute code after dropdown option is selected \r\n if (this.onSelectPostJS != null && typeof this.onSelectPostJS != \"undefined\" && this.onSelectPostJS.length > 0) {\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.onSelectPostJS);\r\n }\r\n\r\n setTimeout(() => {\r\n if (this.galregistryname.includes(\"PenaltyType\")) {\r\n\r\n var result = document.getElementsByClassName(\"mat-tab-label\");\r\n\r\n for (var i = 0; i <= result.length; i++) {\r\n // continue from selected on (ignore previous tabs)\r\n // check if not disabled \r\n if (result[i][\"innerText\"].includes(\"-\")) {\r\n result[i][\"style\"][\"display\"] = \"none\";\r\n };\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n processMultiField(value) {\r\n // get fields based on selected item\r\n // send them to another control via event\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/dynamicforms/multifields/definition\";\r\n requestModel.contentType = \"application/json\"\r\n let reqDataModel = {\r\n \"Id\": value[\"Id\"],\r\n \"FullName\": this.galregistryname,\r\n \"MultiFieldPropertyName\": this.multiFieldPropertyName\r\n };\r\n requestModel.data = reqDataModel;\r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n if (data != null && typeof data != \"undefined\" && data.length > 0) {\r\n this.multiFields = data;\r\n }\r\n });\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n\r\n dropdownSelectClick() {\r\n // if defaultValue is specified then all items for dropdown are not loaded onInit (only default value)\r\n // here we load all dropdown options (only once)\r\n\r\n if (this.defaultValue != null && typeof this.defaultValue != \"undefined\" && this.defaultValue != \"\" && this.dropdownOptionsLoaded == false) {\r\n this.dropdownOptionsLoaded = true;\r\n this.loadItems();\r\n }\r\n }\r\n\r\n ddInitialSet(event: MatOptionSelectionChange) {\r\n\r\n if (!this.initialSet) {\r\n this.initialSet = true;\r\n if (event.source != null && typeof event.source != \"undefined\" && event.source.value != null && typeof event.source.value != \"undefined\" && this.useAsMultiField) {\r\n this.processMultiField(event.source.value);\r\n }\r\n //this.selectionChange(event);\r\n }\r\n\r\n for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if (this.dfms.metaModel[i].W == 0 && \"model.\" + this.dfms.metaModel[i].Path == this.getAttribute(\"name\")) {\r\n this.matSelect.disabled = true;\r\n break;\r\n }\r\n }\r\n\r\n if (this.preSelectedEntity) {\r\n this.value = this.preSelectedEntity;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n private _filter(value) {\r\n\r\n let filterValue = \"\";\r\n\r\n if (typeof value === 'object') {\r\n let val = this.resolvePropertyBinding(value, this.titleField);\r\n filterValue = val.toLowerCase();\r\n } else {\r\n filterValue = value.toLowerCase();\r\n }\r\n\r\n\r\n //if (!this.loadingResults) {\r\n this.loadingResults = true;\r\n this.req.next();\r\n this.loadAutoComplete(filterValue);\r\n //}\r\n\r\n return this.list.filter(option => this.resolvePropertyBinding(option, this.titleField).toLowerCase().includes(filterValue));\r\n\r\n }\r\n\r\n focusDropdown() {\r\n if (this.searchQueryFilter != null && typeof this.searchQueryFilter != \"undefined\" && Object.keys(this.searchQueryFilter).length > 2 && this.type == 1 && this.clientUIControl == false) {\r\n this.loadItems();\r\n }\r\n }\r\n\r\n displayFn(value) {\r\n // now you have access to 'this' \r\n return value ? this.resolvePropertyBinding(value, this.titleField) : undefined;\r\n }\r\n\r\n getValue() {\r\n if (typeof (this.value) != \"undefined\" && this.value != null) {\r\n return this.resolvePropertyBinding(this.value, this.titleField)\r\n }\r\n return \"\";\r\n }\r\n\r\n optionSelected(option) {\r\n this.value = option;\r\n\r\n let attName = this.getAttribute(\"name\");\r\n\r\n if (attName !== null && attName !== undefined)\r\n {\r\n let control = this.dfms.globalForm.controls[attName];\r\n\r\n if (control !== null && typeof control !== \"undefined\") {\r\n this.dfms.globalForm.controls[attName].setValue(option);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n } \r\n\r\n this.dfms.updateControlsValidationArray(attName, option);\r\n } \r\n\r\n if (this.type == 2) {\r\n if (this.useAsMultiField) {\r\n this.processMultiField(option);\r\n }\r\n this.utility.newDropdownValueSelected(option, this.bindingPropertyName);\r\n }\r\n\r\n // execute code after autocomplete dropdown option is selected \r\n if (this.onSelectPostJS != null && typeof this.onSelectPostJS != \"undefined\" && this.onSelectPostJS.length > 0) {\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.onSelectPostJS);\r\n }\r\n\r\n this.itemSelected.emit(option);\r\n }\r\n\r\n onFocus() {\r\n if (!this.valueRemoved) {\r\n this.req.next();\r\n this.loadingResults = true;\r\n this.loadAutoComplete(\"\");\r\n }\r\n this.valueRemoved = false;\r\n /*if (this.type == \"2\") {\r\n this.loadingResults = true;\r\n this.req.next();\r\n\r\n let value = \"\";\r\n\r\n if (typeof (this.myControl.value) != \"undefined\" && this.myControl.value != null) {\r\n value = this.myControl.value;\r\n }\r\n\r\n this.loadAutoComplete(value);\r\n } else {\r\n if (!this.preLoad) {\r\n this.loadItems();\r\n }\r\n }*/\r\n }\r\n\r\n onSearchChange(searchValue: string) {\r\n //if (!this.loadingResults) {\r\n this.req.next();\r\n this.loadingResults = true;\r\n this.loadAutoComplete(searchValue);\r\n //}\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n\r\n if (typeof object == \"number\"\r\n || typeof object == \"string\") {\r\n return object;\r\n }\r\n\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, AfterContentInit, NgZone, ChangeDetectorRef, AfterViewInit, AfterContentChecked, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport * as _ from \"lodash\";\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { DataGridSortingFlag } from 'src/app/models/datagrid/data-grid-column-sorting-flag';\r\nimport { SortFieldModel } from 'src/app/models/search/sort-field.model';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\n\r\n\r\n@Component({\r\n selector: 'sem-table-data',\r\n templateUrl: './sem-table-data.component.html',\r\n styleUrls: ['./sem-table-data.component.css'] \r\n})\r\nexport class SemTableDataComponent extends SemControlComponent implements OnInit, AfterViewInit {\r\n\r\n \r\n @Input() searchQuery;\r\n @Input() redirectUrl;\r\n @Input() tableFields: any = [];\r\n @Input() tooltipText;\r\n @Input() showPageSizeOption: boolean = false;\r\n @Input() pageOptions: any = [];\r\n @Input() customApiEndpoint: string;\r\n\r\n\r\n tableData: any = {\r\n \"Columns\":[] \r\n };\r\n itemsLoaded: boolean = false;\r\n items: any = [];\r\n totalItems: number = 0; \r\n nextPage;\r\n totalPages = 1;\r\n previousPage;\r\n pages: any = [];\r\n helperColumnFlags: DataGridSortingFlag = {};\r\n private currentSortFields: SortFieldModel[] = [];\r\n showTableLoader:boolean = false;\r\n private selectedPageSize = 5;\r\n \r\n super() { }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() { \r\n\r\n }\r\n\r\n ngOnInit() { \r\n\r\n this.currentSortFields = [];\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n this.model = model;\r\n\r\n if(this.model != null && typeof this.model != \"undefined\" && this.model.Id > 0 && this.searchQuery != null && typeof this.searchQuery != \"undefined\"){ \r\n this.search(1); \r\n }\r\n }); \r\n \r\n }\r\n \r\n pageChanged(pageNum) {\r\n this.search(pageNum);\r\n }\r\n\r\n toLastPage(){ \r\n if(this.totalPages < 1){\r\n this.totalPages = 1;\r\n } \r\n this.search(this.totalPages);\r\n }\r\n\r\n toFirstPage(){ \r\n this.search(1);\r\n }\r\n\r\n sortDropDownClick(column, event) {\r\n event.stopPropagation();\r\n if (this.helperColumnFlags[column.BindingField][\"ShowSort\"]) {\r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = false;\r\n } else {\r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = true;\r\n }\r\n return false;\r\n }\r\n\r\n setColumnSorting(column, direction, event) {\r\n event.stopPropagation();\r\n this.helperColumnFlags[column.BindingField][\"SortingUsed\"] = true;\r\n this.helperColumnFlags[column.BindingField][\"SortDirection\"] = direction;\r\n // hide \r\n this.helperColumnFlags[column.BindingField][\"ShowSort\"] = false;\r\n\r\n\r\n // add to current sort field if doesn't already exists\r\n // if exists just update sort direction\r\n let index = this.currentSortFields.findIndex(x => x.FieldName == column.BindingField);\r\n if (index >= 0) {\r\n // if new direction is same as current then ignore it\r\n if (this.currentSortFields[index].SortDirection != direction) {\r\n this.currentSortFields[index].SortDirection = direction; \r\n }\r\n } else {\r\n this.currentSortFields.push(new SortFieldModel(direction, column.BindingField, \"\"));\r\n }\r\n\r\n this.search(1);\r\n return false;\r\n }\r\n\r\n changeNumberOfPages(event) {\r\n this.selectedPageSize = event.target.value;\r\n this.search(1);\r\n }\r\n\r\n private searchCustomEndpoint(pageNum: number){\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n this.showTableLoader = true;\r\n\r\n let formModel = {};\r\n\r\n if (this.model != null && typeof this.model != \"undefined\") {\r\n formModel = this.model;\r\n }\r\n\r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/data/list\";\r\n requestModel.contentType = \"application/json\"\r\n let requestBody = {};\r\n\r\n\r\n \r\n\r\n }\r\n\r\n private postCustomEndpoint(requestModel: RequestModel){\r\n\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n this.items = data.Models; \r\n this.totalItems = data.TotalCount; \r\n \r\n let currentPage = data.Page;\r\n this.pages = [];\r\n \r\n if (this.totalItems == 0) {\r\n this.pages.push({ \"Number\": 1, \"Active\": true });\r\n } else {\r\n\r\n let pageNum = (this.totalItems + data.PageSize - 1) / data.PageSize;\r\n pageNum = Math.floor(pageNum);\r\n\r\n let from = 0;\r\n let to = pageNum;\r\n this.totalPages = pageNum;\r\n \r\n from = currentPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n\r\n to = from + 5;\r\n\r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n\r\n this.previousPage = currentPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n\r\n this.nextPage = currentPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n\r\n for (let i = from; i < to; i++) {\r\n\r\n let active = false;\r\n if (i == currentPage) {\r\n active = true;\r\n }\r\n\r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n this.itemsLoaded = true; \r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n\r\n });\r\n \r\n }, error => {\r\n this.itemsLoaded = true;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n\r\n })\r\n }\r\n\r\n private search(pageNum: number){\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n this.showTableLoader = true;\r\n\r\n // use custom delimiter ${ }\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n \r\n let formModel = {};\r\n\r\n if (this.model != null && typeof this.model != \"undefined\") {\r\n formModel = this.model;\r\n }\r\n\r\n \r\n let requestModel: RequestModel = new RequestModel();\r\n requestModel.url = \"/api/data/list\";\r\n requestModel.contentType = \"application/json\"\r\n let requestBody = {};\r\n\r\n try {\r\n // interpolate\r\n let compiled = _.template(this.searchQuery);\r\n let compiledSearchQuery = compiled(formModel);\r\n if (compiledSearchQuery != null && typeof compiledSearchQuery != \"undefined\") {\r\n let interpolateMainSearchQueryObject = JSON.parse(compiledSearchQuery); \r\n requestModel.data = interpolateMainSearchQueryObject;\r\n requestModel.data.Page = pageNum;\r\n }\r\n\r\n var searchModel = requestModel.data.ClassTypes[0];\r\n \r\n\r\n requestModel.data.PageSize = this.selectedPageSize;\r\n\r\n let viewId = 0;\r\n if(this.params != null && typeof this.params != \"undefined\" && this.params[\"view\"] != null && typeof this.params[\"view\"] != \"undefined\"){\r\n viewId = this.params[\"view\"];\r\n }\r\n\r\n this.metaModelService.getSearchFields(searchModel,false,viewId, false, \"\").subscribe(data => { \r\n if(data != null && typeof data != \"undefined\" && data.length > 0 && data[0][\"LuceneProperties\"] != null && typeof data[0][\"LuceneProperties\"] != \"undefined\"){\r\n \r\n var luceneProperties = data[0][\"LuceneProperties\"]; \r\n \r\n this.tableData.Columns = [];\r\n\r\n for(var i = 0; i < this.tableFields.length; i++){\r\n \r\n let index = luceneProperties.findIndex(x => x.Name == this.tableFields[i]);\r\n if(index >= 0){\r\n\r\n this.tableData.Columns.push({\r\n \"HeaderText\":luceneProperties[index].Translation,\r\n \"IsDateTime\": luceneProperties[index].IsDateTime,\r\n \"IsBoolean\": luceneProperties[index].IsCheckBox,\r\n \"IsImageControl\": luceneProperties[index].IsImageControl,\r\n \"BindingField\": luceneProperties[index].Name\r\n }); \r\n } \r\n\r\n\r\n if(this.helperColumnFlags[luceneProperties[index].Name] == null || typeof this.helperColumnFlags[luceneProperties[index].Name] == \"undefined\"){\r\n let isSortable = false;\r\n isSortable = luceneProperties[index][\"IsSortable\"];\r\n this.helperColumnFlags[luceneProperties[index].Name] = {\r\n \"IsSortable\": isSortable,\r\n \"ShowSort\": false,\r\n \"SortingUsed\": false\r\n }\r\n } \r\n } \r\n\r\n\r\n if(this.currentSortFields != null){\r\n\r\n requestModel.data[\"SortFields\"] = [];\r\n\r\n for (let sortField of this.currentSortFields) {\r\n\r\n let rootclassname = sortField.RootClassName;\r\n \r\n if (rootclassname == null || typeof rootclassname == \"undefined\" || rootclassname == \"\") {\r\n rootclassname = requestModel.data.ClassTypes[0];\r\n }\r\n \r\n requestModel.data[\"SortFields\"].push(\r\n {\r\n \"FieldName\": sortField.FieldName,\r\n \"Direction\": sortField.SortDirection,\r\n \"RootClassName\": rootclassname\r\n });\r\n }\r\n }\r\n \r\n if(this.customApiEndpoint !== null && typeof this.customApiEndpoint !== \"undefined\" && this.customApiEndpoint.length > 0)\r\n {\r\n //requestModel.url = \"/api/data/list\";\r\n requestModel.url = \"/\" + this.customApiEndpoint;\r\n }\r\n\r\n //faking čreva\r\n this.restProviderService.getDataPOST(requestModel).subscribe(data => {\r\n this.zone.run(() => {\r\n this.items = data.Models; \r\n this.totalItems = data.TotalCount; \r\n \r\n let currentPage = data.Page;\r\n this.pages = [];\r\n \r\n if (this.totalItems == 0) {\r\n this.pages.push({ \"Number\": 1, \"Active\": true });\r\n } else {\r\n \r\n let pageNum = (this.totalItems + data.PageSize - 1) / data.PageSize;\r\n pageNum = Math.floor(pageNum);\r\n \r\n let from = 0;\r\n let to = pageNum;\r\n this.totalPages = pageNum;\r\n \r\n from = currentPage - 2;\r\n if (from <= 0) {\r\n from = 1;\r\n }\r\n \r\n to = from + 5;\r\n \r\n if (to > pageNum) {\r\n to = pageNum + 1;\r\n }\r\n \r\n this.previousPage = currentPage - 1;\r\n if (this.previousPage <= 0) {\r\n this.previousPage = 0;\r\n }\r\n \r\n this.nextPage = currentPage + 1;\r\n if (this.nextPage > pageNum) {\r\n this.nextPage = 0;\r\n }\r\n \r\n for (let i = from; i < to; i++) {\r\n \r\n let active = false;\r\n if (i == currentPage) {\r\n active = true;\r\n }\r\n \r\n this.pages.push({ \"Number\": i, \"Active\": active });\r\n }\r\n }\r\n this.itemsLoaded = true; \r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n\r\n });\r\n \r\n }, error => {\r\n this.itemsLoaded = true;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n\r\n });\r\n \r\n } else{\r\n this.itemsLoaded = true;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n } \r\n\r\n }, error => { \r\n this.itemsLoaded = true;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n\r\n }); \r\n } catch { \r\n //console.log(\"e\"); \r\n this.itemsLoaded = true; \r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.showTableLoader = false;\r\n \r\n } \r\n }\r\n \r\n itemClick(dataItem) {\r\n if(this.customApiEndpoint !== null && typeof this.customApiEndpoint !== \"undefined\" && this.customApiEndpoint.length > 0)\r\n {\r\n this.utility.processNavigationUrl(dataItem.Model.DetailsFormUrl+ \"?id=\" + dataItem.Model.Id);\r\n }\r\n else{\r\n if(this.redirectUrl != null && typeof this.redirectUrl != \"undefined\" && this.redirectUrl.length > 0 && dataItem != null && typeof dataItem != \"undefined\"){\r\n this.utility.processNavigationUrl(this.redirectUrl+ \"?id=\" + dataItem.Model.Id);\r\n } \r\n } \r\n }\r\n \r\n\r\n showDataGridColumn(isImageControl, isBoolean) {\r\n // if it is image control then dont show data grid column\r\n // or it is boolean\r\n if (isImageControl == true || isBoolean == true) {\r\n return false; // means it will hide div\r\n } else {\r\n // in every other case show it\r\n return true;\r\n }\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n showIfNotDate(isDateTime) {\r\n if (isDateTime == true) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SemTextInputComponent } from '../sem-text-input/sem-text-input.component';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\nimport { NG_VALUE_ACCESSOR } from '../../../../../node_modules/@angular/forms';\r\nimport { retry } from '../../../../../node_modules/rxjs/operators';\r\n\r\n@Component({\r\n selector: 'sem-text-area',\r\n templateUrl: './sem-text-area.component.html',\r\n styleUrls: ['./sem-text-area.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemTextAreaComponent, multi: true }\r\n ]\r\n})\r\nexport class SemTextAreaComponent extends ValueAccessorBase implements OnInit {\r\n\r\n maxLength: number = 0;\r\n instructionTextPresent: boolean = false;\r\n @Input() instructionText: any;\r\n @Input() minLength: any;\r\n @Input() readOnlyCondition: any;\r\n\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n this.value = \"\";\r\n \r\n if(this.instructionText != null && typeof this.instructionText != \"undefined\" && this.instructionText.length > 0){\r\n this.instructionTextPresent = true;\r\n }\r\n }\r\n\r\n onTextChange(value) {\r\n let attName = this.getAttribute(\"name\");\r\n this.dfms.globalForm.controls[attName].setValue(value);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n\r\n this.dfms.updateControlsValidationArray(attName,value);\r\n\r\n if(typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval){\r\n eval(this.onValueChangeEval);\r\n }\r\n }\r\n\r\n get getValue() {\r\n if (typeof this.value != \"undefined\" && this.value != null) {\r\n return this.value;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n valueChanged() {\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SemTextInputComponent } from '../sem-text-input/sem-text-input.component';\r\nimport {\r\n MinLengthValidator,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\n@Component({\r\n selector: 'sem-text-box',\r\n templateUrl: './sem-text-box.component.html',\r\n styleUrls: ['./sem-text-box.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemTextBoxComponent, multi: true }\r\n ]\r\n})\r\n\r\nexport class SemTextBoxComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() fields: any;\r\n @Input() isNumberInput: boolean = false;\r\n @Input() isPasswordInput: boolean = false;\r\n @Input() showTooltipValue: any;\r\n disResults: any[] = [];\r\n @Input() isActiveUrl: boolean = false;\r\n @Input() step: string = \"1\";\r\n \r\n\r\n\r\n addResult() {\r\n this.disResults.push(this.checkForDisabled(this.getAttribute('name')));\r\n }\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this.isNumberInput == null || typeof this.isNumberInput == \"undefined\") {\r\n this.isNumberInput = false;\r\n }else{\r\n this.restProviderService.modelValueChanged.subscribe(model => {\r\n\r\n if (this.model != null && typeof this.model != \"undefined\" && Object.keys(model).length > 3) {\r\n let v = this.dfms.getValue(model,this.getAttribute('name').replace(\"model.\",\"\"));\r\n if(v){\r\n this.value = v;\r\n }\r\n }\r\n \r\n });\r\n }\r\n\r\n if (this.showTooltipValue == null || typeof this.showTooltipValue == \"undefined\") {\r\n this.showTooltipValue = false;\r\n }\r\n\r\n }\r\n\r\n redirectToActiveUrl(value){\r\n if(value != null && typeof value != \"undefined\" && value.length > 0){\r\n window.open(value, \"_blank\");\r\n } \r\n }\r\n\r\n onTextChange(value) {\r\n\r\n let numberValue = parseFloat(value);\r\n\r\n if (!isNaN(this.min)) {\r\n let minNumber = parseFloat(this.min);\r\n if (numberValue < minNumber) {\r\n this.value = null;\r\n this.changeDetection.detectChanges();\r\n this.value = minNumber.toString();\r\n return;\r\n }\r\n }\r\n\r\n if (!isNaN(this.max)) {\r\n let maxNumber = parseFloat(this.max);\r\n if (numberValue > maxNumber) {\r\n this.value = null;\r\n this.changeDetection.detectChanges();\r\n this.value = maxNumber.toString();\r\n return;\r\n }\r\n }\r\n\r\n\r\n this.checkAfterInput(value);\r\n\r\n }\r\n\r\n checkAfterInput(value) {\r\n let attName = this.getAttribute(\"name\");\r\n this.dfms.globalForm.controls[attName].setValue(value);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n\r\n this.dfms.updateControlsValidationArray(attName, value);\r\n\r\n if (typeof this.onValueChangeEval != \"undefined\" && this.onValueChangeEval) {\r\n eval(this.onValueChangeEval);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SemControlComponent } from '../sem-control/sem-control.component';\r\n\r\n@Component({\r\n selector: 'app-sem-text-input',\r\n templateUrl: './sem-text-input.component.html',\r\n styleUrls: ['./sem-text-input.component.css']\r\n})\r\nexport class SemTextInputComponent extends SemControlComponent implements OnInit {\r\n\r\n super() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n valueChanged() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SemTextInputComponent } from '../sem-text-input/sem-text-input.component';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { ValueAccessorBase } from '../shared/value-accessor/value-accessor-base';\r\n\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'sem-time-picker',\r\n templateUrl: './sem-time-picker.component.html',\r\n styleUrls: ['./sem-time-picker.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemTimePickerComponent, multi: true }\r\n ]\r\n})\r\nexport class SemTimePickerComponent extends ValueAccessorBase implements OnInit {\r\n\r\n @Input() fields: any;\r\n bindingPropertyName: string=\"\";\r\n super() {}\r\n\r\n ngOnInit() {\r\n\r\n /*let name = this.getAttribute(\"name\");\r\n if (name != null && typeof name != \"undefined\") {\r\n this.bindingPropertyName = name.replace(\"model.\", \"\");\r\n }\r\n\r\n this.restProviderService.modelValueChanged.subscribe(model =>{\r\n let selectedVal = this.dfms.getValue(model, this.bindingPropertyName);\r\n if(selectedVal != null && selectedVal != \"undefined\")\r\n {\r\n this.value = \"19:30\";\r\n }\r\n });*/\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n onChange(){\r\n var t = this.value;\r\n }\r\n\r\n onTextChange(value){\r\n\r\n var t = this.value;\r\n let attName = this.getAttribute(\"name\");\r\n this.dfms.globalForm.controls[attName].setValue(value);\r\n this.dfms.globalForm.controls[attName].updateValueAndValidity();\r\n }\r\n\r\n getValue(){\r\n if(moment(this.value, moment.ISO_8601, true).isValid()){\r\n return moment(this.value).format(\"HH:mm\").toString();\r\n }\r\n\r\n return this.value;\r\n }\r\n}\r\n","import { Component, OnInit, Compiler, Inject, Injector, NgModule, NgModuleRef, ViewContainerRef, Input, ViewChild, EventEmitter, Output, OnChanges, ComponentRef, KeyValueDiffer, KeyValueChanges, ViewEncapsulation } from '@angular/core';\r\nimport { SemTextBoxComponent } from '../../sem-text-box/sem-text-box.component';\r\nimport { SemSharedModule } from '../../../../shared/modules/sem-shared/sem-shared.module';\r\nimport { CommonModule } from '../../../../../../node_modules/@angular/common';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '../../../../../../node_modules/@angular/forms';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\nimport { SemDataGridComponent } from '../../sem-data-grid/sem-data-grid.component';\r\nimport { RouteNavigationService } from '../../../../services/dynamic-routes-loader/route-navigation.service';\r\nimport { SemDynamicComponent } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { SemNavigationModule } from 'src/app/navigation/modules/sem-navigation/sem-navigation.module';\r\n//import { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { ValueAccessorBase } from '../value-accessor/value-accessor-base';\r\nimport { ParameterFormsService } from 'src/app/services/parameter-forms-service/parameter-forms.service';\r\nimport { SemBaseComponent } from 'src/app/components/common/sem-base/sem-base.component';\r\nimport { MatLegacyTabChangeEvent as MatTabChangeEvent } from '@angular/material/legacy-tabs';\r\nimport { UserService } from '../../../../services/user/user-provider.service';\r\nimport { LocalStorageService } from '../../../../services/local-storage-service/local-storage.service';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\n\r\n@Component({\r\n selector: 'app-sem-dynamic-control',\r\n templateUrl: './sem-dynamic-control.component.html',\r\n styleUrls: ['./sem-dynamic-control.component.css'],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: SemDynamicControlComponent, multi: true }\r\n ]\r\n})\r\nexport class SemDynamicControlComponent extends ValueAccessorBase implements OnInit {\r\n\r\n items: any;\r\n @ViewChild('vc', { read: ViewContainerRef, static: true }) vc: ViewContainerRef;\r\n @Input() url: any;\r\n @Input() template: any;\r\n @Input() entityId: any;\r\n @Input() entity: any;\r\n @Input() useForParams: any; \r\n @Input() component: any;\r\n @Input() bindingPropertyName:any;\r\n @Input() number:any;\r\n @Input() forwardEntityName:any;\r\n private forwardEntSubs: any = null;\r\n\r\n public cmpRef: ComponentRef;\r\n showLoader: boolean = false;\r\n\r\n super() {\r\n }\r\n\r\n async initDynamicForm() {\r\n let routeService = this.injector.get(RouteNavigationService);\r\n\r\n /*if(routeService.wgRoutes.length == 0){\r\n this.showLoader = true;\r\n await routeService.loadConfig(window.location.pathname.substring(1));\r\n this.showLoader = false;\r\n }*/\r\n\r\n if (this.url != \"\" && this.url != null && typeof (this.url) != \"undefined\") {\r\n for (var i = 0; i < routeService.wgRoutes.length; i++) {\r\n if (routeService.wgRoutes[i][\"PrettyUrl\"] == this.url || this.useForParams == true) {\r\n\r\n this.showLoader = true;\r\n\r\n let urlReq = routeService.wgRoutes[i][\"Url\"];\r\n\r\n if(this.useForParams == true) {\r\n urlReq = this.url;\r\n }\r\n\r\n this.restProviderService.getDataGET(urlReq).subscribe(async frmTemplate => {\r\n\r\n //console.log(\"TASK FORM TEMPLATE : \", frmTemplate); \r\n\r\n var tmpCmp = null;\r\n\r\n if(this.useForParams){ \r\n\r\n var confirmLabel = this.translationsService.translate('galis_js_ParameterForm_Confirm');\r\n var closeLabel = this.translationsService.translate('galis_js_ParameterForm_Close');\r\n\r\n frmTemplate += \"
\";\r\n \r\n // component without extending class SemDynamicComponent\r\n tmpCmp = Component({ template: frmTemplate })(class extends SemControlComponent implements OnChanges {\r\n \r\n model: any;\r\n\r\n ngOnChanges(changes) { \r\n }\r\n \r\n ngOnInit() { \r\n this.model = {}; \r\n\r\n }\r\n\r\n checkIfInUserGroup(id: any) { \r\n return this.userService.checkIfInUserGroup(id);\r\n }\r\n\r\n confirmParameterDialog() { \r\n this.parameterFormService.setParameterFormModel(this.model);\r\n this.parameterFormService.closeParameterFormDialog(false); \r\n }\r\n \r\n cancelParameterDialog() { \r\n this.parameterFormService.setParameterFormModel({});\r\n this.parameterFormService.closeParameterFormDialog(true);\r\n }\r\n\r\n }); \r\n }else{\r\n tmpCmp = Component({ template: frmTemplate })(class extends SemDynamicComponent implements OnChanges {\r\n\r\n ngOnChanges(changes) {\r\n //console.log(\"Changes invoked: \", changes);\r\n }\r\n \r\n ngOnInit() {\r\n }\r\n }); \r\n }\r\n \r\n const tmpModule = NgModule({ imports: [CommonModule, SemSharedModule, SemNavigationModule], declarations: [tmpCmp], providers: [NgSelectComponent] })(class {\r\n });\r\n\r\n await this._compiler.compileModuleAndAllComponentsAsync(tmpModule)\r\n .then((factories) => {\r\n const f = factories.componentFactories[factories.componentFactories.length - 1];\r\n this.cmpRef = f.create(this._injector, [], null, this._m);\r\n this.cmpRef.instance.name = 'DynamicControlComponent';\r\n \r\n if (this.entityId != null && this.entityId != \"\" && typeof (this.entityId) != \"undefined\") {\r\n this.restProviderService.getDataGET(\"api/data/form/\" + routeService.wgRoutes[i].SerializationObjectFormLink + \"/\" + this.entityId).subscribe(data => {\r\n let jsonData = JSON.parse(data);\r\n let prepModel = jsonData[\"Model\"];\r\n\r\n prepModel[\"SerializationObjectFormLink\"] = routeService.wgRoutes[i].SerializationObjectFormLink; \r\n this.model = prepModel;\r\n this.cmpRef.instance.model = prepModel;\r\n this.vc.insert(this.cmpRef.hostView);\r\n\r\n this.showLoader = false;\r\n\r\n }, error => {\r\n console.log(\"Error retrieving model for task: \", error);\r\n });\r\n } else {\r\n\r\n this.cmpRef.instance.model = { SerializationObjectFormLink: routeService.wgRoutes[i].SerializationObjectFormLink };\r\n this.vc.insert(this.cmpRef.hostView);\r\n this.showLoader = false;\r\n }\r\n\r\n });\r\n\r\n\r\n }, error => { console.log(\"Error retrieving task template \", error) });\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n formTabChanged(){\r\n \r\n }\r\n\r\n /*ngAfterViewInit(): void {\r\n // for forward entitypurposes\r\n if(this.forwardEntityName != null && typeof this.forwardEntityName != \"undefined\"){\r\n this.forwardEntSubs = this.utility.currentDropdownSelectedValue.subscribe(model => {\r\n\r\n if (typeof model != \"undefined\" && model != null && model.SelectedDropDownBinding != null && typeof model.SelectedDropDownBinding != \"undefined\") { \r\n if(model.SelectedDropDownBinding === this.forwardEntityName && this.model != null && typeof this.model != \"undefined\"){\r\n this.model[this.forwardEntityName] = model.SelectedValue;\r\n }\r\n }\r\n\r\n });\r\n }\r\n }*/\r\n\r\n ngOnInit() {\r\n\r\n super.ngOnInit;\r\n this.model = this.entity;\r\n\r\n if (typeof (this.template) != \"undefined\" && this.template != null && this.template.length > 0) {\r\n this.initDynamicWithTemplate(this.forwardEntityName);\r\n }\r\n else {\r\n this.initDynamicForm();\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n \r\n if (typeof this.forwardEntSubs != \"undefined\" && this.forwardEntSubs != null) {\r\n this.forwardEntSubs.unsubscribe();\r\n }\r\n }\r\n \r\n async initDynamicWithTemplate(forwardEntityName) {\r\n\r\n this.template = this.template.replace(new RegExp('o2m-content', 'g'), '');\r\n //this.template = this.template + \"
SHOW MODEL
\";\r\n let routeService = this.injector.get(RouteNavigationService);\r\n const tmpCmp = Component({ template: this.template })(class extends ValueAccessorBase implements OnChanges {\r\n\r\n super() { }\r\n\r\n component: SemBaseComponent = null;\r\n\r\n ngOnChanges(changes) {\r\n //console.log(\"Changes invoked: \", changes);\r\n }\r\n\r\n ngOnInit() {\r\n //console.log(\"Dynamic form init., model: \", this.model);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n // for forward entitypurposes\r\n this.utility.currentDropdownSelectedValue.subscribe(model => {\r\n if(forwardEntityName != null && typeof forwardEntityName != \"undefined\"){\r\n if (typeof model != \"undefined\" && model != null && model.SelectedDropDownBinding != null && typeof model.SelectedDropDownBinding != \"undefined\") { \r\n if(model.SelectedDropDownBinding === forwardEntityName && this.model != null && typeof this.model != \"undefined\"){\r\n this.model[forwardEntityName] = model.SelectedValue;\r\n }\r\n }\r\n } \r\n }); \r\n }\r\n\r\n getProp(prop, expression) {\r\n let value = \"\";\r\n\r\n if (expression) {\r\n let midValue = eval(expression);\r\n //let midValue = new Function(expression).call(this);\r\n value = midValue;\r\n }\r\n else {\r\n value = this.dfms.getValue(this.model, prop);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n setProp(prop, value) {\r\n this.dfms.assign(this.model, prop, value, true);\r\n }\r\n\r\n showModel() {\r\n //console.log(\"Dynamic model: \", this.model);\r\n }\r\n\r\n modelChanged($event) {\r\n //console.log(\"Dynamic model changed: \", event);\r\n }\r\n\r\n });\r\n\r\n const tmpModule = NgModule({ imports: [CommonModule, SemSharedModule, SemNavigationModule, FormsModule], exports: [CommonModule, SemSharedModule, SemNavigationModule, FormsModule], declarations: [tmpCmp], providers: [NgSelectComponent, { provide: NG_VALUE_ACCESSOR, useExisting: tmpCmp, multi: true }] })(class {\r\n });\r\n\r\n await this._compiler.compileModuleAndAllComponentsAsync(tmpModule)\r\n .then((factories) => {\r\n\r\n const f = factories.componentFactories[factories.componentFactories.length - 1];\r\n this.cmpRef = f.create(this._injector, [], null, this._m);\r\n this.cmpRef.instance.name = 'DynamicControlComponent';\r\n\r\n this.cmpRef.instance.component = this.component;\r\n this.model = this.entity;\r\n this.model.number = this.number;\r\n this.model.bindingPropertyName = this.bindingPropertyName;\r\n this.cmpRef.instance.model = this.entity;\r\n this.vc.insert(this.cmpRef.hostView);\r\n this.showLoader = false;\r\n this.changeDetection.detectChanges();\r\n });\r\n\r\n }\r\n\r\n public async generateDynamicViewComponent(tmpCmp: any, vc: ViewContainerRef) {\r\n\r\n const tmpModule = NgModule({\r\n declarations: [tmpCmp],\r\n imports: [CommonModule, SemSharedModule, FormsModule]\r\n })(class {\r\n });\r\n\r\n await this._compiler.compileModuleAndAllComponentsAsync(tmpModule)\r\n .then((factories) => {\r\n const f = factories.componentFactories[0];\r\n const cmpRef = f.create(this._injector, [], null, this._m);\r\n cmpRef.instance.name = 'DynamicControlComponent';\r\n vc.insert(cmpRef.hostView);\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { ControlValueAccessor } from '@angular/forms';\r\nimport { Input, Type, OnInit, Directive, Component } from '@angular/core';\r\nimport { SemControlComponent } from '../../sem-control/sem-control.component';\r\nimport { SemDatePickerComponent } from '../../sem-date-picker/sem-date-picker.component';\r\nimport * as moment from 'moment';\r\nimport { throws } from 'assert';\r\n\r\n\r\n@Component({\r\n selector: 'value-accessor',\r\n templateUrl: './value-accessor.html',\r\n styleUrls: ['./value-accessor.css']\r\n})\r\nexport abstract class ValueAccessorBase extends SemControlComponent implements ControlValueAccessor, OnInit {\r\n\r\n @Input() parent: any;\r\n @Input() public predefinedValueEvent: any;\r\n @Input() alwaysEditable:boolean = false;\r\n @Input() defaultValueToday:boolean = false;\r\n\r\n super() {\r\n }\r\n\r\n private innerValue: T;\r\n private initialValueSet: boolean = false;\r\n\r\n private changed = new Array<(value: T) => void>();\r\n private touched = new Array<() => void>();\r\n\r\n ngOnInit() {\r\n /*this.restProviderService.modelValueChanged.subscribe(model => {\r\n if (typeof model != \"undefined\" && model && Object.keys(model).length > 0) {\r\n this.checkInitialValue(model);\r\n }\r\n });*/\r\n }\r\n\r\n checkInitialValue(model) {\r\n\r\n if(typeof (this.defaultValueToday) != \"undefined\" && this.defaultValueToday){\r\n if(this.defaultValueToday == true && !this.value){\r\n let val:any = new Date();\r\n this.value = val;\r\n this.innerValue = val;\r\n\r\n this.initialValueSet = true;\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (typeof this.predefinedValueEvent != \"undefined\" && this.predefinedValueEvent) {\r\n if (this.predefinedValueEvent != \"\") {\r\n //console.log(\"Predefined value event: \", this.predefinedValueEvent);\r\n //console.log(\"Component: \", this);\r\n\r\n if (this.isDate(this.predefinedValueEvent)) {\r\n this.innerValue = this.getMomentDate(this.predefinedValueEvent);\r\n this.value = this.getMomentDate(this.predefinedValueEvent);\r\n } else {\r\n if (!model) {\r\n this.innerValue = this.predefinedValueEvent;\r\n this.value = this.predefinedValueEvent;\r\n } else {\r\n let val = eval(this.predefinedValueEvent);\r\n\r\n if (typeof val != \"undefined\" && val) {\r\n this.innerValue = val;\r\n this.value = val;\r\n }\r\n }\r\n }\r\n\r\n this.initialValueSet = true;\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n get value(): T {\r\n try {\r\n\r\n return this.innerValue;\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n\r\n set value(value: T) {\r\n try {\r\n if (this.innerValue !== value) {\r\n this.innerValue = value;\r\n\r\n this.valueModified();\r\n this.changed.forEach(f => f(value));\r\n }\r\n\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n\r\n touch() {\r\n try {\r\n this.touched.forEach(f => f());\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n\r\n writeValue(value: T) {\r\n try {\r\n this.innerValue = value;\r\n this.checkInitialValue(null);\r\n\r\n if (typeof value != \"undefined\" && value != null) {\r\n this.valueChanged();\r\n }\r\n\r\n let attName = this.getAttribute(\"name\");/*\r\n for (var i = 0; i < this.dfms.controlValuesForValidation.length; i++) {\r\n if (this.dfms.controlValuesForValidation[i][\"Name\"] == attName) {\r\n this.dfms.controlValuesForValidation[i][\"Value\"] = value;\r\n return;\r\n }\r\n }\r\n\r\n this.dfms.controlValuesForValidation.push({ \"Name\": attName, \"Value\": value });*/\r\n\r\n this.dfms.updateControlsValidationArray(attName,value);\r\n\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n\r\n registerOnChange(fn: (value: T) => void) {\r\n try {\r\n this.changed.push(fn);\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n\r\n registerOnTouched(fn: () => void) {\r\n try {\r\n this.touched.push(fn);\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n protected valueModified() { }\r\n\r\n protected valueChanged(): void { }\r\n\r\n isDate(s) {\r\n\r\n if(s.length == 1 && (!s.includes(\".\") && !s.includes(\"/\"))){\r\n return false;\r\n }\r\n\r\n var date = moment(this.predefinedValueEvent);\r\n\r\n return date.isValid();\r\n }\r\n\r\n getMomentDate(value): any {\r\n if (typeof this.predefinedValueEvent != \"undefined\" && this.predefinedValueEvent) {\r\n if (this.predefinedValueEvent != \"\") {\r\n return moment(this.predefinedValueEvent, \"MM-DD-YYYY\");\r\n }\r\n }\r\n }\r\n\r\n extractNumberFromString(value){\r\n try{\r\n\r\n let matches = value.match(/(\\d|,)+/g);\r\n \r\n return matches;\r\n \r\n }\r\n catch(e){\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { lang } from 'moment';\r\nimport { SemToken } from 'src/app/models/oauth/semToken';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { LocalStorageService } from 'src/app/services/local-storage-service/local-storage.service';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SemTimePickerComponent } from '../../controls/sem-time-picker/sem-time-picker.component';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n public username: string = \"\";\r\n public password: string = \"\";\r\n public imgPath = environment.projIcon;\r\n\r\n constructor(private rp: RestProviderService, private httpClient: HttpClient, private router: Router, private localStorageService: LocalStorageService, private translationsService: TranslationsProviderService) { }\r\n\r\n ngOnInit(): void {\r\n let homepage = this.localStorageService.get(\"homepage_url\");\r\n if(homepage){\r\n window.location.href = homepage;\r\n }\r\n }\r\n\r\n loginClick() {\r\n let body = new URLSearchParams();\r\n body.set('username', this.username);\r\n body.set('password', this.password);\r\n body.set('grant_type', 'password');\r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n\r\n this.httpClient\r\n .post(environment.wgProfileHost + \"/oauth/token\", body.toString(), options)\r\n .subscribe(response => {\r\n\r\n let token = new SemToken;\r\n token.accessToken = response[\"access_token\"];\r\n token.created = new Date();\r\n\r\n let expires = new Date();\r\n expires.setHours(expires.getHours() + 24);\r\n token.expires = expires;\r\n\r\n this.localStorageService.add(\"token\", JSON.stringify(token));\r\n this.localStorageService.add(\"user\", response[\"user\"]);\r\n\r\n //this.rp.setCookie(\"_galis_access_token\", response[\"access_token\"], 1, \"/\");\r\n this.rp.currentUser = JSON.parse(response[\"user\"]);\r\n\r\n let languageCode = this.localStorageService.get(\"language\");\r\n if (languageCode == null) {\r\n languageCode = environment.language.toUpperCase();\r\n this.localStorageService.add(\"language\",languageCode);\r\n }\r\n\r\n let transObj = new RequestModel;\r\n transObj.data = {\r\n \"LanguageCode\": languageCode\r\n };\r\n\r\n transObj.url = \"api/translation/all\";\r\n\r\n this.rp.getDataPOST(transObj).subscribe(data => {\r\n\r\n let translations = data[\"Translations\"];\r\n this.translationsService.translations = translations;\r\n this.localStorageService.add(\"translations\", JSON.stringify(translations));\r\n\r\n if (typeof response[\"dashboard_url\"] != \"undefined\" && response[\"dashboard_url\"]) {\r\n this.localStorageService.add(\"homepage_url\", response[\"dashboard_url\"]);\r\n window.location.href = response[\"dashboard_url\"];\r\n } else {\r\n this.localStorageService.add(\"homepage_url\", \"cms/dashboard\");\r\n window.location.href = \"cms/dashboard\";\r\n }\r\n\r\n }, error => {\r\n\r\n });\r\n },\r\n error => {\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { lang } from 'moment';\r\nimport { SemToken } from 'src/app/models/oauth/semToken';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { LocalStorageService } from 'src/app/services/local-storage-service/local-storage.service';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SemTimePickerComponent } from '../../controls/sem-time-picker/sem-time-picker.component';\r\n\r\n@Component({\r\n selector: 'app-v2-login',\r\n templateUrl: './login-v2.component.html',\r\n styleUrls: ['./login-v2.component.css']\r\n})\r\nexport class LoginV2Component implements OnInit {\r\n\r\n public username: string = \"\";\r\n public password: string = \"\";\r\n public imgPath = environment.projIcon;\r\n public disabled: boolean = false;\r\n public projName = environment.projectName;\r\n\r\n constructor(private rp: RestProviderService, private httpClient: HttpClient, private router: Router, private localStorageService: LocalStorageService, private translationsService: TranslationsProviderService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n let homepage = this.localStorageService.get(\"homepage_url\");\r\n if (homepage) {\r\n window.location.href = homepage;\r\n } else {\r\n this.projName = environment.projectName;\r\n\r\n if (environment.ADLoginEnabled) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),\r\n withCredentials: true\r\n };\r\n\r\n\r\n this.httpClient.get(environment.wgProfileHost + \"/oauth/winlogin\", options).subscribe(response => {\r\n this.procesResponse(response);\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n procesResponse(response) {\r\n\r\n let languageCode = this.localStorageService.get(\"language\");\r\n if (languageCode == null) {\r\n languageCode = environment.language.toUpperCase();\r\n }\r\n\r\n localStorage.clear();\r\n\r\n this.localStorageService.add(\"language\", languageCode);\r\n\r\n let token = new SemToken;\r\n token.accessToken = response[\"access_token\"];\r\n token.created = new Date();\r\n\r\n let expires = new Date();\r\n expires.setHours(expires.getHours() + 24);\r\n token.expires = expires;\r\n\r\n this.localStorageService.add(\"token\", JSON.stringify(token));\r\n this.localStorageService.add(\"user\", response[\"user\"]);\r\n\r\n //this.rp.setCookie(\"_galis_access_token\", response[\"access_token\"], 1, \"/\");\r\n this.rp.currentUser = JSON.parse(response[\"user\"]);\r\n\r\n let transObj = new RequestModel;\r\n transObj.data = {\r\n \"LanguageCode\": languageCode\r\n };\r\n\r\n transObj.url = \"api/translation/all\";\r\n\r\n this.rp.getDataPOST(transObj).subscribe(data => {\r\n\r\n let translations = data[\"Translations\"];\r\n this.translationsService.translations = translations;\r\n this.localStorageService.add(\"translations\", JSON.stringify(translations));\r\n\r\n if (typeof response[\"dashboard_url\"] != \"undefined\" && response[\"dashboard_url\"]) {\r\n this.localStorageService.add(\"homepage_url\", response[\"dashboard_url\"]);\r\n window.location.href = response[\"dashboard_url\"];\r\n } else {\r\n this.localStorageService.add(\"homepage_url\", \"cms/dashboard\");\r\n window.location.href = \"cms/dashboard\";\r\n }\r\n\r\n }, error => {\r\n this.disabled = false;\r\n });\r\n }\r\n\r\n loginClick() {\r\n this.disabled = true;\r\n let body = new URLSearchParams();\r\n body.set('username', this.username);\r\n body.set('password', this.password);\r\n body.set('grant_type', 'password');\r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n\r\n this.httpClient\r\n .post(environment.wgProfileHost + \"/oauth/token\", body.toString(), options)\r\n .subscribe(response => {\r\n this.procesResponse(response);\r\n },\r\n error => {\r\n this.disabled = false;\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { LocalStorageService } from '../../../services/local-storage-service/local-storage.service';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { TranslationsProviderService } from '../../../services/translations-provider/translations-provider.service';\r\nimport { SemToken } from 'src/app/models/oauth/semToken';\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { delayWhen, map, retryWhen, shareReplay, tap } from 'rxjs/operators';\r\nimport { timer } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-login-v3',\r\n templateUrl: './login-v3.component.html',\r\n styleUrls: ['./login-v3.component.scss']\r\n})\r\nexport class LoginV3Component implements OnInit {\r\n\r\n public username: string = \"\";\r\n public password: string = \"\";\r\n public otp: string = \"\";\r\n public imgPath = environment.projIcon;\r\n public disabled: boolean = false;\r\n public projName = environment.projectName;\r\n public showOTP: boolean = false;\r\n public showAlertMessage: boolean = false;\r\n public alertMessage: string = \"\";\r\n public forgotUsernameMail: string = \"\";\r\n public loginViewName: string = \"\";\r\n public forgotPasswordMail: string = \"\";\r\n public showGreenAlert: boolean = false;\r\n public newPasswordRepeat: string = \"\";\r\n public newPassword: string = \"\";\r\n private pwResetToken: string = \"\";\r\n public pwChangeDone: boolean = false;\r\n\r\n\r\n constructor(private rp: RestProviderService, private httpClient: HttpClient, private router: Router, private localStorageService: LocalStorageService, private translationsService: TranslationsProviderService, private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.loginViewName = \"userLogin\";\r\n let homepage = this.localStorageService.get(\"homepage_url\");\r\n\r\n this.pwResetToken = this.route.snapshot.queryParams['token'];\r\n if(this.pwResetToken !== null && this.pwResetToken !== undefined && this.pwResetToken.length > 0){\r\n this.loginViewName = \"passwordReset\";\r\n }\r\n\r\n if (homepage) {\r\n window.location.href = homepage;\r\n } else {\r\n\r\n this.projName = environment.projectName;\r\n\r\n\r\n if (environment.ADLoginEnabled) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),\r\n withCredentials: true\r\n };\r\n\r\n\r\n this.httpClient.get(environment.wgProfileHost + \"/oauth/winlogin\", options)\r\n .subscribe(\r\n response => {\r\n this.procesResponse(response);\r\n },\r\n error => {\r\n console.log(error);\r\n },\r\n\r\n () => {\r\n //all ok\r\n }\r\n\r\n );\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n procesResponse(response) { \r\n let languageCode = this.localStorageService.get(\"language\");\r\n if (languageCode == null) {\r\n languageCode = environment.language.toUpperCase();\r\n }\r\n\r\n localStorage.clear();\r\n\r\n this.localStorageService.add(\"language\", languageCode);\r\n\r\n let token = new SemToken;\r\n token.accessToken = response[\"access_token\"];\r\n token.created = new Date();\r\n\r\n let expires = new Date();\r\n expires.setHours(expires.getHours() + 24);\r\n token.expires = expires;\r\n\r\n this.localStorageService.add(\"token\", JSON.stringify(token));\r\n\r\n let userData = jwtDecode(token.accessToken);\r\n\r\n this.localStorageService.add(\"user\", userData[\"userState\"]);//response[\"user\"]);\r\n\r\n //this.rp.setCookie(\"_galis_access_token\", response[\"access_token\"], 1, \"/\");\r\n this.rp.currentUser = JSON.parse(userData[\"userState\"]);\r\n\r\n let transObj = new RequestModel;\r\n transObj.data = {\r\n \"LanguageCode\": languageCode\r\n };\r\n\r\n transObj.url = \"api/translation/all\";\r\n\r\n this.rp.getDataPOST(transObj).subscribe(data => {\r\n\r\n let translations = data[\"Translations\"];\r\n this.translationsService.translations = translations;\r\n this.localStorageService.add(\"translations\", JSON.stringify(translations));\r\n\r\n if (typeof response[\"dashboard_url\"] != \"undefined\" && response[\"dashboard_url\"]) {\r\n this.localStorageService.add(\"homepage_url\", response[\"dashboard_url\"]);\r\n window.location.href = response[\"dashboard_url\"];\r\n } else {\r\n this.localStorageService.add(\"homepage_url\", \"cms/dashboard\");\r\n window.location.href = \"cms/dashboard\";\r\n }\r\n\r\n }, error => {\r\n this.disabled = false;\r\n });\r\n }\r\n\r\n showPassword() {\r\n var x = document.getElementById(\"Password\");\r\n if (x[\"type\"] === \"password\") {\r\n x[\"type\"] = \"text\";\r\n } else {\r\n x[\"type\"] = \"password\";\r\n }\r\n }\r\n\r\n loginClick(otpLogin: boolean = false) {\r\n this.showAlertMessage = false;\r\n this.disabled = true;\r\n this.showGreenAlert = false;\r\n let body = new URLSearchParams();\r\n let url = \"\";\r\n\r\n body.set('username', this.username);\r\n body.set('grant_type', 'password');\r\n\r\n if (otpLogin) {\r\n body.set('otp', this.otp);\r\n url = \"/oauth/otptoken\";\r\n } else {\r\n body.set('password', this.password);\r\n url = \"/oauth/token\";\r\n } \r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n\r\n this.httpClient\r\n .post(environment.wgProfileHost + url, body.toString(), options)\r\n .subscribe(response => {\r\n\r\n if (response != null) {\r\n\r\n let warning = response[\"warning\"];\r\n if (warning !== null && warning !== undefined && warning === true) {\r\n\r\n this.showAlertMessage = true;\r\n this.alertMessage = response[\"warningMsg\"];\r\n\r\n } else {\r\n\r\n if (response[\"otpRequired\"] === true) {\r\n this.showOTP = true;\r\n this.otp = \"\"; \r\n } else {\r\n this.showOTP = false;\r\n this.procesResponse(response);\r\n }\r\n\r\n } \r\n\r\n this.disabled = false;\r\n } \r\n },\r\n error => {\r\n this.disabled = false;\r\n });\r\n\r\n }\r\n\r\n otpLogin() {\r\n this.loginClick(true);\r\n }\r\n\r\n closeErrorBox() {\r\n this.showAlertMessage = false;\r\n this.alertMessage = \"\";\r\n }\r\n\r\n newRegistration() {\r\n \r\n // TODO: make registration form?\r\n\r\n if(environment.newRegistrationLinkDocument && environment.newRegistrationLinkDocument.length > 0){\r\n window.open(environment.newRegistrationLinkDocument, '_blank');\r\n }else{\r\n // show registration form?\r\n }\r\n\r\n }\r\n\r\n\r\n usernameForgot(){\r\n this.loginViewName = \"forgotUsername\";\r\n }\r\n\r\n passwordForgot(){\r\n this.loginViewName = \"forgotPassword\";\r\n }\r\n\r\n showMainLoginScreen(){\r\n window.location.href = '/account/login';\r\n }\r\n\r\n\r\n\r\n sendMailForgotUsername(){\r\n this.showGreenAlert = false;\r\n this.disabled = true; \r\n let url = \"/api/account/username/forgot/\"+this.forgotUsernameMail; \r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/json')\r\n };\r\n\r\n this.httpClient\r\n .get(environment.wgProfileHost + url, options)\r\n .subscribe(response => {\r\n\r\n if(response){\r\n\r\n if(response[\"Error\"]){\r\n this.showAlertMessage = true;\r\n this.alertMessage = response[\"Message\"];\r\n }else{ \r\n this.forgotUsernameMail = \"\"; \r\n this.loginViewName = \"userLogin\"; \r\n } \r\n } \r\n this.disabled = false; \r\n },\r\n error => {\r\n this.disabled = false;\r\n this.showAlertMessage = true;\r\n this.alertMessage = \"Napaka\";\r\n }); \r\n }\r\n\r\n sendMailForgotPassword(){\r\n this.showGreenAlert = false;\r\n this.disabled = true; \r\n let url = \"/api/account/password/reset/\"+this.forgotPasswordMail; \r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/json')\r\n };\r\n\r\n this.httpClient\r\n .get(environment.wgProfileHost + url, options)\r\n .subscribe(response => {\r\n\r\n\r\n if(response){\r\n \r\n if(response[\"Error\"]){\r\n this.showGreenAlert = false;\r\n }else{ \r\n this.showGreenAlert = true;\r\n this.forgotPasswordMail = \"\"; \r\n } \r\n\r\n this.alertMessage = response[\"Message\"]; \r\n this.showAlertMessage = true; \r\n } \r\n this.disabled = false; \r\n },\r\n error => {\r\n this.disabled = false;\r\n this.showAlertMessage = true;\r\n this.alertMessage = \"Napaka\";\r\n }); \r\n }\r\n\r\n sendPasswordResetValues(){\r\n \r\n this.pwChangeDone = false;\r\n this.showGreenAlert = false;\r\n this.disabled = true; \r\n let url = \"/api/account/password/reset/token\";\r\n\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/json')\r\n }; \r\n\r\n let body = {\r\n NewPassword: this.newPassword,\r\n NewPasswordRepeat: this.newPasswordRepeat,\r\n Token: this.pwResetToken\r\n }\r\n\r\n this.httpClient\r\n .post(environment.wgProfileHost + url, JSON.stringify(body), options)\r\n .subscribe(response => {\r\n\r\n\r\n if(response){\r\n \r\n if(response[\"Error\"]){\r\n this.showGreenAlert = false; \r\n }else{ \r\n this.showGreenAlert = true;\r\n this.newPassword = \"\";\r\n this.newPasswordRepeat = \"\"; \r\n this.pwChangeDone = true; \r\n } \r\n this.showAlertMessage = true; \r\n this.alertMessage = response[\"Message\"]; \r\n } \r\n this.disabled = false; \r\n },\r\n error => {\r\n this.disabled = false;\r\n this.showAlertMessage = true;\r\n this.alertMessage = \"Napaka\";\r\n }); \r\n\r\n }\r\n}\r\n\r\n","import { NgControl } from '@angular/forms';\r\nimport { Directive, Input } from '@angular/core';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\n\r\n@Directive({\r\n selector: '[disableControl]'\r\n})\r\nexport class DisableControlDirective {\r\n\r\n @Input() set disableControl(name: string) {\r\n //const action = condition ? 'disable' : 'enable';\r\n //this.ngControl.control[action]();\r\n\r\n for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if (this.dfms.metaModel[i].W == 0 && this.dfms.metaModel[i].Path == name) {\r\n this.ngControl.control[\"disable\"]();\r\n }\r\n }\r\n\r\n }\r\n\r\n constructor(private ngControl: NgControl, public dfms: DynamicFieldsManagerService) {\r\n }\r\n\r\n}","import { Directive, Input, ElementRef, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[makeDraggable]'\r\n})\r\nexport class MakeDraggable {\r\n @Input('makeDraggable') data: any;\r\n @Output() dropped = new EventEmitter();\r\n \r\n constructor(private _elementRef: ElementRef) {}\r\n \r\n ngOnInit() {\r\n // Get the current element\r\n let el = this._elementRef.nativeElement;\r\n \r\n // Set the draggable attribute to the element\r\n el.draggable = 'true';\r\n \r\n // Set up the dragstart event and add the drag-src CSS class \r\n // to change the visual appearance. Set the current todo as the data\r\n // payload by stringifying the object first\r\n el.addEventListener('dragstart', (e) => {\r\n //console.log('Start');\r\n \r\n el.classList.add('drag-src')\r\n e.dataTransfer.effectAllowed = 'move';\r\n e.dataTransfer.setData('text', JSON.stringify(this.data));\r\n });\r\n \r\n // Remove the drag-src class\r\n el.addEventListener('dragend', (e) => {\r\n e.preventDefault();\r\n el.classList.remove('drag-src')\r\n });\r\n }\r\n}","import { Directive, OnInit, Output, ElementRef, Input } from \"@angular/core\";\r\nimport { EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[makeDroppable]'\r\n})\r\nexport class MakeDroppable implements OnInit {\r\n @Output() dropped = new EventEmitter();\r\n \r\n constructor(private _elementRef: ElementRef) {}\r\n \r\n ngOnInit() {\r\n let el = this._elementRef.nativeElement;\r\n\r\n // Add a style to indicate that this element is a drop target\r\n el.addEventListener('dragenter', (e) => {\r\n el.classList.add('over');\r\n });\r\n\r\n // Remove the style\r\n el.addEventListener('dragleave', (e) => {\r\n el.classList.remove('over');\r\n });\r\n\r\n el.addEventListener('dragover', (e) => {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n\r\n e.dataTransfer.dropEffect = 'move';\r\n return false;\r\n });\r\n\r\n // On drop, get the data and convert it back to a JSON object\r\n // and fire off an event passing the data\r\n el.addEventListener('drop', (e) => {\r\n if (e.stopPropagation) {\r\n e.stopPropagation(); // Stops some browsers from redirecting.\r\n }\r\n \r\n el.classList.remove('over');\r\n let data = JSON.parse(e.dataTransfer.getData('text'));\r\n this.dropped.emit(data);\r\n return false;\r\n })\r\n }\r\n}","import { Directive, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form-service/form.service';\r\n\r\n@Directive({\r\n selector: '[formLoadEvent]'\r\n})\r\nexport class FormLoadEventDirective implements OnInit {\r\n\r\n @Input() formLoadEvent: any;\r\n @Output() formLoadEventReceived: EventEmitter = new EventEmitter();\r\n\r\n constructor(public formService: FormService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.formLoadEvent) {\r\n this.formService.preLoadEvent = this.formLoadEvent;\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, OnInit, Input } from '@angular/core';\r\nimport { FileUploadService } from '../services/file-upload-service/file-upload.service';\r\n\r\n@Directive({\r\n selector: '[imagesPath]'\r\n})\r\nexport class ImagesPathDirective implements OnInit {\r\n\r\n @Input() imagesPathJson: string;\r\n\r\n constructor(private fileUploadService:FileUploadService ) { \r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.fileUploadService.imagesPath = JSON.parse(this.imagesPathJson);\r\n }\r\n\r\n}\r\n","import { Directive, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\n\r\n@Directive({\r\n selector: '[preFormSubmit]'\r\n})\r\nexport class PreFormSubmitDirective implements OnInit, OnDestroy {\r\n\r\n @Input() preFormSubmitJS: string;\r\n @Input() openPopupBeforeSaveMessage: string = null;\r\n @Input() openPopupBeforeSave: string = null;\r\n @Input() openPopupBeforeSaveCondition: string = null;\r\n @Input() redirectUrlAfterSubmit: string = null;\r\n @Input() afterFormSubmitErrorJS: string;\r\n\r\n constructor(private utilityService:UtilityService ) { \r\n\r\n }\r\n ngOnDestroy(): void {\r\n this.utilityService.preFormSubmitJS = null;\r\n this.utilityService.openPopupBeforeSave = null;\r\n this.utilityService.openPopupBeforeSaveMessage = null;\r\n this.utilityService.openPopupBeforeSaveCondition = null;\r\n this.utilityService.redirectUrlAfterSubmit = null;\r\n this.utilityService.afterFormSubmitErrorJS = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.utilityService.preFormSubmitJS = this.preFormSubmitJS;\r\n if (this.openPopupBeforeSave == \"true\") {\r\n this.utilityService.openPopupBeforeSave = true;\r\n } else {\r\n this.utilityService.openPopupBeforeSave = false;\r\n }\r\n\r\n this.utilityService.afterFormSubmitErrorJS = this.afterFormSubmitErrorJS;\r\n this.utilityService.redirectUrlAfterSubmit = this.redirectUrlAfterSubmit;\r\n this.utilityService.openPopupBeforeSaveMessage = this.openPopupBeforeSaveMessage;\r\n this.utilityService.openPopupBeforeSaveCondition = this.openPopupBeforeSaveCondition;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Directive, Input, OnInit } from '@angular/core';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\n\r\n@Directive({\r\n selector: '[formReadOnly]'\r\n})\r\nexport class FormReadOnlyDirective implements OnInit {\r\n\r\n @Input() formReadOnlyValue: any;\r\n\r\n constructor(public dfms:DynamicFieldsManagerService) { }\r\n\r\n ngOnInit() {\r\n\r\n if(this.formReadOnlyValue == \"true\"){\r\n this.dfms.isFormReadOnly = true;\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, Optional, Renderer2, Self } from '@angular/core';\r\nimport { FormControlDirective, FormControlName } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[SemMinMax]'\r\n})\r\nexport class SemMinMaxDirective {\r\n\r\n @Input()\r\n public min: number;\r\n\r\n @Input()\r\n public max: number;\r\n\r\n constructor(private ref: ElementRef) { }\r\n\r\n @HostListener('input', [ '$event' ])\r\n public onInput(a_Event: InputEvent): void {\r\n let val = parseInt(this.ref.nativeElement.value);\r\n if(this.max !== null && this.max !== undefined && val >= this.max)\r\n this.ref.nativeElement.value = this.max.toString();\r\n else if (this.min !== null && this.min !== undefined && val <= this.min)\r\n this.ref.nativeElement.value = this.min.toString();\r\n }\r\n\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Validator, AbstractControl, ValidationErrors, Validators, NG_VALIDATORS } from '@angular/forms';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { RestProviderService } from 'src/app/services/rest-provider/rest-provider.service';\r\n\r\n@Directive({\r\n selector: '[semrequired]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SemRequiredDirective, multi: true }]\r\n})\r\nexport class SemRequiredDirective implements Validator {\r\n\r\n @Input() semrequired: string;\r\n cntrl: AbstractControl;\r\n\r\n constructor(public dfms: DynamicFieldsManagerService, public restProviderService: RestProviderService) {\r\n\r\n this.dfms._modelMTOValueChanged.subscribe(model => {\r\n\r\n for (var i = 0; i < this.dfms.manyToOne.length; i++) { \r\n if (this.semrequired != null && typeof this.semrequired != \"undefined\" && this.semrequired.includes(this.dfms.manyToOne[i].name)) {\r\n\r\n if(model == null && this.cntrl != null && typeof this.cntrl != \"undefined\"){\r\n this.cntrl.setValidators([]); \r\n this.cntrl.updateValueAndValidity();\r\n return;\r\n }\r\n\r\n let res = this.dfms.getValue(model, this.dfms.manyToOne[i].name);\r\n\r\n if (typeof res != \"undefined\" && res != null && Object.keys(res).length > 1 && this.cntrl != null && typeof this.cntrl != \"undefined\") {\r\n this.cntrl.setValidators([Validators.required]);\r\n }else{\r\n this.cntrl.setValidators([]); \r\n }\r\n \r\n this.cntrl.updateValueAndValidity();\r\n\r\n }\r\n }\r\n\r\n }); \r\n\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors {\r\n this.cntrl = control;\r\n for (var i = 0; i < this.dfms.manyToOne.length; i++) {\r\n if (this.semrequired.includes(this.dfms.manyToOne[i].name)) {\r\n\r\n //this.control.nativeElement.removeAttribute('required');\r\n //this.control.nativeElement.removeAttribute('ng-reflect-required');\r\n\r\n if (this.dfms.manyToOne[i].required) {\r\n control.setValidators([Validators.required]);\r\n return;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n }\r\n\r\n control.setValidators([Validators.required]);\r\n return null;\r\n }\r\n}\r\n","export class BulkActionModel {\r\n\r\n public Entities: any[];\r\n public ActionName: string; \r\n public ActionProvider: string;\r\n public Projection: any[];\r\n public ProjectionDynamicForm: any;\r\n \r\n constructor(entities: any[]) {\r\n this.Entities = entities;\r\n }\r\n }\r\n ","export interface ChatItem{\r\n id:number;\r\n text:string;\r\n itemType:ItemType;\r\n itemFunctionalType:ItemFunctionalType;\r\n redirectUrl:string | null;\r\n response:any;\r\n}\r\n\r\n\r\nexport enum ItemType{\r\n UserInput = 0,\r\n ResponseMessage = 1\r\n}\r\n\r\nexport enum ItemFunctionalType{\r\n Text = 0,\r\n WgCmdConfirmation = 1,\r\n RegistryConfirmation = 2,\r\n OpenRecord = 3,\r\n SearchResult = 4,\r\n Error = 99\r\n}","import { RootModel } from '../root-model';\r\n\r\nexport class FileDataRightModel extends RootModel {\r\n\r\n public WriteRight: boolean;\r\n public DeleteRight: boolean;\r\n\r\n super() {\r\n }\r\n\r\n constructor(model: any) {\r\n super();\r\n\r\n if (model != null) {\r\n this.WriteRight = model[\"WriteRight\"];\r\n this.DeleteRight = model[\"DeleteRight\"]; \r\n }\r\n }\r\n\r\n}","import { RootModel } from '../root-model';\r\n\r\nexport class FileDataModel extends RootModel {\r\n\r\n public Id: number = 0;\r\n public FileID: number = 0;\r\n public Name: string = \"\";\r\n public MimeType: string = \"\";\r\n public BackendStore: number = 0;\r\n public FileChecksum: any;\r\n public SystemSignature: string = \"\";\r\n public UserSignature: string = \"\";\r\n public UploadDate: Date = new Date;\r\n public LastModificationDate: Date = new Date;\r\n public UniquePermissions: boolean = false;\r\n public Category: number = 0;\r\n public FileDataBackendInfo: string = \"\";\r\n public Url: string = \"\";\r\n\r\n public Title: string = \"\";\r\n public Description: string = \"\";\r\n public FileOrder: number = 0;\r\n public FileCategory: string = \"\";\r\n public Annotations: string = \"\";\r\n\r\n public Size: number = null;\r\n\r\n public File: File = null;\r\n public Action: ClientAction = ClientAction.New;\r\n\r\n public ReadOnly:boolean = false;\r\n\r\n super() {\r\n }\r\n\r\n constructor(model: any) {\r\n super();\r\n\r\n if (model != null) {\r\n this.Id = model[\"FileID\"];\r\n this.FileID = model[\"FileID\"];\r\n this.Name = model[\"Name\"];\r\n this.MimeType = model[\"MimeType\"];\r\n this.BackendStore = model[\"BackendStore\"];\r\n this.FileChecksum = model[\"FileChecksum\"];\r\n this.SystemSignature = model[\"SystemSignature\"];\r\n this.UserSignature = model[\"UserSignature\"];\r\n this.UploadDate = model[\"UploadDate\"];\r\n this.LastModificationDate = model[\"LastModificationDate\"];\r\n this.UniquePermissions = model[\"UniquePermissions\"];\r\n this.Category = model[\"Category\"];\r\n this.FileDataBackendInfo = model[\"FileDataBackendInfo\"];\r\n this.Url = model[\"Url\"];\r\n this.Title = model[\"Title\"];\r\n this.Description = model[\"Description\"];\r\n this.FileOrder = model[\"FileOrder\"];\r\n this.FileCategory = model[\"FileCategory\"];\r\n this.Annotations = model[\"Annotations\"];\r\n }\r\n }\r\n\r\n}\r\n\r\nexport enum ClientAction {\r\n New = 0,\r\n Delete = 1,\r\n Old = 2\r\n}","import { RootModel } from '../root-model';\r\n\r\nexport class NavigationNodeModel extends RootModel {\r\n\r\n public Title: string = \"\";\r\n public Icon: string = \"\";\r\n public Type: number = 0;\r\n public Url: string;\r\n public Selected: boolean = false;\r\n public Children: NavigationNodeModel[];\r\n public Id: number = 0;\r\n public Payload: string = \"\";\r\n public Provider: string = \"\";\r\n public ClientId: string = \"\";\r\n public Version: string = \"\";\r\n public HttpRequestType: string = \"\";\r\n public BreadCrumbs: any[] = [];\r\n\r\n super() {\r\n }\r\n\r\n}\r\n\r\nexport class Url {\r\n Url: string;\r\n Type: number;\r\n Class: string;\r\n}\r\n","import { RootModel } from '../root-model';\r\n\r\nimport { NavigationNodeModel } from './navigation-node-model';\r\nimport { UserSearchSettingModel } from '../search/user-search-setting-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NavigationRequestModel extends RootModel {\r\n\r\n context: string;\r\n rootNode: NavigationNodeModel;\r\n depth: number;\r\n dynamicFormId: number;\r\n UserSearchSetting: UserSearchSettingModel;\r\n\r\n super() {\r\n }\r\n \r\n}\r\n","import { RootModel } from '../root-model';\r\n\r\nexport class StateModel extends RootModel {\r\n\r\n public Model: any;\r\n public Prop: string;\r\n public Root: boolean = false;\r\n public Props: string[] = [];\r\n\r\n super() {\r\n }\r\n\r\n}\r\n","export class SemToken{\r\n accessToken:string;\r\n expires:Date;\r\n created:Date;\r\n}","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RequestModel {\r\n\r\n public url: string;\r\n public data: any;\r\n public contentType: string = \"\";\r\n public responseType: string = \"\";\r\n public etag:string|null = null;\r\n\r\n constructor() {\r\n this.etag = null;\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class RootModel {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class FacetGroupModel {\r\n\r\n \r\n public count: number;\r\n public path: any[];\r\n public label: string;\r\n public value: any;\r\n public end: any;\r\n public start: any; \r\n public facetChecked: boolean;\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { FacetViewModel } from './facet-view.model';\r\n\r\n@Injectable()\r\nexport class ProjectionFacetWrapperModel {\r\n \r\n public projection: string[];\r\n public facets: FacetViewModel[];\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { FacetGroupModel } from './facet-group.model';\r\n\r\n@Injectable()\r\nexport class FacetViewModel {\r\n\r\n public facetType: string;\r\n public facetPropertyPath: string;\r\n // facet property translation\r\n public facetTitle: string;\r\n // facet translation (only for ui in facets component)\r\n public facetTranslation: string;\r\n public groupFacets: FacetGroupModel[] = []; \r\n public order: number;\r\n\r\n constructor() { \r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class FacetModel {\r\n\r\n public fieldName: string;\r\n public fieldValue: string;\r\n public fieldPath: string[];\r\n public fieldValueFrom: string;\r\n public fieldValueTo: string;\r\n public facetType: string; // range facet, normal, taxonomic\r\n\r\n constructor(fieldName: string, fieldValue: string, facetType: string) {\r\n this.fieldName = fieldName;\r\n this.fieldValue = fieldValue;\r\n this.facetType = facetType;\r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class PaginationModel {\r\n\r\n public totalCount: number;\r\n public page: number;\r\n\r\n constructor(totalCount: number, page: number) {\r\n this.totalCount = totalCount;\r\n this.page = page;\r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class SortFieldModel {\r\n\r\n public SortDirection: number;\r\n public FieldName: string;\r\n public RootClassName: string;\r\n\r\n constructor(SortDirection: number, FieldName: string, RootClassName: string) {\r\n this.SortDirection = SortDirection;\r\n this.FieldName = FieldName;\r\n this.RootClassName = RootClassName; \r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { UserSearchSettingPropertyModel } from './user-search-setting-property-model';\r\n\r\n@Injectable()\r\nexport class UserSearchSettingModel {\r\n\r\n public User: any;\r\n public SearchFields: Array;\r\n public ModelName: string = \"\";\r\n public LayoutName: string = \"\";\r\n public Version: string = \"\";\r\n public FilterQuery: string = \"\";\r\n public EnableFacets: boolean = false;\r\n public Id: number = 0;\r\n public View: any = null;\r\n public QuickViewEnabled: boolean = false;\r\n public OnlyLastNodeNames: boolean = false;\r\n public ShowItemNumber: boolean = false;\r\n public ShowActionsColumn: boolean = true;\r\n public QuickViewFormName: string = \"\";\r\n public SearchPlaceHolderTitle: string = null;\r\n public DefaultSorter : string = null;\r\n public CustomFacets: string = null;\r\n public CustomPageSize: number = 0;\r\n public FacetsOrder: string = null;\r\n public ConditionEvaluations: Array = null;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { RootModel } from '../root-model';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { UserSearchSettingModel } from './user-search-setting-model';\r\n\r\n@Injectable()\r\nexport class UserSearchSettingPropertyModel {\r\n\r\n public Id: number = 0;\r\n public PropertyPath: string = \"\";\r\n public UserSearchSetting: UserSearchSettingModel;\r\n public Version: string = \"\";\r\n public FieldType: number;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { NavigationNodeModel } from '../navigation/navigation-node-model'\r\nimport { Serializer } from '../../models/serializing/serializer';\r\nimport { Navigation } from '../../../../node_modules/@types/selenium-webdriver';\r\n\r\nexport class NavigationNodeSerializer implements Serializer {\r\n\r\n fromJson(json: any): NavigationNodeModel[] {\r\n var array = new Array(json.length);\r\n\r\n for (var i = 0; i < json.length; i++) {\r\n\r\n var NavigationNode = new NavigationNodeModel();\r\n NavigationNode.Title = json[i].Title;\r\n NavigationNode.Icon = json[i].Icon;\r\n NavigationNode.Type = json[i].Type;\r\n NavigationNode.Selected = true;\r\n NavigationNode.Children = json[i].Children;\r\n array[i] = NavigationNode;\r\n NavigationNode.ClientId = json[i].ClientId;\r\n NavigationNode.Id = json[i].Id;\r\n NavigationNode.Payload = json[i].Payload;\r\n NavigationNode.Version = json[i].Version;\r\n NavigationNode.Provider = json[i].Provider;\r\n NavigationNode.HttpRequestType = json[i].HttpRequestType;\r\n NavigationNode.Url = json[i].Url;\r\n NavigationNode.BreadCrumbs = json[i].BreadCrumbs;\r\n\r\n }\r\n\r\n return array;\r\n\r\n }\r\n\r\n toJson(NavigationNode: NavigationNodeModel): any {\r\n return {\r\n title: NavigationNode.Title,\r\n icon: NavigationNode.Icon,\r\n type: NavigationNode.Type,\r\n children: NavigationNode.Children,\r\n breadcrumbs: NavigationNode.BreadCrumbs\r\n };\r\n }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ChangeDetectorRef, Injector, Input } from \"@angular/core\";\r\nimport { Router, ActivatedRoute, NavigationEnd, Params, PRIMARY_OUTLET } from \"@angular/router\";\r\nimport { filter, window } from \"../../../../../node_modules/rxjs/operators\";\r\nimport { DynamicLoadingUtil } from \"../../../shared/helpers/dynamic-loading-util\";\r\nimport { SemBaseComponent } from \"../../../components/common/sem-base/sem-base.component\";\r\nimport { DynamicFieldsManagerService } from \"src/app/services/dynamic-fields/dynamic-fields-manager.service\";\r\nimport { TranslationsProviderService } from \"src/app/services/translations-provider/translations-provider.service\";\r\nimport { UtilityService } from \"src/app/services/utility/utility.service\";\r\nimport { FormService } from \"../../../services/form-service/form.service\";\r\n\r\n\r\ninterface IBreadcrumb {\r\n label: string;\r\n params: Params;\r\n url: string;\r\n}\r\n\r\n@Component({\r\n selector: \"breadcrumb\",\r\n templateUrl: './sem-breadcrumbs.component.html',\r\n styleUrls: ['./sem-breadcrumbs.component.css']\r\n})\r\nexport class SemBreadcrumbComponent extends SemBaseComponent implements OnInit {\r\n\r\n public breadcrumbs: any[] = [];\r\n\r\n @Input() formTitle: string = \"\";\r\n\r\n /**\r\n * @class SemBreadcrumbComponent\r\n * @constructor\r\n */\r\n constructor(\r\n public injector: Injector,\r\n public activatedRoute: ActivatedRoute,\r\n public router: Router,\r\n public changeDet: ChangeDetectorRef,\r\n public translationsService: TranslationsProviderService,\r\n public utility: UtilityService,\r\n public formService:FormService\r\n ) {\r\n super(injector, router, activatedRoute, injector.get(DynamicFieldsManagerService), utility,formService);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.dfms.routesLoaded.subscribe((data: any[]) => {\r\n if (data && data.length > 0) {\r\n this.loadBreadcrumb();\r\n }\r\n })\r\n }\r\n\r\n loadBreadcrumb() {\r\n // route/navigation node we redirected (come) from\r\n let navigationNodeFrom = JSON.parse(JSON.stringify(DynamicLoadingUtil.currentRoute));\r\n DynamicLoadingUtil.currentRoute = null;\r\n\r\n let url = this.router.url.substring(1, this.router.url.length);\r\n\r\n // try finding breadcrumb from previourRoute (navigationNodeFrom - route which we redirected from)\r\n if (navigationNodeFrom != null) {\r\n if (Object.keys(navigationNodeFrom).length > 1) {\r\n this.visitNode(navigationNodeFrom);\r\n }\r\n }\r\n\r\n if (DynamicLoadingUtil.currentRoute == null) {\r\n // if could find breadcrumb based on routeFrom - try finding them from all navigationNodes\r\n for (var i = 0; i < DynamicLoadingUtil.navigationNodes.length; i++) {\r\n if (DynamicLoadingUtil.currentRoute == null) {\r\n this.visitNode(DynamicLoadingUtil.navigationNodes[i]);\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // if currenroute not found, try without view in url \r\n // since there is possibility of having some node that is not in left-menu (which represent DynamicLoadingUtil.navigationNodes)\r\n if (DynamicLoadingUtil.currentRoute == null) {\r\n for (var i = 0; i < DynamicLoadingUtil.navigationNodes.length; i++) {\r\n if (DynamicLoadingUtil.currentRoute == null) {\r\n this.visitNode(DynamicLoadingUtil.navigationNodes[i], true);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (DynamicLoadingUtil.currentRoute == null) {\r\n if (Object.keys(navigationNodeFrom).length > 1) {\r\n DynamicLoadingUtil.currentRoute = navigationNodeFrom;\r\n }\r\n }\r\n\r\n if (DynamicLoadingUtil.currentRoute && DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"]) {\r\n if (DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"][0].Url != \"cms/dashboard\") {\r\n DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"].unshift({ Title: \"galis_js_dashboard\", Url: \"cms/dashboard\" });\r\n }\r\n\r\n\r\n if (typeof DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"] != \"undefined\" && DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"] != null) {\r\n this.breadcrumbs = DynamicLoadingUtil.currentRoute[\"BreadCrumbs\"];\r\n }\r\n\r\n /*if (!url.includes(\"?model\")) {\r\n this.breadcrumbs.pop();\r\n }*/\r\n\r\n if (this.breadcrumbs[this.breadcrumbs.length - 1].Title == this.translationsService.translate('AddNew')) {\r\n this.breadcrumbs.pop();\r\n }\r\n\r\n this.changeDet.detectChanges();\r\n }\r\n else {\r\n if (this.activatedRoute != null) {\r\n if (this.activatedRoute.children.length > 0) {\r\n if (location.pathname.includes(this.activatedRoute.children[0][\"url\"][\"value\"][0].path)) {\r\n this.breadcrumbs.push({ Url: \"\", Title: this.activatedRoute.children[0].data[\"value\"][\"breadcrumb\"] });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (url.includes(\"/dashboard\")) {\r\n this.breadcrumbs = [];\r\n this.formTitle = \"\";\r\n }\r\n\r\n }\r\n\r\n visitNode(node, withoutViewUrl: boolean = false) {\r\n\r\n let goToUrl:string = this.router.url.substring(1, this.router.url.length);\r\n let detailsPage = false;\r\n\r\n\r\n if (withoutViewUrl && goToUrl.includes(\"&view=\")) {\r\n var n = goToUrl.indexOf(\"&view=\");\r\n goToUrl = goToUrl.substring(0, n);\r\n }\r\n\r\n if(goToUrl.includes(\"?id=\")){\r\n goToUrl = goToUrl.split(\"?id=\")[0];\r\n }\r\n\r\n //let withoutsplit = \"/\"+goToUrl;\r\n if (!goToUrl.includes(\"?model\")) {\r\n\r\n goToUrl = goToUrl.split(\"?\")[0];\r\n\r\n /*if(!goToUrl.includes(\"view=\")){ \r\n detailsPage = true;\r\n } */\r\n }\r\n\r\n if (goToUrl == this.router.url /*|| (detailsPage && withoutsplit == this.router.url)*/) {\r\n DynamicLoadingUtil.currentRoute = node;\r\n }\r\n else {\r\n if (node.Children != null && typeof node.Children != \"undefined\") {\r\n for (var i = 0; i < node.Children.length; i++) {\r\n let nodeChildUrl:string = node.Children[i].Url;\r\n\r\n if (withoutViewUrl) {\r\n var ind = nodeChildUrl.indexOf(\"&view=\");\r\n nodeChildUrl = nodeChildUrl.substring(0, ind);\r\n }\r\n\r\n if (nodeChildUrl == goToUrl || nodeChildUrl.endsWith(goToUrl) || nodeChildUrl.includes(goToUrl+\"&\")) {\r\n DynamicLoadingUtil.currentRoute = node.Children[i];\r\n return;\r\n } else {\r\n this.visitNode(node.Children[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n getTranslation(node: string) {\r\n //console.log(\"bread trans: \" + node);\r\n if (node.includes(\".\")) {\r\n return node.split(\".\")[1];\r\n }\r\n return node;\r\n }\r\n\r\n translate(key: string) {\r\n if (typeof key != \"undefined\" && key != null) {\r\n let translationKey = null;\r\n if (key.includes(\".\")) {\r\n translationKey = key.split(\".\")[1];\r\n } else {\r\n translationKey = key;\r\n }\r\n\r\n return this.translationsService.translate(translationKey);\r\n }\r\n return \"\";\r\n }\r\n\r\n setTitle(title) {\r\n }\r\n\r\n navigate(url) {\r\n if (url && url.length > 0) {\r\n this.utility.processNavigationUrl(url);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, Injector, AfterViewInit } from '@angular/core';\r\n\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { RootModel } from '../../../models/root-model';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { NavigationNodeSerializer } from '../../../models/serializing/navigation-node-serializer';\r\n\r\nimport { SemNavigationModule } from '../../modules/sem-navigation/sem-navigation.module';\r\nimport { SemLeftMenuComponent } from '../sem-left-menu/sem-left-menu.component';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { NavigationRequestModel } from '../../../models/navigation/navigation-request-model';\r\nimport { NavigationResponseModel } from '../../../models/navigation/navigation-response-model';\r\nimport { ActivatedRoute, Router } from '../../../../../node_modules/@angular/router';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { DataGridSortingFlag } from 'src/app/models/datagrid/data-grid-column-sorting-flag';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SemConfirmDialogComponent } from 'src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { DialogType } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { SemUserProfileDialogComponent } from 'src/app/components/controls/dialogs/sem-user-profile-dialog/sem-user-profile-dialog.component';\r\nimport { LocalStorageService } from 'src/app/services/local-storage-service/local-storage.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { UserService } from 'src/app/services/user/user-provider.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-sem-header-menu',\r\n templateUrl: './sem-header-menu.component.html',\r\n styleUrls: ['./sem-header-menu.component.css']\r\n})\r\nexport class SemHeaderMenuComponent implements OnInit, AfterViewInit {\r\n\r\n //Communicating betweeen components\r\n @Output() closeMenuEm = new EventEmitter();\r\n @Input() com1ref: SemLeftMenuComponent;\r\n @Input() viewTitle: string = \"\";\r\n @Input() headerText: string;\r\n @Input() supportMail: string = null;\r\n\r\n //Menu triggers\r\n userMenuState: boolean = false;\r\n languageMenuState: boolean = false;\r\n headerChildClick: boolean = false;\r\n\r\n //WebAPI response/request models\r\n restProvider: RestProviderService;\r\n translationsService: TranslationsProviderService;\r\n url: string;\r\n currentUrl: string;\r\n model: RequestModel;\r\n request: NavigationRequestModel;\r\n userMenuResult: NavigationResponseModel[];\r\n languageMenuResult: NavigationResponseModel[];\r\n customNodes: NavigationResponseModel[];\r\n childrenNodes: DataGridSortingFlag = {};\r\n params: any;\r\n currentLanguage: string;\r\n showNotificationDotIcon: boolean = true;\r\n formActionResponses: any[] = [];\r\n\r\n constructor(injector: Injector, private route: ActivatedRoute, private router: Router, public actionsService: ActionsService, public dialog: MatDialog, public localStorageService: LocalStorageService, public userService: UserService) {\r\n this.restProvider = injector.get(RestProviderService);\r\n this.model = injector.get(RequestModel);\r\n this.request = injector.get(NavigationRequestModel);\r\n this.translationsService = injector.get(TranslationsProviderService);\r\n }\r\n\r\n ngOnInit() {\r\n this.customNodes = [];\r\n this.currentUrl = this.router.url.substring(1, this.router.url.length);\r\n this.getMenuItems(\"user-menu\", \"/api/navigation/getNodes\");\r\n this.getMenuItems(\"language-menu\", \"/api/navigation/getNodes\");\r\n this.getMenuItems(\"custom-header-menu\", \"/api/navigation/getNodes\");\r\n this.getMenuItems(\"form-action-value\", \"/api/navigation/getNodes\");\r\n\r\n let languageCode = this.localStorageService.get(\"language\");\r\n\r\n if (languageCode == null) {\r\n languageCode = environment.language.toUpperCase();\r\n }\r\n\r\n this.currentLanguage = languageCode;\r\n //this.route\r\n // .queryParams\r\n // .subscribe(params => {\r\n // // Defaults to 0 if no query param provided.\r\n // this.params = params;\r\n\r\n // for (var i = 0; i < this.params.length; i++) {\r\n // }\r\n // });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n getMenuItems(type: string, url: string) {\r\n\r\n this.model.url = url;\r\n this.request.context = type;\r\n this.request.depth = 0;\r\n this.request.rootNode = null;\r\n\r\n this.model.data = this.request;\r\n\r\n this.restProvider.serializer = new NavigationNodeSerializer;\r\n let cacheData = null;\r\n\r\n if (environment.useRouteAndMasterpageCache) {\r\n cacheData = this.localStorageService.get(url + \"_\" + type);\r\n }\r\n\r\n if (cacheData) {\r\n let res = JSON.parse(cacheData);\r\n\r\n if (type === \"language-menu\") {\r\n this.languageMenuResult = res;\r\n } else if (type == \"user-menu\") {\r\n this.userMenuResult = res;\r\n } else if (type == \"custom-header-menu\") {\r\n this.customNodes = res;\r\n\r\n for (var i = 0; i < this.customNodes.length; i++) {\r\n if (this.customNodes[i].Children != null && this.customNodes[i].Children.length > 0) {\r\n let key = this.customNodes[i].Id + \"\";\r\n this.childrenNodes[key] = {\r\n \"Show\": false\r\n }\r\n }\r\n }\r\n\r\n\r\n this.checkNotificationData();\r\n }\r\n else if (type == \"form-action-value\") {\r\n try {\r\n for (var i = 0; i < res.length; i++) {\r\n this.actionsService.callAction(res[i][\"NavigationNodeRule\"][\"FormAction\"], {}, null, this.formActionValueComplete.bind(this), this, false, null);\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n }\r\n else {\r\n\r\n this.restProvider.getDataPOST(this.model).subscribe(\r\n data => {\r\n\r\n this.localStorageService.add(url + \"_\" + type, JSON.stringify(data));\r\n\r\n if (type === \"language-menu\") {\r\n this.languageMenuResult = data;\r\n } else if (type == \"user-menu\") {\r\n this.userMenuResult = data;\r\n } else if (type == \"custom-header-menu\") {\r\n this.customNodes = data;\r\n\r\n for (var i = 0; i < this.customNodes.length; i++) {\r\n if (this.customNodes[i].Children != null && this.customNodes[i].Children.length > 0) {\r\n let key = this.customNodes[i].Id + \"\";\r\n this.childrenNodes[key] = {\r\n \"Show\": false\r\n }\r\n }\r\n }\r\n\r\n this.checkNotificationData();\r\n\r\n }\r\n else if (type == \"form-action-value\") {\r\n try {\r\n for (var i = 0; i < data.length; i++) {\r\n this.actionsService.callAction(data[i][\"NavigationNodeRule\"][\"FormAction\"], {}, null, this.formActionValueComplete.bind(this), this, false, null);\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n //var fModel = new RequestModel;\r\n //fModel.data = JSON.parse(\"{\\\"Page\\\":\" + 1 + \",\\\"PageSize\\\":\" + 5 + \"}\");\r\n //fModel.url = \"api/task/getTasks\";\r\n\r\n }\r\n\r\n checkNotificationData() {\r\n // check if any of tasks is not opened yet \r\n this.restProvider.getDataGET(\"api/task/checkunopened\", \"application/json\").subscribe(\r\n data => {\r\n\r\n if (data != null && typeof data != \"undefined\" && data == \"true\") {\r\n this.showNotificationDotIcon = true;\r\n if (typeof this.customNodes != \"undefined\" && this.customNodes) {\r\n for (var i = 0; i < this.customNodes.length; i++) {\r\n if (this.customNodes[i].Icon == \"notification-center-icon\") {\r\n this.customNodes[i].Icon = \"notification-center-dot-icon\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n //console.log(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n\r\n formActionValueComplete(value) {\r\n this.formActionResponses.push(value);\r\n }\r\n\r\n closeMenuDef(event) {\r\n //this.com1ref.closeMenu(event);\r\n //this.userMenuState = false;\r\n //this.languageMenuState = false;\r\n }\r\n\r\n showBreadcrumb() {\r\n\r\n if (window.location.href.includes('dashboard')) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n openChildrenNodes(node) {\r\n\r\n var keys = Object.keys(this.childrenNodes);\r\n\r\n // hide all others\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = \"\" + keys[i];\r\n var currentKey = \"\" + node.Id;\r\n if (key != currentKey) {\r\n this.childrenNodes[key].Show = false;\r\n }\r\n }\r\n\r\n this.childrenNodes[node.Id].Show = !this.childrenNodes[node.Id].Show;\r\n }\r\n\r\n closeMenu(event) {\r\n //this.closeMenuEm.emit(event);\r\n\r\n //this.com1ref.closeMenu(event);\r\n\r\n //if (!this.headerChildClick) {\r\n // this.userMenuState = false;\r\n // this.languageMenuState = false;\r\n //}\r\n\r\n //this.headerChildClick = false;\r\n }\r\n\r\n helpSupport() {\r\n if (this.supportMail != null && typeof this.supportMail != \"undefined\" && this.supportMail.length > 0)\r\n window.location.href = \"mailto:\" + this.supportMail;\r\n }\r\n\r\n languageChange(language: string) {\r\n\r\n /*let rModel = new RequestModel;\r\n rModel.url = \"api/language/setlanguage\";\r\n rModel.data = { LanguageCode: language };\r\n\r\n this.currentLanguage = language.toUpperCase();\r\n\r\n var url = (\"/changelanguage?language=\" + language.toLowerCase() + \"&ReturnUrl=\" + encodeURIComponent(this.router.url));\r\n window.location.href = url;*/\r\n\r\n let token = this.localStorageService.get(\"token\");\r\n let user = this.localStorageService.get(\"user\");\r\n\r\n localStorage.clear();\r\n\r\n this.localStorageService.add(\"token\",token);\r\n this.localStorageService.add(\"user\",user);\r\n\r\n\r\n\r\n\r\n this.localStorageService.add(\"language\", language);\r\n\r\n let transObj = new RequestModel;\r\n transObj.data = {\r\n \"LanguageCode\": language\r\n };\r\n\r\n transObj.url = \"api/translation/all\";\r\n\r\n this.restProvider.getDataPOST(transObj).subscribe((data: any) => {\r\n\r\n let translations = data[\"Translations\"];\r\n this.translationsService.translations = translations;\r\n this.localStorageService.add(\"translations\", JSON.stringify(translations));\r\n\r\n let currentUrl = this.router.url;\r\n this.router.resetConfig([]);\r\n window.location.href = currentUrl;\r\n\r\n }, error => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n topMenuItemClick(item) {\r\n\r\n if (item != null && item.Url != null && item.Url.length > 1) {\r\n window.location.href = item.Url;\r\n }\r\n else if (item != null && item.NavigationNodeRule != null && item.NavigationNodeRule.ActionBody != null && typeof item.NavigationNodeRule.ActionBody != \"undefined\") {\r\n eval(item.NavigationNodeRule.ActionBody);\r\n }\r\n }\r\n\r\n userMenuClick() {\r\n this.userMenuState = !this.userMenuState;\r\n this.headerChildClick = true;\r\n this.languageMenuState = false;\r\n }\r\n\r\n userPopupClick() {\r\n\r\n const dialogRef = this.dialog.open(SemUserProfileDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n\r\n }\r\n\r\n languageMenuClick() {\r\n this.languageMenuState = !this.languageMenuState;\r\n this.headerChildClick = true;\r\n this.userMenuState = false;\r\n }\r\n\r\n notificationsClick() {\r\n window.location.href = \"cms/notificationcenter\";\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SemNavigationComponent } from '../../../components/common/sem-navigation/sem-navigation.component';\r\nimport { SemLeftMenuComponent } from '../sem-left-menu/sem-left-menu.component';\r\n\r\n@Component({\r\n selector: 'sem-left-menu-item',\r\n templateUrl: './sem-left-menu-item.component.html',\r\n styleUrls: ['./sem-left-menu-item.component.css']\r\n})\r\nexport class SemLeftMenuItemComponent extends SemLeftMenuComponent implements OnInit {\r\n\r\n @Input() node:any;\r\n @Input() opened:any;\r\n\r\n super() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Injector, ChangeDetectorRef, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { RouteNavigationService } from '../../../services/dynamic-routes-loader/route-navigation.service';\r\n\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { RootModel } from '../../../models/root-model';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { NavigationNodeSerializer } from '../../../models/serializing/navigation-node-serializer';\r\nimport { Navigation } from '../../../../../node_modules/@types/selenium-webdriver';\r\nimport { retry } from '../../../../../node_modules/rxjs/operators';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { SemHeaderMenuComponent } from '../sem-header-menu/sem-header-menu.component';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { NavigationRequestModel } from '../../../models/navigation/navigation-request-model';\r\nimport { NavigationResponseModel } from '../../../models/navigation/navigation-response-model';\r\nimport { NavigationNodeModel } from '../../../models/navigation/navigation-node-model';\r\nimport { Router } from '../../../../../node_modules/@angular/router';\r\nimport { SemNavigationComponent } from '../../../components/common/sem-navigation/sem-navigation.component';\r\nimport { SemLoaderComponent } from '../../../shared/components/sem-loader/sem-loader.component';\r\nimport { DynamicLoadingUtil } from '../../../shared/helpers/dynamic-loading-util';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LocalStorageService } from 'src/app/services/local-storage-service/local-storage.service';\r\nimport { TranslationsProviderService } from '../../../services/translations-provider/translations-provider.service';\r\nimport { FileUploadStandaloneService } from '../../../services/file-upload-standalone/file-upload-standalone.service';\r\n\r\n\r\n\r\ndeclare var navigationPreFunctions: any;\r\ndeclare var navigationPostFunctions: any;\r\n\r\n@Component({\r\n selector: 'app-sem-left-menu',\r\n templateUrl: './sem-left-menu.component.html',\r\n styleUrls: ['./sem-left-menu.component.css'],\r\n providers: [FileUploadStandaloneService],\r\n animations: [\r\n trigger('componentTransform', [\r\n state('in', style({\r\n })),\r\n state('out', style({\r\n display: 'block',\r\n marginTop: '19px'\r\n })),\r\n\r\n ]),\r\n trigger('slideInOut', [\r\n state('in', style({\r\n width: '280px'\r\n })),\r\n state('out', style({\r\n width: '108px'\r\n })),\r\n transition('in => out', animate('200ms ease-in-out')),\r\n transition('out => in', animate('200ms ease-in-out'))\r\n ]),\r\n trigger('itemTransform', [\r\n state('in', style({\r\n display: 'inline-block'\r\n })),\r\n state('out', style({\r\n display: 'none'\r\n }))\r\n ]),\r\n trigger('quickAction', [\r\n state('show', style({\r\n display: 'block'\r\n })),\r\n state('hide', style({\r\n display: 'none'\r\n }))\r\n ]),\r\n trigger('nodeImg', [\r\n state('out', style({\r\n width: 'auto',\r\n paddingLeft: '0px',\r\n textAlign: 'center'\r\n })),\r\n state('in', style({\r\n width: '17px'\r\n }))\r\n ]),\r\n trigger('Img', [\r\n state('out', style({\r\n //marginLeft: '-4px'\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n marginTop: 'auto',\r\n marginBottom: 'auto',\r\n })),\r\n state('in', style({\r\n marginLeft: '4px'\r\n }))\r\n ])\r\n ]\r\n})\r\n\r\nexport class SemLeftMenuComponent extends SemNavigationComponent implements OnInit, AfterViewInit {\r\n\r\n semHeaderComponent: SemHeaderMenuComponent;\r\n @Input('state') state: string = 'closed';\r\n @Input() vloader: SemLoaderComponent;\r\n url: string;\r\n result: NavigationResponseModel[];\r\n quickActionsItems: NavigationNodeModel[];\r\n opened: boolean = false;\r\n aux: number;\r\n imgPath: string = environment.sidebarIcon;\r\n @Output() sidebarClicked = new EventEmitter();\r\n projectName:string = environment.projectSidebarName;\r\n\r\n constructor(injector: Injector, router: Router, public restProvider: RestProviderService, public model: RequestModel, public request: NavigationRequestModel, changeDet: ChangeDetectorRef, public localStorageService: LocalStorageService, public translationsService:TranslationsProviderService) {\r\n super(injector, router, changeDet);\r\n }\r\n\r\n ngOnInit() {\r\n this.getMenuItems();\r\n if (window.location.pathname.includes(\"dashboard\")) {\r\n this.menuState = \"in\";\r\n this.opened = true;\r\n this.sidebarClicked.emit(true);\r\n }\r\n\r\n this.changeDet.detectChanges();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (typeof this.vloader != \"undefined\") {\r\n DynamicLoadingUtil.loader = this.vloader;\r\n }\r\n }\r\n\r\n getChildNodes(nodeChildren){\t\r\n let nodesList: any[] = [];\t\r\n if(nodeChildren != null){\t\r\n for(let i = 0; i < nodeChildren.length; i++){\t\r\n let nodechild = nodeChildren[i];\t\r\n if(nodechild != null){\t\r\n let condition = true;\t\r\n if(nodechild.NavigationNodeRule != null){\t\r\n \t\r\n if(nodechild.NavigationNodeRule.Condition != null && nodechild.NavigationNodeRule.Condition.length > 0){\t\r\n condition = eval(nodechild.NavigationNodeRule.Condition);\t\r\n }\t\r\n }\t\r\n if(condition == true && nodechild.Type == 1){\t\r\n nodesList.push(nodechild);\t\r\n } \t\r\n }\t\r\n }\t\r\n }\t\r\n return nodesList;\t\r\n }\r\n\r\n async getMenuItems() {\r\n\r\n\r\n this.model.url = \"/api/navigation/getNodes\";\r\n this.request.context = \"left-menu\";\r\n this.request.depth = 0;\r\n this.request.rootNode = null;\r\n this.model.data = this.request;\r\n\r\n this.restProvider.serializer = new NavigationNodeSerializer;\r\n let cacheData = null;\r\n\r\n if (environment.useRouteAndMasterpageCache) {\r\n cacheData = this.localStorageService.get(\"/api/navigation/getNodes_left-menu\");\r\n }\r\n\r\n if (cacheData) {\r\n this.result = JSON.parse(cacheData);\r\n }\r\n else {\r\n this.restProvider.getDataPOST(this.model).subscribe(\r\n data => {\r\n DynamicLoadingUtil.navigationNodes = data;\r\n this.result = data;\r\n this.dynamicRoutesLoader.leftMenuNodes = data;\r\n this.localStorageService.add(\"/api/navigation/getNodes_left-menu\", JSON.stringify(data));\r\n },\r\n error => {\r\n //console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n menuState: string = 'out';\r\n quickActionState: string = 'hide';\r\n\r\n addLink: string = '';\r\n listLink: string = '';\r\n searchLink: string = '';\r\n favoriteLink: string = '';\r\n offsetTop: string = '';\r\n childClick: boolean = false;\r\n\r\n closeMenu(event) {\r\n this.menuState = \"out\";\r\n this.opened = false;\r\n this.quickActionState = \"hide\";\r\n }\r\n\r\n toggleMenu(event) {\r\n // 1-line if statement that toggles the value:\r\n this.childClick = true;\r\n this.menuState = this.menuState === 'out' ? 'in' : 'out';\r\n this.opened = this.menuState === 'in' ? true : false;\r\n\r\n //if (this.quickActionState == \"show\" && !this.opened) {\r\n // this.quickActionState = \"hide\";\r\n //}\r\n\r\n this.sidebarClicked.emit(this.opened);\r\n }\r\n\r\n processClickItemUrl(node: NavigationNodeModel, event) {\r\n var previousState = node.Selected;\r\n ///////////////////////////////////////// Set item's state to close\r\n\r\n for (var i = 0; i < this.result.length; i++) {\r\n var isChild = false;\r\n\r\n for (var j = 0; j < this.result[i].Children.length; j++) {\r\n if (this.result[i].Children[j].Title == node.Title) {\r\n isChild = true;\r\n }\r\n }\r\n\r\n if (!isChild) {\r\n this.result[i].Selected = false;\r\n }\r\n }\r\n this.changeDet.detectChanges();\r\n ///////////////////////////////////////// Opening the menu\r\n if (this.menuState === 'out') {\r\n this.menuState = 'in';\r\n this.opened = true;\r\n }\r\n\r\n if (!previousState) {\r\n node.Selected = true;\r\n }\r\n\r\n try {\r\n this.quickActionsItems = null;\r\n for (var i = 0; i < node.Children.length; i++) {\r\n if (node.Children[i].Type == 2) {\r\n this.quickActionsItems = node.Children;\r\n }\r\n }\r\n } catch (e) { }\r\n\r\n\r\n if (this.quickActionsItems != null) {\r\n this.quickActionState = \"show\";\r\n } else {\r\n this.quickActionState = \"hide\";\r\n }\r\n\r\n if (event.target.className.includes(\"item \")) {\r\n this.offsetTop = event.target.offsetTop + \"px\";\r\n } else if ((event.target.className.includes(\"node-child\"))) {\r\n this.offsetTop = event.target.parentElement.offsetTop + event.target.parentElement.parentElement.offsetTop + \"px\";\r\n }\r\n else {\r\n this.offsetTop = event.target.parentElement.offsetTop + \"px\";\r\n }\r\n\r\n this.childClick = true;\r\n this.changeDet.detectChanges();\r\n this.sidebarClicked.emit(this.opened);\r\n }\r\n\r\n parentClick() {\r\n\r\n if (!this.childClick) {\r\n this.menuState = 'out';\r\n this.opened = false;\r\n this.quickActionState = \"hide\";\r\n }\r\n\r\n this.childClick = false;\r\n this.sidebarClicked.emit(this.opened);\r\n }\r\n\r\n containsSubItemsOfGroup(items, group) {\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].Type == group || items[i].Type == 3 && group == 1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n toggleSubMenu() {\r\n // 1-line if statement that toggles the value:\r\n this.menuState = this.menuState === 'out' ? 'in' : 'out';\r\n }\r\n\r\n itemClicked(node: NavigationNodeModel, event) {\r\n\r\n this.processClickItemUrl(node, event);\r\n this.sidebarClicked.emit(this.opened);\r\n //var preJsRes = this.preJS(node, node.Provider);\r\n //var postJsRes = this.postJS(node, node.Provider);\r\n\r\n }\r\n\r\n decodeUri(uri: string): string {\r\n return decodeURIComponent(uri);\r\n }\r\n\r\n async navigate(node) {\r\n //DynamicLoadingUtil.currentRoute = node;\r\n await this.utility.processNavigationUrl(node[\"Url\"]);\r\n this.menuState = 'out';\r\n this.opened = false;\r\n this.quickActionState = \"hide\";\r\n this.sidebarClicked.emit(this.opened);\r\n }\r\n\r\n GetGroup(children, type): any[] {\r\n var grChildren = [];\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].Type == type) {\r\n grChildren[i] = children[i];\r\n }\r\n }\r\n\r\n return grChildren;\r\n\r\n }\r\n\r\n isRootLink(node: NavigationNodeModel): boolean {\r\n if (node.Url && node.Url.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n childPadding(child){\r\n if(child[\"Type\"] == 3){\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SemLeftMenuComponent } from '../../components/sem-left-menu/sem-left-menu.component';\r\nimport { SemHeaderMenuComponent } from '../../components/sem-header-menu/sem-header-menu.component';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { RouterModule, Routes, Router, RouterLink, UrlSerializer } from '@angular/router';\r\nimport { CustomUrlSerializer } from '../../../shared/helpers/custom-url-serializer';\r\nimport { MenuTypePipe } from '../../pipes/menu-type-pipe';\r\nimport { SemBreadcrumbComponent } from '../../components/sem-breadcrumbs/sem-breadcrumbs.component';\r\nimport { SemLeftMenuItemComponent } from '../../components/sem-left-menu-item/sem-left-menu-item.component';\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n NgScrollbarModule\r\n ],\r\n declarations: [\r\n SemLeftMenuComponent,\r\n SemHeaderMenuComponent,\r\n SemBreadcrumbComponent,\r\n MenuTypePipe,\r\n SemLeftMenuItemComponent\r\n ],\r\n exports: [\r\n SemLeftMenuComponent,\r\n SemHeaderMenuComponent,\r\n SemBreadcrumbComponent,\r\n SemLeftMenuItemComponent\r\n ],\r\n providers: [RequestModel,[{ provide: UrlSerializer, useClass: CustomUrlSerializer }]],\r\n})\r\nexport class SemNavigationModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'menuTypePipe',\r\n pure: false\r\n})\r\nexport class MenuTypePipe implements PipeTransform {\r\n transform(items: any[], filter: number): any {\r\n if (!items || !filter) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n if (filter == 1) {\r\n return items.filter(item => item.Type == 1 || item.Type == 3);\r\n } else {\r\n return items.filter(item => item.Type == filter);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from '../../environments/environment';\r\nimport { RequestModel } from '../models/request/request-model';\r\nimport { LocalStorageService } from '../services/local-storage-service/local-storage.service';\r\nimport { RestProviderService } from '../services/rest-provider/rest-provider.service';\r\nimport { TranslationsProviderService } from '../services/translations-provider/translations-provider.service';\r\n\r\n@Component({\r\n selector: 'app-platform-redirect',\r\n templateUrl: './platform-redirect.component.html',\r\n styleUrls: ['./platform-redirect.component.css']\r\n})\r\nexport class PlatformRedirectComponent implements OnInit {\r\n\r\n constructor(private rp: RestProviderService, private httpClient: HttpClient, private router: Router, private localStorageService: LocalStorageService, private translationsService: TranslationsProviderService) { }\r\n\r\n ngOnInit(): void {\r\n this.redirectSSO(); \r\n }\r\n\r\n redirectSSO(){\r\n var model = new RequestModel();\r\n model.url = \"/api/usersso\";\r\n\r\n this.rp.getDataPOST(model).subscribe(response=>{\r\n var redirecturl = environment.wgPlatformHost+\"/sso?token=\"+encodeURI(btoa(response.Token));\r\n window.location.href=redirecturl;\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpErrorResponse,\r\n HttpResponse\r\n} from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ServerErrorsInterceptor implements HttpInterceptor {\r\n constructor(\r\n private router: Router\r\n ) { }\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n\r\n\r\n\r\n return next.handle(request).pipe(\r\n tap(event => {\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n\r\n if (error.status == 403 || error.status == 401) {\r\n if (window.location.pathname != \"/account/login\") {\r\n localStorage.clear();\r\n window.location.href = \"/account/login\";\r\n }\r\n }\r\n\r\n //window.alert(errorMessage);\r\n return throwError(errorMessage);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Component } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport * as _ from 'lodash';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { UtilityService } from '../utility/utility.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SearchService } from '../search/search.service';\r\nimport { BulkActionModel } from 'src/app/models/bulk-action/bulk-action-model';\r\nimport { SemGenerateDialogComponent } from 'src/app/components/controls/dialogs/sem-generate-dialog/sem-generate-dialog.component';\r\nimport { FileUploadService, XHRFactory } from '../file-upload-service/file-upload.service';\r\nimport { SemParameterDialogComponent } from '../../components/controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\nimport { DynamicFieldsManagerService } from '../dynamic-fields/dynamic-fields-manager.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActionsService {\r\n\r\n actions: any[];\r\n formActions: any[];\r\n\r\n // if any bulk action on current form\r\n private bulkActionPresent = new BehaviorSubject(undefined);\r\n currentBulkActionPresent = this.bulkActionPresent.asObservable();\r\n\r\n private actionFinished = new BehaviorSubject(undefined);\r\n currentActionFinished = this.actionFinished.asObservable();\r\n\r\n private _formActionsReceived = new BehaviorSubject({});\r\n formActionsReceived = this._formActionsReceived.asObservable();\r\n\r\n\r\n constructor(public restService: RestProviderService, public utility: UtilityService, public searchService: SearchService, public fileUploadService: FileUploadService, public dfms: DynamicFieldsManagerService,\r\n public dialog: MatDialog) {\r\n\r\n restService.getDataGET(\"api/actions/list\").subscribe(data => {\r\n\r\n this.actions = JSON.parse(data);\r\n //console.log(\"Retrieved actions :\", this.actions);\r\n\r\n restService.getDataGET(\"api/actions/formactions\").subscribe((formActionsApiData: any) => {\r\n\r\n this.formActions = JSON.parse(formActionsApiData);\r\n this._formActionsReceived.next({});\r\n //console.log(\"Retrieved actions :\", this.actions);\r\n\r\n }, error => {\r\n //console.log(\"Error retrieving actions \", error);\r\n });\r\n\r\n }, error => {\r\n //console.log(\"Error retrieving actions \", error);\r\n });\r\n\r\n }\r\n\r\n setCurrentBulkActionPresent(present: boolean) {\r\n this.bulkActionPresent.next(present);\r\n }\r\n\r\n callAction(formAction,\r\n inputModel,\r\n preCallback: (data: any) => any,\r\n postCallback: (data: any) => void,\r\n context: any,\r\n bulkAction: boolean,\r\n inputParametersModel: any,\r\n onlyClientLogic: boolean = false,\r\n maintainLoader: boolean = false,\r\n bulkExport: boolean = false,\r\n skipBulkActionApiMethod: boolean = false) {\r\n\r\n if (onlyClientLogic == null || typeof onlyClientLogic == \"undefined\") {\r\n onlyClientLogic = false;\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n let action = this.getAction(formAction[\"ActionName\"]);\r\n\r\n //TODO: check if we have pre-post callback actions already defined somewhere in the universe\r\n\r\n // use outputModel for any changes, to keep inputModel inatact\r\n let outputModel = _.cloneDeep(inputModel);\r\n\r\n let checkedItems = [];\r\n\r\n // if formAction is \"bulk\" \r\n if (bulkAction == true) {\r\n var checkedBulkItems = this.searchService.getCurrentCheckedBulkDocument();\r\n let bulkActionModel: BulkActionModel = new BulkActionModel([]);\r\n\r\n if (typeof checkedBulkItems != \"undefined\" && checkedBulkItems != null && checkedBulkItems.length > 0) {\r\n for (var i = 0; i < checkedBulkItems.length; i++) {\r\n bulkActionModel.Entities.push(checkedBulkItems[i]);\r\n checkedItems.push(checkedBulkItems[i].Id);\r\n }\r\n }\r\n\r\n // if bulkExport is true then normal action is called \r\n // otherwise use bulk action infrastructure\r\n if (bulkExport != true) {\r\n // in \"bulk\" actions ActionName becomes Action for bulk action model\r\n bulkActionModel.ActionName = formAction[\"ActionName\"];\r\n bulkActionModel.ActionProvider = action[\"ProviderFullName\"];\r\n bulkActionModel.Projection = formAction[\"Projection\"];\r\n bulkActionModel.ProjectionDynamicForm = formAction[\"ProjectionDynamicForm\"];\r\n\r\n bulkActionModel[\"SkipBulkActionApiMethod\"] = skipBulkActionApiMethod;\r\n\r\n // outputModel becomes model for BulkAction\r\n outputModel = bulkActionModel;\r\n\r\n // actual action that will be always called for bulk actions is \"ExecuteBulkAction\"\r\n // so set action as ExecuteBulkAction\r\n\r\n /*if(skipBulkActionApiMethod){\r\n action = this.getAction(formAction[\"ActionName\"]);\r\n }else{\r\n action = this.getAction(\"ExecuteBulkAction\"); \r\n }*/\r\n\r\n action = this.getAction(\"ExecuteBulkAction\");\r\n\r\n /* But i want my custom action, to be called :( .... Boško\r\n action = this.getAction(formAction[\"ActionName\"]);\r\n */\r\n }\r\n }\r\n\r\n // call preCallback \r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(context, formAction[\"PreJS\"]);\r\n\r\n if (bulkExport == true) {\r\n outputModel[\"CheckedItemIds\"] = checkedItems;\r\n }\r\n\r\n if (!onlyClientLogic && typeof formAction[\"ActionName\"] !== 'undefined' && formAction[\"ActionName\"] !== null && formAction[\"ActionName\"].length > 0 && typeof outputModel !== 'undefined' && outputModel != null) { \r\n this.executeAction(action, inputModel, outputModel, postCallback, formAction[\"PostJS\"], context, inputParametersModel, formAction);\r\n } else {\r\n\r\n if (formAction[\"PostJS\"] != null && typeof formAction[\"PostJS\"] != \"undefined\") {\r\n\r\n var resultPo = function (str) {\r\n eval(str);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }.call(context, formAction[\"PostJS\"]);\r\n \r\n } else if (onlyClientLogic && !maintainLoader) {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n } else {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n }\r\n }\r\n\r\n \r\n evaluateJS(js:string,context){\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(context, js);\r\n }\r\n executeAction(action, inputModel, outputModel, postCallback: (data: any, error: any, context: any) => void, postExecuteJs, context, inputParametersModel, fullFormAction: any = null) {\r\n\r\n if (action != null && typeof (action) != \"undefined\") {\r\n var fModel = new RequestModel;\r\n // if file action use outputModel as data\r\n // so you can send formData (logic in preJS)\r\n if (action[\"IsFileAction\"]) {\r\n fModel.data = outputModel;\r\n } else {\r\n fModel.data = { Envelope: outputModel, InputParameters: inputParametersModel };\r\n }\r\n\r\n fModel.url = action[\"ActionUrl\"];\r\n\r\n if (fModel.url !== null && fModel.url !== undefined && fModel.url.length > 0) {\r\n this.restService.getDataPOST(fModel).subscribe(data => {\r\n var msgType = 0;\r\n if (data != null && typeof data != \"undefined\"\r\n && data[\"Metadata\"] != null\r\n && typeof data[\"Metadata\"] != \"undefined\"\r\n && data[\"Metadata\"][\"ServerMessageMetadata\"] != null\r\n && typeof data[\"Metadata\"][\"ServerMessageMetadata\"] != \"undefined\"\r\n && data[\"Metadata\"][\"ServerMessageMetadata\"][\"Message\"] != null\r\n && typeof data[\"Metadata\"][\"ServerMessageMetadata\"][\"Message\"] != \"undefined\"\r\n && data[\"Metadata\"][\"ServerMessageMetadata\"][\"MessageType\"] != null\r\n && typeof data[\"Metadata\"][\"ServerMessageMetadata\"][\"MessageType\"] != \"undefined\") {\r\n msgType = data[\"Metadata\"][\"ServerMessageMetadata\"][\"MessageType\"];\r\n }\r\n // response = error\t\r\n if (msgType == 2) {\r\n\r\n // if error response\t\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.actionFinished.next(data[\"Metadata\"][\"ServerMessageMetadata\"]);\r\n // response = popup\t\r\n } else if (msgType == 5) {\r\n if (fullFormAction != null && fullFormAction.PopupResponseParameterForm != null) {\r\n // if response type = popup then show confirmation popup\t\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: {\r\n parameterFormId: fullFormAction.PopupResponseParameterForm.Id,\r\n customHeaderTitle: fullFormAction.PopupResponseParameterForm.CustomHeaderTitle,\r\n customCssClass: fullFormAction.PopupResponseParameterForm.CustomCssClass,\r\n model: fModel.data\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n if (returnData.Canceled == false) {\r\n\r\n // we know user confirmed confirmationpopup, set value\t\r\n if (inputParametersModel != null && typeof inputParametersModel != \"undefined\") {\r\n inputParametersModel[\"ConfirmationPopupConfirmed\"] = true;\r\n } else {\r\n inputParametersModel = { \"ConfirmationPopupConfirmed\": true };\r\n }\r\n\r\n // mybe some additional controls on confirmation popup, get model\t\r\n var newParamsModel = returnData[\"Model\"];\r\n // join current input with new\t\r\n var finalInputParams = { ...newParamsModel, ...inputParametersModel };\r\n this.executeAction(action, inputModel, outputModel, postCallback, postExecuteJs, context,\r\n finalInputParams);\r\n }\r\n }\r\n });\r\n } else {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n // notify all subscribers that action finished -> show popup if data present \t\r\n this.setActionAsFinished(null);\r\n }\r\n } else {\r\n var resultPo = function (model, str) {\r\n eval(str);\r\n }.call(context, data, postExecuteJs);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n /*if(postCallback != null && typeof postCallback != \"undefined\"){\t\r\n postCallback(data, null);\t\r\n }*/\r\n if (postCallback != null && typeof postCallback != \"undefined\") {\r\n var resultPo = function (data) {\r\n postCallback(data, null, context);\r\n }.call(context, data);\r\n }\r\n // notify all subscribers that action finished -> show popup if data present\t\r\n this.setActionAsFinished(data);\r\n }\r\n }, error => {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n // notify all subscribers that action finished -> show popup if data present \t\r\n this.setActionAsFinished(error);\r\n });\t\r\n } else {\r\n DynamicLoadingUtil.loader.showLoader = false;\t\r\n } \r\n } else {\t\r\n //console.log(\"Error! Action not found\");\t\r\n DynamicLoadingUtil.loader.showLoader = false;\t\r\n }\t\r\n }\r\n\r\n // notify all subscribers that action finished -> show popup if data present\r\n setActionAsFinished(response) {\r\n if (response != null && typeof response != \"undefined\"\r\n && response[\"Metadata\"] != null && typeof response[\"Metadata\"] != \"undefined\"\r\n && response[\"Metadata\"][\"ServerMessageMetadata\"] != null && typeof response[\"Metadata\"][\"ServerMessageMetadata\"] != \"undefined\") {\r\n this.actionFinished.next(response[\"Metadata\"][\"ServerMessageMetadata\"]);\r\n } else {\r\n //Return data\r\n this.actionFinished.next(response);\r\n }\r\n }\r\n\r\n getAction(actionName) {\r\n if (this.actions) {\r\n for (var i = 0; i < this.actions.length; i++) {\r\n if (this.actions[i][\"ActionName\"] == actionName) {\r\n return this.actions[i];\r\n }\r\n }\r\n }\r\n }\r\n\r\ngetTargetActions() {\r\n let targetActions: any[] = [];\r\n if (this.formActions) {\r\n for (var i = 0; i < this.formActions.length; i++) {\r\n if (typeof (this.formActions[i][\"Target\"]) != \"undefined\" && (this.formActions[i][\"Target\"])) {\r\n if (this.formActions[i][\"Target\"] == document.location.pathname) {\r\n targetActions.push(this.formActions[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return targetActions;\r\n }\r\n\r\n getActionFromAPI(actionName){\r\n }\r\n\r\n getActionAndExecute(actionName, onlyClientLogic: boolean, context, maintainLoader: boolean, skipBulkActionApiMethod: boolean = false, model: any = null) {\r\n DynamicLoadingUtil.loader.showLoader = true;\t\r\n this.restService.getDataGET(\"api/actions/\" + actionName, \"application/json\").subscribe(data => {\t\r\n if(data != null && typeof data != \"undefined\"){\t\r\n let formAction = JSON.parse(data);\t\r\n if (formAction.ParameterForm != null && typeof formAction.ParameterForm != \"undefined\" && formAction.ParameterForm.Id > 0) {\t\r\n var reportId = null;\t\r\n if(formAction.ParameterForm.Report != null && typeof formAction.ParameterForm.Report != \"undefined\" ){\t\r\n reportId = formAction.ParameterForm.Report.Id;\t\r\n }\t\r\n \t\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\t\r\n data: {\t\r\n parameterFormId: formAction.ParameterForm.Id,\t\r\n reportId: reportId,\t\r\n customHeaderTitle: formAction.ParameterForm.CustomHeaderTitle,\t\r\n customCssClass: formAction.ParameterForm.CustomCssClass \t\r\n }\t\r\n });\t\r\n \t\r\n dialogRef.afterClosed().subscribe(returnData => {\t\r\n if (returnData != null && typeof returnData != \"undefined\") {\t\r\n // only call action if parameter popup was confirmed (not cancled - close button)\t\r\n if (returnData.Canceled == false) {\t\r\n var inputParametersModel = returnData[\"Model\"];\t\r\n this.callAction(formAction, null, null, null, context, formAction.BulkAction, inputParametersModel, onlyClientLogic,\t\r\n maintainLoader, formAction.BulkExport, formAction.SkipBulkActionApiMethod);\t\r\n }\t\r\n }\t\r\n });\t\r\n }else{\t\r\n this.callAction(formAction, null, null, null, context, false, null, onlyClientLogic, maintainLoader, false, skipBulkActionApiMethod);\t\r\n }\t\r\n } \t\r\n }, error => {\t\r\n console.log(error);\t\r\n DynamicLoadingUtil.loader.showLoader = false;\t\r\n });\t\r\n }\r\n\r\n evaluateJs(js, context) {\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicFieldsManagerService {\r\n\r\n dynamicFields: any[] = [];\r\n metaModel: any[] = [];\r\n manyToOneReadOnly: any[] = [];\r\n manyToOne: any[] = [];\r\n controlValuesForValidation: any[] = [];\r\n globalModel: any;\r\n globalForm: any;\r\n isFormReadOnly: boolean = false;\r\n wasInEditMode:boolean = false;\r\n\r\n // listener for manyToOne value change\r\n _modelMTOValueChanged = new BehaviorSubject({});\r\n modelMTOValueChanged = this._modelMTOValueChanged.asObservable();\r\n //listeners for changing model value outside of scope, use it at your own risk\r\n public _bindValueChange = new BehaviorSubject({});\r\n bindValueChange = this._bindValueChange.asObservable();\r\n\r\n // listener for manyToOne value change\r\n _modelValueReset = new BehaviorSubject({});\r\n modelValueReset = this._modelValueReset.asObservable();\r\n\r\n _modelValueSubmitValidator = new BehaviorSubject({});\r\n modelValueSubmitValidator = this._modelValueSubmitValidator.asObservable();\r\n\r\n _routesLoaded = new BehaviorSubject({});\r\n routesLoaded = this._routesLoaded.asObservable();\r\n\r\n constructor() {\r\n /*this.metaModel = [\r\n { \"Path\": \"OffenderProfile.Person.FirstName\", \"R\": 0, \"W\": 0 },\r\n { \"Path\": \"OffenderProfile.Person.MiddleName\", \"R\": 1, \"W\": 0 },\r\n { \"Path\": \"Court\", \"R\": 1, \"W\": 0 },\r\n { \"Path\": \"CaseDecisionDate\", \"R\": 1, \"W\": 0 },\r\n { \"Path\": \"Approved\", \"R\": 1, \"W\": 0 },\r\n { \"Path\": \"OffenderProfile\", \"R\": 1, \"W\": 0 },\r\n { \"Path\": \"RegulationItems\", \"R\": 1, \"W\": 0 }\r\n ];*/\r\n }\r\n\r\n setInitValues(model: any): any {\r\n\r\n for (var i = 0; i < this.dynamicFields.length; i++) {\r\n if (typeof model[this.dynamicFields[i]] == \"undefined\" && model[this.dynamicFields[i]] == null) {\r\n model = this.assign(model, this.dynamicFields[i], {});\r\n }\r\n }\r\n\r\n return model;\r\n\r\n }\r\n\r\n assign(obj, path, val, shouldAssign = false): any {\r\n if (typeof path != \"undefined\") {\r\n const keys = path.split('.');\r\n const lastKey = keys.pop();\r\n const lastObj = keys.reduce((obj, key) =>\r\n obj[key] = obj[key] || {},\r\n obj);\r\n\r\n if (!shouldAssign) {\r\n if (lastObj[lastKey] == null || typeof lastObj[lastKey] == \"undefined\") {\r\n lastObj[lastKey] = val;\r\n }\r\n } else {\r\n lastObj[lastKey] = val;\r\n }\r\n\r\n return obj;\r\n }\r\n return obj;\r\n }\r\n\r\n getValue(o, s) {\r\n s = s.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\r\n s = s.replace(/^\\./, ''); // strip a leading dot\r\n var a = s.split('.');\r\n for (var i = 0, n = a.length; i < n; ++i) {\r\n var k = a[i];\r\n if (k != null && typeof k != \"undefined\" && o != null && typeof o != \"undefined\" && k in o) {\r\n o = o[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return o;\r\n }\r\n\r\n updateControlsValidationArray(attName: string, value: any) {\r\n for (var i = 0; i < this.controlValuesForValidation.length; i++) {\r\n if (this.controlValuesForValidation[i][\"Name\"] == attName) {\r\n this.controlValuesForValidation[i][\"Value\"] = value;\r\n return;\r\n }\r\n }\r\n\r\n this.controlValuesForValidation.push({ \"Name\": attName, \"Value\": value });\r\n }\r\n\r\n setFormAsReadOnly() {\r\n this.wasInEditMode = true;\r\n this.isFormReadOnly = !this.isFormReadOnly;\r\n }\r\n\r\n\r\n valueChanged(val : any){\r\n this._bindValueChange.next(val);\r\n }\r\n}\r\n","import { Injectable, Compiler, Injector, Component, NgModule } from '@angular/core';\r\nimport { Router, RouterModule, NavigationStart } from '../../../../node_modules/@angular/router';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { SemDynamicComponent, ResponseStatus, DialogType } from '../../shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { CommonModule } from '../../../../node_modules/@angular/common';\r\nimport { SemSharedModule } from '../../shared/modules/sem-shared/sem-shared.module';\r\nimport { NavigationRequestModel } from '../../models/navigation/navigation-request-model';\r\nimport { SemLeftMenuComponent } from '../../navigation/components/sem-left-menu/sem-left-menu.component';\r\nimport { SemHeaderMenuComponent } from '../../navigation/components/sem-header-menu/sem-header-menu.component';\r\nimport { SemNavigationModule } from '../../navigation/modules/sem-navigation/sem-navigation.module';\r\nimport { DynamicLoadingUtil } from '../../shared/helpers/dynamic-loading-util';\r\nimport { NavigationNodeSerializer } from '../../models/serializing/navigation-node-serializer';\r\nimport { NavigationResponseModel } from '../../models/navigation/navigation-response-model';\r\nimport { FileUploadService } from '../file-upload-service/file-upload.service';\r\nimport { FileUploadObservableState } from 'src/app/shared/helpers/file-util';\r\nimport { async } from '@angular/core/testing';\r\nimport { SemNotFoundComponent } from 'src/app/components/containers/sem-not-found/sem-not-found.component';\r\nimport { TranslationsProviderService } from '../translations-provider/translations-provider.service';\r\nimport { SemConfirmDialogComponent } from 'src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppModule } from 'src/app/app.module';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DynamicFieldsManagerService } from '../dynamic-fields/dynamic-fields-manager.service';\r\nimport { LocalStorageService } from '../local-storage-service/local-storage.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { FileUploadStandaloneService } from '../file-upload-standalone/file-upload-standalone.service';\r\nimport { StateModel } from '../../models/navigation/state-model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteNavigationService {\r\n private _configData: any;\r\n private _promise: Promise;\r\n private _promiseDone: boolean = false;\r\n private masterPageComponent: any;\r\n private masterPages = [];\r\n public wgRoutes:any[] = [];\r\n public loadedRoutes = [];\r\n public leftMenuNodes = [];\r\n public loadedRoute: any = null;\r\n\r\n masterPage: string;\r\n masterPageUrl: string;\r\n\r\n constructor(private localStorageService: LocalStorageService, private http: HttpClient, private model: RequestModel, private restProvider: RestProviderService, private compiler: Compiler, private injector: Injector, public fileUploadService: FileUploadService, public translationsService: TranslationsProviderService, public dfms: DynamicFieldsManagerService) { }\r\n\r\n loadConfig(url: string): Promise {\r\n if (this._promiseDone) {\r\n return Promise.resolve();\r\n }\r\n\r\n let request = new NavigationRequestModel;\r\n this.model.url = \"/api/navigation/getNodes\";\r\n request.context = \"left-menu\";\r\n request.depth = 0;\r\n request.rootNode = null;\r\n\r\n this.model.data = request;\r\n\r\n this.restProvider.serializer = new NavigationNodeSerializer;\r\n\r\n let cacheData = null;\r\n\r\n if (environment.useRouteAndMasterpageCache) {\r\n cacheData = this.localStorageService.get(\"/api/navigation/getNodes_left-menu\");\r\n }\r\n\r\n if (cacheData) {\r\n DynamicLoadingUtil.navigationNodes = JSON.parse(cacheData);\r\n this.dfms._routesLoaded.next(DynamicLoadingUtil.navigationNodes);\r\n }\r\n else {\r\n\r\n this.restProvider.getDataPOST(this.model).subscribe(\r\n data => {\r\n this.localStorageService.add(\"/api/navigation/getNodes_left-menu\", JSON.stringify(data));\r\n DynamicLoadingUtil.navigationNodes = data;\r\n this.restProvider.serializer = null;\r\n this.dfms._routesLoaded.next(data);\r\n },\r\n error => {\r\n console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n\r\n let routeDoesntExists = true;\r\n\r\n for (let route in this.router.config) {\r\n if (route[\"path\"] == url) {\r\n routeDoesntExists = false;\r\n }\r\n }\r\n\r\n //console.log(\"Current routes: \", this.router.config);\r\n\r\n if (routeDoesntExists) {\r\n return new Promise((resolve, reject) => {\r\n\r\n\r\n this.model.url = \"api/navigation/getMasterPages\";\r\n this.model.data = new NavigationRequestModel;\r\n this.model.data.context = environment.wgProfileHost.substring(environment.wgProfileHost.indexOf('//') + 2); //window.location.host;\r\n\r\n this.restProvider.getDataPOST(this.model).subscribe(\r\n async (data: any[]) => {\r\n\r\n this.masterPages = data;\r\n\r\n //for (var i = 0; i < data.length; i++) {\r\n // if (data[i][\"Url\"] == url.split(\"/\")[0]) {\r\n // await this.registerMasterPage(data[i]);\r\n // }\r\n //}\r\n\r\n this.model.url = \"api/navigation/getRoutes\";\r\n let routesJson = this.localStorageService.get(\"api/navigation/getRoutes\");\r\n\r\n if(routesJson != null){\r\n\r\n data = JSON.parse(routesJson);\r\n this.wgRoutes = data;\r\n for (var i = 0; i < data.length; i++) {\r\n var urlToCompare = data[i][\"PrettyUrl\"];\r\n if (urlToCompare == url) {\r\n this.loadedRoute = data[i];\r\n await this.registerRoute(data[i]);\r\n break;\r\n }\r\n }\r\n\r\n resolve(true);\r\n }else{\r\n this.restProvider.getDataPOST(this.model).subscribe(\r\n async (data: any[]) => {\r\n \r\n this.wgRoutes = data;\r\n this.localStorageService.add(\"api/navigation/getRoutes\", JSON.stringify(data));\r\n \r\n for (var i = 0; i < data.length; i++) {\r\n var urlToCompare = data[i][\"PrettyUrl\"];\r\n if (urlToCompare == url) {\r\n this.loadedRoute = data[i];\r\n await this.registerRoute(data[i]);\r\n break;\r\n }\r\n }\r\n \r\n resolve(true);\r\n },\r\n error => {\r\n console.log(\"Error\", error);\r\n reject(false);\r\n }\r\n );\r\n }\r\n\r\n \r\n\r\n //resolve();\r\n },\r\n error => {\r\n console.log(\"Error\", error);\r\n reject(false);\r\n }\r\n );\r\n });\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n get configData(): any {\r\n return this._configData;\r\n }\r\n\r\n public get router(): Router { //this creates router property on your service.\r\n return this.injector.get(Router);\r\n }\r\n\r\n registerRoute(wgRoute): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n this.masterPageUrl = \"/MasterPages/\";\r\n let masterPageLoaded: boolean = false;\r\n let formInnerMasterPage: string = \"\";\r\n\r\n var masterPagePreEl = window.location.pathname.substring(1).split(\"/\")[0];\r\n\r\n for (var i = 0; i < this.masterPages.length; i++) {\r\n if (this.masterPages[i].Url == masterPagePreEl) {\r\n this.masterPageUrl += this.masterPages[i].MasterPage;\r\n masterPageLoaded = true;\r\n }\r\n }\r\n\r\n this.restProvider.getDataGET(this.masterPageUrl).subscribe(masterPageTemplate => {\r\n\r\n this.masterPage = masterPageTemplate;\r\n\r\n this.restProvider.getDataGET(\"/MasterPages/\" + wgRoute.MasterPage).subscribe(masterPageInnerTemplate => {\r\n\r\n this.masterPage = masterPageTemplate;\r\n\r\n this.restProvider.getDataGET(wgRoute.Url).subscribe(async rawTemplate => {\r\n\r\n this.loadedRoutes.push({ Url: wgRoute.Url, Html: rawTemplate, ExplicitEditMode: wgRoute.ExplicitEditMode });\r\n\r\n /*if(this.loadedRoute.ExplicitEditMode){\r\n rawTemplate = \"\" + rawTemplate;\r\n }*/\r\n\r\n if (masterPageLoaded) {\r\n let formName: string = wgRoute.Title;\r\n this.masterPage = this.masterPage.replace(\"<*--formTemplatePlaceholder-->\", masterPageInnerTemplate);\r\n this.masterPage = this.masterPage.replace(\"<*--formInnerTemplatePlaceholder-->\", rawTemplate);\r\n this.masterPage = this.masterPage.replace(\"addNewLink\", wgRoute.PrettyUrl);\r\n this.masterPage = this.masterPage.replace(\"<*--sofm-->\", wgRoute.SerializationObjectFormLink);\r\n\r\n let trans = null;\r\n if (typeof this?.translationsService?.translations != \"undefined\" && this?.translationsService?.translations) {\r\n if (typeof this?.translationsService?.translations[formName] != \"undefined\" && typeof this?.translationsService?.translations[formName]) {\r\n trans = typeof this?.translationsService?.translations[formName];\r\n }\r\n }\r\n\r\n if (trans) {\r\n this.masterPage = this.masterPage.replace(\"<*--pageName-->\", this.translationsService?.translations[formName].toUpperCase());\r\n }\r\n\r\n } else {\r\n this.masterPage = this.masterPage.replace(\"\", rawTemplate);\r\n }\r\n\r\n\r\n const tmpCmp = Component({ template: this.masterPage.toString(), providers:[FileUploadStandaloneService] })(class extends SemDynamicComponent {\r\n submitedModel = {};\r\n actionFinishedSubscription: any;\r\n showSideForm: boolean = false;\r\n showPhotosContainer: boolean = false;\r\n showFilesContainer: boolean = false;\r\n showFingerPrintContainer: boolean = false;\r\n collapseSideFormByDefault: boolean = false;\r\n loaderSubscription: Subscription = null;\r\n titleIcon: string = \"assets/css/images/platform/ikona-user@3x.png\";\r\n\r\n ngAfterViewChecked() {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.actionsService.setActionAsFinished(undefined);\r\n if (typeof this.actionFinishedSubscription != \"undefined\" && this.actionFinishedSubscription != null) {\r\n this.actionFinishedSubscription.unsubscribe();\r\n }\r\n\r\n if (this.loaderSubscription != null) {\r\n this.loaderSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.checkSideForm();\r\n var currentRoute = this.utility.getCurrentRoute();\r\n\r\n if (currentRoute) {\r\n let tIcon = currentRoute[\"TitleIcon\"];\r\n if (tIcon) {\r\n if (tIcon.length > 0) {\r\n this.titleIcon = tIcon;\r\n }\r\n }\r\n }\r\n\r\n this.actionFinishedSubscription = this.actionsService.currentActionFinished.subscribe(value => {\r\n if (typeof value != \"undefined\" && value != null) {\r\n this.utility.reqStatus = value.MessageType;\r\n this.utility.reqMessage = value.Message;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n }\r\n });\r\n\r\n this.model = {\r\n SerializationObjectFormLink: this.SerializationObjectFormLink\r\n };\r\n\r\n /*this.mainForm.valueChanges.subscribe(val => {\r\n if (this.mainForm.submitted) {\r\n this.checkErrorsOnForm();\r\n }\r\n });*/\r\n\r\n this.loaderSubscription = this.loaderService.subject.subscribe(data => {\r\n if (data) {\r\n this.updateStatus(data);\r\n }\r\n });\r\n\r\n }\r\n\r\n checkErrorsOnForm() {\r\n /*this.utility.reqMessage = null;\r\n this.mandatoryFields = [];\r\n for (const name in this.mainForm.controls) {\r\n if (this.mainForm.controls[name].invalid) {\r\n this.mandatoryFields.push(this.translationsProviderService.labels[name]);\r\n }\r\n }\r\n \r\n /*if (this.mandatoryFields.length == 0) {\r\n this.utility.reqResponse = false;\r\n }*/\r\n }\r\n\r\n closeErrorBox() {\r\n this.loading = false;\r\n this.utility.reqResponse = false;\r\n }\r\n\r\n toggleErrorBox() {\r\n this.utility.reqResponse = !this.utility.reqResponse;\r\n }\r\n\r\n checkSideForm() {\r\n let requestM: RequestModel = new RequestModel();\r\n requestM.url = \"api/dynamicforms/sideforminfo\";\r\n requestM.data = { \"DynamicFormRouteUrl\": window.location.pathname };\r\n requestM.contentType = \"application/json\";\r\n\r\n this.loading = true;\r\n\r\n this.restProviderService.getDataPOST(requestM).subscribe(data => {\r\n if (data != null && typeof data != \"undefined\") {\r\n\r\n this.showFilesContainer = data[\"ShowFiles\"];\r\n this.showFingerPrintContainer = data[\"ShowFingerPrints\"];\r\n this.showPhotosContainer = data[\"ShowPhotos\"];\r\n this.collapseSideFormByDefault = data[\"CollapseSideFormByDefault\"];\r\n\r\n if (this.showFilesContainer == true || this.showFingerPrintContainer == true || this.showPhotosContainer == true) {\r\n this.showSideForm = true;\r\n } else {\r\n this.showSideForm = false;\r\n }\r\n }\r\n\r\n this.loading = false;\r\n },error=>{\r\n this.loading = false;\r\n });\r\n\r\n //return false;\r\n }\r\n\r\n // info: this is now called from sem-dynamic.component.ts -> method = formSubmit()\r\n async onSubmit(f) {\r\n /*if (this.mainForm.valid) {*/\r\n var res = await this._submitAll();\r\n /*} else {\r\n \r\n this.checkErrorsOnForm();\r\n this.utility.reqStatus = ResponseStatus.ErrorMandatoryFields;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n \r\n }*/\r\n }\r\n\r\n async _submitAll() {\r\n\r\n\r\n this.loading = true;\r\n\r\n this.submitFilesRequestEvent.next();\r\n //await this.fileDelete();\r\n\r\n console.log(JSON.stringify(this.model));\r\n\r\n console.log(\"MEDIAS before saving : \", this.model[\"Medias\"]);\r\n return await this.submit(this.model).subscribe(data => {\r\n\r\n //console.log(\"Model submitted\");\r\n\r\n //this.loading = false;\r\n\r\n if (data[\"Metadata\"] != null && typeof data[\"Metadata\"] != \"undefined\" && data[\"Metadata\"].ServerMessageMetadata != null && typeof data[\"Metadata\"].ServerMessageMetadata != \"undefined\" && data[\"Metadata\"].ServerMessageMetadata.MessageType == 2) {\r\n // ok envelope response but error type \r\n this.utility.reqMessage = data[\"Metadata\"].ServerMessageMetadata.Message;\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n\r\n if (this.utility.afterFormSubmitErrorJS != null && typeof this.utility.afterFormSubmitErrorJS != \"undefined\" && this.utility.afterFormSubmitErrorJS.length > 0) {\r\n // if error occurs on submit -> execute afterFormSubmitErrorJS logic\t\r\n this.utility.afterFormSubmitErrorJS = this.utility.afterFormSubmitErrorJS.replace(/\\\\/g, \"\");\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.utility.afterFormSubmitErrorJS);\r\n }\r\n\r\n this.loading = false;\r\n\r\n } else {\r\n\r\n if (this.utility.redirectUrlAfterSubmit != null && typeof this.utility.redirectUrlAfterSubmit != \"undefined\" && this.utility.redirectUrlAfterSubmit.length > 0) {\r\n this.utility.processNavigationUrl(this.utility.redirectUrlAfterSubmit, null, true);\r\n } else {\r\n if (typeof data[\"Model\"] != \"undefined\" && data[\"Model\"] != null) {\r\n\r\n var preperedModel = data[\"Model\"];\r\n preperedModel = this.dfms.setInitValues(preperedModel);\r\n\r\n this.model = preperedModel;\r\n this.model[\"SerializationObjectFormLink\"] = this.SerializationObjectFormLink;\r\n\r\n this.formName = this.model[\"Title\"];\r\n\r\n this.changeDet.detectChanges();\r\n var m = data[\"Metadata\"].ServerMessageMetadata.Message;\r\n this.updateStatusWithMessage(1, false, m);\r\n this.changeDet.detectChanges();\r\n\r\n this.fileUpload().subscribe(\r\n data => {\r\n //console.log(\"Observable finished\");\r\n\r\n if (data == FileUploadObservableState.Finished) {\r\n\r\n let stModel = null;\r\n if (this.utility.tabInformations != null) {\r\n stModel = {};\r\n stModel[\"tabInformations\"] = { tabId: this.utility.tabInformations[\"tabId\"] };\r\n this.utility.tabInformations = null;\r\n }\r\n \r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n //no need to reset default value of response message if it is successfull (custom text when saving entity)\r\n //this.utility.reqMessage = null;\r\n this.utility.reqResponse = true;\r\n\r\n if (this.router.url.includes(\"?id=\")) {\r\n \r\n setTimeout(() => {\r\n this.utility.processNavigationUrl(this.router.url, stModel, true);\r\n }, 1500);\r\n } else {\r\n \r\n setTimeout(() => {\r\n this.utility.processNavigationUrl(this.router.url + \"?id=\" + this.model[\"Id\"], stModel, true);\r\n }, 1500);\r\n }\r\n\r\n }\r\n else if (data == FileUploadObservableState.Error) {\r\n this.utility.reqMessage = \"Napaka pri shranjevanju datoteke. Pripeta datoteka ni bila shranjena.\"\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n }\r\n else{\r\n this.utility.reqMessage = \"Shranjevanje datotek v teku ...\"\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.utility.reqResponse = true;\r\n }\r\n },\r\n error => {\r\n console.log(\"Observable error\", error);\r\n this.utility.reqMessage = \"Napaka pri shranjevanju datoteke. Pripeta datoteka ni bila shranjena.\"\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n },\r\n () => {\r\n console.log(\"We made it here: \", this);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n } else {\r\n\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.utility.reqMessage = null;\r\n this.utility.reqResponse = true;\r\n setTimeout(() => {\r\n this.utility.processNavigationUrl(\"cms/dashboard\", null, false);\r\n }, 1500);\r\n\r\n \r\n }\r\n }\r\n }\r\n\r\n }, error => {\r\n\r\n try {\r\n if (this.utility.afterFormSubmitErrorJS != null && typeof this.utility.afterFormSubmitErrorJS != \"undefined\" && this.utility.afterFormSubmitErrorJS.length > 0) {\r\n // if error occurs on submit -> execute afterFormSubmitErrorJS logic\t\r\n this.utility.afterFormSubmitErrorJS = this.utility.afterFormSubmitErrorJS.replace(/\\\\/g, \"\");\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.utility.afterFormSubmitErrorJS);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n console.log(\"Error saving entity\", error);\r\n this.utility.reqMessage = this.translationsProviderService.translate(\"galis_js_error_saving_entity\");\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n updateStatus(status, hideLoader: boolean = true) {\r\n if (status == 1) {\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.utility.reqMessage = null;\r\n this.utility.reqResponse = true;\r\n }\r\n else {\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqMessage = null;\r\n this.utility.reqResponse = true;\r\n }\r\n this.resetResponseStatus();\r\n\r\n if (hideLoader == true) {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n //usefull when we have custom message with response (used in post save/submit)\r\n updateStatusWithMessage(status, hideLoader: boolean = true, message: string) {\r\n if (status == 1) {\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.utility.reqMessage = (message != null || message != \"undefined\") ? message : null;\r\n this.utility.reqResponse = true;\r\n }\r\n else {\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqMessage = null;\r\n this.utility.reqResponse = true;\r\n }\r\n this.resetResponseStatus();\r\n\r\n if (hideLoader == true) {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n _addNew(url) {\r\n\r\n this.stateModel = new StateModel;\r\n this.utility.stateObjectHistory = [];\r\n\r\n if (this.mainForm.dirty) {\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { width: '350px', height: '185px', data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n this.model = {};\r\n this.loading = false;\r\n var navigated = false;\r\n this.mandatoryFields = [];\r\n\r\n this.loading = true;\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n if (this.params.hasOwnProperty('urlNew')) {\r\n this.utility.processNavigationUrl(this.params.urlNew, null, true);\r\n navigated = true;\r\n } else if (this.params.hasOwnProperty('url')) {\r\n this.utility.processNavigationUrl(this.params.url, null, true);\r\n navigated = true;\r\n } else {\r\n this.utility.processNavigationUrl(window.location.pathname.split(\"?\")[0], null, true);\r\n }\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n }\r\n\r\n });\r\n } else {\r\n this.model = {};\r\n this.loading = false;\r\n var navigated = false;\r\n this.mandatoryFields = [];\r\n \r\n DynamicLoadingUtil.loader.showLoader = true;\r\n if (this.params.hasOwnProperty('urlNew')) {\r\n this.utility.processNavigationUrl(this.params.urlNew, null, true);\r\n navigated = true;\r\n } else if (this.params.hasOwnProperty('url')) {\r\n this.utility.processNavigationUrl(this.params.url, null, true);\r\n navigated = true;\r\n } else {\r\n this.utility.processNavigationUrl(window.location.pathname.split(\"?\")[0], null, true);\r\n }\r\n //DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n\r\n }\r\n\r\n _delete() {\r\n\r\n this.getPrompt().subscribe(result => {\r\n if (typeof result != \"undefined\") {\r\n if (result) {\r\n this.loading = true;\r\n super.delete(this.model).subscribe(data => {\r\n\r\n if (data == null) {\r\n //console.log(\"Model submited for delete\");\r\n //console.log(data);\r\n this.ngOnInit();\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.formName = \"Add new\";\r\n } else {\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n }\r\n\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n this.loading = false;\r\n this._addNew(this.router.url);\r\n\r\n }, error => {\r\n\r\n console.log(\"Error deleting the entity\", error);\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.resetResponseStatus();\r\n this.loading = false;\r\n\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n resetResponseStatus() {\r\n setTimeout(() => {\r\n this.utility.reqResponse = false;\r\n this.mandatoryFields = [];\r\n }, 6000);\r\n }\r\n\r\n sidebarChanged(event) {\r\n this.sidebarMenuOpened = event;\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n let masterPageName = wgRoute.Title.split(\"/\")[0];\r\n const routes = [{ path: '', component: tmpCmp }];\r\n const tmpModule = NgModule({ imports: [CommonModule, SemSharedModule, SemNavigationModule, RouterModule.forChild(routes)], declarations: [tmpCmp], providers: [] })(class {\r\n });\r\n\r\n await this.compiler.compileModuleAsync(tmpModule).then((module) => {\r\n\r\n const appRoutes = [...this.router.config];\r\n\r\n const route = {\r\n path: wgRoute.PrettyUrl,\r\n loadChildren() {\r\n return module;\r\n },\r\n data: {\r\n breadcrumb: 'page'\r\n }\r\n };\r\n\r\n (tmpCmp.prototype).SerializationObjectFormLink = wgRoute.SerializationObjectFormLink;\r\n\r\n appRoutes.push(route);\r\n\r\n this.router.resetConfig(appRoutes);\r\n //console.log(\"Registered routes: \");\r\n //console.log(this.router.config);\r\n\r\n });\r\n\r\n resolve(true);\r\n\r\n }, error => {\r\n console.log(\"Error retrieving template\", error);\r\n reject(false);\r\n });\r\n\r\n }, error => {\r\n console.log(\"Error retrieving inner master page template\", error);\r\n reject(false);\r\n });\r\n\r\n\r\n }, error => {\r\n console.log(\"Error retrieving masterpage\", error);\r\n reject(false);\r\n });\r\n //observable execution\r\n\r\n });\r\n }\r\n\r\n registerMasterPage(wgRoute): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n\r\n this.masterPageUrl = \"/MasterPages/\";\r\n\r\n this.restProvider.getDataGET(this.masterPageUrl + wgRoute[\"MasterPage\"]).subscribe(masterPageTemplate => {\r\n\r\n this.masterPage = masterPageTemplate;\r\n\r\n\r\n this.restProvider.getDataGET(this.masterPageUrl + wgRoute[\"MasterPage\"]).subscribe(async rawTemplate => {\r\n\r\n this.masterPage = this.masterPage.replace(\"<*--formTemplatePlaceholder-->\", rawTemplate);\r\n this.masterPage = this.masterPage.replace(\"addNewLink\", wgRoute.Title);\r\n this.masterPage = this.masterPage.replace(\"<*--sofm-->\", wgRoute.SerializationObjectFormLink);\r\n\r\n const tmpCmp = Component({ template: this.masterPage.toString() })(class extends SemDynamicComponent {\r\n\r\n menuOpened: boolean = false;\r\n //@ViewChild(SemLeftMenuComponent) leftMenu: SemLeftMenuComponent;\r\n masterPage: string;\r\n masterPageUrl: string;\r\n\r\n super() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n isMenuOpened() {\r\n //return this.leftMenu.opened;\r\n }\r\n\r\n });\r\n\r\n\r\n this.masterPageComponent = tmpCmp;\r\n\r\n const routes = [{ path: '', component: tmpCmp }];\r\n const tmpModule = NgModule({ imports: [CommonModule, SemSharedModule, SemNavigationModule, RouterModule.forChild(routes)], declarations: [tmpCmp], providers: [] })(class {\r\n });\r\n\r\n await this.compiler.compileModuleAsync(tmpModule).then((module) => {\r\n\r\n const appRoutes = [...this.router.config];\r\n\r\n const route = {\r\n path: wgRoute.Url,\r\n loadChildren() {\r\n return module;\r\n },\r\n children: []\r\n };\r\n\r\n\r\n (tmpCmp.prototype).SerializationObjectFormLink = wgRoute.SerializationObjectFormLink;\r\n\r\n appRoutes.push(route);\r\n\r\n\r\n\r\n\r\n // test navigation\r\n //this.router.navigateByUrl(wgRoute.Url);\r\n\r\n\r\n });\r\n\r\n resolve(true);\r\n\r\n }, error => {\r\n console.log(\"Error retrieving template\", error);\r\n reject(false);\r\n });\r\n\r\n\r\n }, error => {\r\n console.log(\"Error retrieving masterpage\", error);\r\n reject(false);\r\n });\r\n // observable execution\r\n\r\n });\r\n }\r\n}\r\n\r\n\r\nexport function configServiceFactory(injector: Injector, configService: RouteNavigationService): Function {\r\n return () => {\r\n\r\n var router = injector.get(Router);\r\n var url = window.location.pathname.substring(1);\r\n router.onSameUrlNavigation = \"reload\";\r\n\r\n var compExists = false;\r\n\r\n for (var i = 0; i < router.config.length; i++) {\r\n if (router.config[i][\"path\"] == url) {\r\n compExists = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!compExists) {\r\n return injector.get(RouteNavigationService)\r\n .loadConfig(url);\r\n }\r\n\r\n return;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { throwError, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService { \r\n\r\n constructor(private restProvider: RestProviderService) {\r\n }\r\n\r\n // export data\r\n private exportData: Observable; // store the shared observable\r\n\r\n export(exportType: string, searchQuery: any) { \r\n\r\n var reqModel = new RequestModel;\r\n reqModel.url = \"api/document/export\";\r\n reqModel.data = {\r\n \"ExportType\": exportType,\r\n \"SearchQuery\": searchQuery\r\n }; \r\n\r\n this.exportData = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: any[]) => {\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Export service error!', error)\r\n }));\r\n\r\n return this.exportData;\r\n\r\n }\r\n\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { HttpClient, HttpEvent, HttpParams, HttpRequest, HttpHeaders, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { RequestOptions } from '@angular/http';\r\nimport { Observable, Subject, EMPTY, BehaviorSubject } from 'rxjs';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { expand } from 'rxjs/operators';\r\nimport { FileDataModel } from 'src/app/models/file-upload/file-data';\r\nimport { RequestModel } from 'src/app/models/request/request-model';\r\nimport { DynamicFieldsManagerService } from '../dynamic-fields/dynamic-fields-manager.service';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileUploadService implements OnDestroy {\r\n\r\n public files: FileDataModel[] = [];\r\n public filesToRemove: FileDataModel[] = [];\r\n public imagesPath: string[] = [];\r\n public filesNumber: number = 0;\r\n\r\n size: number;\r\n chunkSize: number = 512000;\r\n progress: number;\r\n startTime: number;\r\n speed: number;\r\n remaining: number;\r\n response: any;\r\n status: string;\r\n options: any;\r\n headers: any;\r\n abort: () => void;\r\n file: FileDataModel;\r\n model: any;\r\n uploaded: number;\r\n startFU: number;\r\n chunkNumber: number = 0;\r\n\r\n _clearFiles = new BehaviorSubject({});\r\n clearFiles = this._clearFiles.asObservable();\r\n\r\n constructor(private restProvider: RestProviderService, private http: HttpClient, private loadingUtil: DynamicLoadingUtil, private dfms: DynamicFieldsManagerService, private router: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n \r\n }\r\n\r\n uploadFiles(model: object): Observable {\r\n\r\n\r\n this.model = model;\r\n\r\n if (this.files.length > 0) {\r\n var filesTemp = this.files.slice();\r\n let fileSet = new Set();\r\n for (var i = 0; i < filesTemp.length; i++) {\r\n fileSet.add(filesTemp[i]);\r\n }\r\n\r\n this.file = filesTemp[0];\r\n this.startTime = Date.now();\r\n this.size = this.file.File.size;\r\n }\r\n\r\n /*if (this.filesToRemove.length > 0) {\r\n var res = this.removeFiles();\r\n }*/\r\n\r\n return this.sendFile().pipe(expand((res: number) => {\r\n if (res > -1) {\r\n return this.sendFile(res);\r\n } else {\r\n return EMPTY;\r\n }\r\n }));\r\n\r\n }\r\n\r\n removeFiles(): Promise {\r\n var model = new RequestModel;\r\n model.url = \"api/media/remove\";\r\n\r\n for (var i = 0; i < this.filesToRemove.length; i++) {\r\n this.filesToRemove[i][\"DocumentId\"] = this.model[\"Id\"];\r\n }\r\n\r\n model.data = this.filesToRemove;\r\n\r\n return this.restProvider.getDataPOST(model).toPromise();\r\n }\r\n\r\n /**\r\n * Content upload\r\n */\r\n private sendFile(start: number = 0): Observable {\r\n //return new Promise((resolve, reject) => {\r\n return new Observable(observer => {\r\n\r\n if (this.files.length == 0) {\r\n observer.next(-1);\r\n return;\r\n }\r\n\r\n let end: number = this.chunkSize\r\n ? start + this.chunkSize\r\n : this.size;\r\n\r\n end = end > this.size ? this.size : end;\r\n this.startFU = end;\r\n const chunk: Blob = this.file.File.slice(start, end);\r\n const xhr: XMLHttpRequest = XHRFactory.getInstance();\r\n xhr.open('POST', environment.wgProfileHost + \"/api/media\", true);\r\n xhr.responseType = 'json';\r\n\r\n //this.setCommonHeaders(xhr);\r\n\r\n xhr.setRequestHeader(\r\n 'Content-Range',\r\n `bytes ${start}-${end - 1}/${this.size}`\r\n );\r\n\r\n xhr.setRequestHeader('Authorization', \"Bearer \" + this.restProvider.getToken());\r\n\r\n const updateProgress = (pEvent: ProgressEvent) => {\r\n this.uploaded = pEvent.lengthComputable\r\n ? start + (end - start) * (pEvent.loaded / pEvent.total)\r\n : start;\r\n this.progress = +((this.uploaded / this.size) * 100).toFixed(2);\r\n const now = new Date().getTime();\r\n this.speed = Math.round((this.uploaded / (now - this.startTime)) * 1000);\r\n this.remaining = Math.ceil((this.size - this.uploaded) / this.speed);\r\n //console.log(\"Remaining to upload :\");\r\n //console.log(this.remaining);\r\n };\r\n\r\n const onDataSendError = async () => {\r\n observer.error();\r\n };\r\n\r\n xhr.onload = () => {\r\n if (xhr.status === 200 || xhr.status === 201) {\r\n this.progress = 100;\r\n this.response = xhr.response;\r\n this.status = 'complete';\r\n XHRFactory.release(xhr);\r\n //this.options.nextFile();\r\n if (this.uploaded < this.size && this.file.FileID < 1) {\r\n //this.sendFile(this.startFU);\r\n observer.next(this.startFU);\r\n }\r\n else if (this.files.length > 0 && (this.files.indexOf(this.file) != (this.files.length - 1))) {\r\n //console.log(\"File change ---------------------------------------------------------------------------------------------\");\r\n this.chunkNumber = 0;\r\n this.file = this.files[this.files.indexOf(this.file) + 1];\r\n this.size = this.file.File.size;\r\n this.startTime = Date.now();\r\n //this.sendFile();\r\n observer.next(0);\r\n } else {\r\n this.chunkNumber = 0;\r\n this.startFU = 0;\r\n this.uploaded = 0;\r\n this.size = 0;\r\n this.remaining = 0;\r\n this.files = [];\r\n this.file = null;\r\n //console.log(\"Upload finished\");\r\n observer.next(-1);\r\n }\r\n\r\n } else if (xhr.status && xhr.status < 400) {\r\n const range = +xhr.getResponseHeader('Range').split('-')[1] + 1;\r\n //this.retry.reset();\r\n XHRFactory.release(xhr);\r\n // send next chunk\r\n //this.abort = this.sendFile(range);\r\n observer.next(0);\r\n } else {\r\n onDataSendError();\r\n }\r\n };\r\n\r\n xhr.onerror = onDataSendError;\r\n //xhr.onload = onDataSendSuccess;\r\n xhr.upload.onprogress = updateProgress;\r\n\r\n this.chunkNumber++;\r\n\r\n let modelId = 0;\r\n\r\n if (this.router.url.includes(\"/cms/probation/courtjudgementinformation\")) {\r\n if (typeof this.imagesPath != \"undefined\" && this.imagesPath) {\r\n if (this.imagesPath.length > 0) {\r\n modelId = this.dfms.getValue(this.model, this.imagesPath[0] + \".Id\")\r\n } else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n } else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n }\r\n else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n\r\n let formData: FormData = new FormData();\r\n formData.append('file', chunk, this.file.File.name);\r\n formData.append('name', this.file.File.name);\r\n formData.append('parentdbid', modelId.toString());\r\n formData.append('chunkSize', this.chunkSize.toString());\r\n formData.append('fileSize', this.file.File.size.toString());\r\n formData.append('chunkNumber', this.chunkNumber.toString());\r\n formData.append('category', this.file.Category.toString());\r\n formData.append('formName', this.model[\"SerializationObjectFormLink\"]);\r\n\r\n if (typeof this.file.Title != \"undefined\" && this.file.Title != null) {\r\n formData.append('title', this.file.Title.toString());\r\n }\r\n if (typeof this.file.Description != \"undefined\" && this.file.Description != null) {\r\n formData.append('description', this.file.Description.toString());\r\n }\r\n if (typeof this.file.FileOrder != \"undefined\" && this.file.FileOrder != null) {\r\n formData.append('order', this.file.FileOrder.toString());\r\n }\r\n if (typeof this.file.FileCategory != \"undefined\" && this.file.FileCategory != null) {\r\n formData.append('fileCategory', this.file.FileCategory.toString());\r\n }\r\n if (typeof this.file.FileID != \"undefined\" && this.file.FileID != null) {\r\n formData.append('fileId', this.file.FileID.toString());\r\n }\r\n if (typeof this.file.Annotations != \"undefined\" && this.file.Annotations != null) {\r\n formData.append('annotations', JSON.stringify(this.file.Annotations));\r\n }\r\n\r\n //console.log(\"Chunk number \" + this.chunkNumber + \" send\");\r\n\r\n xhr.send(formData);\r\n\r\n //return () => {\r\n // xhr.abort();\r\n //};\r\n });\r\n //});\r\n }\r\n}\r\n\r\n\r\nexport let XHRFactory = (() => {\r\n let stack = Array(1).fill(createXHR());\r\n\r\n function createXHR() {\r\n return new XMLHttpRequest();\r\n }\r\n\r\n return {\r\n release: (xhr) => {\r\n xhr.onreadystatechange = null;\r\n xhr.onerror = null;\r\n xhr.onload = null;\r\n xhr.upload.onprogress = null;\r\n stack.push(xhr);\r\n },\r\n getInstance() {\r\n if (!stack.length) {\r\n return createXHR();\r\n } else {\r\n return stack.pop();\r\n }\r\n },\r\n get size() {\r\n return stack.length;\r\n },\r\n set size(s) {\r\n stack = Array(s).fill(createXHR());\r\n }\r\n };\r\n})();\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable, EMPTY, Subscriber } from 'rxjs';\r\nimport { expand } from 'rxjs/operators';\r\nimport { environment } from '../../../environments/environment';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { DynamicLoadingUtil } from '../../shared/helpers/dynamic-loading-util';\r\nimport { DynamicFieldsManagerService } from '../dynamic-fields/dynamic-fields-manager.service';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { FileDataModel } from 'src/app/models/file-upload/file-data';\r\n\r\n@Injectable({\r\n providedIn: null\r\n})\r\nexport class FileUploadStandaloneService implements OnDestroy {\r\n\r\n public files: FileDataModel[] = [];\r\n public filesToRemove: FileDataModel[] = [];\r\n public imagesPath: string[] = [];\r\n public filesNumber: number = 0;\r\n\r\n size: number;\r\n chunkSize: number = 512000;\r\n progress: number;\r\n startTime: number;\r\n speed: number;\r\n remaining: number;\r\n response: any;\r\n status: string;\r\n options: any;\r\n headers: any;\r\n abort: () => void;\r\n file: FileDataModel;\r\n model: any;\r\n uploaded: number;\r\n startFU: number;\r\n chunkNumber: number = 0;\r\n\r\n _clearFiles = new BehaviorSubject({});\r\n clearFiles = this._clearFiles.asObservable();\r\n\r\n g_Observer:Subscriber | null = null;\r\n\r\n constructor(private restProvider: RestProviderService, private http: HttpClient, private loadingUtil: DynamicLoadingUtil, private dfms: DynamicFieldsManagerService, private router: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.files.length != 0) {\r\n this.g_Observer?.error();\r\n this.files = [];\r\n }\r\n }\r\n\r\n uploadFiles(model: object): Observable {\r\n\r\n\r\n this.model = model;\r\n\r\n if (this.files.length > 0) {\r\n var filesTemp = this.files.slice();\r\n let fileSet = new Set();\r\n for (var i = 0; i < filesTemp.length; i++) {\r\n fileSet.add(filesTemp[i]);\r\n }\r\n\r\n this.file = filesTemp[0];\r\n this.startTime = Date.now();\r\n this.size = this.file.File.size;\r\n }\r\n\r\n /*if (this.filesToRemove.length > 0) {\r\n var res = this.removeFiles();\r\n }*/\r\n\r\n return this.sendFile().pipe(expand((res: number) => {\r\n if (res > -1) {\r\n return this.sendFile(res);\r\n } else {\r\n return EMPTY;\r\n }\r\n }));\r\n\r\n }\r\n\r\n removeFiles(): Promise {\r\n var model = new RequestModel;\r\n model.url = \"api/media/remove\";\r\n\r\n for (var i = 0; i < this.filesToRemove.length; i++) {\r\n this.filesToRemove[i][\"DocumentId\"] = this.model[\"Id\"];\r\n }\r\n\r\n model.data = this.filesToRemove;\r\n\r\n return this.restProvider.getDataPOST(model).toPromise();\r\n }\r\n\r\n /**\r\n * Content upload\r\n */\r\n private sendFile(start: number = 0): Observable {\r\n //return new Promise((resolve, reject) => {\r\n return new Observable(observer => {\r\n\r\n this.g_Observer = observer;\r\n\r\n if (this.files.length == 0) {\r\n observer.next(-1);\r\n return;\r\n }\r\n\r\n let end: number = this.chunkSize\r\n ? start + this.chunkSize\r\n : this.size;\r\n\r\n end = end > this.size ? this.size : end;\r\n this.startFU = end;\r\n const chunk: Blob = this.file.File.slice(start, end);\r\n const xhr: XMLHttpRequest = XHRFactory.getInstance();\r\n xhr.open('POST', environment.wgProfileHost + \"/api/media\", true);\r\n xhr.responseType = 'json';\r\n\r\n //this.setCommonHeaders(xhr);\r\n\r\n xhr.setRequestHeader(\r\n 'Content-Range',\r\n `bytes ${start}-${end - 1}/${this.size}`\r\n );\r\n\r\n xhr.setRequestHeader('Authorization', \"Bearer \" + this.restProvider.getToken());\r\n\r\n const updateProgress = (pEvent: ProgressEvent) => {\r\n this.uploaded = pEvent.lengthComputable\r\n ? start + (end - start) * (pEvent.loaded / pEvent.total)\r\n : start;\r\n this.progress = +((this.uploaded / this.size) * 100).toFixed(2);\r\n const now = new Date().getTime();\r\n this.speed = Math.round((this.uploaded / (now - this.startTime)) * 1000);\r\n this.remaining = Math.ceil((this.size - this.uploaded) / this.speed);\r\n //console.log(\"Remaining to upload :\");\r\n //console.log(this.remaining);\r\n };\r\n\r\n const onDataSendError = async () => {\r\n observer.error();\r\n };\r\n\r\n xhr.onload = () => {\r\n if (xhr.status === 200 || xhr.status === 201) {\r\n this.progress = 100;\r\n this.response = xhr.response;\r\n this.status = 'complete';\r\n XHRFactory.release(xhr);\r\n //this.options.nextFile();\r\n if (this.uploaded < this.size && this.file.FileID < 1) {\r\n //this.sendFile(this.startFU);\r\n observer.next(this.startFU);\r\n }\r\n else if (this.files.length > 0 && (this.files.indexOf(this.file) != (this.files.length - 1))) {\r\n //console.log(\"File change ---------------------------------------------------------------------------------------------\");\r\n this.chunkNumber = 0;\r\n this.file = this.files[this.files.indexOf(this.file) + 1];\r\n this.size = this.file.File.size;\r\n this.startTime = Date.now();\r\n //this.sendFile();\r\n observer.next(0);\r\n } else {\r\n this.chunkNumber = 0;\r\n this.startFU = 0;\r\n this.uploaded = 0;\r\n this.size = 0;\r\n this.remaining = 0;\r\n this.files = [];\r\n this.file = null;\r\n //console.log(\"Upload finished\");\r\n observer.next(-1);\r\n }\r\n\r\n } else if (xhr.status && xhr.status < 400) {\r\n const range = +xhr.getResponseHeader('Range').split('-')[1] + 1;\r\n //this.retry.reset();\r\n XHRFactory.release(xhr);\r\n // send next chunk\r\n //this.abort = this.sendFile(range);\r\n observer.next(0);\r\n } else {\r\n onDataSendError();\r\n }\r\n };\r\n\r\n xhr.onerror = onDataSendError;\r\n //xhr.onload = onDataSendSuccess;\r\n xhr.upload.onprogress = updateProgress;\r\n\r\n this.chunkNumber++;\r\n\r\n let modelId = 0;\r\n\r\n if (this.router.url.includes(\"/cms/probation/courtjudgementinformation\")) {\r\n if (typeof this.imagesPath != \"undefined\" && this.imagesPath) {\r\n if (this.imagesPath.length > 0) {\r\n modelId = this.dfms.getValue(this.model, this.imagesPath[0] + \".Id\")\r\n } else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n } else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n }\r\n else {\r\n modelId = this.model[\"Id\"];\r\n }\r\n\r\n let formData: FormData = new FormData();\r\n formData.append('file', chunk, this.file.File.name);\r\n formData.append('name', this.file.File.name);\r\n formData.append('parentdbid', modelId.toString());\r\n formData.append('chunkSize', this.chunkSize.toString());\r\n formData.append('fileSize', this.file.File.size.toString());\r\n formData.append('chunkNumber', this.chunkNumber.toString());\r\n formData.append('category', this.file.Category.toString());\r\n formData.append('formName', this.model[\"SerializationObjectFormLink\"]);\r\n\r\n if (typeof this.file.Title != \"undefined\" && this.file.Title != null) {\r\n formData.append('title', this.file.Title.toString());\r\n }\r\n if (typeof this.file.Description != \"undefined\" && this.file.Description != null) {\r\n formData.append('description', this.file.Description.toString());\r\n }\r\n if (typeof this.file.FileOrder != \"undefined\" && this.file.FileOrder != null) {\r\n formData.append('order', this.file.FileOrder.toString());\r\n }\r\n if (typeof this.file.FileCategory != \"undefined\" && this.file.FileCategory != null) {\r\n formData.append('fileCategory', this.file.FileCategory.toString());\r\n }\r\n if (typeof this.file.FileID != \"undefined\" && this.file.FileID != null) {\r\n formData.append('fileId', this.file.FileID.toString());\r\n }\r\n if (typeof this.file.Annotations != \"undefined\" && this.file.Annotations != null) {\r\n formData.append('annotations', JSON.stringify(this.file.Annotations));\r\n }\r\n\r\n //console.log(\"Chunk number \" + this.chunkNumber + \" send\");\r\n\r\n xhr.send(formData);\r\n\r\n //return () => {\r\n // xhr.abort();\r\n //};\r\n });\r\n //});\r\n }\r\n}\r\n\r\n\r\nexport let XHRFactory = (() => {\r\n let stack = Array(1).fill(createXHR());\r\n\r\n function createXHR() {\r\n return new XMLHttpRequest();\r\n }\r\n\r\n return {\r\n release: (xhr) => {\r\n xhr.onreadystatechange = null;\r\n xhr.onerror = null;\r\n xhr.onload = null;\r\n xhr.upload.onprogress = null;\r\n stack.push(xhr);\r\n },\r\n getInstance() {\r\n if (!stack.length) {\r\n return createXHR();\r\n } else {\r\n return stack.pop();\r\n }\r\n },\r\n get size() {\r\n return stack.length;\r\n },\r\n set size(s) {\r\n stack = Array(s).fill(createXHR());\r\n }\r\n };\r\n})();\r\n","import { Injectable, Input } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormService {\r\n\r\n @Input() preLoadEvent:any;\r\n \r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from 'src/app/interfaces/can-activate/can-activate';\r\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { RestProviderService } from '../../rest-provider/rest-provider.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuardService implements CanActivate {\r\n \r\n constructor(private _router:Router, private restService:RestProviderService ) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): boolean {\r\n\r\n //check some condition \r\n if (this.restService.getToken() == '') {\r\n //redirect to login/home page etc\r\n //return false to cancel the navigation\r\n //this._router.navigateByUrl(\"/account/login\");\r\n window.location.href = '/account/login';\r\n return false;\r\n } \r\n return true;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderServiceService {\r\n \r\n public subject = new Subject();\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n constructor() { }\r\n\r\n add(key,value){\r\n localStorage.setItem(key,value);\r\n }\r\n\r\n get(key){\r\n return localStorage.getItem(key);\r\n }\r\n\r\n remove(key){\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { DynamicLoadingUtil } from '../../shared/helpers/dynamic-loading-util';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, filter, switchMap, catchError } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MetaModelService {\r\n\r\n observableShare: Observable; // store the shared observable\r\n observableResult: any[]; // store the result of the observable when complete\r\n\r\n constructor(public restProvider: RestProviderService) { \r\n }\r\n\r\n getSearchFields(modelName: string, onlyLastNodeNames: boolean = false, viewId: number = 0, globalSearch: boolean = false, globalSearchType: string = \"\") {\r\n\r\n var metaModelRequest = new RequestModel;\r\n metaModelRequest.url = \"api/metamodel/entities\";\r\n metaModelRequest.data = { \"EntityName\": modelName, \"RepositoryName\": \"lucene\", \"OnlyLastNodeNames\": onlyLastNodeNames, \"SearchViewId\": viewId, \"GlobalSearch\" : globalSearch,\r\n \"GlobalSearchType\":globalSearchType};\r\n\r\n /*if (this.observableResult) { // if result has already been found (api has completed) return result\r\n // create dummy observable and return results\r\n return new Observable(observer => {\r\n observer.next(this.observableResult);\r\n observer.complete();\r\n })\r\n } else if (this.observableShare) { // else if api is still processing, return shared observable\r\n return this.observableShare;\r\n } else { // else api has not started, start api and return shared observable\r\n*/\r\n this.observableShare = this.restProvider.getDataPOST(metaModelRequest).\r\n pipe(\r\n map((data: any[]) => {\r\n this.observableResult = data;\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Metamodel service error!', error)\r\n })); \r\n\r\n return this.observableShare;\r\n //}\r\n }\r\n \r\n}\r\n","import { Injectable, Component } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParameterFormsService{\r\n\r\n // for closing dialog\r\n private closeDialog = new BehaviorSubject(undefined);\r\n currentCloseDialog = this.closeDialog.asObservable();\r\n\r\n private parameterFormsModel: any;\r\n \r\n constructor() { \r\n }\r\n\r\n closeParameterFormDialog(cancled: boolean){\r\n this.closeDialog.next(cancled);\r\n }\r\n\r\n setParameterFormModel(model: any) {\r\n this.parameterFormsModel = model;\r\n }\r\n\r\n getParameterFormModel(){\r\n return this.parameterFormsModel;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { RootModel } from '../../models/root-model';\r\nimport { map, retry } from 'rxjs/operators';\r\nimport { SemToken } from 'src/app/models/oauth/semToken';\r\nimport { LocalStorageService } from '../local-storage-service/local-storage.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { lang } from 'moment';\r\nimport { head } from 'lodash';\r\nimport { Serializer } from '../../models/serializing/serializer';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RestProviderService {\r\n\r\n // listener for search value change\r\n _modelValueChanged = new BehaviorSubject({});\r\n modelValueChanged = this._modelValueChanged.asObservable();\r\n currentUser: any = null;\r\n\r\n serializer: Serializer;\r\n\r\n constructor(private http: HttpClient, private localStorageService: LocalStorageService) {\r\n //console.log(\"CURRENT USER:\",this.currentUser);\r\n this.getUser();\r\n }\r\n\r\n public buildWgApiUrl(url: string): string {\r\n\r\n if (url.startsWith(\"/\")) {\r\n return environment.wgProfileHost + url;\r\n } else {\r\n return environment.wgProfileHost + \"/\" + url;\r\n }\r\n }\r\n\r\n public getUser() {\r\n if (this.getToken() != \"\") {\r\n this.currentUser = JSON.parse(this.localStorageService.get(\"user\"));\r\n }\r\n }\r\n\r\n public getToken() {\r\n\r\n let stToken = this.localStorageService.get(\"token\");\r\n\r\n if (stToken != null) {\r\n let semToken: SemToken = Object.assign(new SemToken, JSON.parse(stToken));\r\n\r\n if (new Date(semToken.expires) > new Date()) {\r\n return semToken.accessToken;\r\n } else {\r\n this.localStorageService.remove(\"token\");\r\n this.localStorageService.remove(\"user\");\r\n }\r\n\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public getCookie(name: string) {\r\n let ca: Array = document.cookie.split(';');\r\n let caLen: number = ca.length;\r\n let cookieName = `${name}=`;\r\n let c: string;\r\n\r\n for (let i: number = 0; i < caLen; i += 1) {\r\n c = ca[i].replace(/^\\s+/g, '');\r\n if (c.indexOf(cookieName) == 0) {\r\n return c.substring(cookieName.length, c.length);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n public setCookie(name: string, value: string, expireDays: number, path: string = '') {\r\n let d: Date = new Date();\r\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\r\n let expires: string = `expires=${d.toUTCString()}`;\r\n let cpath: string = path ? `; path=${path}` : '';\r\n document.cookie = `${name}=${value}; ${expires}${cpath}`;\r\n }\r\n\r\n\r\n imagePostRequest(data:any){\r\n\r\n let headers = {};\r\n\r\n if(data.etag && environment.useEtag){\r\n headers = new HttpHeaders({\r\n 'Authorization': \"Bearer \" + this.getToken(),\r\n 'If-None-Match': data.etag\r\n })\r\n }else{\r\n headers = new HttpHeaders({\r\n 'Authorization': \"Bearer \" + this.getToken()\r\n })\r\n }\r\n\r\n return this.http.post(this.buildWgApiUrl(data.url), data.data,\r\n {headers: headers, observe: 'response' as 'body' });\r\n }\r\n\r\n\r\n //TODO: get content type from model ?\r\n getDataPOST(model: RequestModel): Observable {\r\n if (this.serializer != null && typeof this.serializer != \"undefined\" && model.url == \"api/navigation/getNodes\") {\r\n return this.http.post(this.buildWgApiUrl(model.url), model.data, this.getHttpOptions(\"application/json\", \"application/json\")).pipe(map((data: any) => this.serializer.fromJson(data) as T));\r\n } else if (model.contentType != \"\" && model.responseType != \"\") {\r\n return this.http.post(this.buildWgApiUrl(model.url), model.data, this.getHttpOptions(model.contentType, model.responseType));\r\n } else {\r\n return this.http.post(this.buildWgApiUrl(model.url), model.data, this.getHttpOptions(\"\", \"\"));\r\n }\r\n }\r\n\r\n //TODO: get content type from model ?\r\n getDataDELETE(model: RequestModel): Observable {\r\n\r\n //if (this.serializer != null && typeof this.serializer != \"undefined\") {\r\n // return this.http.delete(model.url, this.getHttpOptions(\"application/json\", \"application/json\")).pipe(map((data: any) => this.serializer.fromJson(data) as T));\r\n //} else {\r\n return this.http.delete(this.buildWgApiUrl(model.url), this.getHttpOptions(\"application/json\", \"application/json\"))\r\n //}\r\n }\r\n\r\n //TODO: get model\r\n getDataGET(url: string, p_responseType = \"text\", useCache = false) {\r\n\r\n var cookie = this.getToken();\r\n var language = \"\";\r\n\r\n var storageLanguage = this.localStorageService.get(\"language\");\r\n if (storageLanguage) {\r\n language = storageLanguage;\r\n }\r\n\r\n if (useCache) {\r\n const options = {\r\n headers: new HttpHeaders({\r\n 'Authorization': \"Bearer \" + cookie,\r\n 'Response-Type': p_responseType,\r\n 'Accept-Language': language,\r\n 'Cache-Control': 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',\r\n 'Pragma': 'no-cache',\r\n }), params: null, responseType: p_responseType as \"text\"\r\n };\r\n return this.http.get(this.buildWgApiUrl(url), options);\r\n }else{\r\n const options = {\r\n headers: new HttpHeaders({\r\n 'Authorization': \"Bearer \" + cookie,\r\n 'Response-Type': p_responseType,\r\n 'Accept-Language': language,\r\n }), params: null, responseType: p_responseType as \"text\"\r\n };\r\n return this.http.get(this.buildWgApiUrl(url), options);\r\n }\r\n\r\n }\r\n\r\n\r\n fileDownload(url: string) {\r\n\r\n var cookie = this.getToken();\r\n var language = \"\";\r\n\r\n var storageLanguage = this.localStorageService.get(\"language\");\r\n if (storageLanguage) {\r\n language = storageLanguage;\r\n }\r\n\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + cookie,\r\n 'Accept-Language': language\r\n });\r\n const params = null;\r\n const responseType = 'blob';\r\n\r\n return this.http.get(this.buildWgApiUrl(url), {\r\n headers,\r\n params,\r\n responseType,\r\n observe: 'events',\r\n reportProgress: true,\r\n withCredentials: true\r\n });\r\n\r\n }\r\n\r\n getData(url: string) {\r\n var cookie = this.getToken();\r\n\r\n var o = { headers: new HttpHeaders({ 'Authorization': 'Bearer ' + cookie, 'Content-Type': 'application/json' }) };\r\n\r\n return this.http.get(this.buildWgApiUrl(url), o);\r\n }\r\n\r\n getHttpOptions(contentType: string, responseType: string) {\r\n var cookie = this.getToken();\r\n var language = \"\";\r\n\r\n var storageLanguage = this.localStorageService.get(\"language\");\r\n if (storageLanguage) {\r\n language = storageLanguage;\r\n }\r\n\r\n var httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Authorization': \"Bearer \" + cookie,\r\n 'Accept-Language': language.toLowerCase()\r\n })\r\n };\r\n\r\n if (contentType != \"\" && responseType != \"\") {\r\n httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Authorization': \"Bearer \" + cookie,\r\n 'Content-Type': contentType,\r\n 'Response-Type': responseType,\r\n 'Accept-Language': language.toLowerCase()\r\n })\r\n };\r\n }\r\n\r\n return httpOptions;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { DynamicLoadingUtil } from '../../shared/helpers/dynamic-loading-util';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { Observable, throwError, BehaviorSubject } from 'rxjs';\r\nimport { map, filter, switchMap, catchError } from 'rxjs/operators';\r\nimport { PaginationModel } from 'src/app/models/search/pagination.model';\r\nimport { ProjectionFacetWrapperModel } from 'src/app/models/search/facet-projection-wrapper.model';\r\nimport { AdditionalSearchSettingsModel } from 'src/app/models/search/additional-search-settings.model';\r\nimport { Router } from '@angular/router';\r\nimport { SearchRightInfoModel } from '../../models/search/search-right-info-model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchService {\r\n\r\n\r\n currentPreviewItemClicked = null;\r\n searchState: any = null;\r\n historySearchStateAdditionalFields: any = null;\r\n historySearchState: any = null;\r\n historySearchLatestFacets: any = null;\r\n historySearchMainSearchFieldValue: any = null;\r\n globalSearch: boolean = false;\r\n globalSearchType: string;\r\n\r\n facetsOrder: any[] = [];\r\n\r\n // settings for data grid and search component\r\n pageSize: number = 5;\r\n public currentPlaceHoldertitle: string;\r\n private searchRightInfo: Observable; // store the shared observable\r\n private searchRightInfoResponse: SearchRightInfoModel[];\r\n\r\n private defaultSearchUrl: string = \"api/data/list\";\r\n // search results\r\n private search: Observable; // store the shared observable\r\n\r\n // projection and initial facets\r\n private searchProjectionAndFacets = new BehaviorSubject(undefined);\r\n currentSearchProjectionAndFacets = this.searchProjectionAndFacets.asObservable();\r\n\r\n // listener for search value change\r\n private newSearchValue = new BehaviorSubject(undefined);\r\n currentSearchValue = this.newSearchValue.asObservable();\r\n\r\n // listener for search pagination\r\n private pagination = new BehaviorSubject(undefined);\r\n currentPagination = this.pagination.asObservable();\r\n\r\n // listener for search page\r\n private searchPage = new BehaviorSubject(undefined);\r\n currentSearchPage = this.searchPage.asObservable();\r\n\r\n // listener for search facets - current facets that are included in search request\r\n private searchFacets = new BehaviorSubject(undefined);\r\n currentSearchFacets = this.searchFacets.asObservable();\r\n\r\n // facets that are availible for filtering on current listing page\r\n private availibleFacets = new BehaviorSubject(undefined);\r\n currentAvailibleFacets = this.availibleFacets.asObservable();\r\n\r\n // metamodel\r\n private metamodel = new BehaviorSubject(undefined);\r\n currentMetaModel = this.metamodel.asObservable();\r\n\r\n // sort field\r\n private sortFields = new BehaviorSubject(undefined);\r\n currentSortFields = this.sortFields.asObservable();\r\n\r\n // for enabling facets\r\n private enableFacets = new BehaviorSubject(undefined);\r\n currentEnableFacets = this.enableFacets.asObservable();\r\n\r\n // for additional search settings\r\n private additionalSearchSettings = new BehaviorSubject(undefined);\r\n currentAdditionalSearchSettings = this.additionalSearchSettings.asObservable();\r\n\r\n // listener for search event (if search was executed)\r\n private searchExecuted = new BehaviorSubject(undefined);\r\n currentSearchExecuted = this.searchExecuted.asObservable();\r\n\r\n\r\n private gridRestoredDefault = new BehaviorSubject(undefined);\r\n currentgridRestoredDefault = this.gridRestoredDefault.asObservable();\r\n\r\n private searchFieldsRestoredDefault = new BehaviorSubject(undefined);\r\n currentsearchFieldsRestoredDefault = this.searchFieldsRestoredDefault.asObservable();\r\n\r\n // listener for search event (if search was executed)\r\n private userSearchSettings = new BehaviorSubject(undefined);\r\n currentUserSearchSettings = this.userSearchSettings.asObservable();\r\n\r\n // listener for changing page size\r\n private pageS = new BehaviorSubject(undefined);\r\n currentPageSize = this.pageS.asObservable();\r\n\r\n // current search query \r\n private currentSearchQuery = null;\r\n // current data grid display fields\r\n private currentGridDisplayFields = null;\r\n\r\n private currentCheckedBulkDocuments = null;\r\n\r\n constructor(private restProvider: RestProviderService, private router:Router) {\r\n } \r\n\r\n setGridRestoredDefault(value) {\r\n this.gridRestoredDefault.next(value);\r\n }\r\n\r\n setSearchFieldsRestoredDefault(value) {\r\n this.searchFieldsRestoredDefault.next(value);\r\n }\r\n\r\n setEnableFacets(enable: boolean) {\r\n this.enableFacets.next(enable);\r\n }\r\n\r\n setAdditionalSearchSettings(settings: AdditionalSearchSettingsModel) {\r\n this.additionalSearchSettings.next(settings);\r\n }\r\n\r\n searchPerformed() {\r\n this.searchExecuted.next(true);\r\n }\r\n\r\n changeCurrentSearchSettings(currentSearchSettings: any, control: string) {\r\n this.userSearchSettings.next(\r\n {\r\n \"Control\": control,\r\n \"Settings\": currentSearchSettings\r\n });\r\n }\r\n\r\n changeSortFields(sortFields: any) {\r\n this.sortFields.next(sortFields);\r\n } \r\n\r\n changePageSize(pagesize: number) {\r\n if (pagesize != null && typeof pagesize != \"undefined\") {\r\n this.pageSize = pagesize;\r\n this.pageS.next(pagesize);\r\n }\r\n }\r\n\r\n changeMetaModelEntities(metamodel: any) {\r\n this.metamodel.next(metamodel);\r\n }\r\n\r\n changeAvailibleFacets(facets: any) {\r\n this.availibleFacets.next(facets);\r\n }\r\n\r\n changeSearchFacets(facets: any) {\r\n this.searchFacets.next(facets);\r\n }\r\n\r\n setCurrentSearchQuery(searchQuery: any) {\r\n this.currentSearchQuery = searchQuery;\r\n }\r\n\r\n getCurrentSearchQuery() {\r\n return this.currentSearchQuery;\r\n }\r\n\r\n setCurrentCheckedBulkDocuments(currentCheckedBulkDocs: any[]) {\r\n this.currentCheckedBulkDocuments = currentCheckedBulkDocs;\r\n }\r\n\r\n getCurrentCheckedBulkDocument() {\r\n return this.currentCheckedBulkDocuments;\r\n }\r\n\r\n setCurrentGridDisplayFields(displayFields: any[]) {\r\n this.currentGridDisplayFields = displayFields;\r\n }\r\n\r\n getCurrentGridDisplayFields() {\r\n return this.currentGridDisplayFields;\r\n }\r\n\r\n changeSearchPage(pageNum: any) {\r\n if (pageNum == null || typeof pageNum == \"undefined\") {\r\n this.searchPage.next(undefined);\r\n } else {\r\n this.searchPage.next(pageNum + \"\");\r\n }\r\n }\r\n\r\n changeSearchProjectionAndFacets(projectionAndFacets: ProjectionFacetWrapperModel) {\r\n this.searchProjectionAndFacets.next(projectionAndFacets);\r\n }\r\n\r\n changePaginationInfo(paginationInfo: PaginationModel) {\r\n this.pagination.next(paginationInfo);\r\n }\r\n\r\n historySearchStatePresent(query: any){\r\n if (this.historySearchState != null && this.historySearchState[\"query\"] != null && this.historySearchState[\"query\"].data != null) {\r\n if (this.historySearchState[\"query\"].data.ClassTypes[0] == query.ClassTypes[0] && this.historySearchState[\"url\"] == window.location.href) {\r\n return true;\r\n } \r\n } \r\n return false;\r\n }\r\n\r\n getHistoryMainSearchFieldValue(){\r\n return this.historySearchMainSearchFieldValue;\r\n }\r\n\r\n getHistorySearchAdditionalFields(){\r\n let addFieldsHistory = [];\r\n\r\n if(this.historySearchStateAdditionalFields != null && typeof this.historySearchStateAdditionalFields != \"undefined\" && this.historySearchStateAdditionalFields.length > 0){\r\n for(var i = 0; i < this.historySearchStateAdditionalFields.length; i++){\r\n // add only those with searchvalues (because we need to show them on ui - biding)\r\n if(this.historySearchStateAdditionalFields[i].SearchValue != null && typeof this.historySearchStateAdditionalFields[i].SearchValue != \"undefined\" && this.historySearchStateAdditionalFields[i].SearchValue.length > 0){\r\n addFieldsHistory.push(\r\n {\r\n \"Binding\":this.historySearchStateAdditionalFields[i].Name,\r\n \"Value\":this.historySearchStateAdditionalFields[i].SearchValue\r\n });\r\n } else if (this.historySearchStateAdditionalFields[i][\"CheckBoxState\"] != null && typeof this.historySearchStateAdditionalFields[i][\"CheckBoxState\"] != \"undefined\" && this.historySearchStateAdditionalFields[i][\"CheckBoxState\"] != \"novalue\") { \r\n addFieldsHistory.push(\r\n {\r\n \"Binding\":this.historySearchStateAdditionalFields[i].Name,\r\n \"Value\":this.historySearchStateAdditionalFields[i][\"CheckBoxState\"]\r\n });\r\n\r\n } else if ((typeof this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"] != \"undefined\" && this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"] != \"\")\r\n || (typeof this.historySearchStateAdditionalFields[i][\"SearchValueTo\"] != \"undefined\" && this.historySearchStateAdditionalFields[i][\"SearchValueTo\"] != \"\")) {\r\n\r\n var from = \"*\";\r\n var to = \"*\";\r\n \r\n if (typeof this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"] != \"undefined\" && this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"] != \"\" && this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"] != null) {\r\n from = this.historySearchStateAdditionalFields[i][\"SearchValueFrom\"];\r\n }\r\n \r\n if (typeof this.historySearchStateAdditionalFields[i][\"SearchValueTo\"] != \"undefined\" && this.historySearchStateAdditionalFields[i][\"SearchValueTo\"] != \"\" && this.historySearchStateAdditionalFields[i][\"SearchValueTo\"] != null) {\r\n to = this.historySearchStateAdditionalFields[i][\"SearchValueTo\"];\r\n }\r\n \r\n addFieldsHistory.push(\r\n {\r\n \"Binding\":this.historySearchStateAdditionalFields[i].Name,\r\n \"ValueFrom\":from,\r\n \"ValueTo\":to\r\n });\r\n } \r\n }\r\n }\r\n\r\n return addFieldsHistory;\r\n }\r\n\r\n performSearch(query: any, customSearchUrl: string, additionalFieldsInfo: any, mainSearchValue: any) {\r\n\r\n let searchUrl = this.defaultSearchUrl;\r\n\r\n if (customSearchUrl != null && typeof customSearchUrl != \"undefined\" && customSearchUrl.trim() != \"\") {\r\n searchUrl = customSearchUrl;\r\n }\r\n\r\n var reqModel = new RequestModel;\r\n\r\n if (this.historySearchState != null && this.historySearchState[\"query\"] != null && this.historySearchState[\"query\"].data != null) {\r\n if (this.historySearchState[\"query\"].data.ClassTypes[0] == query.ClassTypes[0] && this.historySearchState[\"url\"] == window.location.href) {\r\n reqModel = this.historySearchState[\"query\"];\r\n } else {\r\n reqModel.url = searchUrl;\r\n reqModel.data = query;\r\n this.searchState = reqModel;\r\n this.historySearchStateAdditionalFields = additionalFieldsInfo; \r\n this.historySearchMainSearchFieldValue = mainSearchValue; \r\n }\r\n } else {\r\n reqModel.url = searchUrl;\r\n reqModel.data = query;\r\n this.searchState = reqModel;\r\n this.historySearchStateAdditionalFields = additionalFieldsInfo; \r\n this.historySearchMainSearchFieldValue = mainSearchValue;\r\n }\r\n\r\n this.search = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: any[]) => {\r\n this.historySearchState = null;\r\n return data;\r\n }), catchError((error:any) =>{\r\n //Observable.throw('Error while retrieving data from the server - ' + (error.json().errorMessage || 'Server error'))\r\n throw Observable.create(error);\r\n }\r\n ));\r\n\r\n\r\n return this.search;\r\n\r\n }\r\n\r\n getAllowedSearchClasses(searchType: string){\r\n\r\n var reqModel = new RequestModel; \r\n reqModel.url = \"/api/user/allowedsearchclass\"; \r\n reqModel.data = {\r\n \"GlobalSearchType\": searchType \r\n }\r\n\r\n this.searchRightInfo = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: SearchRightInfoModel[]) => {\r\n this.searchRightInfoResponse = data;\r\n return data;\r\n }), catchError(error => {\r\n return throwError('User service error!', error)\r\n }));\r\n\r\n return this.searchRightInfo;\r\n }\r\n\r\n changeSearchValue(value: any) {\r\n this.newSearchValue.next(value);\r\n }\r\n\r\n setLatestHistorySearchFacets(currentFacets,classType, url){\r\n this.historySearchLatestFacets = \r\n {\r\n \"Facets\":currentFacets,\r\n \"url\":url,\r\n \"classType\":classType\r\n };\r\n\r\n return this.historySearchLatestFacets;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { LocalStorageService } from '../local-storage-service/local-storage.service';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationsProviderService {\r\n public translations: string[] = [];\r\n public labels: any = {};\r\n constructor(public restProviderService: RestProviderService, public localStorageService: LocalStorageService) {\r\n this.translations = JSON.parse(this.localStorageService.get(\"translations\"));\r\n //this.loadLabels();\r\n }\r\n\r\n loadLabels() {\r\n let cacheData: string | null = null;\r\n if (environment.useRouteAndMasterpageCache) {\r\n cacheData = this.localStorageService.get(\"field_labels\");\r\n }\r\n\r\n if (cacheData) {\r\n this.labels = JSON.parse(cacheData);\r\n\r\n if (this.labels.length == 0) {\r\n this.getLabels();\r\n }\r\n } else {\r\n this.getLabels();\r\n }\r\n }\r\n\r\n getLabels() {\r\n if (this.restProviderService.getToken() != '') {\r\n this.restProviderService.getDataGET(\"api/dynamicforms/labels\").subscribe((data: any) => {\r\n this.localStorageService.add(\"field_labels\", data);\r\n this.labels = JSON.parse(data);\r\n });\r\n }\r\n }\r\n\r\n translate(key: string):string {\r\n\r\n try {\r\n if (typeof key != \"undefined\" && key != null) {\r\n var k = key.replace(\"Translation.\", \"\");\r\n\r\n if (this.translations[k]) {\r\n return this.translations[k];\r\n } else {\r\n return key;\r\n }\r\n }\r\n\r\n return key;\r\n } catch (e) {\r\n return key;\r\n }\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { DynamicLoadingUtil } from '../../shared/helpers/dynamic-loading-util';\r\nimport { RequestModel } from '../../models/request/request-model';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, filter, switchMap, catchError } from 'rxjs/operators';\r\nimport { UserSearchSettingModel } from '../../models/search/user-search-setting-model';\r\nimport { LocalStorageService } from '../local-storage-service/local-storage.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n // version for usersearchsetting\r\n userSearchSettingCurrentVersion: string;\r\n currentLayout:string;\r\n\r\n // search settings\r\n private userSearchSettings: Observable; // store the shared observable\r\n private userSearchSettingsResult: UserSearchSettingModel; // store the result of the observable when complete\r\n\r\n // grid settings\r\n private userGridSettings: Observable; // store the shared observable\r\n private userGridSettingsResult: UserSearchSettingModel; // store the result of the observable when complete \r\n\r\n constructor(private restProvider: RestProviderService, private localStorageService:LocalStorageService) {\r\n }\r\n\r\n\r\n saveUserSettings(model: UserSearchSettingModel, gridSettings: boolean, restore: boolean) {\r\n\r\n if(this.userSearchSettingCurrentVersion != null && typeof this.userSearchSettingCurrentVersion != \"undefined\"){\r\n model[\"Version\"] = this.userSearchSettingCurrentVersion;\r\n }\r\n \r\n\r\n var reqModel = new RequestModel;\r\n \r\n if(restore){ \r\n if(gridSettings){\r\n reqModel.url = \"/api/user/grid/settings/restore\";\r\n }else{\r\n reqModel.url = \"/api/user/search/settings/restore\";\r\n }\r\n }else{\r\n if(gridSettings){\r\n reqModel.url = \"/api/user/grid/settings/save\";\r\n }else{\r\n reqModel.url = \"/api/user/search/settings/save\";\r\n }\r\n } \r\n \r\n reqModel.data = model;\r\n\r\n let savedUserSearchSettings = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: UserSearchSettingModel) => { \r\n return data;\r\n }), catchError(error => {\r\n return throwError('User service error!', error)\r\n }));\r\n\r\n return savedUserSearchSettings; \r\n }\r\n\r\n updateUserSearchSettingsCustomPageSize(model: UserSearchSettingModel, customPageSize: any){\r\n if(this.userSearchSettingCurrentVersion != null && typeof this.userSearchSettingCurrentVersion != \"undefined\"){\r\n model[\"Version\"] = this.userSearchSettingCurrentVersion;\r\n }\r\n \r\n\r\n var reqModel = new RequestModel; \r\n reqModel.url = \"/api/user/settings/updatecustompagesize\"; \r\n var postModel = {\r\n \"UserSearchSettingData\": model,\r\n \"NewCustomPageSize\": customPageSize\r\n }\r\n reqModel.data = postModel;\r\n\r\n\r\n let savedUserSearchSettings = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: UserSearchSettingModel) => { \r\n return data;\r\n }), catchError(error => {\r\n return throwError('User service error!', error)\r\n }));\r\n\r\n return savedUserSearchSettings; \r\n }\r\n\r\n checkIfInUserGroup(id: any) {\r\n\r\n let user = this.localStorageService.get(\"user\");\r\n\r\n if (user) {\r\n user = JSON.parse(user);\r\n\r\n for (var i = 0; i < user[\"Groups\"].length; i++) {\r\n if (user[\"Groups\"][i].Id == id) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getUserSearchSettings(modelName: string, viewId: string) {\r\n\r\n var reqModel = new RequestModel;\r\n reqModel.url = \"/api/user/search/settings\";\r\n reqModel.data = {\r\n \"ModelName\": modelName,\r\n \"View\": {\r\n \"Id\": viewId\r\n }\r\n };\r\n\r\n /*if (this.userSearchSettingsResult) { // if result has already been found (api has completed) return result\r\n // create dummy observable and return results\r\n return new Observable(observer => {\r\n observer.next(this.userSearchSettingsResult);\r\n observer.complete();\r\n })\r\n } else if (this.userSearchSettings) { // else if api is still processing, return shared observable\r\n return this.userSearchSettings;\r\n } else { // else api has not started, start api and return shared observable\r\n*/\r\n this.userSearchSettings = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: UserSearchSettingModel) => {\r\n this.userSearchSettingsResult = data;\r\n return data;\r\n }), catchError(error => {\r\n return throwError('User service error!', error)\r\n }));\r\n\r\n return this.userSearchSettings;\r\n //}\r\n }\r\n\r\n getUserGridSettings(modelName: string, viewId: string, viewType: string) {\r\n\r\n if(typeof(viewType) == \"undefined\" || !viewType){\r\n viewType = \"list\";\r\n }\r\n\r\n var reqModel = new RequestModel;\r\n reqModel.url = \"/api/user/grid/settings\";\r\n reqModel.data = {\r\n \"ModelName\": modelName,\r\n \"LayoutName\": viewType,\r\n \"View\": {\r\n \"Id\": viewId\r\n }\r\n };\r\n\r\n /*if (this.userGridSettingsResult) { // if result has already been found (api has completed) return result\r\n // create dummy observable and return results\r\n return new Observable(observer => {\r\n observer.next(this.userGridSettingsResult);\r\n observer.complete();\r\n })\r\n } else if (this.userGridSettings) { // else if api is still processing, return shared observable\r\n return this.userGridSettings;\r\n } else { // else api has not started, start api and return shared observable\r\n*/\r\n\r\n this.userGridSettings = this.restProvider.getDataPOST(reqModel).\r\n pipe(\r\n map((data: UserSearchSettingModel) => {\r\n this.userGridSettingsResult = data;\r\n return data;\r\n }), catchError(error => {\r\n return throwError('User service error!', error)\r\n }));\r\n\r\n return this.userGridSettings;\r\n //}\r\n }\r\n\r\n logout(){\r\n let languageCode = this.localStorageService.get(\"language\");\r\n if (languageCode == null) {\r\n languageCode = environment.language.toUpperCase();\r\n }\r\n\r\n localStorage.clear();\r\n\r\n this.localStorageService.add(\"language\",languageCode);\r\n window.location.href = \"/account/login\";\r\n }\r\n\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DynamicFieldsManagerService } from '../dynamic-fields/dynamic-fields-manager.service';\r\nimport { DynamicLoadingUtil } from 'src/app/shared/helpers/dynamic-loading-util';\r\nimport { RouteNavigationService } from '../dynamic-routes-loader/route-navigation.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ResponseStatus, DialogType } from 'src/app/shared/components/sem-dynamic/sem-dynamic.component';\r\nimport { Url } from 'src/app/models/navigation/navigation-node-model';\r\nimport { type } from 'os';\r\nimport { SemConfirmDialogComponent } from 'src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SearchService } from '../search/search.service';\r\nimport { LocalStorageService } from '../local-storage-service/local-storage.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n/**\r\n * Provides various JavaScript utility services that can be used on WG client-side\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n // property for sending selected values between 2 dropdowns\r\n private dropdownSelectedValue = new BehaviorSubject(undefined);\r\n currentDropdownSelectedValue = this.dropdownSelectedValue.asObservable();\r\n\r\n public newSectionAdded = new BehaviorSubject(undefined);\r\n newSectionAddedObsr = this.newSectionAdded.asObservable();\r\n\r\n public reqResponse: boolean = false;\r\n public reqStatus: ResponseStatus;\r\n public reqMessage: string;\r\n public preFormSubmitJS: string = null;\r\n public openPopupBeforeSaveMessage: string = null;\r\n public openPopupBeforeSaveCondition: string = null;\r\n public openPopupBeforeSave: boolean = false;\r\n public redirectUrlAfterSubmit: string = null;\r\n public tabInformations:any = null;\t\r\n public afterFormSubmitErrorJS: string = null;\r\n\r\n public stateObjectHistory: StateHistory[] = [];\r\n\r\n // listener for expanding/colapsin facets\r\n private facetsCollapsed = new BehaviorSubject(undefined);\r\n currentFacetsCollapsed = this.facetsCollapsed.asObservable();\r\n\r\n constructor(public injector: Injector, public router: Router, public activatedRoute: ActivatedRoute, public dfms: DynamicFieldsManagerService, public dialog: MatDialog, public searchService: SearchService, public localStorageService: LocalStorageService) {\r\n }\r\n\r\n public get dynamicRoutesLoader(): RouteNavigationService { //this creates router property on your service.\r\n return this.injector.get(RouteNavigationService);\r\n }\r\n\r\n newDropdownValueSelected(value, selectedDropdownBinding) {\r\n this.dropdownSelectedValue.next({\r\n \"SelectedValue\": value,\r\n \"SelectedDropDownBinding\": selectedDropdownBinding\r\n });\r\n }\r\n\r\n async processNavigationUrl(url, stateModel = null, passthroughPopup = false) {\r\n\r\n //Hack for AZ... it's friday 4 o'clock man....\r\n //passthroughPopup = true;\r\n\r\n if (this.router.url.includes(\"list?model=\")) {\r\n this.searchService.historySearchState = {};\r\n this.searchService.historySearchState[\"query\"] = this.searchService.searchState;\r\n this.searchService.historySearchState[\"url\"] = window.location.href;\r\n this.searchService.historySearchState[\"additionalFields\"] = this.searchService.historySearchStateAdditionalFields;\r\n this.searchService.historySearchState[\"mainSearchValue\"] = this.searchService.historySearchMainSearchFieldValue;\r\n }\r\n\r\n if (passthroughPopup) {\r\n await this.processNavigate(url, stateModel);\r\n } else if(environment.navigateAwayPopupEnabled) {\r\n\r\n if (typeof url != \"undefined\" && url != \"\") {\r\n if (!this.router.url.includes(\"/list?\") && !this.router.url.includes(\"dashboard\") && !this.router.url.includes(\"/galisweb/search\")) {\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n\r\n if (this.dfms.wasInEditMode) {\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { width: '350px', height: '185px', data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(async result => {\r\n\r\n if (result) {\r\n await this.processNavigate(url, stateModel);\r\n }\r\n\r\n });\r\n } else {\r\n await this.processNavigate(url, stateModel);\r\n }\r\n } else {\r\n\r\n await this.processNavigate(url, stateModel);\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n async processNavigate(url, stateModel = null) {\r\n this.reqResponse = false;\r\n\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n };\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n this.router.onSameUrlNavigation = \"reload\";\r\n var compExists = false;\r\n\r\n var urlToGenerate = \"\";\r\n if (url.includes(\"?\")) {\r\n urlToGenerate = url.split(\"?\")[0];\r\n } else {\r\n urlToGenerate = url;\r\n }\r\n\r\n for (var i = 0; i < this.router.config.length; i++) {\r\n if (this.router.config[i][\"path\"] == urlToGenerate) {\r\n compExists = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!compExists) {\r\n await this.dynamicRoutesLoader.loadConfig(urlToGenerate);\r\n }\r\n\r\n if (stateModel == null) {\r\n this.router.navigateByUrl(url, { state: null });\r\n } else {\r\n\r\n this.router.navigateByUrl(url, { state: stateModel });\r\n }\r\n\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n }\r\n\r\n getStateFromHistory(url: string): StateHistory {\r\n for (var i = 0; i < this.stateObjectHistory.length; i++) {\r\n if (this.stateObjectHistory[i].Url == url) {\r\n return this.stateObjectHistory[i];\r\n break;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n modifyStateFromHistory(state: StateHistory): StateHistory {\r\n\r\n let updated: Boolean = false;\r\n\r\n if (typeof state != \"undefined\" && state) {\r\n for (var i = 0; i < this.stateObjectHistory.length; i++) {\r\n if (this.stateObjectHistory[i].Url == state.Url) {\r\n this.stateObjectHistory[i] = state;\r\n updated = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!updated) {\r\n this.stateObjectHistory.push(state);\r\n }\r\n\r\n return state;\r\n }\r\n\r\n checkStateForValidity(url: string, stateModel: any): any {\r\n if ((typeof stateModel == \"undefined\" || stateModel == null) || (Object.keys(stateModel).length == 1 && Object.keys(stateModel)[0] == \"navigationId\")) {\r\n var sm = this.getStateFromHistory(url);\r\n\r\n if (sm != null) {\r\n stateModel = sm.StateObject;\r\n }\r\n } else {\r\n let stModel = { Url: url, StateObject: stateModel };\r\n this.modifyStateFromHistory(stModel)\r\n }\r\n\r\n return stateModel;\r\n }\r\n\r\n setFacetsCollapsed(value) {\r\n this.facetsCollapsed.next(value);\r\n }\r\n\r\n isFormExpicitEditMode() {\r\n\r\n var route = this.getCurrentRoute();\r\n\r\n if(route){\r\n return route.ExplicitEditMode;\r\n }else{\r\n return false\r\n } \r\n \r\n }\r\n\r\n getCurrentRoute() {\r\n let loadedRoutes = this.localStorageService.get(\"api/navigation/getRoutes\");\r\n\r\n if (loadedRoutes != null) {\r\n let loadedRoutesArr: any[] = JSON.parse(loadedRoutes);\r\n\r\n for (var i = 0; i < loadedRoutesArr.length; i++) {\r\n var urlToCompare = loadedRoutesArr[i][\"PrettyUrl\"];\r\n\r\n let url = window.location.pathname;\r\n if (url.startsWith(\"/\")) {\r\n url = url.substring(1);\r\n }\r\n\r\n //if (urlToCompare == url && loadedRoutesArr[i].ExplicitEditMode) {\r\n if (urlToCompare == url) {\r\n return loadedRoutesArr[i];\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport interface StateHistory {\r\n Url: string;\r\n StateObject: any;\r\n}","import { Injectable } from '@angular/core';\r\nimport { RestProviderService } from '../rest-provider/rest-provider.service';\r\nimport { EntityVersionModel } from 'src/app/models/versioning/entity-version-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityVersionService {\r\n\r\n constructor(public restService: RestProviderService) { }\r\n\r\n\r\n loadVersions(type:string, id:number){\r\n return this.restService.getData(\"api/versioning/list/\"+type+\"/\"+id); \r\n }\r\n\r\n comapre(id:number){\r\n return this.restService.getData(\"api/versioning/compare/\"+id); \r\n }\r\n\r\n restore(id:number){\r\n return this.restService.getData(\"api/versioning/restore/\"+id); \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nfunction getWindow (): any {\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class WindowRefService {\r\n get nativeWindow (): any {\r\n return getWindow();\r\n }\r\n}","import { Component, OnInit, Input, Injector, ViewChild, EventEmitter, Output, ChangeDetectorRef, ElementRef, ViewEncapsulation } from '@angular/core';\r\nimport { RestProviderService } from '../../../services/rest-provider/rest-provider.service';\r\nimport { RequestModel } from '../../../models/request/request-model';\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { Router, ActivatedRoute, NavigationExtras, NavigationStart, NavigationEnd, CanDeactivate } from '../../../../../node_modules/@angular/router';\r\nimport { Location, formatDate, DatePipe } from '@angular/common';\r\nimport { SemBaseComponent } from '../../../components/common/sem-base/sem-base.component';\r\nimport { SemLoaderComponent } from '../sem-loader/sem-loader.component';\r\nimport { SemDateFormatPipePipe } from '../../helpers/pipes/sem-date-format-pipe.pipe';\r\nimport { DynamicLoadingUtil } from '../../helpers/dynamic-loading-util';\r\nimport { NavigationNodeSerializer } from '../../../models/serializing/navigation-node-serializer';\r\nimport { NavigationResponseModel } from '../../../models/navigation/navigation-response-model';\r\nimport { NavigationRequestModel } from '../../../models/navigation/navigation-request-model';\r\nimport { FileUploadService } from 'src/app/services/file-upload-service/file-upload.service';\r\nimport { FileUploadObservableState } from '../../helpers/file-util';\r\nimport { DynamicFieldsManagerService } from 'src/app/services/dynamic-fields/dynamic-fields-manager.service';\r\nimport { StateModel } from '../../../models/navigation/state-model';\r\nimport { filter, map } from '../../../../../node_modules/rxjs/operators';\r\nimport { SemConfirmDialogComponent } from 'src/app/components/controls/dialogs/sem-confirm-dialog/sem-confirm-dialog.component';\r\nimport { SemDialogComponent } from 'src/app/components/controls/dialogs/sem-dialog/sem-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport * as _ from 'lodash';\r\nimport { ExportService } from 'src/app/services/export/export.service';\r\nimport { SearchService } from 'src/app/services/search/search.service';\r\nimport { Form, NgForm, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { TranslationsProviderService } from 'src/app/services/translations-provider/translations-provider.service';\r\nimport { ActionsService } from 'src/app/services/actions-service/actions.service';\r\nimport { SemVersionDialogComponent } from 'src/app/components/controls/dialogs/sem-version-dialog/sem-version-dialog.component';\r\nimport { UtilityService } from 'src/app/services/utility/utility.service';\r\nimport { UserSearchSettingModel } from 'src/app/models/search/user-search-setting-model';\r\nimport { SemParameterDialogComponent } from 'src/app/components/controls/dialogs/sem-parameter-dialog/sem-parameter-dialog.component';\r\nimport { MatLegacyTabChangeEvent as MatTabChangeEvent } from '@angular/material/legacy-tabs';\r\nimport { SemCompareDialogComponent } from 'src/app/components/controls/dialogs/sem-compare-dialog/sem-compare-dialog.component';\r\nimport { LoaderServiceService } from 'src/app/services/loader-service/loader-service.service';\r\nimport { SemGenerateDialogComponent } from 'src/app/components/controls/dialogs/sem-generate-dialog/sem-generate-dialog.component';\r\nimport { LocalStorageService } from '../../../services/local-storage-service/local-storage.service';\r\nimport { FormService } from '../../../services/form-service/form.service';\r\nimport { UserService } from '../../../services/user/user-provider.service';\r\nimport { FileUploadStandaloneService } from '../../../services/file-upload-standalone/file-upload-standalone.service';\r\n\r\n@Component({\r\n selector: 'app-sem-dynamic',\r\n templateUrl: './sem-dynamic.component.html',\r\n styleUrls: ['./sem-dynamic.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [FileUploadStandaloneService]\r\n})\r\nexport class SemDynamicComponent extends SemBaseComponent implements OnInit {\r\n\r\n public SerializationObjectFormLink: string;\r\n params: any;\r\n model: any = {};\r\n mainQuery: any;\r\n @ViewChild(\"loaderComp\", { read: SemLoaderComponent, static: true }) loader: SemLoaderComponent;\r\n //stringReportQuery: string = \"{ \\\"ReportId\\\": \\\"4\\\", \\\"Query\\\": { \\\"MainQuery\\\": null, \\\"FieldQueries\\\": null, \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"Id\\\", \\\"FieldValue\\\": \\\"*\\\", \\\"FieldValueFrom\\\": null, \\\"FieldValueTo\\\": null, \\\"Path\\\": null, \\\"Exclude\\\": false, \\\"Subqueries\\\": null, \\\"BoostFactor\\\": null, \\\"Negate\\\": false }, \\\"Facets\\\": null, \\\"Projection\\\": [ \\\"Id\\\", \\\"OffenderProfileId\\\", \\\"ClientId\\\", \\\"Name\\\", \\\"Person.FirstName\\\", \\\"Person.LastName\\\", \\\"PlannedDateOfRelease\\\",\\\"DateOfIncarceration\\\" ], \\\"RequestedFacets\\\": null, \\\"Page\\\": 1, \\\"PageSize\\\": 10, \\\"ClassType\\\": null, \\\"ClassTypes\\\": [ \\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.OffenderProfileModel\\\" ], \\\"SortFields\\\": null, \\\"UseCache\\\": false, \\\"RepositoryName\\\": \\\"lucene\\\", \\\"ParseMode\\\": 0, \\\"IncludeParents\\\": false }, \\\"ResultType\\\": 0 }\";\r\n //stringReportQueryJudgement: string = \"{ \\\"ReportId\\\": \\\"8\\\", \\\"Query\\\": { \\\"MainQuery\\\": null, \\\"FieldQueries\\\": null, \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"Id\\\", \\\"FieldValue\\\": \\\"*\\\", \\\"FieldValueFrom\\\": null, \\\"FieldValueTo\\\": null, \\\"Path\\\": null, \\\"Exclude\\\": false, \\\"Subqueries\\\": null, \\\"BoostFactor\\\": null, \\\"Negate\\\": false }, \\\"Facets\\\": null, \\\"Projection\\\": [ \\\"ClientId\\\", \\\"Title\\\", \\\"EntryDateString\\\", \\\"JudgeFullName\\\", \\\"MainRegulationItem\\\", \\\"CaseDecisionDateString\\\", \\\"DurationOfTerm\\\",\\\"OffenderProfile.Person.LastName\\\",\\\"OffenderProfile.Person.FirstName\\\",\\\"OffenderProfile.Person.MiddleName\\\",\\\"ProbationOfficerFullName\\\" ], \\\"RequestedFacets\\\": null, \\\"Page\\\": 1, \\\"PageSize\\\": 10, \\\"ClassType\\\": null, \\\"ClassTypes\\\": [ \\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Penitentiary.CourtJudgementInformationModel\\\" ], \\\"SortFields\\\": null, \\\"UseCache\\\": false, \\\"RepositoryName\\\": \\\"lucene\\\", \\\"ParseMode\\\": 0, \\\"IncludeParents\\\": false }, \\\"ResultType\\\": 0 }\";\r\n //stringReportQueryJudgement2: string = \"{ \\\"ReportId\\\": \\\"9\\\", \\\"Query\\\": { \\\"MainQuery\\\": null, \\\"FieldQueries\\\": null, \\\"TreeQuery\\\": { \\\"Type\\\": \\\"FieldValue\\\", \\\"FieldName\\\": \\\"Id\\\", \\\"FieldValue\\\": \\\"*\\\", \\\"FieldValueFrom\\\": null, \\\"FieldValueTo\\\": null, \\\"Path\\\": null, \\\"Exclude\\\": false, \\\"Subqueries\\\": null, \\\"BoostFactor\\\": null, \\\"Negate\\\": false }, \\\"Facets\\\": null, \\\"Projection\\\": [ \\\"Id\\\", \\\"PenaltyData.PenaltyType.Name\\\", \\\"PenaltyData.MainPenaltyForCourtJudgementInformation.ProbationOfficerFullName\\\", \\\"PenaltyData.MainPenaltyForCourtJudgementInformation.MainRegulationItem\\\", \\\"PenaltyData.MainPenaltyForCourtJudgementInformation.CaseDecisionDateString\\\", \\\"PenaltyData.MainPenaltyForCourtJudgementInformation.DurationOfTerm\\\", \\\"PenaltyData.MainPenaltyForCourtJudgementInformation.OffenderProfile.OffenderFullName\\\",\\\"ActualDateString\\\",\\\"OfficerFullName\\\",\\\"EntryDateString\\\",\\\"OfficerReport\\\",\\\"PlannedDateString\\\",\\\"ProbationVisitationProtocolType.Name\\\",\\\"OfficerFullName\\\" ], \\\"RequestedFacets\\\": null, \\\"Page\\\": 1, \\\"PageSize\\\": 10, \\\"ClassType\\\": null, \\\"ClassTypes\\\": [ \\\"Eurodesign.MoJ.PPMSCIS.Application.Model.Module.Probation.ProbationVisitationProtocolModel\\\" ], \\\"SortFields\\\": null, \\\"UseCache\\\": false, \\\"RepositoryName\\\": \\\"lucene\\\", \\\"ParseMode\\\": 0, \\\"IncludeParents\\\": false }, \\\"ResultType\\\": 0 }\";\r\n collapse: boolean = false;\r\n formActions: any[] = [];\r\n\r\n formName: string = this.translationsProviderService.translations[\"AddNew\"].toUpperCase();\r\n reportQuery: any;\r\n reportQueryJudgement: any;\r\n reportQueryJudgement2: any;\r\n\r\n nExtra: NavigationExtras;\r\n\r\n alwaysShow: boolean = true;\r\n disable: boolean = true;\r\n\r\n @Output() titleChanged = new EventEmitter();\r\n public submitFilesRequestEvent: Subject = new Subject();\r\n public submitFilesEndRequestEvent: Subject = new Subject();\r\n public modelChangeEvent: Subject = new Subject();\r\n\r\n cd: ChangeDetectorRef;\r\n stateModel: StateModel;\r\n mandatoryFields: any[] = [];\r\n domainModelTypeFullName: string;\r\n\r\n clearedObjects: any[] = [];\r\n\r\n @ViewChild('f', { read: NgForm, static: true }) mainForm: NgForm;\r\n private exportServiceSubscriber = null;\r\n actionFinishedSubscription: any;\r\n\r\n valid: boolean = true;\r\n tab: any = null;\r\n selectedTabIndex: any = null;\r\n currentId: number = 0;\r\n showPopup: boolean = false;\r\n isSetAsReadOnly: boolean = true;\r\n\r\n constructor(\r\n public injector: Injector,\r\n public restProviderService: RestProviderService,\r\n public requestModel: RequestModel,\r\n public router: Router,\r\n public activatedRoute: ActivatedRoute,\r\n public location: Location,\r\n public datePipe: SemDateFormatPipePipe,\r\n public fileUploadService: FileUploadService,\r\n public dialog: MatDialog,\r\n public exportService: ExportService,\r\n public searchService: SearchService,\r\n public translationsProviderService: TranslationsProviderService,\r\n public changeDet: ChangeDetectorRef,\r\n public loaderService: LoaderServiceService,\r\n public actionsService: ActionsService,\r\n public localStorageService: LocalStorageService,\r\n public formService: FormService,\r\n public fileUploadStandalone: FileUploadStandaloneService) {\r\n super(injector, router, activatedRoute, injector.get(DynamicFieldsManagerService), injector.get(UtilityService), formService);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (window.location.href.includes('cms/galisweb/statistics')) {\r\n this.formName = \"\";\r\n }\r\n\r\n this.dfms.metaModel = [];\r\n this.dfms.isFormReadOnly = false;\r\n\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n //console.log(\"Parameters: \");\r\n //console.log(params);\r\n this.params = params;\r\n\r\n if (this.params != null && typeof this.params != \"undefined\") {\r\n if (this.params[\"id\"] != null && typeof this.params[\"id\"] != \"undefined\") {\r\n\r\n this.currentId = parseInt(this.params[\"id\"]);\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n }\r\n\r\n //this.restProviderService.getDataGET(\"api/documents/\" + this.params[\"id\"]).subscribe(data => {\r\n this.restProviderService.getDataGET(\"api/data/form/\" + this.SerializationObjectFormLink + \"/\" + this.params[\"id\"]).subscribe(data => {\r\n let jsonData = JSON.parse(data);\r\n let prepModel = jsonData[\"Model\"];\r\n\r\n if (jsonData.Metadata) {\r\n if (jsonData.Metadata.SecurityResult) {\r\n //jsonData.Metadata.SecurityResult.Items[45][\"W\"] = 0;\r\n this.dfms.metaModel = jsonData.Metadata.SecurityResult.Items;\r\n\r\n if (jsonData.Metadata.SecurityResult.Items.filter(x => x.W == 1).length == 0) {\r\n this.dfms.isFormReadOnly = true;\r\n }\r\n }\r\n }\r\n\r\n prepModel = this.dfms.setInitValues(prepModel);\r\n\r\n this.model = prepModel;\r\n this.model[\"SerializationObjectFormLink\"] = this.SerializationObjectFormLink;\r\n this.domainModelTypeFullName = jsonData.DomainModelTypeFullName;\r\n //Fire observable to the child components(controls...), that the model has changed\r\n\r\n this.formName = this.model.Title;\r\n\r\n this.titleChanged.emit(this.formName);\r\n\r\n //console.log(\"LOADED MODEL\");\r\n\r\n //console.log(this.model);\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n this.loadFormActions(\"top-form-action\", null);\r\n\r\n\r\n this.dfms.globalModel = this.model;\r\n //this.checkMetamodel();\r\n\r\n this.modelChangeEvent.next(this.model);\r\n this.model[\"LOADEDFROMAPI\"] = true;\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.changeDet.detectChanges();\r\n\r\n if (typeof this.stateModel != \"undefined\" && this.stateModel != null) {\r\n //this.model[this.stateModel.Prop] = this.stateModel.Model;\r\n if (typeof this.stateModel[\"tabInformations\"] != \"undefined\") {\r\n //this.model = this.stateModel;\r\n this.model[\"tabInformations\"] = this.stateModel[\"tabInformations\"];\r\n let tabInfo = this.stateModel[\"tabInformations\"];\r\n this.tab = tabInfo[\"tabId\"];\r\n this.changeTab(parseInt(this.tab));\r\n }\r\n }\r\n\r\n if (this.utility.isFormExpicitEditMode()) {\r\n this.dfms.isFormReadOnly = true;\r\n }\r\n\r\n this.changeDet.detectChanges();\r\n\r\n this.mainForm.form.markAsPristine();\r\n\r\n }, error => {\r\n if (typeof DynamicLoadingUtil.loader != \"undefined\") {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n }\r\n });\r\n\r\n }\r\n else if (this.params[\"model\"] != null && typeof this.params[\"model\"] != \"undefined\") {\r\n this.dfms.globalModel = null;\r\n this.formName = \"\";\r\n let UserSearchSetting = new UserSearchSettingModel;\r\n UserSearchSetting.View = { \"Id\": this.params[\"view\"] };\r\n UserSearchSetting.ModelName = this.params[\"model\"];\r\n\r\n this.loadFormActions(\"top-list-action\", UserSearchSetting);\r\n\r\n } else {\r\n this.dfms.globalModel = null;\r\n this.loadFormActions(\"top-form-action\", null);\r\n\r\n this.restProviderService.getDataGET(\"api/data/form/\" + this.SerializationObjectFormLink).subscribe(data => {\r\n let jsonData = JSON.parse(data);\r\n\r\n if (jsonData.Metadata) {\r\n if (jsonData.Metadata.SecurityResult) {\r\n //jsonData.Metadata.SecurityResult.Items[45][\"W\"] = 0;\r\n this.dfms.metaModel = jsonData.Metadata.SecurityResult.Items;\r\n this.changeDet.detectChanges();\r\n }\r\n }\r\n },\r\n error => {\r\n\r\n });\r\n\r\n }\r\n\r\n } else {\r\n this.dfms.globalModel = null;\r\n }\r\n\r\n if (this.router.url.includes(\"/report\")) {\r\n this.formName = this.translationsProviderService.translations[\"WebGalis_Module_PPMSCIS_Reports\"];\r\n }\r\n\r\n let cr = this.utility.getCurrentRoute();\r\n\r\n if (typeof cr.labels == \"undefined\" || cr.labels == null) {\r\n this.restProviderService.getDataGET(\"api/dynamicforms/labels\").subscribe((data: any) => {\r\n cr.labels = JSON.parse(data);\r\n\r\n let routes = this.localStorageService.get(\"api/navigation/getRoutes\");\r\n\r\n if (routes != null) {\r\n\r\n let routesJSON = JSON.parse(routes);\r\n for (var i = 0; i < routesJSON.length; i++) {\r\n if (routesJSON[i].Title == cr.Title) {\r\n routesJSON[i] = cr;\r\n\r\n this.localStorageService.remove(\"api/navigation/getRoutes\");\r\n this.localStorageService.add(\"api/navigation/getRoutes\", JSON.stringify(routesJSON));\r\n\r\n break;\r\n }\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n });\r\n\r\n this.activatedRoute.paramMap.subscribe(data => {\r\n this.stateModel = window.history.state;\r\n this.stateModel = this.utility.checkStateForValidity(window.location.href, this.stateModel);\r\n\r\n //We moved commented code below to the utility class, but just for case we leave this in until we test all cases\r\n /*if ((typeof this.stateModel == \"undefined\" || this.stateModel == null) || (Object.keys(this.stateModel).length == 1 && Object.keys(this.stateModel)[0] == \"navigationId\")) {\r\n var sm = this.utility.getStateFromHistory(window.location.href);\r\n\r\n if (sm != null) {\r\n this.stateModel = sm.StateObject;\r\n }\r\n } else {\r\n let stModel = { Url: window.location.href, StateObject: this.stateModel };\r\n this.utility.modifyStateFromHistory(stModel)\r\n }*/\r\n let tabClicked = false;\r\n if (typeof this.stateModel != \"undefined\" && this.stateModel != null) {\r\n //this.model[this.stateModel.Prop] = this.stateModel.Model;\r\n if (typeof this.stateModel[\"tabInformations\"] != \"undefined\") {\r\n this.model = this.stateModel;\r\n let tabInfo = this.stateModel[\"tabInformations\"];\r\n this.tab = tabInfo[\"tabId\"];\r\n tabClicked = true;\r\n this.changeTab(parseInt(this.tab));\r\n }\r\n else if (typeof this.stateModel[\"Action\"] != \"undefined\" && this.stateModel[\"Action\"]) {\r\n if (typeof this.stateModel.Prop != \"undefined\" && typeof this.stateModel.Model != \"undefined\") {\r\n\r\n this.actionFinishedSubscription = this.actionsService.currentActionFinished.subscribe(data => {\r\n if (typeof data != \"undefined\" && data != null) {\r\n if (typeof data != \"string\") {\r\n\r\n // this is support so you can send multiple object via: processNavigationUrl call\r\n // example:\r\n //this.utility.processNavigationUrl(\"url\", {Model: data, \"Prop\":\"SportGamesPerson\", \"Root\":true, \"Props\":[\"Person\",\"Result\"]});\r\n // this will bind properties \"Person\" and \"Result\" values from \"Model:data\"\r\n if (this.stateModel.Root == true) {\r\n if (this.stateModel.Props != null && typeof this.stateModel.Props != \"undefined\") {\r\n // go through each prop and map\r\n for (var prop of this.stateModel.Props) {\r\n var value = this.resolvePropertyBinding(data[\"Model\"], prop);\r\n this.dfms.assign(this.model, prop, value, true);\r\n this.dfms.assign(this.model, prop, value, true);\r\n }\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.dfms.globalModel = this.model;\r\n }\r\n } else {\r\n this.dfms.assign(this.model, this.stateModel.Prop, data[\"Model\"], true);\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.dfms.globalModel = this.model;\r\n }\r\n }\r\n }\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n this.actionsService.executeAction({ ActionUrl: this.stateModel[\"Action\"] }, null, this.stateModel[\"Model\"], null, null, this, null);\r\n }\r\n }\r\n else if (typeof this.stateModel.Prop != \"undefined\" && typeof this.stateModel.Model != \"undefined\") {\r\n\r\n // this is support so you can send multiple object via: processNavigationUrl call\r\n // example:\r\n //this.utility.processNavigationUrl(\"url\", {Model: data, \"Prop\":\"SportGamesPerson\", \"Root\":true, \"Props\":[\"Person\",\"Result\"]});\r\n // this will bind properties \"Person\" and \"Result\" values from \"Model:data\"\r\n if (this.stateModel.Root == true) {\r\n if (this.stateModel.Props != null && typeof this.stateModel.Props != \"undefined\") {\r\n // go through each prop and map\r\n for (var prop of this.stateModel.Props) {\r\n var value = this.resolvePropertyBinding(this.stateModel.Model, prop);\r\n this.dfms.assign(this.model, prop, value, true);\r\n }\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.dfms.globalModel = this.model;\r\n }\r\n } else {\r\n this.dfms.assign(this.model, this.stateModel.Prop, this.stateModel.Model, true);\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.dfms.globalModel = this.model;\r\n }\r\n }\r\n else if (this.stateModel['IsFormCopy']) {\r\n this.model = this.stateModel;\r\n }\r\n }\r\n\r\n /*if (!tabClicked) {\r\n try {\r\n this.changeTab(0);\r\n } catch (e) {\r\n\r\n }\r\n }*/\r\n });\r\n\r\n this.restProviderService._modelValueChanged.next(this.model);\r\n this.cd = this.injector.get(ChangeDetectorRef);\r\n this.cd.detectChanges();\r\n this.submitFilesEndRequestEvent.subscribe((res) => {\r\n console.log(\"Submit file finished.\")\r\n }, error => {\r\n console.log(\"Submit file error.\")\r\n });\r\n\r\n var btn = document.getElementsByName(\"Geri qayıt\");\r\n if (btn.length == 1) {\r\n btn[0].style.display = \"none\";\r\n }\r\n\r\n //this.tab.click();\r\n\r\n\r\n /*setTimeout(() => {\r\n var evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window });\r\n\r\n //this.changeTab(parseInt(\"4\"));\r\n\r\n }, 3000);*/\r\n\r\n this.dfms._modelValueReset.subscribe(data => {\r\n if (Object.keys(data).length > 0) {\r\n this.model = data;\r\n this.changeDet.detectChanges();\r\n }\r\n });\r\n\r\n if (this.mainForm) {\r\n this.mainForm.valueChanges.subscribe(val => {\r\n\r\n //fire up validator checks, for o2m controls. Hacky solution\r\n //this.dfms._modelValueSubmitValidator.next(this.model);\r\n\r\n if (this.mainForm.submitted) {\r\n this.checkFormValidation();\r\n }\r\n });\r\n }\r\n\r\n this.dfms.globalForm = this.mainForm;\r\n\r\n this.actionsService.formActionsReceived.subscribe(data => {\r\n\r\n if (data) {\r\n if (this.formService.preLoadEvent) {\r\n\r\n this.actionsService.executeAction({ \"IsFileAction\": false, \"ActionUrl\": this.formService.preLoadEvent.Action, \"ActionName\": \"/\" }, {}, {}, this.actionExecuted.bind(this), null, this, null);\r\n //this.actionsService.callAction({ \"IsFileAction\":false,\"ActionUrl\": this.formService.preLoadEvent.Action, \"ActionName\":\"/\" }, null, null, this.actionExecuted.bind(this), this, false, null, false, false);\r\n\r\n this.formService.preLoadEvent = null;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n public actionExecuted(data) {\r\n try {\r\n this.model = data;\r\n this.restProviderService._modelValueChanged.next(data);\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n public callReport(data) {\r\n const dialogRef = this.dialog.open(SemGenerateDialogComponent, {\r\n data: data\r\n });\r\n }\r\n\r\n\r\n canDeactivate() {\r\n console.log('i am navigating away');\r\n\r\n if (this.dfms.wasInEditMode) {\r\n // if the editName !== this.user.name\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n if (result == true) {\r\n // Call Back button programmatically as per user confirmation.\r\n history.back();\r\n // Uncomment below line to redirect to the previous page instead.\r\n // window.location = document.referrer // Note: IE11 is not supporting this.\r\n } else {\r\n // Stay on the current page.\r\n history.pushState(null, null, window.location.pathname);\r\n }\r\n } else {\r\n history.pushState(null, null, window.location.pathname);\r\n }\r\n\r\n });\r\n } else {\r\n history.back();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /*@HostListener('window:popstate', ['$event'])\r\n onPopState(event) {\r\n if (event.restoredState) {\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n if (result == true) {\r\n // Call Back button programmatically as per user confirmation.\r\n history.back();\r\n // Uncomment below line to redirect to the previous page instead.\r\n // window.location = document.referrer // Note: IE11 is not supporting this.\r\n } else {\r\n // Stay on the current page.\r\n history.pushState(null, null, window.location.pathname);\r\n }\r\n } else {\r\n history.pushState(null, null, window.location.pathname);\r\n }\r\n\r\n });\r\n }\r\n }*/\r\n\r\n stateActionEvaluated(data) {\r\n\r\n }\r\n\r\n checkMetamodel() {\r\n\r\n //Leave this commented code in, cause you never know :)\r\n /*let fg = this.mainForm.form;\r\n for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if(this.mainForm.controls[\"model.\" + this.dfms.metaModel[i].Path]){\r\n if(this.dfms.metaModel[i].W == 0){\r\n \r\n let fc = this.mainForm.controls[\"model.\" + this.dfms.metaModel[i].Path];\r\n let controlValue = fc.value;\r\n fg.removeControl(\"model.\" + this.dfms.metaModel[i].Path);\r\n fg.addControl(\"model.\" + this.dfms.metaModel[i].Path, new FormControl({value: controlValue, disabled: true}));\r\n fg.updateValueAndValidity();\r\n\r\n }\r\n }\r\n }*/\r\n //this.mainForm.form.get(\"model.OffenderProfile.Person.FirstName\").disable();\r\n //this.mainForm.form.controls[\"model.OffenderProfile.Person.FirstName\"].disable();\r\n //this.mainForm.form.controls[\"model.OffenderProfile.Person.FirstName\"].setValidators(null);\r\n\r\n //this.dfms.metaModel[45][\"W\"] = 0;\r\n try {\r\n for (var i = 0; i < this.dfms.metaModel.length; i++) {\r\n if (this.mainForm.controls[\"model.\" + this.dfms.metaModel[i].Path]) {\r\n if (this.dfms.metaModel[i].R == 0) {\r\n\r\n this.mainForm.controls[\"model.\" + this.dfms.metaModel[i].Path].setValue(\"\");\r\n\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.exportServiceSubscriber != null) {\r\n this.exportServiceSubscriber.unsubscribe();\r\n }\r\n\r\n if (this.actionFinishedSubscription != null) {\r\n this.actionFinishedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n onTabChange(event: MatTabChangeEvent) {\r\n var tabs = document.getElementsByClassName(\"mat-tab-label\");\r\n var firstSelected = false;\r\n var lastSelected = false;\r\n\r\n if (event.index == 0) {\r\n var btn = document.getElementsByName(\"Geri qayıt\");\r\n if (btn.length == 1) {\r\n btn[0].style.display = \"none\";\r\n firstSelected = true;\r\n }\r\n } else if (event.index == tabs.length - 1) {\r\n var btn = document.getElementsByName(\"Növbəti\");\r\n if (btn.length == 1) {\r\n btn[0].style.display = \"none\";\r\n lastSelected = true;\r\n }\r\n }\r\n\r\n if (!firstSelected) {\r\n var btn = document.getElementsByName(\"Geri qayıt\");\r\n if (btn.length == 1) {\r\n btn[0].style.display = \"block\";\r\n }\r\n }\r\n if (!lastSelected) {\r\n var btn = document.getElementsByName(\"Növbəti\");\r\n if (btn.length == 1) {\r\n btn[0].style.display = \"block\";\r\n }\r\n }\r\n\r\n }\r\n\r\n formTabChanged(event) {\r\n try {\r\n\r\n let tabContentElement = null;\r\n if (event.target.parentNode.id.length > 0) {\r\n tabContentElement = document.querySelectorAll('[aria-labelledby=\"' + event.target.parentNode.id + '\"]')[0];\r\n } else {\r\n tabContentElement = document.querySelectorAll('[aria-labelledby=\"' + event.target.id + '\"]')[0];\r\n }\r\n\r\n if (tabContentElement) {\r\n tabContentElement = tabContentElement.children[0];\r\n if (tabContentElement) {\r\n tabContentElement = tabContentElement.children[0];\r\n }\r\n }\r\n\r\n if (typeof tabContentElement != \"undefined\" && tabContentElement.hasAttribute(\"aria-form-url\") && tabContentElement.getAttribute(\"aria-form-url\").length > 0) {\r\n\r\n let formUrl = tabContentElement.getAttribute(\"aria-form-url\");\r\n let tabId = tabContentElement.getAttribute(\"tab-id\");\r\n\r\n this.model[\"tabInformations\"] = { tabId: tabId, tabName: event.target.innerText };\r\n\r\n this.utility.processNavigationUrl(formUrl + \"?id=\" + this.currentId, this.model);\r\n return;\r\n\r\n } else {\r\n\r\n let mainElement = null;\r\n if (event.target.classList[0] == \"mat-tab-label-content\") {\r\n mainElement = event.target.parentElement;\r\n } else if (event.target.classList[0] == \"mat-tab-label\") {\r\n mainElement = event.target;\r\n }\r\n\r\n if (mainElement && !mainElement.innerText.contains(\"-\")) {\r\n\r\n let val = mainElement.getAttribute(\"aria-label\");\r\n let disabled = mainElement.getAttribute(\"aria-disabled\");\r\n\r\n if (val.contains(\"parent\")) {\r\n val = val.substring(7, val.length);\r\n }\r\n\r\n if (disabled && disabled == \"true\") {\r\n\r\n let query = \"[aria-label=\" + val + \"]\";\r\n let elements = document.querySelectorAll(query);\r\n let arrelements = Array.prototype.slice.call(elements);\r\n\r\n if (arrelements.length > 0) {\r\n //arrelements.shift();\r\n\r\n let displayValue = \"none\";\r\n\r\n if (arrelements[0][\"style\"][\"display\"] == \"none\" || arrelements[0][\"style\"][\"display\"] == \"\") {\r\n displayValue = \"inline-flex\";\r\n }\r\n\r\n for (var i = 0; i < arrelements.length; i++) {\r\n arrelements[i][\"style\"][\"display\"] = displayValue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n //console.log(e);\r\n }\r\n\r\n var result = document.getElementsByClassName(\"mat-tab-label\");\r\n let selected = 0;\r\n let nextSelected = 0;\r\n\r\n // get current selected tab\r\n Object.entries(result).forEach(([key, value]) => {\r\n if (value.classList.contains(\"mat-tab-label-active\")) {\r\n selected = parseInt(key);\r\n this.selectedTabIndex = selected;\r\n this.utility.tabInformations = {};\r\n this.utility.tabInformations[\"tabId\"] = selected;\r\n }\r\n });\r\n\r\n }\r\n\r\n changeTab(tabNumber) {\r\n\r\n if (this.model[\"tabInformations\"][\"tabId\"] != 0) {\r\n var result = document.getElementsByClassName(\"mat-tab-label\") as HTMLCollection;\r\n\r\n var evt = new MouseEvent('click', { bubbles: true, cancelable: true, view: window });\r\n\r\n for (var i = 0; i < result.length; i++) {\r\n let cTabId = result[i][\"innerText\"];\r\n if (this.model[\"tabInformations\"][\"tabName\"] == cTabId) {\r\n result[i].dispatchEvent(evt);\r\n return;\r\n }\r\n }\r\n\r\n result[0].dispatchEvent(evt);\r\n }\r\n /*\r\n if ((result.length - 1) > tabNumber) {\r\n result[tabNumber].dispatchEvent(evt);\r\n } else if (result.length > 0) {\r\n result[0].dispatchEvent(evt);\r\n }*/\r\n }\r\n\r\n goBack() {\r\n //if (this.mainForm.dirty) {\r\n\r\n if (this.dfms.wasInEditMode) {\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n this.location.back();\r\n }\r\n\r\n });\r\n } else {\r\n this.location.back();\r\n }\r\n\r\n /*} else {\r\n this.location.back();\r\n }*/\r\n }\r\n\r\n /*@HostListener('window:popstate', ['$event'])\r\n onPopState(event) {\r\n if (this.mainForm.dirty) {\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n return result;\r\n }\r\n\r\n return false;\r\n\r\n });\r\n\r\n } else {\r\n return true;\r\n }\r\n }*/\r\n\r\n isCyclic = (obj => {\r\n const keys = []\r\n const stack = []\r\n const stackSet = new Set()\r\n let detected = false\r\n\r\n const detect = ((object, key) => {\r\n if (!(object instanceof Object))\r\n return\r\n\r\n if (stackSet.has(object)) { // it's cyclic! Print the object and its locations.\r\n const oldindex = stack.indexOf(object)\r\n const l1 = `${keys.join('.')}.${key}`\r\n const l2 = keys.slice(0, oldindex + 1).join('.')\r\n //console.log(`CIRCULAR: ${l1} = ${l2} = ${object}`)\r\n //console.log(object)\r\n detected = true\r\n return\r\n }\r\n\r\n keys.push(key)\r\n stack.push(object)\r\n stackSet.add(object)\r\n Object.keys(object).forEach(k => { // dive on the object's children\r\n if (k && Object.prototype.hasOwnProperty.call(object, k))\r\n detect(object[k], k)\r\n })\r\n\r\n keys.pop()\r\n stack.pop()\r\n stackSet.delete(object)\r\n })\r\n\r\n detect(obj, 'obj')\r\n return detected\r\n })\r\n\r\n submit(model): Observable {\r\n //console.log(\"model :\");\r\n //console.log(model);\r\n\r\n var clonedObject = _.cloneDeep(model);\r\n JsonUtil.isCyclic(clonedObject);\r\n\r\n\r\n //console.log(\"cloned model :\");\r\n //console.log(clonedObject);\r\n\r\n //var stringify = require('json-stringify-safe');\r\n\r\n /*clonedObject = JSON.stringify( clonedObject, function( key, value) {\r\n if(clonedObject.isCyclic(value)){\r\n return null;\r\n }\r\n else {return value;}\r\n })*/\r\n\r\n //JsonUtil.isCyclic(clonedObject);\r\n\r\n this.clearEmpties(clonedObject);\r\n\r\n //console.log(\"submited model\");\r\n //console.log(clonedObject);\r\n\r\n this.requestModel.url = \"api/data\";\r\n this.requestModel.data = { Envelope: clonedObject, Projection: null, ApplicationModelFullName: null };\r\n return this.restProviderService.getDataPOST(this.requestModel);\r\n\r\n }\r\n openVersion() {\r\n this.dialog.open(SemVersionDialogComponent, { width: '1135px', height: '883px', data: { DomainModelTypeFullName: this.domainModelTypeFullName, EntityId: this.model.Id } });\r\n }\r\n\r\n\r\n formSubmit() {\r\n\r\n this.showPopup = false;\r\n this.valid = true;\r\n\r\n // THIS IS ALREADY CALLED IN formSubmit() SO WE DONT NEED TO CALL AGAIN HERE\r\n // check if pre submit js\t\r\n //if (this.utility.preFormSubmitJS != null && typeof this.utility.preFormSubmitJS != \"undefined\") {\t\r\n // // execute pre form submit logic \t\r\n // this.utility.preFormSubmitJS = this.utility.preFormSubmitJS.replace(/\\\\/g, \"\");\t\r\n // let preResult = function (str) {\t\r\n // return eval(str);\t\r\n // }.call(this, this.utility.preFormSubmitJS);\t\r\n //}\r\n\r\n // check if we need popup before save\r\n if (this.utility.openPopupBeforeSave) {\r\n\r\n this.showPopup = true;\r\n if (this.utility.openPopupBeforeSaveCondition != null && typeof this.utility.openPopupBeforeSaveCondition != \"undefined\" && this.utility.openPopupBeforeSaveCondition != \"\") {\r\n this.utility.openPopupBeforeSaveCondition = this.utility.openPopupBeforeSaveCondition.replace(/\\\\/g, \"\");\r\n eval(this.utility.openPopupBeforeSaveCondition);\r\n }\r\n\r\n if (this.showPopup) {\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { data: { type: DialogType.Confirmation, text: this.utility.openPopupBeforeSaveMessage } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n this.submitCall();\r\n }\r\n });\r\n } else {\r\n this.submitCall();\r\n }\r\n } else {\r\n this.submitCall();\r\n }\r\n\r\n }\r\n\r\n submitCall() {\r\n\r\n for (var i = 0; i < this.dfms.controlValuesForValidation.length; i++) {\r\n let propVal = this.dfms.controlValuesForValidation[i][\"Value\"];\r\n\r\n if (typeof propVal != \"undefined\" && propVal) {\r\n this.dfms.globalForm.controls[this.dfms.controlValuesForValidation[i][\"Name\"]]?.setValue(this.dfms.controlValuesForValidation[i][\"Value\"]);\r\n this.dfms.globalForm.controls[this.dfms.controlValuesForValidation[i][\"Name\"]]?.updateValueAndValidity();\r\n }\r\n }\r\n\r\n // check if pre submit js\r\n if (this.utility.preFormSubmitJS != null && typeof this.utility.preFormSubmitJS != \"undefined\") {\r\n // execute pre form submit logic \r\n this.utility.preFormSubmitJS = this.utility.preFormSubmitJS.replace(/\\\\/g, \"\");\r\n let preResult = function (str) {\r\n return eval(str);\r\n }.call(this, this.utility.preFormSubmitJS);\r\n }\r\n\r\n this.valid = this.mainForm.valid;\r\n\r\n this.mandatoryFields = [];\r\n\r\n if (this.valid) {\r\n this.mainForm.ngSubmit.emit();\r\n } else {\r\n this.checkFormValidation();\r\n console.log(\"error on pre submit JS logic\");\r\n this.utility.reqStatus = ResponseStatus.ErrorMandatoryFields;\r\n this.utility.reqResponse = true;\r\n\r\n\r\n\r\n setTimeout(() => {\r\n this.utility.reqResponse = false;\r\n }, 5000);\r\n \r\n\r\n }\r\n }\r\n\r\n checkFormValidation() {\r\n this.utility.reqMessage = null;\r\n this.mandatoryFields = [];\r\n let cr = this.utility.getCurrentRoute();\r\n\r\n for (const name in this.dfms.globalForm.controls) {\r\n if (this.dfms.globalForm.controls[name].invalid) {\r\n this.mandatoryFields.push(cr.labels[name]);\r\n }\r\n }\r\n }\r\n\r\n clearEmpties(o) {\r\n for (var k in o) {\r\n if (!o[k] || typeof o[k] !== \"object\") {\r\n continue // If null or not an object, skip to the next iteration\r\n }\r\n\r\n for (var i = 0; i < this.clearedObjects.length; i++) {\r\n if (this.clearedObjects[i] == i) {\r\n continue;\r\n }\r\n }\r\n\r\n this.clearedObjects.push(o);\r\n // The property is an object\r\n this.clearEmpties(o[k]); // <-- Make a recursive call on the nested object\r\n if (Object.keys(o[k]).length === 0) {\r\n if (!(o[k].getMonth && typeof o[k].getMonth === \"function\")) {\r\n delete o[k]; // The object had no properties, so delete that property\r\n }\r\n\r\n }\r\n }\r\n\r\n return o;\r\n }\r\n\r\n fileUpload(): Observable {\r\n this.fileUploadStandalone.files = this.fileUploadService.files;\r\n this.fileUploadService.files = [];\r\n return this.fileUploadStandalone.uploadFiles(this.model);\r\n }\r\n\r\n fileDelete(): Promise {\r\n return this.fileUploadService.removeFiles();\r\n }\r\n\r\n getPrompt() {\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { width: '350px', height: '185px', data: { type: DialogType.Delete, text: this.translationsProviderService.translate('AreYouSureYouWantToDeleteThisRecord') } });\r\n return dialogRef.afterClosed();\r\n\r\n }\r\n\r\n delete(model) {\r\n this.requestModel.url = \"api/data/delete/\" + this.SerializationObjectFormLink + \"/\" + model[\"Id\"];\r\n return this.restProviderService.getDataDELETE(this.requestModel);\r\n }\r\n\r\n resolvePropertyBinding(object, propertyPath) {\r\n\r\n if (typeof propertyPath != \"undefined\" && propertyPath != null) {\r\n let split = propertyPath.split(\".\");\r\n let obj = object;\r\n\r\n for (let i = 0; i < split.length; i++) {\r\n if (obj != null && typeof obj != \"undefined\") {\r\n obj = obj[split[i]];\r\n }\r\n }\r\n\r\n if (obj != null && typeof obj != \"undefined\") {\r\n return obj;\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n formCopy() {\r\n this.model['IsFormCopy'] = true;\r\n this.utility.processNavigationUrl(window.location.pathname, this.model)\r\n }\r\n\r\n printWithQuery(reqModel: any) {\r\n console.log(\"Print init.\");\r\n this.loading = true;\r\n\r\n var fModel = new RequestModel;\r\n fModel.data = JSON.parse(reqModel);\r\n\r\n //set additional model data\r\n console.log(fModel);\r\n fModel.data[\"Query\"][\"PageSize\"] = 2000;\r\n //fModel.data[\"Query\"][\"RepositoryName\"] = \"nhibernate\";\r\n fModel.data[\"Query\"][\"Projection\"] = null;\r\n\r\n //lets call the report api\r\n fModel.contentType = \"application/json\";\r\n fModel.responseType = \"application/octet-stream;base64 \";\r\n fModel.url = \"api/report/generate\";\r\n\r\n this.restProviderService.getDataPOST(fModel).subscribe(data => {\r\n console.log(data);\r\n\r\n const linkSource = 'data:application/pdf;base64,' + data[\"Data\"];\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = this.datePipe.transform(Date.now(), \"dd_MM_yyyy_hh_mm_ss\") + \"_report.pdf\";\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n this.loading = false;\r\n\r\n }, error => {\r\n console.log(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n print(query: any, propertyPathForValue: any = null) {\r\n console.log(\"Print init.\");\r\n this.loading = true;\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n var fModel = new RequestModel;\r\n fModel.data = JSON.parse(query);\r\n if (propertyPathForValue != null && typeof propertyPathForValue != \"undefined\" && this.model != null && typeof this.model != \"undefined\" && this.model.Id != null && typeof this.model.Id != \"undefined\" && this.model.Id > 0) {\r\n\r\n fModel.data[\"Query\"][\"TreeQuery\"][\"FieldValue\"] = this.resolvePropertyBinding(this.model, propertyPathForValue);\r\n } else {\r\n if (this.model != null && typeof this.model != \"undefined\" && this.model.Id != null && typeof this.model.Id != \"undefined\" && this.model.Id > 0) {\r\n fModel.data[\"Query\"][\"TreeQuery\"][\"FieldValue\"] = this.model[\"Id\"];\r\n } else {\r\n\r\n fModel.data[\"Query\"][\"TreeQuery\"][\"FieldValue\"] = this.params.Id;\r\n }\r\n }\r\n\r\n\r\n\r\n fModel.contentType = \"application/json\";\r\n fModel.responseType = \"application/octet-stream;base64 \";\r\n fModel.url = \"api/report/generate\";\r\n\r\n this.restProviderService.getDataPOST(fModel).subscribe(data => {\r\n console.log(data);\r\n\r\n const linkSource = 'data:application/pdf;base64,' + data[\"Data\"];\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = this.datePipe.transform(Date.now(), \"dd_MM_yyyy_hh_mm_ss\") + \"_report.pdf\";\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n\r\n }, error => {\r\n console.log(error);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n export(exportType: string) {\r\n\r\n this.loading = true;\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n // get current search query from search service\r\n let searchQuery = this.searchService.getCurrentSearchQuery();\r\n // set projection same as current data grid display fields, we don't want to export any other additional data\r\n searchQuery[\"Projection\"] = this.searchService.getCurrentGridDisplayFields();\r\n // execute export based on exportType and search query \r\n this.exportServiceSubscriber = this.exportService.export(exportType, searchQuery).subscribe(data => {\r\n\r\n if (data != null && typeof data != \"undefined\") {\r\n\r\n const linkSource = \"data:\" + data[\"MimeType\"] + \";base64,\" + data[\"Content\"];\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = linkSource;\r\n downloadLink.download = data[\"FileName\"];\r\n downloadLink.click();\r\n }\r\n\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n }, error => {\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n addNew() {\r\n this.formName = this.translationsProviderService.translations[\"WebGalis_AddNew\"];\r\n }\r\n\r\n isMenuOpened() {\r\n }\r\n\r\n loadFormActions(context, userSearchSetting: UserSearchSettingModel) {\r\n\r\n let request = new NavigationRequestModel;\r\n let rModel = new RequestModel\r\n\r\n rModel.url = \"/api/navigation/getNodes\";\r\n request.context = context;\r\n request.depth = 0;\r\n request.rootNode = null;\r\n\r\n if (typeof userSearchSetting != \"undefined\" && userSearchSetting != null) {\r\n request.UserSearchSetting = userSearchSetting;\r\n }\r\n\r\n if (typeof (this.SerializationObjectFormLink) != \"undefined\" && this.SerializationObjectFormLink != null && this.SerializationObjectFormLink.length > 0) {\r\n request.dynamicFormId = parseInt(this.SerializationObjectFormLink.split(\"-\")[0]);\r\n\r\n rModel.data = request;\r\n\r\n this.restProviderService.serializer = new NavigationNodeSerializer;\r\n\r\n this.restProviderService.getDataPOST(rModel).subscribe(\r\n data => {\r\n //console.log(\"POST Request is successful, FormActions \", data);\r\n /*if (this.utility.isFormExpicitEditMode() && this.dfms.isFormReadOnly) {\r\n this.formActions.push({ Title: this.translationsProviderService.translate(\"WebGalis_Edit\"), Children: [], NavigationNodeRule: { ActionBody: \"this.dfms.setFormAsReadOnly();\", Condition: \"this.dfms.isFormReadOnly == true && !this.checkIfInUserGroup(6) && (this.restProviderService.currentUser.Id == this.model.DocumentCreator.Id || this.checkIfInUserGroup(1))\", RuleType: 1 } });\r\n }*/\r\n this.formActions = this.formActions.concat(data);\r\n this.formActions.sort((a, b) => a.Order > b.Order ? 1 : -1);\r\n\r\n // check if any of formaction is \"bulk\"checkIfInUserGroup\r\n // for now check this only on listing page\r\n if (userSearchSetting != null && typeof userSearchSetting != \"undefined\" && this.formActions != null && typeof this.formActions != \"undefined\") {\r\n for (let i = 0; i < this.formActions.length; i++) {\r\n if (this.findBulkAction(this.formActions[i]) == true) {\r\n // stop loop, only 1 \"bulk\" action needed\r\n break;\r\n }\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n console.log(\"Error\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n findBulkAction(navigationNode) {\r\n\r\n if (typeof navigationNode != \"undefined\" && navigationNode != null) {\r\n if (navigationNode.BulkAction == true) {\r\n // check if condition is true (otherwise bulk action will not be shown)\r\n var shown = this.getCondition(navigationNode);\r\n if (shown) {\r\n let actionService = this.injector.get(ActionsService);\r\n actionService.setCurrentBulkActionPresent(true);\r\n // stop loop, only 1 \"bulk\" action needed\r\n return true;\r\n }\r\n }\r\n\r\n if (navigationNode.Children != null && typeof navigationNode.Children != \"undefined\" && navigationNode.Children.length > 0) {\r\n for (var i = 0; i < navigationNode.Children.length; i++) {\r\n var val = this.findBulkAction(navigationNode.Children[i]);\r\n if (val) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getFilteredChildren(children) {\r\n\r\n var newFiltered = [];\r\n if (children != null && typeof children != \"undefined\") {\r\n for (var i = 0; i < children.length; i++) {\r\n var show = this.getCondition(children[i]);\r\n if (show) {\r\n newFiltered.push(children[i]);\r\n }\r\n }\r\n }\r\n\r\n return newFiltered;\r\n }\r\n\r\n getCondition(action) {\r\n try {\r\n if (action.NavigationNodeRule) {\r\n if (action.NavigationNodeRule.Condition != null && typeof action.NavigationNodeRule.Condition != \"undefined\" && action.NavigationNodeRule.Condition.length > 0) {\r\n return eval(action.NavigationNodeRule.Condition);\r\n }\r\n }\r\n\r\n return this.alwaysShow;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n // this method is for purposes of action with children (but in some cases children are hiden based on condition and in that case action is shown without children\r\n //- that action is useless in that case, so we dont need to show it)\r\n getActionFilteredChildrenCount(action) {\r\n\r\n let children = 0;\r\n\r\n if (action.Children == null || typeof action.Children == \"undefined\") {\r\n children = 0;\r\n } else {\r\n children = action.Children.length;\r\n }\r\n\r\n // if action is only set as parent and has no children then return 0\r\n if (action.IsOnlyParent == true && children == 0) {\r\n return 0;\r\n }\r\n\r\n // if action has no children show on UI\r\n if (children < 1) {\r\n return 1;\r\n }\r\n\r\n // if action has children show on UI only if at least on children can be shown (based on children condition)\r\n if (action.Children != null && typeof action.Children != \"undefined\" && action.Children.length > 0) {\r\n for (var i = 0; i < action.Children.length; i++) {\r\n var child = action.Children[i];\r\n if (child != null && typeof child != \"undefined\") {\r\n var show = this.getCondition(child);\r\n if (show == true) {\r\n return 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n\r\n getActionBody(action) {\r\n\r\n let actionService = this.injector.get(ActionsService);\r\n\r\n if (action.NavigationNodeRule) {\r\n if ((typeof action.NavigationNodeRule.FormAction == \"undefined\" || !action.NavigationNodeRule.FormAction) && action.NavigationNodeRule.ActionBody) {\r\n eval(action.NavigationNodeRule.ActionBody);\r\n return;\r\n }\r\n //eval(action.NavigationNodeRule.ActionBody);\r\n // if form actions has parameter form linked then we should first show popup with parameter form\r\n if (action.NavigationNodeRule.FormAction.ParameterForm != null && typeof action.NavigationNodeRule.FormAction.ParameterForm != \"undefined\" && action.NavigationNodeRule.FormAction.ParameterForm.Id > 0) {\r\n var reportId = null;\r\n if (action.NavigationNodeRule.FormAction.ParameterForm.Report != null && typeof action.NavigationNodeRule.FormAction.ParameterForm.Report != \"undefined\") {\r\n reportId = action.NavigationNodeRule.FormAction.ParameterForm.Report.Id;\r\n }\r\n\r\n const dialogRef = this.dialog.open(SemParameterDialogComponent, {\r\n data: {\r\n parameterFormId: action.NavigationNodeRule.FormAction.ParameterForm.Id,\r\n reportId: reportId,\r\n customHeaderTitle: action.NavigationNodeRule.FormAction.ParameterForm.CustomHeaderTitle,\r\n customCssClass: action.NavigationNodeRule.FormAction.ParameterForm.CustomCssClass\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(returnData => {\r\n if (returnData != null && typeof returnData != \"undefined\") {\r\n // only call action if parameter popup was confirmed (not cancled - close button)\r\n if (returnData.Canceled == false) {\r\n var inputParametersModel = returnData[\"Model\"];\r\n actionService.callAction(action.NavigationNodeRule.FormAction, this.model, null, null, this, action.BulkAction, inputParametersModel, action.NavigationNodeRule.FormAction.OnlyClientLogic, false, action.BulkExport, action.NavigationNodeRule.FormAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n });\r\n } else {\r\n // just call action without parameters form popup\r\n actionService.callAction(action.NavigationNodeRule.FormAction, this.model, null, null, this, action.BulkAction, null, action.NavigationNodeRule.FormAction.OnlyClientLogic, false, action.BulkExport, action.NavigationNodeRule.FormAction.SkipBulkActionApiMethod);\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n setCollapsed(p_collapse) {\r\n this.collapse = p_collapse;\r\n }\r\n\r\n invokeAction(url, propertyName) {\r\n let stateModel = new StateModel;\r\n stateModel.Model = this.model;\r\n stateModel.Prop = propertyName;\r\n\r\n if (this.mainForm.dirty) {\r\n\r\n const dialogRef = this.dialog.open(SemConfirmDialogComponent, { width: '350px', height: '185px', data: { type: DialogType.Confirmation, text: 'WebGalis_NavigateAway' } });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n this.utility.processNavigationUrl(url, stateModel);\r\n }\r\n });\r\n\r\n } else {\r\n this.utility.processNavigationUrl(url, stateModel);\r\n }\r\n }\r\n\r\n getClass(condition) {\r\n if (eval(\"this.\" + condition) == true) {\r\n return \"hide-tab\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n checkIfInArray(prop: [], id: any) {\r\n return prop.some(el => el[\"Id\"] === id);\r\n }\r\n\r\n /*checkIfInUserGroup(prop: [], id: any) {\r\n if (typeof prop != \"undefined\" && prop) {\r\n //return prop.some(el => el === id);\r\n for (var i = 0; i < prop.length; i++) {\r\n if (prop[i] == id) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }*/\r\n\r\n checkIfInUserGroup(id: any) {\r\n let userService = this.injector.get(UserService);\r\n return userService.checkIfInUserGroup(id);\r\n }\r\n\r\n openCompareDialog(data: any) {\r\n let obj = { items: data, object: this.model };\r\n const dialogRef = this.dialog.open(SemCompareDialogComponent, { data: obj });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result != null) {\r\n\r\n let reqModel = new RequestModel;\r\n reqModel.data = { Envelope: this.model, InputParameters: { \"IsModified\": result[\"IsModified\"] } };\r\n reqModel.url = \"api/competitionsystem/confirmcsp\";\r\n DynamicLoadingUtil.loader.showLoader = true;\r\n\r\n this.restProviderService.getDataPOST(reqModel).subscribe(data => {\r\n\r\n if (data[\"Metadata\"] != null && typeof data[\"Metadata\"] != \"undefined\" && data[\"Metadata\"].ServerMessageMetadata != null && typeof data[\"Metadata\"].ServerMessageMetadata != \"undefined\" && data[\"Metadata\"].ServerMessageMetadata.MessageType == 2) {\r\n // ok envelope response but error type \r\n this.loaderService.subject.next(1);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n this.utility.reqMessage = data[\"Metadata\"].ServerMessageMetadata.Message;\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.loading = false;\r\n } else {\r\n this.utility.reqMessage = \"Uspešno\";\r\n this.utility.reqStatus = ResponseStatus.Ok;\r\n this.utility.reqResponse = true;\r\n this.loading = false;\r\n this.loaderService.subject.next(1);\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n location.reload();\r\n }\r\n }, err => {\r\n this.loaderService.subject.next(2);\r\n this.utility.reqMessage = \"Napaka. Preverite podatke.\";\r\n this.utility.reqStatus = ResponseStatus.Error;\r\n this.utility.reqResponse = true;\r\n this.loading = false;\r\n DynamicLoadingUtil.loader.showLoader = false;\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n /*getProp(prop, expression) {\r\n let value = \"\";\r\n \r\n if (expression) {\r\n let midValue = eval(expression);\r\n //let midValue = new Function(expression).call(this);\r\n value = midValue;\r\n }\r\n else {\r\n value = this.dfms.getValue(this.model, prop);\r\n }\r\n \r\n return value;\r\n }\r\n \r\n setProp(prop, value) {\r\n this.dfms.assign(this.model, prop, value, true);\r\n }*/\r\n\r\n}\r\n\r\n// must be same as serverside ServerMessageMetadataType\r\nexport enum ResponseStatus {\r\n Ok = 1,\r\n Error = 2,\r\n ErrorMandatoryFields = 3,\r\n Warning = 4\r\n}\r\n\r\nexport enum DialogType {\r\n Delete = 1,\r\n Notification = 2,\r\n Confirmation = 3\r\n}\r\n\r\nexport class JsonUtil {\r\n\r\n static isCyclic(json) {\r\n const keys = [];\r\n const stack = [];\r\n const stackSet = new Set();\r\n let detected = false;\r\n\r\n function detect(obj, key) {\r\n if (typeof obj !== 'object') {\r\n return;\r\n }\r\n\r\n if (stackSet.has(obj)) { // it's cyclic! Print the object and its locations.\r\n const oldIndex = stack.indexOf(obj);\r\n const l1 = keys.join('.') + '.' + key;\r\n const l2 = keys.slice(0, oldIndex + 1).join('.');\r\n //console.log('CIRCULAR: ' + l1 + ' = ' + l2 + ' = ' + obj);\r\n //console.log(obj);\r\n detected = true;\r\n obj = null;\r\n return;\r\n }\r\n\r\n keys.push(key);\r\n stack.push(obj);\r\n stackSet.add(obj);\r\n for (const k in obj) { // dive on the object's children\r\n if (obj.hasOwnProperty(k)) {\r\n detect(obj[k], k);\r\n }\r\n }\r\n\r\n keys.pop();\r\n stack.pop();\r\n stackSet.delete(obj);\r\n return;\r\n }\r\n\r\n function clearEmpties(obj, key) {\r\n if (typeof obj !== 'object') {\r\n return;\r\n }\r\n\r\n if (stackSet.has(obj)) { // it's cyclic! Print the object and its locations.\r\n const oldIndex = stack.indexOf(obj);\r\n const l1 = keys.join('.') + '.' + key;\r\n const l2 = keys.slice(0, oldIndex + 1).join('.');\r\n //console.log('CIRCULAR: ' + l1 + ' = ' + l2 + ' = ' + obj);\r\n //console.log(obj);\r\n detected = true;\r\n obj = null;\r\n return -1;\r\n }\r\n\r\n keys.push(key);\r\n stack.push(obj);\r\n stackSet.add(obj);\r\n for (const k in obj) { // dive on the object's children\r\n if (obj.hasOwnProperty(k)) {\r\n if (Object.keys(k).length === 0) {\r\n delete obj[k];\r\n } else {\r\n let res = clearEmpties(obj[k], k);\r\n if (res == -1) {\r\n /*obj[k] = _.cloneDeep(obj[k]);\r\n obj[k][\"PenaltyExecution\"] = _.cloneDeep(obj[k][\"PenaltyExecution\"]);\r\n obj[k][\"PenaltyExecution\"][\"PenaltyData\"] = null;*/\r\n obj[k] = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n keys.pop();\r\n stack.pop();\r\n stackSet.delete(obj);\r\n return;\r\n }\r\n\r\n //detect(json, 'obj');\r\n clearEmpties(json, 'obj');\r\n return detected;\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SemBaseComponent } from '../../../components/common/sem-base/sem-base.component';\r\n\r\n@Component({\r\n selector: 'sem-loader',\r\n templateUrl: './sem-loader.component.html',\r\n styleUrls: ['./sem-loader.component.css']\r\n})\r\nexport class SemLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n @Input() showLoader: boolean = false;\r\n @Input() cssClasses: string = \"\";\r\n\r\n toggle(event) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { UrlSerializer, UrlTree, DefaultUrlSerializer } from '@angular/router';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class CustomUrlSerializer implements UrlSerializer {\r\n parse(url: any): UrlTree {\r\n let dus = new DefaultUrlSerializer();\r\n return dus.parse(decodeURIComponent(url));\r\n }\r\n\r\n serialize(tree: UrlTree): any {\r\n let dus = new DefaultUrlSerializer(),\r\n path = dus.serialize(tree);\r\n // use your regex to replace as per your requirement.\r\n return decodeURIComponent(path);\r\n }\r\n}\r\n","import { Injectable, Optional } from \"../../../../node_modules/@angular/core\";\r\nimport { Routes } from \"../../../../node_modules/@angular/router\";\r\nimport { SemLoaderComponent } from \"../components/sem-loader/sem-loader.component\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicLoadingUtil {\r\n\r\n routesLoaded: boolean;\r\n static loadedDynamicRoutes: any[] = [];\r\n static loader: SemLoaderComponent;\r\n static breadcrumbs: any = [];\r\n static currentRoute: any = {};\r\n static navigationNodes: any = [];\r\n\r\n constructor() {\r\n }\r\n \r\n}\r\n","import { Injectable } from \"../../../../node_modules/@angular/core\";\r\n\r\n@Injectable()\r\nexport class FileUtil {\r\n\r\n static getFriendlyFileSize(size:number) {\r\n var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'),\r\n i=0;while(size>900){size/=1024;i++;}\r\n return (Math.round(size*100)/100)+' '+fSExt[i];\r\n }\r\n\r\n}\r\n\r\nexport enum FileUploadObservableState {\r\n Error = -2,\r\n Finished = -1,\r\n OnGoing = 0\r\n}","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\r\n\r\n@Injectable()\r\nexport class MomentUtcDateAdapter extends MomentDateAdapter {\r\n\r\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string) {\r\n super(dateLocale);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment {\r\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\r\n // explicitly check each case so we can throw more descriptive errors.\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n let result = moment.utc({ year, month, date }).locale(this.locale);\r\n\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'limitTo'\r\n})\r\nexport class LimitToPipe implements PipeTransform {\r\n\r\n transform(value: any, limit: number): any {\r\n return 1;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '../../../../../node_modules/@angular/common';\r\n\r\n@Pipe({\r\n name: 'dateFormatPipe'\r\n})\r\nexport class SemDateFormatPipePipe extends DatePipe implements PipeTransform {\r\n\r\n transform(value: any, format: string): any {\r\n return super.transform(value, format);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '../../../../../node_modules/@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'semDomPipe'\r\n})\r\nexport class SemDomPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) { }\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"../../../../node_modules/@angular/core\";\r\nimport { retry } from \"../../../../node_modules/rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class SemHttpUtility {\r\n\r\n static semDecode(content: string) {\r\n if (content != null && typeof content != \"undefined\") {\r\n return content.replace(/%7B/g, \"{\").replace(/%7D/g, \"}\");\r\n }\r\n return \"\";\r\n }\r\n\r\n}\r\n","export class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SemTextBoxComponent } from '../../../components/controls/sem-text-box/sem-text-box.component';\r\nimport { SemChatBotComponent } from '../../../components/controls/sem-chat-bot/sem-chat-bot.component';\r\nimport { SemDatePickerComponent } from '../../../components/controls/sem-date-picker/sem-date-picker.component';\r\nimport { SemSelectComponent } from '../../../components/controls/sem-select/sem-select.component';\r\nimport { FormsModule, ReactiveFormsModule, FormGroup } from '@angular/forms';\r\nimport { SemTextInputComponent } from '../../../components/controls/sem-text-input/sem-text-input.component';\r\nimport { SemControlComponent } from '../../../components/controls/sem-control/sem-control.component';\r\nimport { SemQueryComponent } from '../../../components/controls/sem-query/sem-query.component';\r\nimport { SemDomPipe } from '../../helpers/pipes/sem-dom-pipe.pipe';\r\nimport { LimitToPipe } from '../../helpers/pipes/limit-to.pipe';\r\nimport { SemDataGridComponent } from '../../../components/controls/sem-data-grid/sem-data-grid.component';\r\nimport { SemListComponent } from '../../../components/controls/sem-list/sem-list.component';\r\nimport { SemTextAreaComponent } from '../../../components/controls/sem-text-area/sem-text-area.component';\r\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\r\nimport { SemRadioButtonComponent } from '../../../components/controls/sem-radio-button/sem-radio-button.component';\r\nimport { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio';\r\nimport { SemManyToOneControlComponent } from '../../../components/controls/sem-many-to-one-control/sem-many-to-one-control.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { SemSearchComponent } from '../../../components/controls/sem-search/sem-search.component';\r\nimport { SemDynamicSearchFieldComponent } from '../../../components/controls/sem-dynamic-search-field/sem-dynamic-search-field.component';\r\nimport { SemCheckBoxComponent } from '../../../components/controls/sem-check-box/sem-check-box.component';\r\nimport { SemFileUploadComponent } from '../../../components/controls/sem-file-upload/sem-file-upload.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { SemImageViewerComponent } from '../../../components/controls/sem-image-viewer/sem-image-viewer.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { SemFacetsComponent } from 'src/app/components/controls/sem-facets/sem-facets.component';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MomentUtcDateAdapter } from '../../helpers/moment-utc-adapter';\r\nimport { SemGraphComponent } from 'src/app/components/controls/sem-graph/sem-graph.component';\r\nimport { SemGraphPieComponent } from 'src/app/components/controls/sem-graph-pie/sem-graph-pie.component';\r\nimport { SemGraphHistogramComponent } from 'src/app/components/controls/sem-graph-histogram/sem-graph-histogram.component';\r\nimport { SemGraphBarComponent } from 'src/app/components/controls/sem-graph-bar/sem-graph-bar.component';\r\nimport { SemGraphDonutComponent } from 'src/app/components/controls/sem-graph-donut/sem-graph-donut.component';\r\nimport { SemDialogComponent } from 'src/app/components/controls/dialogs/sem-dialog/sem-dialog.component';\r\nimport { DisableControlDirective } from 'src/app/directives/disable-control/disable-control.directive';\r\nimport { MakeDraggable } from 'src/app/directives/draggable/make-draggable.directive';\r\nimport { MakeDroppable } from 'src/app/directives/draggable/make-dropable.directive';\r\nimport { SemFileExplorerComponent } from 'src/app/components/controls/sem-file-explorer/sem-file-explorer.component';\r\nimport { SemGroupRepeaterControlComponent } from 'src/app/components/controls/sem-group-repeater/sem-group-repeater.component';\r\nimport { SemDynamicControlComponent } from 'src/app/components/controls/shared/sem-dynamic-control/sem-dynamic-control.component';\r\nimport { SemQuickActionsComponent } from 'src/app/components/controls/content-controls/sem-quick-actions/sem-quick-actions.component';\r\nimport { SemLastEditedDataComponent } from 'src/app/components/controls/content-controls/sem-last-edited-data/sem-last-edited-data.component';\r\nimport { SemSearchBarComponent } from 'src/app/components/controls/sem-search-bar/sem-search-bar.component';\r\nimport { SemButtonComponent } from 'src/app/components/controls/sem-button/sem-button.component';\r\nimport { ImagesPathDirective } from 'src/app/directives/images-path.directive';\r\nimport { SemRequiredDirective } from 'src/app/directives/validators/sem-required.directive';\r\n//import { DragScrollModule } from 'ngx-drag-scroll';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SemOneToManyContainerComponent } from 'src/app/components/controls/sem-one-to-many-container/sem-one-to-many-container.component';\r\nimport { OneToManySectionComponent } from 'src/app/components/controls/sem-one-to-many-container/one-to-many-section/one-to-many-section.component';\r\nimport { StopClickPropagation } from 'src/app/components/common/custom-directives/stop-propagation';\r\nimport { SemMultiFieldsComponent } from 'src/app/components/controls/sem-multi-fields/sem-multi-fields.component';\r\nimport { SemBoundTabControlComponent } from 'src/app/components/controls/sem-bound-tab-control/sem-bound-tab-control.component';\r\nimport { SemBoundTabContentComponent } from 'src/app/components/controls/sem-bound-tab-control/sem-bound-tab-content/sem-bound-tab-content.component';\r\nimport { SemReportGeneratorComponent } from 'src/app/components/controls/sem-report-generator/sem-report-generator.component';\r\nimport { SemMultipleSelectComponent } from 'src/app/components/controls/sem-multiple-select/sem-multiple-select.component';\r\nimport { SemBoundLabelComponent } from 'src/app/components/controls/sem-bound-label/sem-bount-label.component';\r\n//import { QuillModule } from 'ngx-quill'\r\nimport { SemFilePickerComponent } from 'src/app/components/controls/sem-file-picker/sem-file-picker.component';\r\nimport { SemGenerateDialogComponent } from 'src/app/components/controls/dialogs/sem-generate-dialog/sem-generate-dialog.component';\r\nimport { PreFormSubmitDirective } from 'src/app/directives/pre-submit/pre-form-submit.directive';\r\nimport { FormReadOnlyDirective } from 'src/app/directives/validators/form-read-only.directive';\r\nimport { SemTableDataComponent } from 'src/app/components/controls/sem-table-data-control/sem-table-data.component';\r\nimport { SemTreeviewDialogComponent } from 'src/app/components/controls/dialogs/sem-treeview-dialog/sem-treeview-dialog.component';\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SemTableGridComponent } from 'src/app/components/controls/charts/sem-table-chart/sem-table-chart.component';\r\nimport { SemTimePickerComponent } from '../../../components/controls/sem-time-picker/sem-time-picker.component';\r\nimport { SemRichTextEditorComponent } from 'src/app/components/controls/sem-rich-text-editor/sem-rich-text-editor.component';\r\nimport { SemGeoMapComponent } from '../../../components/controls/sem-geo-map/sem-geo-map.component';\r\nimport { SemRegexInputComponent } from '../../../components/controls/sem-regex-input/sem-regex-input.component'\r\nimport { SemActionComponent } from 'src/app/components/controls/sem-action/sem-action.component';\r\n\r\nimport { environment } from 'src/environments/environment';\r\n\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { SemLineGraphComponent } from 'src/app/components/controls/charts/graphs/sem-line-graph/sem-line-graph.component';\r\nimport { SemLastAddedRecordsComponent } from 'src/app/components/controls/content-controls/sem-last-added-records/sem-last-added-records.component';\r\nimport { SemEditModeBtnComponent } from '../../../components/controls/sem-edit-mode-btn/sem-edit-mode-btn.component';\r\nimport { SemTablePresentationComponent } from '../../../components/controls/content-controls/sem-table-presentation/sem-table-presentation.component';\r\nimport { SemD3DirectionalGraphComponent } from '../../../components/controls/charts/graphs/sem-d3-directional-graph/sem-d3-directional-graph.component';\r\nimport { QueryBuilderComponent } from '../../../components/controls/sem-query-builder/query-builder.component';\r\nimport { SemQueryBuilderDialogComponent } from '../../../components/controls/dialogs/sem-query-builder-dialog/sem-query-builder-dialog.component';\r\nimport { FormLoadEventDirective } from '../../../directives/formLoadEvent/form-load-event.directive';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { SemGalleryControlComponent } from 'src/app/components/controls/content-controls/sem-gallery-control/sem-gallery-control.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SemLoaderComponent } from '../../components/sem-loader/sem-loader.component';\r\n\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: environment.dateFormat,\r\n },\r\n display: {\r\n dateInput: environment.dateFormat,\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n SemDialogComponent,\r\n SemLoaderComponent,\r\n SemTextBoxComponent,\r\n SemDatePickerComponent,\r\n SemSelectComponent,\r\n SemTextInputComponent,\r\n SemControlComponent,\r\n SemQueryComponent,\r\n SemDomPipe,\r\n LimitToPipe,\r\n SemDataGridComponent,\r\n SemListComponent,\r\n SemTextAreaComponent,\r\n SemRadioButtonComponent,\r\n SemSearchComponent,\r\n SemDynamicSearchFieldComponent,\r\n SemCheckBoxComponent,\r\n SemManyToOneControlComponent,\r\n SemFileUploadComponent,\r\n SemImageViewerComponent,\r\n SemFacetsComponent,\r\n SemGraphComponent,\r\n SemGraphPieComponent,\r\n SemGraphHistogramComponent,\r\n SemGraphBarComponent,\r\n SemGraphDonutComponent,\r\n SemGroupRepeaterControlComponent,\r\n SemGraphDonutComponent,\r\n DisableControlDirective,\r\n MakeDraggable,\r\n MakeDroppable,\r\n SemFileExplorerComponent,\r\n SemDynamicControlComponent,\r\n SemQuickActionsComponent,\r\n SemLastEditedDataComponent,\r\n SemSearchBarComponent,\r\n SemButtonComponent,\r\n SemDynamicControlComponent,\r\n ImagesPathDirective,\r\n SemRequiredDirective,\r\n SemOneToManyContainerComponent,\r\n OneToManySectionComponent,\r\n SemBoundTabControlComponent,\r\n SemBoundTabContentComponent,\r\n SemReportGeneratorComponent,\r\n SemMultipleSelectComponent,\r\n StopClickPropagation,\r\n SemMultiFieldsComponent,\r\n SemBoundLabelComponent,\r\n SemFilePickerComponent,\r\n SemGenerateDialogComponent,\r\n SemFilePickerComponent,\r\n PreFormSubmitDirective,\r\n SemTableDataComponent,\r\n SemTreeviewDialogComponent,\r\n SemTableGridComponent,\r\n SemTimePickerComponent,\r\n SemRichTextEditorComponent,\r\n SemGeoMapComponent,\r\n SemRegexInputComponent,\r\n FormReadOnlyDirective,\r\n SemLastAddedRecordsComponent,\r\n SemLineGraphComponent,\r\n SemEditModeBtnComponent,\r\n SemTablePresentationComponent,\r\n SemD3DirectionalGraphComponent,\r\n QueryBuilderComponent,\r\n SemQueryBuilderDialogComponent,\r\n FormLoadEventDirective,\r\n SemChatBotComponent,\r\n SemGalleryControlComponent\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n //NgSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MatSelectModule,\r\n MatTabsModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n MatRadioModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatTooltipModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n //DragScrollModule,\r\n MatButtonModule,\r\n CdkTreeModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n //QuillModule.forRoot(),\r\n //PerfectScrollbarModule,\r\n NgxChartsModule,\r\n PdfViewerModule,\r\n NgScrollbarModule ,\r\n ScrollingModule\r\n ],\r\n exports: [\r\n MatSelectModule,\r\n SemDialogComponent,\r\n SemTextBoxComponent,\r\n SemDatePickerComponent,\r\n SemSelectComponent,\r\n SemTextInputComponent,\r\n SemControlComponent,\r\n SemQueryComponent,\r\n SemDomPipe,\r\n LimitToPipe,\r\n SemDataGridComponent,\r\n SemListComponent,\r\n SemTextAreaComponent,\r\n FormsModule,\r\n MatIconModule,\r\n MatTabsModule,\r\n MatButtonModule,\r\n CdkTreeModule,\r\n MatTreeModule,\r\n SemRadioButtonComponent,\r\n MatRadioModule,\r\n SemSearchComponent,\r\n SemDynamicSearchFieldComponent,\r\n SemCheckBoxComponent,\r\n MatRadioModule,\r\n SemManyToOneControlComponent,\r\n MatDialogModule,\r\n SemFileUploadComponent,\r\n SemImageViewerComponent,\r\n SemFacetsComponent,\r\n MatTooltipModule,\r\n SemGraphComponent,\r\n SemGraphPieComponent,\r\n SemGraphHistogramComponent,\r\n SemGraphBarComponent,\r\n SemGraphDonutComponent,\r\n DisableControlDirective,\r\n MakeDraggable,\r\n MakeDroppable,\r\n SemFileExplorerComponent,\r\n SemGraphDonutComponent,\r\n SemGroupRepeaterControlComponent,\r\n SemDynamicControlComponent,\r\n SemQuickActionsComponent,\r\n SemLastEditedDataComponent,\r\n SemSearchBarComponent,\r\n SemButtonComponent,\r\n SemDynamicControlComponent,\r\n ImagesPathDirective,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n SemRequiredDirective,\r\n SemOneToManyContainerComponent,\r\n OneToManySectionComponent,\r\n MatDatepickerModule,\r\n StopClickPropagation,\r\n SemMultiFieldsComponent,\r\n SemBoundTabControlComponent,\r\n SemBoundTabContentComponent,\r\n SemReportGeneratorComponent,\r\n SemMultipleSelectComponent,\r\n SemBoundLabelComponent,\r\n //QuillModule,\r\n SemFilePickerComponent,\r\n SemGenerateDialogComponent,\r\n SemFilePickerComponent,\r\n PreFormSubmitDirective,\r\n SemTableDataComponent,\r\n SemTreeviewDialogComponent,\r\n SemTableGridComponent,\r\n SemTimePickerComponent,\r\n SemRichTextEditorComponent,\r\n SemRegexInputComponent,\r\n FormReadOnlyDirective,\r\n //PerfectScrollbarModule,\r\n NgxChartsModule,\r\n SemLastAddedRecordsComponent,\r\n SemLineGraphComponent,\r\n SemEditModeBtnComponent,\r\n SemTablePresentationComponent,\r\n SemD3DirectionalGraphComponent,\r\n QueryBuilderComponent,\r\n SemQueryBuilderDialogComponent,\r\n FormLoadEventDirective,\r\n SemChatBotComponent,\r\n PdfViewerModule,\r\n SemGalleryControlComponent,\r\n NgScrollbarModule,\r\n ScrollingModule,\r\n SemLoaderComponent\r\n ],\r\n\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: environment.locale },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: false } }\r\n ]\r\n})\r\nexport class SemSharedModule {\r\n\r\n\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nimport { LoginV3Component } from \"src/app/components/login-views/login-v3/login-v3.component\";\r\n\r\nexport const environment = {\r\n production: false,\r\n language: \"sl\",\r\n wgProfileHost: \"https://obrockanje-api.pms-lj.si\",\r\n //wgProfileHost: \"http://localgo-api.galisonline.eu\",\r\n wgPlatformHost: \"https://obrockanje-platform.pms-lj.si\",\r\n\r\n loginComponent: LoginV3Component,\r\n projIcon: \"/assets/project-custom/images/brd-main-logo.png\",\r\n sidebarIcon: \"/assets/project-custom/images/brd-logo@3x.png\",\r\n projectCode: \"GO\",\r\n projectName:\"Podatkovna zbirka Slovenskega centra za obročkanje ptičev\",\r\n projectSidebarName:\"Zbirka\",\r\n locale:'sl-SI',\r\n useRouteAndMasterpageCache:true,\r\n ADLoginEnabled:false,\r\n dateFormat:'DD.MM.YYYY',\r\n newRegistrationLinkDocument: \"\",\r\n navigateAwayPopupEnabled:true,\r\n useEtag:true\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import \"@angular/compiler\";\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nvar html = document.documentElement.innerHTML;\r\nconst span = document.createElement('span');\r\nspan.innerHTML = environment.projectName;\r\nvar projName = span.textContent || span.innerText;\r\ndocument.documentElement.innerHTML = html.replace(\"...\",projName);\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.main-content {\r\n position:relative;\r\n}\r\n.content{\r\n width:100%;\r\n height:100%;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/app.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,iBAAiB;AACnB;AACA;EACE,UAAU;EACV,WAAW;AACb\",\"sourcesContent\":[\".main-content {\\r\\n position:relative;\\r\\n}\\r\\n.content{\\r\\n width:100%;\\r\\n height:100%;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `thead th{ \r\n border-bottom: 2px solid #e5eaed !important;\r\n white-space: nowrap;\r\n padding: 10px 10px 10px 0;\r\n position: relative;\r\n}\r\n\r\nthead th p {\r\n font-family: 'robotomedium';\r\n font-size: 20px;\r\n color: black;\r\n margin-left: 45px;\r\n margin-right: 45px;\r\n margin-top: 10px;\r\n}\r\n\r\ntbody td {\r\n border: 2px solid #e5eaed !important; \r\n}\r\n\r\n.task-opened {\r\n font-weight:normal;\r\n}\r\n\r\n.task-unread{\r\n font-weight: bold;\r\n}\r\n\r\n.task-file{\r\n cursor: pointer;\r\n text-decoration: underline;\r\n color:#1589FF;\r\n}\r\n\r\n.task-paging p{\r\n cursor: pointer;\r\n}\r\n\r\n.popuptask .description a, .popuptask .description a:visited {\r\n color: #0000EE !important; \r\n text-decoration: underline !important;\r\n}\r\n\r\n.task-table p{\r\n font-family: 'asapmedium' !important;\r\n color:black !important;\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/containers/workflow-center/workflow-center.component.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,2CAA2C;IAC3C,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;AACtB;;AAEA;IACI,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;AACpB;;AAEA;IACI,oCAAoC;AACxC;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,0BAA0B;IAC1B,aAAa;AACjB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,yBAAyB;IACzB,qCAAqC;AACzC;;AAEA;IACI,oCAAoC;IACpC,sBAAsB;AAC1B\",\"sourcesContent\":[\"thead th{ \\r\\n border-bottom: 2px solid #e5eaed !important;\\r\\n white-space: nowrap;\\r\\n padding: 10px 10px 10px 0;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\nthead th p {\\r\\n font-family: 'robotomedium';\\r\\n font-size: 20px;\\r\\n color: black;\\r\\n margin-left: 45px;\\r\\n margin-right: 45px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\ntbody td {\\r\\n border: 2px solid #e5eaed !important; \\r\\n}\\r\\n\\r\\n.task-opened {\\r\\n font-weight:normal;\\r\\n}\\r\\n\\r\\n.task-unread{\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.task-file{\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n color:#1589FF;\\r\\n}\\r\\n\\r\\n.task-paging p{\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.popuptask .description a, .popuptask .description a:visited {\\r\\n color: #0000EE !important; \\r\\n text-decoration: underline !important;\\r\\n}\\r\\n\\r\\n.task-table p{\\r\\n font-family: 'asapmedium' !important;\\r\\n color:black !important;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `input:hover + .button-tooltip-container .button-tooltip-text{\r\n visibility: visible;\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/controls/sem-button/sem-button.component.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;AACvB\",\"sourcesContent\":[\"input:hover + .button-tooltip-container .button-tooltip-text{\\r\\n visibility: visible;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.museumCodeLetters{\r\n font-size: 14px;\r\n font-weight:lighter;\r\n padding-right: 4px;\r\n}\r\n.museumCodeLetters::after{\r\n content: \" \";\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/controls/sem-regex-input/sem-regex-input.component.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;IACf,mBAAmB;IACnB,kBAAkB;AACtB;AACA;IACI,YAAY;AAChB\",\"sourcesContent\":[\".museumCodeLetters{\\r\\n font-size: 14px;\\r\\n font-weight:lighter;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.museumCodeLetters::after{\\r\\n content: \\\" \\\";\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body {\r\n background-color: #f8f8f8;\r\n position: relative;\r\n margin: 0 !important;\r\n}\r\n\r\n.header-img{\r\n margin: 30px !important;\r\n width:215px !important;\r\n}\r\n\r\n.col-lg-1,\r\n.col-lg-10,\r\n.col-lg-11,\r\n.col-lg-12,\r\n.col-lg-2,\r\n.col-lg-3,\r\n.col-lg-4,\r\n.col-lg-5,\r\n.col-lg-6,\r\n.col-lg-7,\r\n.col-lg-8,\r\n.col-lg-9,\r\n.col-md-1,\r\n.col-md-10,\r\n.col-md-11,\r\n.col-md-12,\r\n.col-md-2,\r\n.col-md-3,\r\n.col-md-4,\r\n.col-md-5,\r\n.col-md-6,\r\n.col-md-7,\r\n.col-md-8,\r\n.col-md-9,\r\n.col-sm-1,\r\n.col-sm-10,\r\n.col-sm-11,\r\n.col-sm-12,\r\n.col-sm-2,\r\n.col-sm-3,\r\n.col-sm-4,\r\n.col-sm-5,\r\n.col-sm-6,\r\n.col-sm-7,\r\n.col-sm-8,\r\n.col-sm-9,\r\n.col-xs-1,\r\n.col-xs-10,\r\n.col-xs-11,\r\n.col-xs-12,\r\n.col-xs-2,\r\n.col-xs-3,\r\n.col-xs-4,\r\n.col-xs-5,\r\n.col-xs-6,\r\n.col-xs-7,\r\n.col-xs-8,\r\n.col-xs-9 {\r\n padding: 0 !important;\r\n}\r\n\r\n.login-container {\r\n margin: auto !important;\r\n}\r\n\r\n.row {\r\n margin-left: 0 !important;\r\n margin-right: 0 !important;\r\n}\r\n\r\n.wrapper {\r\n margin: auto;\r\n width: 484px;\r\n height: 760px;\r\n text-align: center;\r\n padding: 20px 80px 80px 80px;\r\n box-sizing: border-box;\r\n border-radius: 5px;\r\n background-color: #ffffff !important;\r\n background-color: var(--transparent);\r\n box-shadow: 0 2px 6px 0 rgba(176, 186, 197, 0.6);\r\n z-index: 10;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n margin-top: 60px;\r\n}\r\n\r\n.wrapper input {\r\n width: 100%;\r\n height: 55px;\r\n border-radius: 5px;\r\n border: solid 1px #ccd2d5;\r\n margin-bottom: 20px;\r\n background-color: transparent;\r\n padding-left: 57.5px;\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d;\r\n outline: none !important;\r\n}\r\n\r\n.wrapper input:last-of-type {\r\n margin-top: 0px;\r\n}\r\n\r\n.wrapper img {\r\n width: 75px;\r\n}\r\n\r\n.wrapper input:focus {\r\n border: solid 1px rgb(24, 115, 177);\r\n}\r\n\r\n.control-wrapper {\r\n text-align: left;\r\n}\r\n\r\n.input-password,\r\n.input-username {\r\n position: relative;\r\n}\r\n\r\n.input-password:after,\r\n.input-username:after {\r\n background: url('icon-password@3x.png');\r\n content: \"\";\r\n width: 22px;\r\n height: 23px;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n position: absolute;\r\n left: 18px;\r\n top: 16.5px;\r\n}\r\n\r\n.input-username:after {\r\n background-image: url('icon-username@3x.png');\r\n}\r\n\r\ninput:-webkit-autofill {\r\n -webkit-box-shadow: 0 0 0px 1000px white inset;\r\n}\r\n\r\n.input-username {\r\n margin-top: 30px !important;\r\n}\r\n\r\n\r\nh1,\r\nspan {\r\n font-family: \"robotoregular\";\r\n font-size: 20px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n /*letter-spacing: 4px;*/\r\n text-align: center;\r\n color: #313541;\r\n}\r\n\r\nh1 span {\r\n font-family: \"robotomedium\";\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n width: 18px;\r\n height: 100%;\r\n margin: 0 !important;\r\n}\r\n\r\n.sided {\r\n height: 30px;\r\n display: inline-table;\r\n}\r\n\r\n.sided * {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.sided p {\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #81898c;\r\n margin: 0 !important;\r\n padding-left: 15px !important;\r\n}\r\n\r\n.login button {\r\n background-color: rgb(24, 115, 177);\r\n height: 55px;\r\n border-radius: 5px;\r\n width: 100%;\r\n font-family: \"robotoregular\" !important;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: center;\r\n border: 0 !important;\r\n color: #ffffff;\r\n margin-top: 50px;\r\n cursor: pointer;\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n display: none;\r\n}\r\n\r\ninput[type=\"checkbox\"] ~ label {\r\n display: inline-block;\r\n padding: 0 0 0 0px;\r\n height: 19px;\r\n width: 19px;\r\n background-size: contain;\r\n margin-top: 4px;\r\n cursor: pointer;\r\n border-radius: 3px;\r\n border: solid 1px #ccd2d5;\r\n}\r\n\r\ninput[type=\"checkbox\"]:checked ~ label {\r\n background-size: 13px 10px;\r\n background-position: center;\r\n}\r\n\r\n.options {\r\n margin-top: 30px;\r\n}\r\n\r\n.options a,\r\n.options a:hover,\r\n.options a:visited {\r\n font-family: \"robotoregular\";\r\n font-size: 12px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: left;\r\n cursor: pointer;\r\n text-decoration: none !important;\r\n color: #81898c;\r\n}\r\n\r\n.options a:first-child {\r\n float: left;\r\n}\r\n\r\n.options a:last-child {\r\n float: right;\r\n}\r\n\r\n.inp-container {\r\n margin-bottom: 0 !important;\r\n}\r\n\r\n#clients {\r\n margin-top: 250px;\r\n text-align: center;\r\n margin-bottom: 70px;\r\n}\r\n\r\n.col {\r\n height: 252px;\r\n}\r\n\r\n#clients .logo {\r\n background-size: contain;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n margin: auto;\r\n height: 252px;\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n::-webkit-input-placeholder {\r\n /* Chrome/Opera/Safari */\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n::-moz-placeholder {\r\n /* Firefox 19+ */\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n:-ms-input-placeholder {\r\n /* IE 10+ */\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n:-moz-placeholder {\r\n /* Firefox 18- */\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n@media screen and (max-width: 1200px) {\r\n .logo {\r\n width: 100%;\r\n margin-bottom: 50px !important;\r\n }\r\n\r\n #clients {\r\n margin-top: 150px !important;\r\n }\r\n}\r\n\r\n.unauthorize-message {\r\n padding: 20px;\r\n background-color: #d0021b;\r\n color: white;\r\n text-align: center;\r\n font-family: \"robotoregular\" !important;\r\n}\r\n\r\n.error-messages {\r\n /*height:35px;*/\r\n padding-top: 10px;\r\n}\r\n\r\n.error-messages p {\r\n font-family: \"robotoregular\";\r\n font-size: 14px;\r\n font-weight: 500;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: #e34c4c;\r\n}\r\n\r\nh1{\r\n line-height: normal !important;\r\n padding: 0 !important;\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/login-views/login-v1/login.component.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"body {\\r\\n background-color: #f8f8f8;\\r\\n position: relative;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.header-img{\\r\\n margin: 30px !important;\\r\\n width:215px !important;\\r\\n}\\r\\n\\r\\n.col-lg-1,\\r\\n.col-lg-10,\\r\\n.col-lg-11,\\r\\n.col-lg-12,\\r\\n.col-lg-2,\\r\\n.col-lg-3,\\r\\n.col-lg-4,\\r\\n.col-lg-5,\\r\\n.col-lg-6,\\r\\n.col-lg-7,\\r\\n.col-lg-8,\\r\\n.col-lg-9,\\r\\n.col-md-1,\\r\\n.col-md-10,\\r\\n.col-md-11,\\r\\n.col-md-12,\\r\\n.col-md-2,\\r\\n.col-md-3,\\r\\n.col-md-4,\\r\\n.col-md-5,\\r\\n.col-md-6,\\r\\n.col-md-7,\\r\\n.col-md-8,\\r\\n.col-md-9,\\r\\n.col-sm-1,\\r\\n.col-sm-10,\\r\\n.col-sm-11,\\r\\n.col-sm-12,\\r\\n.col-sm-2,\\r\\n.col-sm-3,\\r\\n.col-sm-4,\\r\\n.col-sm-5,\\r\\n.col-sm-6,\\r\\n.col-sm-7,\\r\\n.col-sm-8,\\r\\n.col-sm-9,\\r\\n.col-xs-1,\\r\\n.col-xs-10,\\r\\n.col-xs-11,\\r\\n.col-xs-12,\\r\\n.col-xs-2,\\r\\n.col-xs-3,\\r\\n.col-xs-4,\\r\\n.col-xs-5,\\r\\n.col-xs-6,\\r\\n.col-xs-7,\\r\\n.col-xs-8,\\r\\n.col-xs-9 {\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.login-container {\\r\\n margin: auto !important;\\r\\n}\\r\\n\\r\\n.row {\\r\\n margin-left: 0 !important;\\r\\n margin-right: 0 !important;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n margin: auto;\\r\\n width: 484px;\\r\\n height: 760px;\\r\\n text-align: center;\\r\\n padding: 20px 80px 80px 80px;\\r\\n box-sizing: border-box;\\r\\n border-radius: 5px;\\r\\n background-color: #ffffff !important;\\r\\n background-color: var(--transparent);\\r\\n box-shadow: 0 2px 6px 0 rgba(176, 186, 197, 0.6);\\r\\n z-index: 10;\\r\\n top: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n margin-top: 60px;\\r\\n}\\r\\n\\r\\n.wrapper input {\\r\\n width: 100%;\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n border: solid 1px #ccd2d5;\\r\\n margin-bottom: 20px;\\r\\n background-color: transparent;\\r\\n padding-left: 57.5px;\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d;\\r\\n outline: none !important;\\r\\n}\\r\\n\\r\\n.wrapper input:last-of-type {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.wrapper img {\\r\\n width: 75px;\\r\\n}\\r\\n\\r\\n.wrapper input:focus {\\r\\n border: solid 1px rgb(24, 115, 177);\\r\\n}\\r\\n\\r\\n.control-wrapper {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.input-password,\\r\\n.input-username {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.input-password:after,\\r\\n.input-username:after {\\r\\n background: url(../../../../assets/css/images/platform/icon-password@3x.png);\\r\\n content: \\\"\\\";\\r\\n width: 22px;\\r\\n height: 23px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n position: absolute;\\r\\n left: 18px;\\r\\n top: 16.5px;\\r\\n}\\r\\n\\r\\n.input-username:after {\\r\\n background-image: url(../../../../assets/css/images/platform/icon-username@3x.png);\\r\\n}\\r\\n\\r\\ninput:-webkit-autofill {\\r\\n -webkit-box-shadow: 0 0 0px 1000px white inset;\\r\\n}\\r\\n\\r\\n.input-username {\\r\\n margin-top: 30px !important;\\r\\n}\\r\\n\\r\\n\\r\\nh1,\\r\\nspan {\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 20px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n /*letter-spacing: 4px;*/\\r\\n text-align: center;\\r\\n color: #313541;\\r\\n}\\r\\n\\r\\nh1 span {\\r\\n font-family: \\\"robotomedium\\\";\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] {\\r\\n width: 18px;\\r\\n height: 100%;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.sided {\\r\\n height: 30px;\\r\\n display: inline-table;\\r\\n}\\r\\n\\r\\n.sided * {\\r\\n display: table-cell;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.sided p {\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #81898c;\\r\\n margin: 0 !important;\\r\\n padding-left: 15px !important;\\r\\n}\\r\\n\\r\\n.login button {\\r\\n background-color: rgb(24, 115, 177);\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n width: 100%;\\r\\n font-family: \\\"robotoregular\\\" !important;\\r\\n font-size: 14px;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n border: 0 !important;\\r\\n color: #ffffff;\\r\\n margin-top: 50px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] ~ label {\\r\\n display: inline-block;\\r\\n padding: 0 0 0 0px;\\r\\n height: 19px;\\r\\n width: 19px;\\r\\n background-size: contain;\\r\\n margin-top: 4px;\\r\\n cursor: pointer;\\r\\n border-radius: 3px;\\r\\n border: solid 1px #ccd2d5;\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"]:checked ~ label {\\r\\n background-size: 13px 10px;\\r\\n background-position: center;\\r\\n}\\r\\n\\r\\n.options {\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\n.options a,\\r\\n.options a:hover,\\r\\n.options a:visited {\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 12px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: left;\\r\\n cursor: pointer;\\r\\n text-decoration: none !important;\\r\\n color: #81898c;\\r\\n}\\r\\n\\r\\n.options a:first-child {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.options a:last-child {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.inp-container {\\r\\n margin-bottom: 0 !important;\\r\\n}\\r\\n\\r\\n#clients {\\r\\n margin-top: 250px;\\r\\n text-align: center;\\r\\n margin-bottom: 70px;\\r\\n}\\r\\n\\r\\n.col {\\r\\n height: 252px;\\r\\n}\\r\\n\\r\\n#clients .logo {\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n margin: auto;\\r\\n height: 252px;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n::-webkit-input-placeholder {\\r\\n /* Chrome/Opera/Safari */\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n::-moz-placeholder {\\r\\n /* Firefox 19+ */\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-ms-input-placeholder {\\r\\n /* IE 10+ */\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-moz-placeholder {\\r\\n /* Firefox 18- */\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n@media screen and (max-width: 1200px) {\\r\\n .logo {\\r\\n width: 100%;\\r\\n margin-bottom: 50px !important;\\r\\n }\\r\\n\\r\\n #clients {\\r\\n margin-top: 150px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.unauthorize-message {\\r\\n padding: 20px;\\r\\n background-color: #d0021b;\\r\\n color: white;\\r\\n text-align: center;\\r\\n font-family: \\\"robotoregular\\\" !important;\\r\\n}\\r\\n\\r\\n.error-messages {\\r\\n /*height:35px;*/\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.error-messages p {\\r\\n font-family: \\\"robotoregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: 500;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n color: #e34c4c;\\r\\n}\\r\\n\\r\\nh1{\\r\\n line-height: normal !important;\\r\\n padding: 0 !important;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body {\r\n background-color: #f8f8f8;\r\n position: relative;\r\n margin: 0 !important;\r\n}\r\n\r\n.header-img{\r\n margin: 30px 30px 24px 30px !important;\r\n width:73px !important;\r\n}\r\n\r\n.under-img,.under-img span{\r\n font-family: 'asapregular';\r\n font-size: 35px;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: 3.98px;\r\n text-align: center;\r\n color: #313541;\r\n margin-bottom: 75px;\r\n}\r\n\r\n.under-img span{\r\n font-weight: 600;\r\n}\r\n\r\n.col-lg-1,\r\n.col-lg-10,\r\n.col-lg-11,\r\n.col-lg-12,\r\n.col-lg-2,\r\n.col-lg-3,\r\n.col-lg-4,\r\n.col-lg-5,\r\n.col-lg-6,\r\n.col-lg-7,\r\n.col-lg-8,\r\n.col-lg-9,\r\n.col-md-1,\r\n.col-md-10,\r\n.col-md-11,\r\n.col-md-12,\r\n.col-md-2,\r\n.col-md-3,\r\n.col-md-4,\r\n.col-md-5,\r\n.col-md-6,\r\n.col-md-7,\r\n.col-md-8,\r\n.col-md-9,\r\n.col-sm-1,\r\n.col-sm-10,\r\n.col-sm-11,\r\n.col-sm-12,\r\n.col-sm-2,\r\n.col-sm-3,\r\n.col-sm-4,\r\n.col-sm-5,\r\n.col-sm-6,\r\n.col-sm-7,\r\n.col-sm-8,\r\n.col-sm-9,\r\n.col-xs-1,\r\n.col-xs-10,\r\n.col-xs-11,\r\n.col-xs-12,\r\n.col-xs-2,\r\n.col-xs-3,\r\n.col-xs-4,\r\n.col-xs-5,\r\n.col-xs-6,\r\n.col-xs-7,\r\n.col-xs-8,\r\n.col-xs-9 {\r\n padding: 0 !important;\r\n}\r\n\r\n.login-container {\r\n margin: auto !important;\r\n height: 100vh;\r\n}\r\n\r\n.row {\r\n margin-left: 0 !important;\r\n margin-right: 0 !important;\r\n}\r\n\r\n.wrapper {\r\n margin: auto;\r\n width: 484px;\r\n text-align: center;\r\n padding: 40px 80px 50px 80px;\r\n box-sizing: border-box;\r\n border-radius: 5px;\r\n background-color: #ffffff !important;\r\n box-shadow: 0 2px 6px 0 rgb(176 186 197 / 60%);\r\n z-index: 10;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n height: 690px;\r\n position: absolute;\r\n vertical-align: middle;\r\n}\r\n\r\n.wrapper input {\r\n width: 100%;\r\n height: 55px;\r\n border-radius: 5px;\r\n border: solid 1px #ccd2d5;\r\n margin-bottom: 20px;\r\n background-color: transparent;\r\n padding-left: 57.5px;\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d;\r\n outline: none !important;\r\n}\r\n\r\ninput:focus{\r\n border-color: #447695 !important;\r\n}\r\n\r\n.wrapper input:last-of-type {\r\n margin-top: 0px;\r\n}\r\n\r\n.wrapper img {\r\n width: 75px;\r\n}\r\n\r\n.wrapper input:focus {\r\n border: solid 1px rgb(24, 115, 177);\r\n}\r\n\r\n.control-wrapper {\r\n text-align: left;\r\n}\r\n\r\n.input-password,\r\n.input-username {\r\n position: relative;\r\n}\r\n\r\n.input-password:after,\r\n.input-username:after {\r\n background: url('icon-password@3x.png');\r\n content: \"\";\r\n width: 22px;\r\n height: 23px;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n position: absolute;\r\n left: 18px;\r\n top: 16.5px;\r\n}\r\n\r\n.input-username:after {\r\n background-image: url('icon-username@3x.png');\r\n}\r\n\r\ninput:-webkit-autofill {\r\n -webkit-box-shadow: 0 0 0px 1000px white inset;\r\n}\r\n\r\n.input-username {\r\n margin-top: 30px !important;\r\n}\r\n\r\n\r\nh1,\r\nspan {\r\n font-family: \"asapregular\";\r\n font-size: 20px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n /*letter-spacing: 4px;*/\r\n text-align: center;\r\n color: #313541;\r\n}\r\n\r\nh1 span {\r\n font-family: \"asapmedium\";\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n width: 18px;\r\n height: 100%;\r\n margin: 0 !important;\r\n}\r\n\r\n.sided {\r\n height: 30px;\r\n display: inline-table;\r\n table-layout: fixed;\r\n width: 100%;\r\n text-align: left;\r\n}\r\n\r\n.sided * {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.sided input{\r\n display: none;\r\n}\r\n\r\n.sided label{\r\n width: 19px;\r\n}\r\n\r\n.sided p {\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #81898c;\r\n border-color: #ccd2d5;\r\n margin: 0 !important;\r\n padding-left: 12px !important;\r\n width: 100%;\r\n}\r\n\r\n.login button {\r\n background-color: #447695;\r\n height: 55px;\r\n border-radius: 5px;\r\n width: 100%;\r\n font-family: \"asapregular\" !important;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: center;\r\n border: 0 !important;\r\n color: #ffffff;\r\n cursor: pointer;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nlabel input {\r\n display: none; /* Hide the default checkbox */\r\n }\r\n \r\n /* Style the artificial checkbox */\r\n label span {\r\n height: 19px;\r\n width: 19px;\r\n border: 1px solid #ccd2d5;\r\n display: inline-block;\r\n position: relative;\r\n border-radius: 3px;\r\n cursor: pointer;\r\n }\r\n \r\n /* Style its checked state...with a ticked icon */\r\n [type=checkbox]:checked + span:before {\r\n content: \"\";\r\n width: 14px;\r\n height: 9px;\r\n position: absolute;\r\n top: 6px;\r\n left: 2px;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n background-image: url('cb-check.png');\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n.options {\r\n margin-top: 30px;\r\n}\r\n\r\n.options a,\r\n.options a:hover,\r\n.options a:visited {\r\n font-family: \"asapregular\";\r\n font-size: 12px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: left;\r\n cursor: pointer;\r\n text-decoration: none !important;\r\n color: #81898c;\r\n}\r\n\r\n.options a:first-child {\r\n float: left;\r\n}\r\n\r\n.options a:last-child {\r\n float: right;\r\n}\r\n\r\n.inp-container {\r\n margin-bottom: 0 !important;\r\n}\r\n\r\n#clients {\r\n margin-top: 250px;\r\n text-align: center;\r\n margin-bottom: 70px;\r\n}\r\n\r\n.col {\r\n height: 252px;\r\n}\r\n\r\n#clients .logo {\r\n background-size: contain;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n margin: auto;\r\n height: 252px;\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n::-webkit-input-placeholder {\r\n /* Chrome/Opera/Safari */\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n::-moz-placeholder {\r\n /* Firefox 19+ */\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n:-ms-input-placeholder {\r\n /* IE 10+ */\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n:-moz-placeholder {\r\n /* Firefox 18- */\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #3d464d !important;\r\n}\r\n\r\n@media screen and (max-width: 1200px) {\r\n .logo {\r\n width: 100%;\r\n margin-bottom: 50px !important;\r\n }\r\n\r\n #clients {\r\n margin-top: 150px !important;\r\n }\r\n}\r\n\r\n.unauthorize-message {\r\n padding: 20px;\r\n background-color: #d0021b;\r\n color: white;\r\n text-align: center;\r\n font-family: \"asapregular\" !important;\r\n}\r\n\r\n.error-messages {\r\n /*height:35px;*/\r\n padding-top: 10px;\r\n}\r\n\r\n.error-messages p {\r\n font-family: \"asapregular\";\r\n font-size: 14px;\r\n font-weight: 500;\r\n font-style: normal;\r\n font-stretch: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: #e34c4c;\r\n}\r\n\r\nh1{\r\n line-height: normal !important;\r\n padding: 0 !important;\r\n}\r\n\r\nbutton:disabled {\r\n background-color: #bebbbb !important;\r\n }\r\n\r\n .btn-loader{\r\n position: relative;\r\n margin-top: 55px;\r\n }\r\n .btn-loader img{\r\n position: absolute;\r\n right: 10px;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n height: 30px;\r\n width: 30px;\r\n }`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/login-views/login-v2/login-v2.component.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"body {\\r\\n background-color: #f8f8f8;\\r\\n position: relative;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.header-img{\\r\\n margin: 30px 30px 24px 30px !important;\\r\\n width:73px !important;\\r\\n}\\r\\n\\r\\n.under-img,.under-img span{\\r\\n font-family: 'asapregular';\\r\\n font-size: 35px;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: 3.98px;\\r\\n text-align: center;\\r\\n color: #313541;\\r\\n margin-bottom: 75px;\\r\\n}\\r\\n\\r\\n.under-img span{\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.col-lg-1,\\r\\n.col-lg-10,\\r\\n.col-lg-11,\\r\\n.col-lg-12,\\r\\n.col-lg-2,\\r\\n.col-lg-3,\\r\\n.col-lg-4,\\r\\n.col-lg-5,\\r\\n.col-lg-6,\\r\\n.col-lg-7,\\r\\n.col-lg-8,\\r\\n.col-lg-9,\\r\\n.col-md-1,\\r\\n.col-md-10,\\r\\n.col-md-11,\\r\\n.col-md-12,\\r\\n.col-md-2,\\r\\n.col-md-3,\\r\\n.col-md-4,\\r\\n.col-md-5,\\r\\n.col-md-6,\\r\\n.col-md-7,\\r\\n.col-md-8,\\r\\n.col-md-9,\\r\\n.col-sm-1,\\r\\n.col-sm-10,\\r\\n.col-sm-11,\\r\\n.col-sm-12,\\r\\n.col-sm-2,\\r\\n.col-sm-3,\\r\\n.col-sm-4,\\r\\n.col-sm-5,\\r\\n.col-sm-6,\\r\\n.col-sm-7,\\r\\n.col-sm-8,\\r\\n.col-sm-9,\\r\\n.col-xs-1,\\r\\n.col-xs-10,\\r\\n.col-xs-11,\\r\\n.col-xs-12,\\r\\n.col-xs-2,\\r\\n.col-xs-3,\\r\\n.col-xs-4,\\r\\n.col-xs-5,\\r\\n.col-xs-6,\\r\\n.col-xs-7,\\r\\n.col-xs-8,\\r\\n.col-xs-9 {\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.login-container {\\r\\n margin: auto !important;\\r\\n height: 100vh;\\r\\n}\\r\\n\\r\\n.row {\\r\\n margin-left: 0 !important;\\r\\n margin-right: 0 !important;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n margin: auto;\\r\\n width: 484px;\\r\\n text-align: center;\\r\\n padding: 40px 80px 50px 80px;\\r\\n box-sizing: border-box;\\r\\n border-radius: 5px;\\r\\n background-color: #ffffff !important;\\r\\n box-shadow: 0 2px 6px 0 rgb(176 186 197 / 60%);\\r\\n z-index: 10;\\r\\n top: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n height: 690px;\\r\\n position: absolute;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.wrapper input {\\r\\n width: 100%;\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n border: solid 1px #ccd2d5;\\r\\n margin-bottom: 20px;\\r\\n background-color: transparent;\\r\\n padding-left: 57.5px;\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d;\\r\\n outline: none !important;\\r\\n}\\r\\n\\r\\ninput:focus{\\r\\n border-color: #447695 !important;\\r\\n}\\r\\n\\r\\n.wrapper input:last-of-type {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.wrapper img {\\r\\n width: 75px;\\r\\n}\\r\\n\\r\\n.wrapper input:focus {\\r\\n border: solid 1px rgb(24, 115, 177);\\r\\n}\\r\\n\\r\\n.control-wrapper {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.input-password,\\r\\n.input-username {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.input-password:after,\\r\\n.input-username:after {\\r\\n background: url(../../../../assets/css/images/platform/icon-password@3x.png);\\r\\n content: \\\"\\\";\\r\\n width: 22px;\\r\\n height: 23px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n position: absolute;\\r\\n left: 18px;\\r\\n top: 16.5px;\\r\\n}\\r\\n\\r\\n.input-username:after {\\r\\n background-image: url(../../../../assets/css/images/platform/icon-username@3x.png);\\r\\n}\\r\\n\\r\\ninput:-webkit-autofill {\\r\\n -webkit-box-shadow: 0 0 0px 1000px white inset;\\r\\n}\\r\\n\\r\\n.input-username {\\r\\n margin-top: 30px !important;\\r\\n}\\r\\n\\r\\n\\r\\nh1,\\r\\nspan {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 20px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n /*letter-spacing: 4px;*/\\r\\n text-align: center;\\r\\n color: #313541;\\r\\n}\\r\\n\\r\\nh1 span {\\r\\n font-family: \\\"asapmedium\\\";\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] {\\r\\n width: 18px;\\r\\n height: 100%;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.sided {\\r\\n height: 30px;\\r\\n display: inline-table;\\r\\n table-layout: fixed;\\r\\n width: 100%;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.sided * {\\r\\n display: table-cell;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.sided input{\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.sided label{\\r\\n width: 19px;\\r\\n}\\r\\n\\r\\n.sided p {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #81898c;\\r\\n border-color: #ccd2d5;\\r\\n margin: 0 !important;\\r\\n padding-left: 12px !important;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.login button {\\r\\n background-color: #447695;\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n width: 100%;\\r\\n font-family: \\\"asapregular\\\" !important;\\r\\n font-size: 14px;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n border: 0 !important;\\r\\n color: #ffffff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nlabel input {\\r\\n display: none; /* Hide the default checkbox */\\r\\n }\\r\\n \\r\\n /* Style the artificial checkbox */\\r\\n label span {\\r\\n height: 19px;\\r\\n width: 19px;\\r\\n border: 1px solid #ccd2d5;\\r\\n display: inline-block;\\r\\n position: relative;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n }\\r\\n \\r\\n /* Style its checked state...with a ticked icon */\\r\\n [type=checkbox]:checked + span:before {\\r\\n content: \\\"\\\";\\r\\n width: 14px;\\r\\n height: 9px;\\r\\n position: absolute;\\r\\n top: 6px;\\r\\n left: 2px;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n background-image: url(../../../../assets/css/images/platform/cb-check.png);\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n.options {\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\n.options a,\\r\\n.options a:hover,\\r\\n.options a:visited {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 12px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: left;\\r\\n cursor: pointer;\\r\\n text-decoration: none !important;\\r\\n color: #81898c;\\r\\n}\\r\\n\\r\\n.options a:first-child {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.options a:last-child {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.inp-container {\\r\\n margin-bottom: 0 !important;\\r\\n}\\r\\n\\r\\n#clients {\\r\\n margin-top: 250px;\\r\\n text-align: center;\\r\\n margin-bottom: 70px;\\r\\n}\\r\\n\\r\\n.col {\\r\\n height: 252px;\\r\\n}\\r\\n\\r\\n#clients .logo {\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n margin: auto;\\r\\n height: 252px;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n::-webkit-input-placeholder {\\r\\n /* Chrome/Opera/Safari */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n::-moz-placeholder {\\r\\n /* Firefox 19+ */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-ms-input-placeholder {\\r\\n /* IE 10+ */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-moz-placeholder {\\r\\n /* Firefox 18- */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n@media screen and (max-width: 1200px) {\\r\\n .logo {\\r\\n width: 100%;\\r\\n margin-bottom: 50px !important;\\r\\n }\\r\\n\\r\\n #clients {\\r\\n margin-top: 150px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.unauthorize-message {\\r\\n padding: 20px;\\r\\n background-color: #d0021b;\\r\\n color: white;\\r\\n text-align: center;\\r\\n font-family: \\\"asapregular\\\" !important;\\r\\n}\\r\\n\\r\\n.error-messages {\\r\\n /*height:35px;*/\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.error-messages p {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: 500;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n color: #e34c4c;\\r\\n}\\r\\n\\r\\nh1{\\r\\n line-height: normal !important;\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\nbutton:disabled {\\r\\n background-color: #bebbbb !important;\\r\\n }\\r\\n\\r\\n .btn-loader{\\r\\n position: relative;\\r\\n margin-top: 55px;\\r\\n }\\r\\n .btn-loader img{\\r\\n position: absolute;\\r\\n right: 10px;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n margin: auto;\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n }\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n:host {\n display: block;\n width: 95%;\n margin-bottom: 10px;\n}\n:host .q-icon {\n font-style: normal;\n font-size: 12px;\n}\n:host .q-remove-icon::before {\n content: \"❌\";\n}\n:host .q-arrow-icon-button {\n float: left;\n margin: 4px 6px 4px 0;\n transform: rotate(90deg);\n transition: linear 0.25s transform;\n cursor: pointer;\n}\n:host .q-arrow-icon-button.q-collapsed {\n transform: rotate(0);\n}\n:host .q-arrow-icon::before {\n content: \"▶\";\n}\n:host .q-add-icon {\n color: #555;\n}\n:host .q-remove-button {\n color: #B3415D;\n width: 31px;\n}\n:host .q-switch-group, :host .q-button-group {\n font-family: \"Lucida Grande\", Tahoma, Verdana, sans-serif;\n overflow: hidden;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n:host .q-switch-group {\n padding-left: 20px;\n}\n:host .q-button-group {\n padding-right: 20px;\n}\n:host .q-right-align {\n float: right;\n}\n:host .q-button {\n margin-left: 8px;\n padding: 0 8px;\n background-color: white;\n}\n:host .q-button:disabled {\n display: none;\n}\n:host .q-control-size {\n display: inline-block;\n vertical-align: top;\n padding-right: 10px;\n}\n:host .q-input-control, :host .q-operator-control, :host .q-field-control, :host .q-entity-control {\n display: inline-block;\n padding: 5px 8px;\n color: #555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-sizing: border-box;\n width: auto;\n}\n:host .q-input-control:disabled, :host .q-operator-control:disabled, :host .q-field-control:disabled, :host .q-entity-control:disabled {\n border-color: transparent;\n}\n:host .q-operator-control, :host .q-field-control, :host .q-entity-control, :host .q-input-control:not([type=checkbox]) {\n min-height: 32px;\n -webkit-appearance: none;\n}\n:host .q-switch-label, :host .q-button {\n float: left;\n margin-bottom: 0;\n font-size: 8px;\n line-height: 21px;\n font-weight: normal;\n text-align: center;\n text-shadow: none;\n border: 1px solid rgba(0, 0, 0, 0.2);\n box-sizing: border-box;\n font-family: \"robotoregular\";\n}\n:host .q-switch-label:hover, :host .q-button:hover {\n cursor: pointer;\n background-color: #F0F0F0;\n}\n:host .q-button {\n font-weight: 600 !important;\n text-transform: uppercase;\n font-stretch: normal;\n font-style: normal;\n line-height: normal !important;\n letter-spacing: normal !important;\n color: #282828 !important;\n border-radius: 3px !important;\n border: solid 1px #e5eaed !important;\n padding-bottom: 2px;\n}\n:host .q-switch-label {\n background-color: #e5eaed;\n padding: 0 8px;\n height: 21px;\n color: #81898c;\n}\n:host .q-switch-label-and {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n:host .q-switch-label-or {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n:host .q-switch-radio {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n width: 1px;\n border: 0;\n overflow: hidden;\n}\n:host .q-switch-radio:checked + .q-switch-label {\n border: 1px solid rgb(97, 158, 215);\n background: #1873b1 !important;\n color: #ffffff;\n}\n:host .q-switch-radio:disabled + .q-switch-label {\n display: none;\n}\n:host .q-switch-radio:checked:disabled + .q-switch-label {\n display: initial;\n color: initial;\n cursor: default;\n border-color: transparent;\n}\n:host .q-invalid-ruleset {\n border: 1px solid rgba(179, 65, 93, 0.5) !important;\n background: rgba(179, 65, 93, 0.1) !important;\n}\n:host .q-empty-warning {\n color: rgb(141, 37, 46);\n text-align: center;\n}\n:host .q-ruleset {\n border: 1px solid #CCC;\n}\n:host .q-rule {\n border: 1px solid #CCC;\n background: white;\n}\n:host .q-transition {\n transition: all 0.1s ease-in-out;\n}\n:host .q-tree-container {\n width: 100%;\n transition: ease-in 0.25s max-height;\n}\n:host .q-tree-container.q-collapsed {\n max-height: 0 !important;\n}\n:host .q-tree {\n list-style: none;\n margin: 4px 0 2px;\n}\n:host .q-row {\n padding: 6px 8px;\n margin-top: 6px;\n border-radius: 3px;\n border: solid 1px #e5eaed;\n width: 90%;\n margin-left: 5%;\n margin-bottom: 10px;\n}\n:host .q-connector {\n position: relative;\n}\n:host .q-connector::before {\n top: -5px;\n border-width: 0 0 2px 2px;\n}\n:host .q-connector::after {\n border-width: 0 0 0 2px;\n top: 50%;\n}\n:host .q-connector::before, :host .q-connector::after {\n content: \"\";\n left: -12px;\n border-color: #CCC;\n border-style: solid;\n width: 9px;\n height: calc(50% + 6px);\n position: absolute;\n}\n:host .q-connector:last-child::after {\n content: none;\n}\n:host .q-inline-block-display {\n display: inline-block;\n vertical-align: top;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/controls/sem-query-builder/query-builder.component.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAAhB;EACE,cAAA;EACA,UAAA;EACA,mBAAA;AAEF;AAAE;EACE,kBAAA;EACA,eAAA;AAEJ;AAEI;EACE,YAAA;AAAN;AAIE;EACE,WAAA;EACA,qBAAA;EACA,wBAAA;EACA,kCAAA;EACA,eAAA;AAFJ;AAII;EACE,oBAAA;AAFN;AAOI;EACE,YAAA;AALN;AASE;EACE,WAAA;AAPJ;AAcE;EACE,cAAA;EACA,WAAA;AAZJ;AAeE;EACE,yDAAA;EACA,gBAAA;EACA,iBAAA;EACA,oBAAA;AAbJ;AAgBE;EACE,kBAAA;AAdJ;AAiBE;EACE,mBAAA;AAfJ;AAkBE;EACE,YAAA;AAhBJ;AAmBE;EACE,gBAAA;EACA,cAAA;EACA,uBAAA;AAjBJ;AAmBI;EACE,aAAA;AAjBN;AAqBE;EACE,qBAAA;EACA,mBAAA;EACA,mBAAA;AAnBJ;AAsBE;EACE,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,sBAAA;EACA,sBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;EACA,WAAA;AApBJ;AAsBI;EACE,yBAAA;AApBN;AAwBE;EACE,gBAAA;EACA,wBAAA;AAtBJ;AAyBE;EACE,WAAA;EACA,gBAAA;EACA,cAAA;EACA,iBAAA;EACA,mBAAA;EACA,kBAAA;EACA,iBAAA;EACA,oCAAA;EACA,sBAAA;EACA,4BAAA;AAvBJ;AAyBI;EACE,eAAA;EACA,yBAAA;AAvBN;AA2BE;EACE,2BAAA;EACA,yBAAA;EACA,oBAAA;EACA,kBAAA;EACA,8BAAA;EACA,iCAAA;EACA,yBAAA;EACA,6BAAA;EACA,oCAAA;EACA,mBAAA;AAzBJ;AA4BE;EACE,yBAAA;EACA,cAAA;EACA,YAAA;EACA,cAAA;AA1BJ;AA6BE;EACE,8BAAA;EACA,2BAAA;AA3BJ;AA8BE;EACE,+BAAA;EACA,4BAAA;AA5BJ;AA+BE;EACE,kBAAA;EACA,sBAAA;EACA,WAAA;EACA,UAAA;EACA,SAAA;EACA,gBAAA;AA7BJ;AA+BI;EACE,mCAAA;EACA,8BAAA;EACA,cAAA;AA7BN;AAgCI;EACE,aAAA;AA9BN;AAiCI;EACE,gBAAA;EACA,cAAA;EACA,eAAA;EACA,yBAAA;AA/BN;AAmCE;EACE,mDAAA;EACA,6CAAA;AAjCJ;AAoCE;EACE,uBAAA;EACA,kBAAA;AAlCJ;AAqCE;EACE,sBAAA;AAnCJ;AAsCE;EACE,sBAAA;EACA,iBAAA;AApCJ;AAuCE;EAKE,gCAAA;AArCJ;AAwCE;EACE,WAAA;EAEA,oCAAA;AAvCJ;AAyCI;EACE,wBAAA;AAvCN;AA2CE;EACE,gBAAA;EACA,iBAAA;AAzCJ;AA4CE;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,yBAAA;EACA,UAAA;EACA,eAAA;EACA,mBAAA;AA1CJ;AA6CE;EACE,kBAAA;AA3CJ;AA6CI;EACE,SAAA;EACA,yBAAA;AA3CN;AA8CI;EACE,uBAAA;EACA,QAAA;AA5CN;AA+CI;EACE,WAAA;EACA,WAAA;EACA,kBAAA;EACA,mBAAA;EACA,UAAA;EACA,uBAAA;EACA,kBAAA;AA7CN;AAgDI;EACE,aAAA;AA9CN;AAkDE;EACE,qBAAA;EACA,mBAAA;AAhDJ\",\"sourcesContent\":[\":host {\\r\\n display: block;\\r\\n width: 95%;\\r\\n margin-bottom: 10px;\\r\\n\\r\\n .q-icon {\\r\\n font-style: normal;\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n .q-remove-icon {\\r\\n &::before {\\r\\n content: '❌'\\r\\n }\\r\\n }\\r\\n\\r\\n .q-arrow-icon-button {\\r\\n float: left;\\r\\n margin: 4px 6px 4px 0;\\r\\n transform: rotate(90deg);\\r\\n transition: linear 0.25s transform;\\r\\n cursor: pointer;\\r\\n\\r\\n &.q-collapsed {\\r\\n transform: rotate(0);\\r\\n }\\r\\n }\\r\\n\\r\\n .q-arrow-icon {\\r\\n &::before {\\r\\n content: '▶'\\r\\n }\\r\\n }\\r\\n\\r\\n .q-add-icon {\\r\\n color: #555;\\r\\n\\r\\n &::before {\\r\\n //content: '➕'\\r\\n }\\r\\n }\\r\\n\\r\\n .q-remove-button {\\r\\n color: #B3415D;\\r\\n width: 31px;\\r\\n }\\r\\n\\r\\n .q-switch-group, .q-button-group {\\r\\n font-family: \\\"Lucida Grande\\\", Tahoma, Verdana, sans-serif;\\r\\n overflow: hidden;\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n .q-switch-group {\\r\\n padding-left: 20px;\\r\\n }\\r\\n\\r\\n .q-button-group {\\r\\n padding-right: 20px;\\r\\n }\\r\\n\\r\\n .q-right-align {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n .q-button {\\r\\n margin-left: 8px;\\r\\n padding: 0 8px;\\r\\n background-color: white;\\r\\n\\r\\n &:disabled {\\r\\n display: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-control-size {\\r\\n display: inline-block;\\r\\n vertical-align: top;\\r\\n padding-right: 10px;\\r\\n }\\r\\n\\r\\n .q-input-control, .q-operator-control, .q-field-control, .q-entity-control {\\r\\n display: inline-block;\\r\\n padding: 5px 8px;\\r\\n color: #555;\\r\\n background-color: #fff;\\r\\n background-image: none;\\r\\n border: 1px solid #ccc;\\r\\n border-radius: 4px;\\r\\n box-sizing: border-box;\\r\\n width: auto;\\r\\n\\r\\n &:disabled {\\r\\n border-color: transparent;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-operator-control, .q-field-control, .q-entity-control, .q-input-control:not([type='checkbox']) {\\r\\n min-height: 32px;\\r\\n -webkit-appearance: none;\\r\\n }\\r\\n\\r\\n .q-switch-label, .q-button {\\r\\n float: left;\\r\\n margin-bottom: 0;\\r\\n font-size: 8px;\\r\\n line-height: 21px;\\r\\n font-weight: normal;\\r\\n text-align: center;\\r\\n text-shadow: none;\\r\\n border: 1px solid rgba(0, 0, 0, 0.2);\\r\\n box-sizing: border-box;\\r\\n font-family: 'robotoregular';\\r\\n\\r\\n &:hover {\\r\\n cursor: pointer;\\r\\n background-color: #F0F0F0;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-button {\\r\\n font-weight: 600 !important;\\r\\n text-transform: uppercase;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal !important;\\r\\n letter-spacing: normal !important;\\r\\n color: #282828 !important;\\r\\n border-radius: 3px !important;\\r\\n border: solid 1px #e5eaed !important;\\r\\n padding-bottom: 2px;\\r\\n }\\r\\n\\r\\n .q-switch-label {\\r\\n background-color: #e5eaed;\\r\\n padding: 0 8px;\\r\\n height: 21px;\\r\\n color: #81898c;\\r\\n }\\r\\n\\r\\n .q-switch-label-and {\\r\\n border-bottom-left-radius: 3px;\\r\\n border-top-left-radius: 3px;\\r\\n }\\r\\n\\r\\n .q-switch-label-or {\\r\\n border-bottom-right-radius: 3px;\\r\\n border-top-right-radius: 3px;\\r\\n }\\r\\n\\r\\n .q-switch-radio {\\r\\n position: absolute;\\r\\n clip: rect(0, 0, 0, 0);\\r\\n height: 1px;\\r\\n width: 1px;\\r\\n border: 0;\\r\\n overflow: hidden;\\r\\n\\r\\n &:checked + .q-switch-label {\\r\\n border: 1px solid rgb(97, 158, 215);\\r\\n background: #1873b1 !important;\\r\\n color: #ffffff;\\r\\n }\\r\\n\\r\\n &:disabled + .q-switch-label {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n &:checked:disabled + .q-switch-label {\\r\\n display: initial;\\r\\n color: initial;\\r\\n cursor: default;\\r\\n border-color: transparent;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-invalid-ruleset {\\r\\n border: 1px solid rgba(179, 65, 93, 0.5) !important;\\r\\n background: rgba(179, 65, 93, 0.1) !important;\\r\\n }\\r\\n\\r\\n .q-empty-warning {\\r\\n color: rgb(141, 37, 46);\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n .q-ruleset {\\r\\n border: 1px solid #CCC;\\r\\n }\\r\\n\\r\\n .q-rule {\\r\\n border: 1px solid #CCC;\\r\\n background: white;\\r\\n }\\r\\n\\r\\n .q-transition {\\r\\n -webkit-transition: all 0.1s ease-in-out;\\r\\n -moz-transition: all 0.1s ease-in-out;\\r\\n -ms-transition: all 0.1s ease-in-out;\\r\\n -o-transition: all 0.1s ease-in-out;\\r\\n transition: all 0.1s ease-in-out;\\r\\n }\\r\\n\\r\\n .q-tree-container {\\r\\n width: 100%;\\r\\n //overflow: hidden;\\r\\n transition: ease-in 0.25s max-height;\\r\\n\\r\\n &.q-collapsed {\\r\\n max-height: 0 !important;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-tree {\\r\\n list-style: none;\\r\\n margin: 4px 0 2px;\\r\\n }\\r\\n\\r\\n .q-row {\\r\\n padding: 6px 8px;\\r\\n margin-top: 6px;\\r\\n border-radius: 3px;\\r\\n border: solid 1px #e5eaed;\\r\\n width: 90%;\\r\\n margin-left: 5%;\\r\\n margin-bottom: 10px;\\r\\n }\\r\\n\\r\\n .q-connector {\\r\\n position: relative;\\r\\n\\r\\n &::before {\\r\\n top: -5px;\\r\\n border-width: 0 0 2px 2px;\\r\\n }\\r\\n\\r\\n &::after {\\r\\n border-width: 0 0 0 2px;\\r\\n top: 50%;\\r\\n }\\r\\n\\r\\n &::before, &::after {\\r\\n content: '';\\r\\n left: -12px;\\r\\n border-color: #CCC;\\r\\n border-style: solid;\\r\\n width: 9px;\\r\\n height: calc(50% + 6px);\\r\\n position: absolute;\\r\\n }\\r\\n\\r\\n &:last-child::after {\\r\\n content: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .q-inline-block-display {\\r\\n display: inline-block;\\r\\n vertical-align: top;\\r\\n } \\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.under-img {\n margin-bottom: 35px !important;\n}\n\n.header-img {\n width: 200px !important;\n margin-top: 15px !important;\n}\n\n.login button {\n background-color: #447695 !important;\n}\n\n.header-img {\n width: 200px !important;\n}\n\nbody {\n background-color: #f8f8f8;\n position: relative;\n margin: 0 !important;\n}\n\n.header-img {\n margin: 30px 30px 24px 30px;\n width: 73px;\n}\n\n.under-img, .under-img span {\n font-family: \"asapregular\";\n font-size: 26px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 2px;\n text-align: center;\n color: #313541;\n margin-bottom: 35px;\n}\n\n.under-img span {\n font-weight: 600;\n}\n\n.col-lg-1,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-md-1,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-sm-1,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-xs-1,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9 {\n padding: 0 !important;\n}\n\n.login-container {\n margin: auto !important;\n height: 100vh;\n}\n\n.row {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.wrapper {\n margin: auto;\n width: 484px;\n text-align: center;\n padding: 40px 80px 50px 80px;\n box-sizing: border-box;\n border-radius: 5px;\n background-color: #ffffff !important;\n box-shadow: 0 2px 6px 0 rgba(176, 186, 197, 0.6);\n z-index: 10;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n /*height: 780px;\n position: absolute;*/\n vertical-align: middle;\n}\n\n.wrapper input {\n width: 100%;\n height: 55px;\n border-radius: 5px;\n border: solid 1px #ccd2d5;\n margin-bottom: 20px;\n background-color: transparent;\n padding-left: 57.5px;\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #3d464d;\n outline: none !important;\n}\n\ninput:focus {\n border-color: #447695 !important;\n}\n\n.wrapper input:last-of-type {\n margin-top: 0px;\n}\n\n.wrapper img {\n width: 75px;\n}\n\n.wrapper input:focus {\n border: solid 1px rgb(24, 115, 177);\n}\n\n.control-wrapper {\n text-align: left;\n}\n\n.input-password,\n.input-username {\n position: relative;\n}\n\n.input-password:after,\n.input-username:after {\n background: url('icon-password@3x.png');\n content: \"\";\n width: 22px;\n height: 23px;\n background-repeat: no-repeat;\n background-size: contain;\n position: absolute;\n left: 18px;\n top: 16.5px;\n}\n\n.input-username:after {\n background-image: url('icon-username@3x.png');\n}\n\ninput:-webkit-autofill {\n -webkit-box-shadow: 0 0 0px 1000px white inset;\n}\n\n.input-username {\n margin-top: 30px !important;\n}\n\nh1,\nspan {\n font-family: \"asapregular\";\n font-size: 20px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n /*letter-spacing: 4px;*/\n text-align: center;\n color: #313541;\n}\n\nh1 span {\n font-family: \"asapmedium\";\n}\n\ninput[type=checkbox] {\n width: 18px;\n height: 100%;\n margin: 0 !important;\n}\n\n.sided {\n height: 30px;\n display: inline-table;\n table-layout: fixed;\n width: 100%;\n text-align: left;\n}\n\n.sided * {\n vertical-align: middle;\n}\n\n.sided input {\n display: none;\n}\n\n.sided label {\n width: 19px;\n}\n\n.sided .sided-child {\n margin-bottom: 10px;\n}\n\n.sided p {\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #81898c;\n border-color: #ccd2d5;\n margin: 0 !important;\n padding-left: 12px !important;\n width: 100%;\n display: inline;\n}\n\n.login button {\n background-color: #447695;\n height: 55px;\n border-radius: 5px;\n width: 100%;\n font-family: \"asapregular\" !important;\n font-size: 14px;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n border: 0 !important;\n color: #ffffff;\n cursor: pointer;\n}\n\nlabel input {\n display: none; /* Hide the default checkbox */\n}\n\n/* Style the artificial checkbox */\nlabel span {\n height: 19px;\n width: 19px;\n border: 1px solid #ccd2d5;\n display: inline-block;\n position: relative;\n border-radius: 3px;\n cursor: pointer;\n}\n\n/* Style its checked state...with a ticked icon */\n[type=checkbox]:checked + span:before {\n content: \"\";\n width: 14px;\n height: 9px;\n position: absolute;\n top: 6px;\n left: 2px;\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n background-image: url('cb-check.png');\n}\n\n.options {\n margin-top: 30px;\n display: flex;\n flex-direction: column;\n}\n\n.options a,\n.options a:hover,\n.options a:visited {\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: left;\n cursor: pointer;\n text-decoration: none !important;\n color: #81898c;\n}\n\n.options a {\n display: block;\n margin-bottom: 15px;\n}\n\n.forgot-username-label {\n margin-bottom: 10px;\n}\n\n.inp-container {\n margin-bottom: 0 !important;\n}\n\n#clients {\n margin-top: 250px;\n text-align: center;\n margin-bottom: 70px;\n}\n\n.newpassword-label {\n margin-bottom: 20px;\n}\n\n.col {\n height: 252px;\n}\n\n#clients .logo {\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin: auto;\n height: 252px;\n display: inline-block;\n vertical-align: middle;\n}\n\n::-webkit-input-placeholder {\n /* Chrome/Opera/Safari */\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #3d464d !important;\n}\n\n::-moz-placeholder {\n /* Firefox 19+ */\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #3d464d !important;\n}\n\n:-ms-input-placeholder {\n /* IE 10+ */\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #3d464d !important;\n}\n\n:-moz-placeholder {\n /* Firefox 18- */\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #3d464d !important;\n}\n\n@media screen and (max-width: 1200px) {\n .logo {\n width: 100%;\n margin-bottom: 50px !important;\n }\n #clients {\n margin-top: 150px !important;\n }\n}\n.unauthorize-message {\n padding: 20px;\n background-color: #d0021b;\n color: white;\n text-align: center;\n font-family: \"asapregular\" !important;\n}\n\n.error-messages {\n /*height:35px;*/\n padding-top: 10px;\n}\n\n.error-messages p {\n font-family: \"asapregular\";\n font-size: 14px;\n font-weight: 500;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n color: #e34c4c;\n}\n\nh1 {\n line-height: normal !important;\n padding: 0 !important;\n}\n\nbutton:disabled {\n background-color: #bebbbb !important;\n}\n\n.btn-loader {\n position: relative;\n margin-top: 55px;\n}\n\n.btn-loader img {\n position: absolute;\n right: 10px;\n top: 0;\n bottom: 0;\n margin: auto;\n height: 30px;\n width: 30px;\n}\n\n.alerts .login-close-alert {\n top: 38px !important;\n}\n\n.logos img {\n width: 350px !important;\n top: -25px !important;\n position: inherit;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/assets/configuration/login.scss\",\"webpack://./src/app/components/login-views/login-v3/login-v3.component.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"$highlightColor: #447695;\\r\\n$loginPageButtonColor: #447695;\\r\\n\\r\\n.under-img {\\r\\n margin-bottom: 35px !important;\\r\\n}\\r\\n\\r\\n.header-img {\\r\\n width: 200px !important;\\r\\n margin-top: 15px !important\\r\\n}\\r\\n\\r\\n.login button {\\r\\n background-color: $loginPageButtonColor !important;\\r\\n}\\r\\n\\r\\n.header-img{\\r\\n width: 200px !important;\\r\\n}\",\"@import \\\"../../../../assets/configuration/login.scss\\\";\\r\\n\\r\\n\\r\\nbody {\\r\\n background-color: #f8f8f8;\\r\\n position: relative;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.header-img{\\r\\n margin: 30px 30px 24px 30px;\\r\\n width:73px;\\r\\n}\\r\\n\\r\\n.under-img,.under-img span{\\r\\n font-family: 'asapregular';\\r\\n font-size: 26px;\\r\\n font-stretch: normal;\\r\\n font-style: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: 2px;\\r\\n text-align: center;\\r\\n color: #313541;\\r\\n margin-bottom: 35px;\\r\\n}\\r\\n\\r\\n.under-img span{\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.col-lg-1,\\r\\n.col-lg-10,\\r\\n.col-lg-11,\\r\\n.col-lg-12,\\r\\n.col-lg-2,\\r\\n.col-lg-3,\\r\\n.col-lg-4,\\r\\n.col-lg-5,\\r\\n.col-lg-6,\\r\\n.col-lg-7,\\r\\n.col-lg-8,\\r\\n.col-lg-9,\\r\\n.col-md-1,\\r\\n.col-md-10,\\r\\n.col-md-11,\\r\\n.col-md-12,\\r\\n.col-md-2,\\r\\n.col-md-3,\\r\\n.col-md-4,\\r\\n.col-md-5,\\r\\n.col-md-6,\\r\\n.col-md-7,\\r\\n.col-md-8,\\r\\n.col-md-9,\\r\\n.col-sm-1,\\r\\n.col-sm-10,\\r\\n.col-sm-11,\\r\\n.col-sm-12,\\r\\n.col-sm-2,\\r\\n.col-sm-3,\\r\\n.col-sm-4,\\r\\n.col-sm-5,\\r\\n.col-sm-6,\\r\\n.col-sm-7,\\r\\n.col-sm-8,\\r\\n.col-sm-9,\\r\\n.col-xs-1,\\r\\n.col-xs-10,\\r\\n.col-xs-11,\\r\\n.col-xs-12,\\r\\n.col-xs-2,\\r\\n.col-xs-3,\\r\\n.col-xs-4,\\r\\n.col-xs-5,\\r\\n.col-xs-6,\\r\\n.col-xs-7,\\r\\n.col-xs-8,\\r\\n.col-xs-9 {\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.login-container {\\r\\n margin: auto !important;\\r\\n height: 100vh;\\r\\n}\\r\\n\\r\\n.row {\\r\\n margin-left: 0 !important;\\r\\n margin-right: 0 !important;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n margin: auto;\\r\\n width: 484px;\\r\\n text-align: center;\\r\\n padding: 40px 80px 50px 80px;\\r\\n box-sizing: border-box;\\r\\n border-radius: 5px;\\r\\n background-color: #ffffff !important;\\r\\n box-shadow: 0 2px 6px 0 rgb(176 186 197 / 60%);\\r\\n z-index: 10;\\r\\n top: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n /*height: 780px;\\r\\n position: absolute;*/\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.wrapper input {\\r\\n width: 100%;\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n border: solid 1px #ccd2d5;\\r\\n margin-bottom: 20px;\\r\\n background-color: transparent;\\r\\n padding-left: 57.5px;\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d;\\r\\n outline: none !important;\\r\\n}\\r\\n\\r\\ninput:focus{\\r\\n border-color: #447695 !important;\\r\\n}\\r\\n\\r\\n.wrapper input:last-of-type {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.wrapper img {\\r\\n width: 75px;\\r\\n}\\r\\n\\r\\n.wrapper input:focus {\\r\\n border: solid 1px rgb(24, 115, 177);\\r\\n}\\r\\n\\r\\n.control-wrapper {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.input-password,\\r\\n.input-username {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.input-password:after,\\r\\n.input-username:after {\\r\\n background: url(../../../../assets/css/images/platform/icon-password@3x.png);\\r\\n content: \\\"\\\";\\r\\n width: 22px;\\r\\n height: 23px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n position: absolute;\\r\\n left: 18px;\\r\\n top: 16.5px;\\r\\n}\\r\\n\\r\\n.input-username:after {\\r\\n background-image: url(../../../../assets/css/images/platform/icon-username@3x.png);\\r\\n}\\r\\n\\r\\ninput:-webkit-autofill {\\r\\n -webkit-box-shadow: 0 0 0px 1000px white inset;\\r\\n}\\r\\n\\r\\n.input-username {\\r\\n margin-top: 30px !important;\\r\\n}\\r\\n\\r\\n\\r\\nh1,\\r\\nspan {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 20px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n /*letter-spacing: 4px;*/\\r\\n text-align: center;\\r\\n color: #313541;\\r\\n}\\r\\n\\r\\nh1 span {\\r\\n font-family: \\\"asapmedium\\\";\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] {\\r\\n width: 18px;\\r\\n height: 100%;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.sided {\\r\\n height: 30px;\\r\\n display: inline-table;\\r\\n table-layout: fixed;\\r\\n width: 100%;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.sided * { \\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.sided input{\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.sided label{\\r\\n width: 19px;\\r\\n}\\r\\n\\r\\n.sided .sided-child{\\r\\n margin-bottom:10px;\\r\\n}\\r\\n\\r\\n.sided p {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #81898c;\\r\\n border-color: #ccd2d5;\\r\\n margin: 0 !important;\\r\\n padding-left: 12px !important;\\r\\n width: 100%;\\r\\n display: inline; \\r\\n}\\r\\n\\r\\n.login button {\\r\\n background-color: $highlightColor;\\r\\n height: 55px;\\r\\n border-radius: 5px;\\r\\n width: 100%;\\r\\n font-family: \\\"asapregular\\\" !important;\\r\\n font-size: 14px;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n border: 0 !important;\\r\\n color: #ffffff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nlabel input {\\r\\n display: none; /* Hide the default checkbox */\\r\\n }\\r\\n \\r\\n /* Style the artificial checkbox */\\r\\n label span {\\r\\n height: 19px;\\r\\n width: 19px;\\r\\n border: 1px solid #ccd2d5;\\r\\n display: inline-block;\\r\\n position: relative;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n }\\r\\n \\r\\n /* Style its checked state...with a ticked icon */\\r\\n [type=checkbox]:checked + span:before {\\r\\n content: \\\"\\\";\\r\\n width: 14px;\\r\\n height: 9px;\\r\\n position: absolute;\\r\\n top: 6px;\\r\\n left: 2px;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n background-image: url(../../../../assets/css/images/platform/cb-check.png);\\r\\n }\\r\\n\\r\\n.options {\\r\\n margin-top: 30px;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.options a,\\r\\n.options a:hover,\\r\\n.options a:visited {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: left;\\r\\n cursor: pointer;\\r\\n text-decoration: none !important;\\r\\n color: #81898c;\\r\\n}\\r\\n \\r\\n.options a {\\r\\n display: block;\\r\\n margin-bottom: 15px; \\r\\n}\\r\\n\\r\\n.forgot-username-label{\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n \\r\\n.inp-container {\\r\\n margin-bottom: 0 !important;\\r\\n}\\r\\n\\r\\n#clients {\\r\\n margin-top: 250px;\\r\\n text-align: center;\\r\\n margin-bottom: 70px;\\r\\n}\\r\\n\\r\\n.newpassword-label{\\r\\n margin-bottom:20px;\\r\\n}\\r\\n\\r\\n.col {\\r\\n height: 252px;\\r\\n}\\r\\n\\r\\n#clients .logo {\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n margin: auto;\\r\\n height: 252px;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n::-webkit-input-placeholder {\\r\\n /* Chrome/Opera/Safari */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n::-moz-placeholder {\\r\\n /* Firefox 19+ */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-ms-input-placeholder {\\r\\n /* IE 10+ */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n:-moz-placeholder {\\r\\n /* Firefox 18- */\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n color: #3d464d !important;\\r\\n}\\r\\n\\r\\n@media screen and (max-width: 1200px) {\\r\\n .logo {\\r\\n width: 100%;\\r\\n margin-bottom: 50px !important;\\r\\n }\\r\\n\\r\\n #clients {\\r\\n margin-top: 150px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.unauthorize-message {\\r\\n padding: 20px;\\r\\n background-color: #d0021b;\\r\\n color: white;\\r\\n text-align: center;\\r\\n font-family: \\\"asapregular\\\" !important;\\r\\n}\\r\\n\\r\\n.error-messages {\\r\\n /*height:35px;*/\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.error-messages p {\\r\\n font-family: \\\"asapregular\\\";\\r\\n font-size: 14px;\\r\\n font-weight: 500;\\r\\n font-style: normal;\\r\\n font-stretch: normal;\\r\\n line-height: normal;\\r\\n letter-spacing: normal;\\r\\n text-align: center;\\r\\n color: #e34c4c;\\r\\n}\\r\\n\\r\\nh1{\\r\\n line-height: normal !important;\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\nbutton:disabled {\\r\\n background-color: #bebbbb !important;\\r\\n }\\r\\n\\r\\n .btn-loader{\\r\\n position: relative;\\r\\n margin-top: 55px;\\r\\n }\\r\\n .btn-loader img{\\r\\n position: absolute;\\r\\n right: 10px;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n margin: auto;\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n }\\r\\n\\r\\n.alerts .login-close-alert {\\r\\n top:38px !important;\\r\\n}\\r\\n\\r\\n.logos img{\\r\\n width: 350px !important;\\r\\n top: -25px !important;\\r\\n position: inherit;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","var map = {\n\t\"./af\": 8014,\n\t\"./af.js\": 8014,\n\t\"./ar\": 56770,\n\t\"./ar-dz\": 97487,\n\t\"./ar-dz.js\": 97487,\n\t\"./ar-kw\": 97785,\n\t\"./ar-kw.js\": 97785,\n\t\"./ar-ly\": 17045,\n\t\"./ar-ly.js\": 17045,\n\t\"./ar-ma\": 37633,\n\t\"./ar-ma.js\": 37633,\n\t\"./ar-sa\": 47812,\n\t\"./ar-sa.js\": 47812,\n\t\"./ar-tn\": 69106,\n\t\"./ar-tn.js\": 69106,\n\t\"./ar.js\": 56770,\n\t\"./az\": 90571,\n\t\"./az.js\": 90571,\n\t\"./be\": 91105,\n\t\"./be.js\": 91105,\n\t\"./bg\": 69374,\n\t\"./bg.js\": 69374,\n\t\"./bm\": 54999,\n\t\"./bm.js\": 54999,\n\t\"./bn\": 14593,\n\t\"./bn-bd\": 12073,\n\t\"./bn-bd.js\": 12073,\n\t\"./bn.js\": 14593,\n\t\"./bo\": 24058,\n\t\"./bo.js\": 24058,\n\t\"./br\": 34520,\n\t\"./br.js\": 34520,\n\t\"./bs\": 28978,\n\t\"./bs.js\": 28978,\n\t\"./ca\": 66584,\n\t\"./ca.js\": 66584,\n\t\"./cs\": 28015,\n\t\"./cs.js\": 28015,\n\t\"./cv\": 34965,\n\t\"./cv.js\": 34965,\n\t\"./cy\": 23800,\n\t\"./cy.js\": 23800,\n\t\"./da\": 88301,\n\t\"./da.js\": 88301,\n\t\"./de\": 25827,\n\t\"./de-at\": 99687,\n\t\"./de-at.js\": 99687,\n\t\"./de-ch\": 26120,\n\t\"./de-ch.js\": 26120,\n\t\"./de.js\": 25827,\n\t\"./dv\": 87568,\n\t\"./dv.js\": 87568,\n\t\"./el\": 81466,\n\t\"./el.js\": 81466,\n\t\"./en-au\": 13229,\n\t\"./en-au.js\": 13229,\n\t\"./en-ca\": 59467,\n\t\"./en-ca.js\": 59467,\n\t\"./en-gb\": 64265,\n\t\"./en-gb.js\": 64265,\n\t\"./en-ie\": 72981,\n\t\"./en-ie.js\": 72981,\n\t\"./en-il\": 66432,\n\t\"./en-il.js\": 66432,\n\t\"./en-in\": 35031,\n\t\"./en-in.js\": 35031,\n\t\"./en-nz\": 35120,\n\t\"./en-nz.js\": 35120,\n\t\"./en-sg\": 12595,\n\t\"./en-sg.js\": 12595,\n\t\"./eo\": 33591,\n\t\"./eo.js\": 33591,\n\t\"./es\": 64363,\n\t\"./es-do\": 92614,\n\t\"./es-do.js\": 92614,\n\t\"./es-mx\": 67497,\n\t\"./es-mx.js\": 67497,\n\t\"./es-us\": 2854,\n\t\"./es-us.js\": 2854,\n\t\"./es.js\": 64363,\n\t\"./et\": 66928,\n\t\"./et.js\": 66928,\n\t\"./eu\": 55266,\n\t\"./eu.js\": 55266,\n\t\"./fa\": 70523,\n\t\"./fa.js\": 70523,\n\t\"./fi\": 12876,\n\t\"./fi.js\": 12876,\n\t\"./fil\": 54669,\n\t\"./fil.js\": 54669,\n\t\"./fo\": 28144,\n\t\"./fo.js\": 28144,\n\t\"./fr\": 32606,\n\t\"./fr-ca\": 2190,\n\t\"./fr-ca.js\": 2190,\n\t\"./fr-ch\": 80406,\n\t\"./fr-ch.js\": 80406,\n\t\"./fr.js\": 32606,\n\t\"./fy\": 84655,\n\t\"./fy.js\": 84655,\n\t\"./ga\": 49670,\n\t\"./ga.js\": 49670,\n\t\"./gd\": 51954,\n\t\"./gd.js\": 51954,\n\t\"./gl\": 44060,\n\t\"./gl.js\": 44060,\n\t\"./gom-deva\": 42626,\n\t\"./gom-deva.js\": 42626,\n\t\"./gom-latn\": 19856,\n\t\"./gom-latn.js\": 19856,\n\t\"./gu\": 62883,\n\t\"./gu.js\": 62883,\n\t\"./he\": 92985,\n\t\"./he.js\": 92985,\n\t\"./hi\": 50646,\n\t\"./hi.js\": 50646,\n\t\"./hr\": 8834,\n\t\"./hr.js\": 8834,\n\t\"./hu\": 14170,\n\t\"./hu.js\": 14170,\n\t\"./hy-am\": 91626,\n\t\"./hy-am.js\": 91626,\n\t\"./id\": 30913,\n\t\"./id.js\": 30913,\n\t\"./is\": 37823,\n\t\"./is.js\": 37823,\n\t\"./it\": 29695,\n\t\"./it-ch\": 44376,\n\t\"./it-ch.js\": 44376,\n\t\"./it.js\": 29695,\n\t\"./ja\": 13225,\n\t\"./ja.js\": 13225,\n\t\"./jv\": 42749,\n\t\"./jv.js\": 42749,\n\t\"./ka\": 14178,\n\t\"./ka.js\": 14178,\n\t\"./kk\": 97697,\n\t\"./kk.js\": 97697,\n\t\"./km\": 20962,\n\t\"./km.js\": 20962,\n\t\"./kn\": 83272,\n\t\"./kn.js\": 83272,\n\t\"./ko\": 42009,\n\t\"./ko.js\": 42009,\n\t\"./ku\": 44938,\n\t\"./ku.js\": 44938,\n\t\"./ky\": 79607,\n\t\"./ky.js\": 79607,\n\t\"./lb\": 18844,\n\t\"./lb.js\": 18844,\n\t\"./lo\": 2623,\n\t\"./lo.js\": 2623,\n\t\"./lt\": 21114,\n\t\"./lt.js\": 21114,\n\t\"./lv\": 26251,\n\t\"./lv.js\": 26251,\n\t\"./me\": 10013,\n\t\"./me.js\": 10013,\n\t\"./mi\": 67083,\n\t\"./mi.js\": 67083,\n\t\"./mk\": 44031,\n\t\"./mk.js\": 44031,\n\t\"./ml\": 72223,\n\t\"./ml.js\": 72223,\n\t\"./mn\": 54589,\n\t\"./mn.js\": 54589,\n\t\"./mr\": 14883,\n\t\"./mr.js\": 14883,\n\t\"./ms\": 25185,\n\t\"./ms-my\": 21400,\n\t\"./ms-my.js\": 21400,\n\t\"./ms.js\": 25185,\n\t\"./mt\": 87368,\n\t\"./mt.js\": 87368,\n\t\"./my\": 54741,\n\t\"./my.js\": 54741,\n\t\"./nb\": 55417,\n\t\"./nb.js\": 55417,\n\t\"./ne\": 8364,\n\t\"./ne.js\": 8364,\n\t\"./nl\": 80726,\n\t\"./nl-be\": 44233,\n\t\"./nl-be.js\": 44233,\n\t\"./nl.js\": 80726,\n\t\"./nn\": 25584,\n\t\"./nn.js\": 25584,\n\t\"./oc-lnc\": 33183,\n\t\"./oc-lnc.js\": 33183,\n\t\"./pa-in\": 11024,\n\t\"./pa-in.js\": 11024,\n\t\"./pl\": 18988,\n\t\"./pl.js\": 18988,\n\t\"./pt\": 23463,\n\t\"./pt-br\": 30834,\n\t\"./pt-br.js\": 30834,\n\t\"./pt.js\": 23463,\n\t\"./ro\": 51070,\n\t\"./ro.js\": 51070,\n\t\"./ru\": 3620,\n\t\"./ru.js\": 3620,\n\t\"./sd\": 72235,\n\t\"./sd.js\": 72235,\n\t\"./se\": 57380,\n\t\"./se.js\": 57380,\n\t\"./si\": 29179,\n\t\"./si.js\": 29179,\n\t\"./sk\": 93098,\n\t\"./sk.js\": 93098,\n\t\"./sl\": 16068,\n\t\"./sl.js\": 16068,\n\t\"./sq\": 54725,\n\t\"./sq.js\": 54725,\n\t\"./sr\": 44968,\n\t\"./sr-cyrl\": 2027,\n\t\"./sr-cyrl.js\": 2027,\n\t\"./sr.js\": 44968,\n\t\"./ss\": 8947,\n\t\"./ss.js\": 8947,\n\t\"./sv\": 68245,\n\t\"./sv.js\": 68245,\n\t\"./sw\": 82896,\n\t\"./sw.js\": 82896,\n\t\"./ta\": 80361,\n\t\"./ta.js\": 80361,\n\t\"./te\": 91175,\n\t\"./te.js\": 91175,\n\t\"./tet\": 67714,\n\t\"./tet.js\": 67714,\n\t\"./tg\": 9068,\n\t\"./tg.js\": 9068,\n\t\"./th\": 18613,\n\t\"./th.js\": 18613,\n\t\"./tk\": 23761,\n\t\"./tk.js\": 23761,\n\t\"./tl-ph\": 23618,\n\t\"./tl-ph.js\": 23618,\n\t\"./tlh\": 4839,\n\t\"./tlh.js\": 4839,\n\t\"./tr\": 81690,\n\t\"./tr.js\": 81690,\n\t\"./tzl\": 90827,\n\t\"./tzl.js\": 90827,\n\t\"./tzm\": 95045,\n\t\"./tzm-latn\": 70122,\n\t\"./tzm-latn.js\": 70122,\n\t\"./tzm.js\": 95045,\n\t\"./ug-cn\": 40639,\n\t\"./ug-cn.js\": 40639,\n\t\"./uk\": 49136,\n\t\"./uk.js\": 49136,\n\t\"./ur\": 17664,\n\t\"./ur.js\": 17664,\n\t\"./uz\": 64441,\n\t\"./uz-latn\": 74633,\n\t\"./uz-latn.js\": 74633,\n\t\"./uz.js\": 64441,\n\t\"./vi\": 73378,\n\t\"./vi.js\": 73378,\n\t\"./x-pseudo\": 2472,\n\t\"./x-pseudo.js\": 2472,\n\t\"./yo\": 84858,\n\t\"./yo.js\": 84858,\n\t\"./zh-cn\": 90255,\n\t\"./zh-cn.js\": 90255,\n\t\"./zh-hk\": 93539,\n\t\"./zh-hk.js\": 93539,\n\t\"./zh-mo\": 39018,\n\t\"./zh-mo.js\": 39018,\n\t\"./zh-tw\": 22610,\n\t\"./zh-tw.js\": 22610\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["Component","ViewChild","Input","Injector","ViewChildren","SemLeftMenuComponent","RestProviderService","Router","ActivatedRoute","SemLoaderComponent","DynamicLoadingUtil","SemBaseComponent","DynamicFieldsManagerService","UtilityService","FormService","AppComponent","constructor","rp","injector","activatedRoute","get","menuOpened","ngOnInit","ngAfterViewInit","childrenComponent","first","loader","isMenuOpened","leftMenu","opened","sidebarChanged","event","sidebarMenuOpened","_","args","read","static","__decorate","selector","template","__NG_CLI_RESOURCE__0","BrowserModule","NgModule","APP_INITIALIZER","RouteNavigationService","configServiceFactory","FormsModule","ReactiveFormsModule","HttpClientModule","HTTP_INTERCEPTORS","CommonModule","SemNavigationModule","BrowserAnimationsModule","RouterModule","UrlSerializer","SemDynamicComponent","CustomUrlSerializer","SemDateFormatPipePipe","SemDashboardContainerComponent","NavigationRequestModel","ServerErrorsInterceptor","SemNotFoundComponent","SemConfirmDialogComponent","MatDialogModule","SemSearchFieldsDialogComponent","SemGridDisplayFieldsDialogComponent","DragDropModule","WindowRefService","NotificationCenterComponent","ContainerWrapperComponent","SemSharedModule","SemVersionDialogComponent","SemParameterDialogComponent","AuthGuardService","SemCompareDialogComponent","WorkflowCenterComponent","SemUserProfileDialogComponent","SemMinMaxDirective","LoginComponent","LoginV2Component","PlatformRedirectComponent","environment","LoginV3Component","SemFileExplorerDialogComponent","NgxPhotoEditorModule","AppModule","declarations","imports","forRoot","path","redirectTo","pathMatch","component","data","breadcrumb","loginComponent","children","canActivate","onSameUrlNavigation","providers","provide","useFactory","deps","multi","useClass","exports","bootstrap","Directive","HostListener","StopClickPropagation","onClick","stopPropagation","router","dfms","utility","formService","loading","dynamicRoutesLoader","evaluateAction","source","eval","evaluateCondition","evaluateConditionForHiding","model","length","res","modelChanged","ChangeDetectorRef","RequestModel","Location","FileUploadService","MatDialog","ExportService","SearchService","TranslationsProviderService","ActionsService","LoaderServiceService","LocalStorageService","FileUploadStandaloneService","SemNavigationComponent","changeDet","restProvider","request","preJS","item","functionName","navigationPreFunctions","preResult","postJS","navigationPostFunctions","postResult","super","onTextChange","value","SemDynamicControlComponent","SemSearchComponent","UserSearchSettingModel","NavigationNodeSerializer","SortFieldModel","acceptDD","items","paging","currentItem","currentTaskOutcome","selectedItems","today","Date","time","showButtons","currentPage","currentPageSize","restService","changeDetection","actionsService","translationService","formActions","totalItems","previousPage","nextPage","totalPages","pages","itemsLoaded","searchService","alreadyOpened","dialog","checkboxAllItemsChecked","checkedBulkItemStatus","checkedBulkItems","searchPerformedSubs","sortingFlags","currentSortFields","taskModelName","currentClickedTaskId","ngOnDestroy","paginationSubs","unsubscribe","refreshTime","setInterval","numberOfPagesValue","currentPagination","subscribe","totalCount","totalCountNumber","page","push","ps","pageSize","pageNum","Math","floor","from","to","i","active","currentSearchExecuted","UserSearchSetting","View","ModelName","loadFormActions","checkboxBulkCheckAllItems","searchComponent","Models","checkboxBulkItemClicked","object","allCheckedFunction","allItemsChecked","oneItemClick","documentId","resolvePropertyBinding","modelName","index","findIndex","x","Id","splice","setCurrentCheckedBulkDocuments","getCondition","action","NavigationNodeRule","Condition","e","getActionFilteredChildrenCount","Children","IsOnlyParent","child","show","getFilteredChildren","newFiltered","getActionBody","actionService","FormAction","ParameterForm","reportId","Report","dialogRef","open","parameterFormId","customHeaderTitle","CustomHeaderTitle","customCssClass","CustomCssClass","afterClosed","returnData","Canceled","inputParametersModel","callAction","BulkAction","OnlyClientLogic","BulkExport","SkipBulkActionApiMethod","sortDropDownClick","name","setColumnSorting","direction","FieldName","SortDirection","changeSortFields","context","userSearchSetting","rModel","url","depth","rootNode","dynamicFormId","parseInt","split","serializer","getDataPOST","error","console","log","propertyPath","obj","changeNumberOfPages","changePageSize","target","targetTime","n","getTimezoneOffset","timezone","tzDifference","getTime","minutes","getMinutes","timeString","getHours","document","getElementById","innerHTML","pageChanged","changeSearchPage","toLastPage","toFirstPage","checkIfTaskHasFile","task","TaskFiles","checkIfOpened","FirstOpenDate","CanOpenIfComplete","Complete","accept","detectChanges","getDataGET","JSON","parse","executeOutcome","outcome","dynComp","cmpRef","instance","cModel","actionExecuted","bind","Action","checkIfCurrentClick","itemSelectedInTable","currentTarget","cells","resetCBs","ShowMessageOnly","closePopup","table","getElementsByClassName","checkDateCreated","DateCreated","checkDueDate","DueDate","entityId","fModel","TaskId","Result","Completed","EntityID","showLoader","setTimeout","searchProjection","performSearch","decline","downloadTaskFile","_this","_asyncToGenerator","filename","FileName","fileDownload","_ref","downloadedFile","Blob","body","type","a","createElement","setAttribute","appendChild","download","href","URL","createObjectURL","click","removeChild","_x","apply","arguments","DomSanitizer","http","_injector","_sanitizer","myTemplate","upcomingTransfers","courtJudgements","offenderProfiles","searchServiceSubscriber","defaultCJISearchQuery","defaultOffendersSearchQuery","defaultTransfersSearchQuery","currentUser","window","location","Model","Person","Title","navigate","processNavigationUrl","navigateToDetails","detailsUrl","dashboardSearch","urlsearch","goToSearch","searchTerm","loadItems","objres","toPromise","ceil","itemSelected","srcElement","loadItemsPage","linkSource","downloadLink","d3","SemControlComponent","SemD3DirectionalGraphComponent","ngAfterContentInit","restProviderService","apiUrl","csvnodes","forEach","link","existsSource","existsTarget","element","id","width","querySelectorAll","clientWidth","height","charge_force","forceManyBody","strength","center_force","forceCenter","simulation","forceSimulation","nodes","force","forceLink","d","distance","forceX","forceY","on","tick","svg","select","append","attr","selectAll","enter","String","drag","alphaTarget","restart","y","circle","call","text","dragstarted","dragged","dragended","deltaX","deltaY","dist","sqrt","normX","normY","sourcePadding","left","targetPadding","right","sourceX","sourceY","targetX","targetY","ElementRef","SemLineGraphComponent","valuesName","view","legend","showLabels","animations","xAxis","yAxis","showYAxisLabel","showXAxisLabel","xAxisLabel","yAxisLabel","timeline","results","colorScheme","domain","setViewSize","settings","series","control","nativeElement","parentElement","clientHeight","onSelect","stringify","onActivate","onDeactivate","NG_VALUE_ACCESSOR","SemTableGridComponent","p","tableData","totals","totalCountAll","curPage","totalSum","footerColSpan","getData","requestModel","contentType","responseType","zone","run","Totals","KeyValue","totalKeyValue","Columns","binding","hidePagination","calculatePagination","showPagination","numberOfPages","Items","TotalCount","useExisting","ValueAccessorBase","SemGalleryControlComponent","pagesize","bindings","ngOnChanges","reqModel","Envelope","etag","itemClick","gridItem","SemLastAddedRecordsComponent","lastRecordValue","SemLastEditedDataComponent","searchResults","models","modifyForFrontEnd","queryModel","Query","replace","propsToBeShown","Name","DataType","resItem","j","getValue","includes","dataItem","SemQuickActionsComponent","qaValue","actionCalled","actionPostResponseTitleValue","showLoaderAction","ngAfterViewChecked","test","Actions","toLowerCase","Number","getActionTitle","actionTitle","undefined","translationsService","translate","actionClick","ActionName","formAction","SemTablePresentationComponent","result","variable","Inject","MatDialogRef","MAT_DIALOG_DATA","NestedTreeControl","MatTreeNestedDataSource","TREE_DATA","dialogData","treeControl","node","dataSource","treeControlRemoved","dataSourceRemoved","treeControlMod","dataSourceMod","flatTreeData","flatTreeDataRemoved","flatTreeDataMod","defaultSearchQueryString","simpleProps","isModified","hasChild","modified","childs","cChild","dataNodes","closeDialog","close","linkClicked","confirm","tps","cancel","SemDialogComponent","pane","v","ds","formActionService","searchFields","displayFields","vsaPoljaSearchValue","popupSearchValue","tooltipTextPoVseh","repositories","modelsToDisplay","loaded","searchValues","currentFormModel","errorMessage","customORQuery","searchResult","mainSearchQuery","additionalSearchFilter","setSearchFields","displayFieldsForProjection","PropertyName","Object","assign","Projection","linkWithExistingData","translations","title","entityModel","propName","findTheRecord","enterRecordId","recordName","idNumber","dateOfCreaton","showDataItemTooltiptext","TooltipText","field","Type","FieldValue","SubQueries","performLinkedDataSearch","onKeydown","preventDefault","selectedPage","search","templateSettings","interpolate","compiled","compiledSearchQuery","interpolateMainSearchQueryObject","currentTreeQuery","newMainTreeQuery","RepositoryName","projection","resultsFound","evalSelectedOption","formActionResult","splited","onValueSelectValidation","jsonData","executeAction","getAction","handleORTreeQuery","ORTreeQuery","popupSearchVal","number","getProp","prop","setProp","imageClick","imageComponent","fileObj","DatePipe","SemGenerateDialogComponent","parameterData","form","ReportId","expression","midValue","print","generate","apiModel","keys","query","now","toString","datePipe","fileName","transform","MetaModelService","UserService","UserSearchSettingPropertyModel","moveItemInArray","metaModelService","userService","selectedGridField","gridAvailibleFields","gridViewFields","gridAddedFields","gridOriginalFieldsList","gridOriginalAddedFielsList","userGridSettings","placeHolder","gridSettings","originalGridColumnSettings","helperColumnFlags","gridFieldModified","metamodelGridFields","removeAssign","listItemClick","newValue","addGridField","FieldType","newSelectedItem","removeAddedGridField","unshift","fieldSearch","searchValue","trim","lowerCaseSearchValue","toLocaleLowerCase","filteredItems","filter","Translation","map","restoreGridSettings","saveUserAdditionalGridFields","drop","previousIndex","currentIndex","cancelGridSettings","addAllowed","restore","SearchPlaceHolderTitle","SearchFields","searchField","userSearchSet","PropertyPath","CustomPageSize","helperColumnFlagsTemp","saveUserSettings","userSearchSettingCurrentVersion","headerText","isImageControl","isSortable","isDateTime","isBoolean","savedColumns","newProjection","BindingField","key","IsSortable","ShowSort","SortingUsed","doubleClickAdd","doubleClickRemove","ParameterFormsService","parameterFormsService","isReportInUse","reportParameters","customHeaderTitlePresent","closeParameterFormDialog","closingParameterFormSubscription","paramsFormUrl","currentCloseDialog","getParameterFormModel","confirmParameterDialog","cancelParameterDialog","SemQueryBuilderDialogComponent","queryBConfig","fields","queryBuilderModel","rules","getDefaultQueryBuilderModel","applyQueryBuilder","resetQueryBuilder","condition","closeQueryBuilder","availibleFields","addedFields","originalFieldsList","originalAddedFielsList","userSearchSettings","viewId","enableFacets","quickViewEnabled","customViewFilter","onlyLastNodeNames","showItemNumber","showActionsColumn","quickViewFormName","searchPlaceHolder","metamodelSearchFields","removeAddedSearchField","selectedItem","addSearchField","restoreSearchSettings","saveUserAdditionalSearchFields","userSearchSettingId","version","Version","EnableFacets","QuickViewEnabled","OnlyLastNodeNames","ShowItemNumber","ShowActionsColumn","QuickViewFormName","LayoutName","currentLayout","customViewFilterString","FilterQuery","cancelSearchSettings","SemTreeviewDialogComponent","treeData","performDataSearch","onEnter","searchString","Value","az","indexOf","sort","b","loadData","IncludeParents","TreeQuery","Parent","parentId","dirty","elItem","filteredArr","filt","markDirty","filteredRoots","ft","collapseAll","filteredTreeArray","alert","UserModel","OldPassword","NewPassword","NewPasswordRepeat","UserName","Email","Surname","restClient","userModel","statusMessage","initials","user","getInitials","changePass","Username","response","changeInfo","FullName","logout","tabChanged","tab","EntityVersionService","entityVersionService","selectedVersion","comparationResult","comparisionLoading","restoringVersion","loadVersions","DomainModelTypeFullName","EntityId","versions","compareSelected","comapre","setSelectedVersion","checked","formatDate","date","dd","getDate","mm","getMonth","yyyy","getFullYear","hh","getSeconds","closeVersionDialog","restoreToVersion","reload","SemBoundLabelComponent","arrayDisplayBinding","labelValue","modelValueChanged","Array","isArray","SemBoundTabContentComponent","forwardEntity","contentPropertyName","SemBoundTabControlComponent","templateProvided","getContentTemplate","templateUrl","wgRoutes","pathname","substring","Url","loadedRoutes","loadContent","Html","rawTemplate","startParseIndex","endParseIndex","contentLength","tabName","contentName","content","bindingPropertyName","SemButtonComponent","customActionName","customActionOnlyClientLogic","customActionMaintainLoader","shown","checkInitialValue","getActionAndExecute","getAttribute","next","previous","navigateByUrl","onValueChangeEval","selected","nextSelected","entries","classList","contains","found","checkParent","evt","MouseEvent","bubbles","cancelable","dispatchEvent","previousSelected","start","val","elements","arrelements","prototype","slice","ItemFunctionalType","ItemType","SemChatBotComponent","chatItems","lastChatItemDetectedCommand","userInput","isChatLoading","showChatLoader","hideChatLoader","confirmDetectedCommand","chatItem","showPotrjujem","chatRequestModel","userConfirmCmd","newItem","itemType","UserInput","itemFunctionalType","Text","redirectUrl","scrollTo","top","scrollHeight","behavior","Success","processCommandResponseData","Errors","ResponseMessage","Error","redirectToAddedRecord","cancelDetectedCommand","openItem","ParsedCommand","ExecutionResponseData","InvNumber","OpenRecord","SearchResult","sendUserInput","DetectedCommand","startsWith","detectedSearchItem","WgCmdConfirmation","Message","SemCheckBoxComponent","showLabel","onChange","modelChange","attName","globalForm","controls","setValue","updateValueAndValidity","updateControlsValidationArray","NgZone","NgModuleRef","Compiler","Renderer2","ComponentFactoryResolver","NgForm","FormBuilder","NgxPhotoEditorService","HttpClient","_m","_compiler","route","renderer","fileUploadService","componentFactoryResolver","formBuilder","parameterFormService","photoEditorService","anglarHttpClient","placeholder","queryParams","params","isRequired","checkTranslation","atribute","checkPlaceholder","initialValue","checkForDisabled","readOnlyCondition","isReadOnly","manyToOneReadOnly","parentBindingProp","metaModel","W","Path","getName","events","clickEvent","PreJs","PostJs","checkIfInArray","some","el","checkIfInUserGroup","ProjectionFacetWrapperModel","FacetViewModel","SemDataGridComponent","editable","previewActions","bulkActionPresent","showPreview","previewModel","defaultSorter","restoreGlobal","facetsCollapsed","viewType","additionalListingFields","metamodelSubs","bulkActionPresentSubs","additionalSearchSettingsSubs","ddShown","stateModel","gridFieldsRestoreSubs","facetsCollapsedSubs","onKeydownHandler","currentPreviewItemClicked","changePaginationInfo","changeSearchProjectionAndFacets","changeAvailibleFacets","enableFacetsSubs","setCurrentBulkActionPresent","changeCurrentSearchSettings","searchSettingsSubs","setGridRestoredDefault","setFacetsCollapsed","additionalSearchSettings","defaultHeaderTextTranslation","currentgridRestoredDefault","handleUserAdditionalGridFields","currentMetaModel","currentFacetsCollapsed","currentBulkActionPresent","currentEnableFacets","ResizeGridForFacetsControl","currentUserSearchSettings","setNewUserSearchSettingObject","currentAdditionalSearchSettings","paramMap","history","state","checkStateForValidity","loadAdditionalInfoFromView","toggleViewType","getGridRowClassList","rowData","ConditionEvaluations","calculateItemNumber","indx","Active","currentPageNum","linkClick","propPath","match","itemClickNavigate","previewClose","itemNavigate","parUrl","globalSearch","detailsFormUrl","actions","getGridFormActions","performAction","endpoint","redirectPreviewToDetails","itemEditClick","hasOwnProperty","urlNew","addNew","k","deleteItem","setViewType","exc","valueChanged","column","getUserSearchSettings","handleAdditionalListingAction","metamodelProperties","getUserGridSettings","addListing","DefaultSorter","defSorterJson","RootClassName","AvailibleInGrid","projectionFacet","setCurrentGridDisplayFields","handleDefaultProjection","facets","handleMetamodelFacets","luceneProperties","availibleFacets","IsFacet","facet","facetView","facetTitle","facetPropertyPath","facetTranslation","FacetTranslation","IsTaxonomyFacet","facetType","IsRangeField","showDataGridColumn","showIfNotDate","modifyGridTableColumns","IsCollectionProperty","IsRetrievable","FormControlName","currentPlaceHoldertitle","titleIndex","validURL","str","pattern","RegExp","isLink","updateUserSearchSettingsCustomPageSize","actionDD","runAction","getByType","checkForm","urlModel","callReport","ChangeDetectionStrategy","moment","SemDatePickerComponent","setDisabled","templateType","getDefaultValue","newSectionAdded","globalModel","toDate","defaultValue","toISOString","val2","utc","endsWith","formModel","compiledValue","afterPickerOpen","input","preventBlur","focus","focusOut","isUtcOffset","newDate","setMinutes","toJSON","blur","OnPush","ViewEncapsulation","SemDynamicSearchFieldComponent","preFilterQuery","dropdownType","fullType","dropdownPreFilter","rangeType","searchValueOnChange","changeSearchValue","changeCheckBoxState","CheckBoxState","encapsulation","None","SemEditModeBtnComponent","setFormAsReadOnly","loadedRoute","ExplicitEditMode","FacetModel","BehaviorSubject","SemFacetsComponent","currentSearchFacets","facetsPresent","collapsedContainer","preload","showExpandTooltip","_facetsLoaded","facetsLoaded","asObservable","availibleFacetsSubs","collapse","facetElement","add","showExpandTooltipEvent","hideExpandTooltipEvent","expand","remove","currentAvailibleFacets","facetsOrder","order","facetChanged","facetFieldValue","facetFieldName","unChecked","end","fieldValueFrom","fieldValueTo","fieldName","fieldValue","taxonomyFacet","fieldPath","rangeFacet","changeSearchFacets","Output","EventEmitter","FileUtil","Annotorious","SemFileExplorerComponent","windowRef","domSanitizer","explorer","normal","positionTop","positionLeft","marginTop","marginLeft","max","maximized","files","shownFiles","sideType","hasDeleteRight","hasWriteRight","availableExtensions","imagesExtensions","searchText","selectedImageData","selectedImageDataString","imgViewType","onAddItem","onItemDrop","onItemDownload","onItemDelete","annotations","selectItem","onStartAnnotate","onAddItemClick","emit","calcMax","setSelected","onRestartAnnotate","getImageUrl","getAnnotationBody","ann","string","w","nativeWindow","screen","h","ptp","lpp","setExplorerMax","setExplorerNormal","setExplorerNormalMax","Annotations","imageAnnotate","clearAnnotations","setAnnotations","image","widgets","annotation","overrideId","calcPositionStyle","explorerPositionStyle","getPreviewType","getTextFileContent","FileReader","reader","onload","pdfSrc","readAsArrayBuffer","File","getFrendlyFileSize","size","getFriendlyFileSize","getExtension","splits","searchCheckShow","onDrop","s","t","src","Order","tar","checkFile","file","fileExtentionSplit","extension","bypassSecurityTrustUrl","getPreviewImageUrl","fr","ctrlThis","txtFileContent","readAsText","onDownload","onDelete","FileDataModel","SemFilePickerComponent","BindingPropertyName","onFileChange","chooseFile","fileDataModel","Size","removeFile","indx2","fileSizeMB","openFileDialog","ClientAction","FileDataRightModel","ResponseStatus","SemFileUploadComponent","deletedFiles","multiple","imgPath","toConfirm","showSelected","fileDataRight","defaultCollapse","collapseChanged","filePaths","selectedFile","ddAreaDisplay","dropareaActive","modelMedias","alreadyExists","fileDataActions","fileUpload","delay","Promise","resolve","s1","filesSubmitRequest","Category","FileCategory","fcategory","filesToRemove","filesNumber","s2","modelChangeNotifier","p_model","getImages","getMediaRights","s3","modelMTOValueChanged","currPath","imagesPath","currAdded","mapItem","dataURLtoFile","New","FileOrder","calculatePaths","s4","filesSubmitEndRequest","Old","toggleCollapse","s6","clearFiles","DeleteRight","WriteRight","mapped","currMedias","ReadOnly","dropArea","addEventListener","dragEnter","dragLeave","dragOver","globalInstance","listen","dataTransfer","formActionsReceived","getTargetActions","closeExists","showMessageForInvalidFormat","formats","reqStatus","reqMessage","reqResponse","resetResponseStatus","skipConfirm","deletedFile","calibrateImgArray","deleteFileFe","dataurl","arr","mime","bstr","atob","u8arr","Uint8Array","charCodeAt","addedFromBrowser","filenamefull","DocumentId","ReturnFullSize","feName","fileClicked","downloadFileFe","openFileEditor","fileListEvent","CustomEvent","detail","fileList","defineProperty","writable","format","autoCrop","viewMode","hideModalHeader","applyBtnText","closeBtnText","modalMaxWidth","innerWidth","openFileExplorer","autoFocus","slide","temparr","revokeObjectURL","readFile","XMLHttpRequest","readAsDataURL","send","readWGFile","setRequestHeader","getCookie","retrievedFile","toUTF8Array","utf8","charcode","trg","_moveRow","onDropFe","da","runProtocol","protocolName","setAsDefault","fileOrder","fileDataAction","fa","Parameters","SemGeoMapComponent","SemGraphBarComponent","margin","bottom","htmlElement","host","setup","buildSVG","html","canvas","self","g","parseTime","timeParse","scaleBand","rangeRound","padding","scaleLinear","Country","Count","axisBottom","axisLeft","bandwidth","SemGraphDonutComponent","c","radius","color","scaleOrdinal","range","schemeCategory10","group","arc","innerRadius","outerRadius","pie","arcs","SUMA","sum","centroid","SemGraphHistogramComponent","SemGraphPieComponent","SemGraphComponent","Settings","settingsJson","Validators","FormControl","Guid","takeUntil","Subject","SemGroupRepeaterControlComponent","maxCount","currentNumber","controlsString","groupByModels","repeaterItemsCount","counter","shownSections","req","serializationObjectFormLinkValue","removeSectionEvent","selectedGroup","showDD","sectionIds","headerTitles","formControls","repeaterItemSectionCheckboxes","showCheckboxDiv","repeaterItemCheckboxes","currentOpenSectionGroup","repeaterItemsWithoutCheckboxes","queryWithoutFilter","toAssign","orgModel","getSections","myGroup","Controls","ctrlBinding","HeaderText","addedSection","allSections","displayRow","sectionGroupValue","getSectionGroupValue","SectionGroupValue","sectionGuid","newGuid","substr","validators","IsRequired","required","labels","addControl","getAdditionalProjection","additionalProjectionString","proj","ddItemSelected","checkGroup","getSectionGuid","section","SectionGuid","currentSectionGuid","newSectionGroupValue","SectionGroup","transferSection","SectionTransferUrl","checkIfNumber","checkForError","bindingProp","errors","reset","repeaterItemCtn","propGroupStringValue","propertyName","objectVal","openSectionCheckboxes","sectionGroupOpen","closeCheckboxDiv","searchQuery","propertyNameId","addedFilterProp","filterValue","treequery","existingtreeQuery","newTree","pipe","checkboxItems","checkedEntities","getCheckedEntities","checkboxItem","currentPropGroupStringValue","repeaterItems","groupingItems","currentRepItem","currentItemPropGroupStringValue","addSection","objToAdd","checkboxClicked","boolValue","removeSection","removingPropGroupStringValue","values","newValues","actualyClose","currentlyClicked","originalRepeaterItems","newRepeaterItems","currentRepeaterItems","currentSectionGroupValue","checkedItems","Checked","checkboxesCount","repeaterItemSectionGroupValue","currRepItemsCount","finalRepeaterItems","tempArr","bindingitem","itemch","checkedWithoutNew","itemfr","finish","difference","added","list","SemImageViewerComponent","mediaId","customMeadiasPropertyPath","fileLoaded","previewApiUrl","imageUrls","heightStyle","widthStyle","resolveImage","getSpecifiedWidth","widthStyleValue","getSpecifiedHeight","heightStyleValue","medias","min","Height","Width","localstorageEtags","localStorage","getItem","etags","filtered","imagePostRequest","headers","Base64Img","imageSrc","useEtag","repl","find","arrayItem","base64","setItem","err","cachedString","cached","img","SemHttpUtility","SemListComponent","_superprop_getNgOnInit","sQuery","exp","join","semDecode","SemManyToOneControlComponent","showControls","entityReadOnly","readOnly","customEvalCode","customApiUrl","parentBindingProperty","dataIsLinked","jsTranslations","entityName","manyToOne","props","dynamicFields","snapshot","sec","secProp","updateValidators","openDialog","markAsDirty","formname","settingsFormName","dialogType","dialogTitle","formName","callerFunc","Function","setInitValues","_modelValueReset","_modelMTOValueChanged","showLinkDataControls","isFormReadOnly","resulteval","removeLinkedData","_clearFiles","navigateToEntity","entityFormUrl","entity","SemMultiFieldsComponent","_multiFields","previousMultiFields","minWidth","multiFields","clearProperties","getReadOnly","fullPropertyPath","multiFieldRootPropertyBinding","Binding","SemMultipleSelectComponent","titleField","searchQueryFilter","customDataApiInputParameters","customDataApi","listControl","selectedValues","names","autocompleteTreeQuery","searchQ","galregistryname","compiledInputParams","compiledInputParamsObject","finalQ","subq","showModel","bindingProperty","compareFn","o1","o2","OneToManySectionComponent","forwardEntSubs","toggleDD","showRepeaterActions","hideRepeaterActionsCondition","evalResponse","evaluateSectionAction","ActionBody","DialogType","SemOneToManyContainerComponent","overrideActions","hideNewAddSection","autoAddSectionIfEmpty","showAsListing","statisticsView","showCustomAdditionalDataFields","hideOneToManyItems","addNewTranslation","onSearchNavigateUrl","containerTitle","hideSectionWhenNotEditing","addNewButtonOnTop","sectionAdded","gridSection","inEditMode","additionalFields","additionalFieldsHiding","selectedIndex","typeoflisting","typeofinline","inlineEdit","typeofwt","presentTableLayoutInReadonly","propertyNameAdditionalData","inEditSection","loadAdditionalFields","checkEditRight","listOfAdditionalData","customApiAdditionalDataFields","propertyBinding","fireSectionAddedEvent","cloneDeep","$event","contentTemplate","forwardEnt","months","PenaltyData","DurationYears","DurationMonths","DurationDays","array","DeductionInformations","postAddNewSectionLogic","Confirmation","executeAfterRemoveSectionLogic","afterRemoveSectionLogicEvent","inRemoveSection","actionEval","showAddNew","hideNewAddSectionCondition","additionalFieldVisibility","currentAdditionalField","additionalFieldHideCondition","func","searchPageRedirect","lf","checkValueTypeForDecimal","isNaN","TemplateRef","QueryArrowIconDirective","NG_VALIDATORS","QueryOperatorDirective","QueryFieldDirective","QueryEntityDirective","QuerySwitchGroupDirective","QueryButtonGroupDirective","QueryInputDirective","QueryRemoveButtonDirective","QueryEmptyWarningDirective","ContentChild","ContentChildren","forwardRef","CONTROL_VALUE_ACCESSOR","QueryBuilderComponent","VALIDATOR","changeDetectorRef","defaultClassNames","arrowIconButton","arrowIcon","removeIcon","addIcon","button","buttonGroup","removeButton","switchGroup","switchLabel","switchLabelAnd","switchLabelOr","switchRadio","rightAlign","transition","collapsed","treeContainer","tree","row","connector","rule","ruleSet","invalidRuleSet","emptyWarning","fieldControl","fieldControlSize","entityControl","entityControlSize","operatorControl","operatorControlSize","inputControl","inputControlSize","removeRuleIconContainer","operatorMinWidth","inputDateTime","inputCheckbox","inputNumber","inputTextField","defaultOperatorMap","category","boolean","allowRuleset","allowCollapse","emptyMessage","config","persistValueOnFieldChange","defaultTemplateTypes","defaultPersistValueTypes","defaultEmptyList","inputContextCache","Map","operatorContextCache","fieldContextCache","entityContextCache","removeButtonContextCache","getDisabledState","disabled","displayFn","fieldObj","changes","entities","operatorsCache","validate","ruleErrorStore","hasErrors","allowEmptyRulesets","checkEmptyRuleInRuleset","empty","validateRulesInRuleset","handleDataChange","writeValue","registerOnChange","fn","onChangeCallback","registerOnTouched","onTouchedCallback","setDisabledState","isDisabled","translationKey","getTooltipSearchField","getGalModelNameFromRule","galregname","findTemplateForRule","getInputType","operator","queryInput","findQueryInput","warn","templates","parentInputTemplates","inputTemplates","queryInputType","getOperators","operators","fieldObject","operatorMap","nullable","concat","getFields","getFieldsForAutoComplete","currentSearchFieldValue","trimSearchValue","fieldExistsInConfig","getOptions","options","getClassNames","clsLookup","classNames","getDefaultField","defaultField","entityFields","getDefaultOperator","defaultOperator","addRule","parent","handleTouched","removeRule","r","delete","addRuleSet","removeRuleSet","ruleset","parentValue","transitionEnd","style","maxHeight","computedTreeContainerHeight","firstElementChild","changeCondition","changeOperator","coerceValueForOperator","inputType","changeInput","changeField","inputContext","currentField","nextField","nextValue","calculateFieldChangeValue","getInputContext","getFieldContext","getOperatorContext","getEntityContext","changeEntity","entityValue","rs","getOperatorTemplate","parentOperatorTemplate","operatorTemplate","getFieldTemplate","parentFieldTemplate","fieldTemplate","getEntityTemplate","parentEntityTemplate","entityTemplate","getArrowIconTemplate","parentArrowIconTemplate","arrowIconTemplate","getButtonGroupTemplate","parentButtonGroupTemplate","buttonGroupTemplate","getSwitchGroupTemplate","parentSwitchGroupTemplate","switchGroupTemplate","getRemoveButtonTemplate","parentRemoveButtonTemplate","removeButtonTemplate","getEmptyWarningTemplate","parentEmptyWarningTemplate","emptyWarningTemplate","getQueryItemClassName","local","cls","invalid","getButtonGroupContext","buttonGroupContext","$implicit","getRemoveButtonContext","has","set","getSwitchGroupContext","getArrowIconContext","getEmptyWarningContext","message","currentValue","canKeepValue","errorStore","validator","markForCheck","parentChangeCallback","parentTouchedCallback","_type","SemQueryComponent","resultItems","stringSearchQuery","redirectLink","redirectToRelatedItem","formLink","pageNumber","SemRadioButtonComponent","itemsType","answers","parsedAnswers","c1","c2","valueModified","SemRegexInputComponent","segments","splitters","_bindValueChange","sub","sub2","generateSegments","formatString","propValue","applyValueToSegments","bbe","segmentLeadingZero","oce","cutSegmentDelimeterWhenEmpty","seg","valueToBeParsed","bindValueChange","changeBindingPropertyValue","propVal","propTrimmed","valueSegments","splitMulti","clearValueSegments","defaultSegmentIndex","segmentValue","removeLeadingZeroesAndReturnValue","z","splitterSegments","newSegment","inputSize","maxLength","segmentFormat","sg","defaultSegment","segment","segVal","addLeadingZeroesAndReturnValue","inputChange","segmentIndex","newV","tokens","tempChar","keyUp","padStart","cutSegmentDelimeterIfSegmentEmpty","SemReportGeneratorComponent","urlBindingProperty","parsedJS","parsedPathJS","setClasses","SemRichTextEditorComponent","textFormat","SemSearchBarComponent","customPlaceholder","dashboardUrlSearchPath","PaginationModel","FacetGroupModel","hideSearchWhere","searchClassTypes","allFieldsDefaultQuery","defaultStringQuery","andQuery","defaultSorting","searchClassTypesList","searchPlaceholderTitle","currentSearchPage","currentFacets","metamodelFacets","initialGlobalSearch","showQueryBuilder","queryBuilderConfigPopulated","queryBuilderSearching","changeMetaModelEntities","setEnableFacets","setAdditionalSearchSettings","searchSubs","searchFacetsSubs","searchSortSubs","pageSizeSubs","setSearchFieldsRestoredDefault","customPageSize","globalSearchType","getAllowedSearchClasses","repositoryName","mainSearchValue","handleUserAdditionalSearchFields","currentSearchProjectionAndFacets","projectionFacets","performTaskSearch","currentSearchValue","searchInChange","isUserInput","openQueryBuilderDialog","fieldObjectType","QueryBuilderType","FullType","QueryBuilderOperators","fieldObjectPropertyName","QueryBuilderPropertyName","queryBuilderConfig","searchBasedOnQueryBuilder","showDataTools","showSearchWhere","searchOptionNotSelected","selectedList","Selected","handleMetaModelFacets","requestFacets","metamodelFacet","customFacetSpecified","handleSortFields","requestedSortFields","sortField","rootclassname","prepareQueryObject","mainQuery","parseQueryBuilder","treeQueryWithSubQ","toUpperCase","returnedQ","queryField","queryFieldNameForSearch","replaceAll","queryFieldConfiguration","queryFieldType","fieldValueQ","fieldValueQuery","isNumberType","rangeValueTo","rangeValueFrom","fieldRangeQuery","dropDownValueId","fieldValueCategoryQuery","getMainSearchQuery","taskSearch","queryBuilderSearch","mName","allFieldsQuery","finalQuery","defaultQueryAll","handleAdditionalSearchFields","parsedQueryFromQueryBuilder","handleSearchFacets","mainSearchValueWildcard","userId","userGroups","userGroupQuery","secQueryTask","finalTaskQ","manipulateCustomQuery","combinedQuery","evalString","lastIndexOf","clearSearchFieldValues","sortFields","AdditionalSearchFields","SearchValueTo","SearchValueFrom","SearchValue","modifySearchFields","originalAddedFieldsList","facetName","CustomFacets","customFacetsList","setCurrentSearchQuery","searchPerformed","historySearchStatePresent","historySearchState","historyAdditionalFields","getHistorySearchAdditionalFields","mainSearchFieldValue","getHistoryMainSearchFieldValue","ValueFrom","ValueTo","customApiEndpoint","paginationInfo","currentMetaModelFacets","facetGroupName","GroupName","customFacetSpeicfied","curFac","facetGroups","GroupFacets","facetGroupModel","count","label","Label","End","Start","ind","facetChecked","groupFacets","latestFacets","historySearchLatestFacets","ClassTypes","setLatestHistorySearchFacets","fieldType","facetQuery","dropdownValue","newFieldQuery","newFieldQuery2","newRangeQuery","newQuery","PredefinedQuery","checkTrueQuery","checkFalseQuery","getSearchPlaceHolder","splitArr","getSearchFields","currentLuceneProperties","AvailibleInSearch","of","MatSelect","SemSelectComponent","filterField","useAsMultiField","autoSelectFirstEntry","clientUIControl","multiFieldPropertyName","waitForFilteredValue","useNhibernate","filteredValueBinding","additionalProjection","onSelectPostJS","autoSelectCondition","autoSelectConditionValue","useGlobalModel","autoSelectFirstEntryCondition","loadItemsOnModelLoad","additionalProjectionOriginal","initialSet","loadedOnModelLoad","myControl","loadingResults","filteredValueSubs","newSectionAddedObsrvProp","preSelectedEntity","dropdownOptionsLoaded","autoselect","conditionApplied","conditionValue","valueRemoved","newDropdownValueSelected","resultOfEval","disable","currentDropdownSelectedValue","newSectionAddedObsr","evalVal","currentVal","selectedVal","loadAutoComplete","ngModelChangeEvent","ev","ordinalChange","addSorting","sorting","classType","defaultValueId","predefinedValueEvent","defaultValueTreeQuery","interpolateError","getProjection","projections","clearValue","inputParams","filteredOptions","compareFnR","radioButtonChange","radioChange","selectionChange","processMultiField","reqDataModel","dropdownSelectClick","ddInitialSet","matSelect","_filter","option","focusDropdown","optionSelected","onFocus","onSearchChange","SemTableDataComponent","tableFields","showPageSizeOption","pageOptions","showTableLoader","selectedPageSize","searchCustomEndpoint","requestBody","postCustomEndpoint","Page","PageSize","searchModel","IsDateTime","IsCheckBox","IsImageControl","DetailsFormUrl","SemTextAreaComponent","instructionTextPresent","instructionText","SemTextBoxComponent","isNumberInput","isPasswordInput","disResults","isActiveUrl","step","addResult","showTooltipValue","redirectToActiveUrl","numberValue","parseFloat","minNumber","maxNumber","checkAfterInput","SemTextInputComponent","SemTimePickerComponent","ISO_8601","isValid","ViewContainerRef","NgSelectComponent","initDynamicForm","routeService","useForParams","urlReq","frmTemplate","tmpCmp","confirmLabel","closeLabel","setParameterFormModel","tmpModule","compileModuleAndAllComponentsAsync","then","factories","f","componentFactories","create","SerializationObjectFormLink","prepModel","vc","insert","hostView","formTabChanged","initDynamicWithTemplate","forwardEntityName","_this2","SelectedDropDownBinding","SelectedValue","generateDynamicViewComponent","_this3","alwaysEditable","defaultValueToday","initialValueSet","changed","touched","innerValue","isDate","getMomentDate","touch","extractNumberFromString","matches","HttpHeaders","SemToken","httpClient","localStorageService","username","password","projIcon","homepage","loginClick","URLSearchParams","post","wgProfileHost","token","accessToken","created","expires","setHours","languageCode","language","transObj","projName","projectName","ADLoginEnabled","withCredentials","procesResponse","clear","jwtDecode","otp","showOTP","showAlertMessage","alertMessage","forgotUsernameMail","loginViewName","forgotPasswordMail","showGreenAlert","newPasswordRepeat","newPassword","pwResetToken","pwChangeDone","userData","showPassword","otpLogin","warning","closeErrorBox","newRegistration","newRegistrationLinkDocument","usernameForgot","passwordForgot","showMainLoginScreen","sendMailForgotUsername","sendMailForgotPassword","sendPasswordResetValues","Token","NgControl","DisableControlDirective","disableControl","ngControl","MakeDraggable","_elementRef","dropped","draggable","effectAllowed","setData","MakeDroppable","dropEffect","FormLoadEventDirective","formLoadEventReceived","formLoadEvent","preLoadEvent","ImagesPathDirective","imagesPathJson","PreFormSubmitDirective","utilityService","openPopupBeforeSaveMessage","openPopupBeforeSave","openPopupBeforeSaveCondition","redirectUrlAfterSubmit","preFormSubmitJS","afterFormSubmitErrorJS","FormReadOnlyDirective","formReadOnlyValue","ref","onInput","a_Event","SemRequiredDirective","semrequired","cntrl","setValidators","BulkActionModel","Entities","RootModel","FileID","MimeType","BackendStore","SystemSignature","UserSignature","UploadDate","LastModificationDate","UniquePermissions","FileDataBackendInfo","Description","FileChecksum","NavigationNodeModel","Icon","Payload","Provider","ClientId","HttpRequestType","BreadCrumbs","Injectable","StateModel","Root","Props","providedIn","FacetsOrder","fromJson","json","NavigationNode","toJson","icon","breadcrumbs","SemBreadcrumbComponent","formTitle","routesLoaded","loadBreadcrumb","navigationNodeFrom","currentRoute","visitNode","navigationNodes","pop","withoutViewUrl","goToUrl","detailsPage","nodeChildUrl","getTranslation","setTitle","SemHeaderMenuComponent","closeMenuEm","viewTitle","supportMail","userMenuState","languageMenuState","headerChildClick","childrenNodes","showNotificationDotIcon","formActionResponses","customNodes","currentUrl","getMenuItems","currentLanguage","cacheData","useRouteAndMasterpageCache","languageMenuResult","userMenuResult","checkNotificationData","formActionValueComplete","closeMenuDef","showBreadcrumb","openChildrenNodes","currentKey","Show","closeMenu","helpSupport","languageChange","resetConfig","topMenuItemClick","userMenuClick","userPopupClick","languageMenuClick","notificationsClick","SemLeftMenuItemComponent","trigger","animate","sidebarIcon","sidebarClicked","projectSidebarName","menuState","quickActionState","addLink","listLink","searchLink","favoriteLink","offsetTop","childClick","vloader","getChildNodes","nodeChildren","nodesList","nodechild","leftMenuNodes","toggleMenu","processClickItemUrl","previousState","isChild","quickActionsItems","className","parentClick","containsSubItemsOfGroup","toggleSubMenu","itemClicked","decodeUri","uri","decodeURIComponent","GetGroup","grChildren","isRootLink","childPadding","display","paddingLeft","textAlign","marginRight","marginBottom","MenuTypePipe","NgScrollbarModule","Pipe","pure","redirectSSO","redirecturl","wgPlatformHost","encodeURI","btoa","throwError","catchError","tap","intercept","handle","ErrorEvent","status","actionFinished","currentActionFinished","_formActionsReceived","formActionsApiData","present","inputModel","preCallback","postCallback","bulkAction","onlyClientLogic","maintainLoader","bulkExport","skipBulkActionApiMethod","outputModel","getCurrentCheckedBulkDocument","bulkActionModel","ActionProvider","ProjectionDynamicForm","resultPo","evaluateJS","js","postExecuteJs","fullFormAction","InputParameters","msgType","PopupResponseParameterForm","newParamsModel","finalInputParams","setActionAsFinished","actionName","targetActions","getActionFromAPI","evaluateJs","controlValuesForValidation","wasInEditMode","modelValueReset","_modelValueSubmitValidator","modelValueSubmitValidator","_routesLoaded","shouldAssign","lastKey","lastObj","reduce","o","FileUploadObservableState","compiler","_promiseDone","masterPages","loadConfig","routeDoesntExists","reject","routesJson","urlToCompare","registerRoute","_ref2","_x2","configData","_configData","wgRoute","masterPageUrl","masterPageLoaded","formInnerMasterPage","masterPagePreEl","MasterPage","masterPageTemplate","masterPage","masterPageInnerTemplate","_ref3","PrettyUrl","trans","submitedModel","showSideForm","showPhotosContainer","showFilesContainer","showFingerPrintContainer","collapseSideFormByDefault","loaderSubscription","titleIcon","actionFinishedSubscription","checkSideForm","getCurrentRoute","tIcon","MessageType","loaderService","subject","updateStatus","checkErrorsOnForm","toggleErrorBox","requestM","onSubmit","_submitAll","_this4","submitFilesRequestEvent","submit","ServerMessageMetadata","preperedModel","m","updateStatusWithMessage","Finished","stModel","tabInformations","tabId","Ok","translationsProviderService","hideLoader","_addNew","stateObjectHistory","mainForm","navigated","mandatoryFields","_delete","getPrompt","masterPageName","routes","forChild","compileModuleAsync","module","appRoutes","loadChildren","_x3","registerMasterPage","_this5","_ref4","masterPageComponent","_x4","configService","compExists","export","exportType","exportData","Observable","EMPTY","loadingUtil","chunkSize","chunkNumber","uploadFiles","filesTemp","fileSet","Set","startTime","sendFile","removeFiles","observer","startFU","chunk","xhr","XHRFactory","getInstance","getToken","updateProgress","pEvent","uploaded","lengthComputable","total","progress","toFixed","speed","round","remaining","onDataSendError","release","getResponseHeader","onerror","upload","onprogress","modelId","formData","FormData","stack","fill","createXHR","onreadystatechange","g_Observer","_router","removeItem","metaModelRequest","observableShare","observableResult","cancled","parameterFormsModel","_modelValueChanged","getUser","buildWgApiUrl","stToken","semToken","ca","cookie","caLen","cookieName","setCookie","expireDays","setTime","toUTCString","cpath","observe","getHttpOptions","getDataDELETE","p_responseType","useCache","storageLanguage","reportProgress","httpOptions","searchState","historySearchStateAdditionalFields","historySearchMainSearchFieldValue","defaultSearchUrl","searchProjectionAndFacets","newSearchValue","pagination","searchPage","searchFacets","metamodel","searchExecuted","gridRestoredDefault","searchFieldsRestoredDefault","currentsearchFieldsRestoredDefault","pageS","currentSearchQuery","currentGridDisplayFields","currentCheckedBulkDocuments","enable","currentSearchSettings","getCurrentSearchQuery","currentCheckedBulkDocs","getCurrentGridDisplayFields","projectionAndFacets","addFieldsHistory","customSearchUrl","additionalFieldsInfo","searchUrl","searchType","searchRightInfo","searchRightInfoResponse","loadLabels","getLabels","savedUserSearchSettings","postModel","userSearchSettingsResult","userGridSettingsResult","dropdownSelectedValue","selectedDropdownBinding","passthroughPopup","processNavigate","navigateAwayPopupEnabled","routeReuseStrategy","shouldReuseRoute","urlToGenerate","getStateFromHistory","modifyStateFromHistory","updated","sm","StateObject","isFormExpicitEditMode","loadedRoutesArr","getWindow","exportService","fileUploadStandalone","alwaysShow","titleChanged","submitFilesEndRequestEvent","modelChangeEvent","clearedObjects","exportServiceSubscriber","valid","selectedTabIndex","currentId","showPopup","isSetAsReadOnly","isCyclic","stackSet","detected","detect","oldindex","l1","l2","Metadata","SecurityResult","domainModelTypeFullName","tabInfo","changeTab","markAsPristine","cr","routesJSON","tabClicked","Prop","ActionUrl","cd","btn","getElementsByName","valueChanges","submitted","checkFormValidation","canDeactivate","back","pushState","stateActionEvaluated","checkMetamodel","R","onTabChange","tabs","firstSelected","lastSelected","tabContentElement","parentNode","hasAttribute","formUrl","innerText","mainElement","displayValue","tabNumber","cTabId","goBack","clonedObject","JsonUtil","clearEmpties","ApplicationModelFullName","openVersion","formSubmit","submitCall","ngSubmit","ErrorMandatoryFields","fileDelete","Delete","formCopy","printWithQuery","propertyPathForValue","findBulkAction","navigationNode","setCollapsed","p_collapse","invokeAction","getClass","openCompareDialog","oldIndex","cssClasses","toggle","DefaultUrlSerializer","dus","serialize","loadedDynamicRoutes","_2","_3","_4","fSExt","Optional","MAT_DATE_LOCALE","MomentDateAdapter","MomentUtcDateAdapter","dateLocale","createDate","year","month","locale","LimitToPipe","limit","SemDomPipe","sanitized","bypassSecurityTrustHtml","random","MatLegacyTabsModule","MatTabsModule","MatLegacyRadioModule","MatRadioModule","MatDatepickerModule","MatNativeDateModule","MAT_MOMENT_DATE_ADAPTER_OPTIONS","DateAdapter","MAT_DATE_FORMATS","MatLegacyButtonModule","MatButtonModule","CdkTreeModule","MatTreeModule","MatIconModule","NgxChartsModule","PdfViewerModule","MatSelectModule","MatInputModule","MatAutocompleteModule","ScrollingModule","MatTooltipModule","MY_FORMATS","dateInput","dateFormat","monthYearLabel","dateA11yLabel","monthYearA11yLabel","useValue","useUtc","production","projectCode","enableProdMode","platformBrowserDynamic","documentElement","span","textContent","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[239]}